Add top-level Makefile and RPM spec file for packaging

Top-level Makefile can create tar and RPM files to release.
Also add *.tar.gz to .gitignore.
This commit is contained in:
Geoffrey D. Bennett
2022-03-17 01:34:57 +10:30
parent f70c0cb409
commit d085fd49c1
3 changed files with 68 additions and 0 deletions

1
.gitignore vendored
View File

@@ -1,3 +1,4 @@
*.tar.gz
*.o
.deps
.gdb_history

34
Makefile Normal file
View File

@@ -0,0 +1,34 @@
NAME := alsa-scarlett-gui
VERSION := $(shell git describe --abbrev=4 --always --tags | sed 's/-/./g')
NAMEVER := $(NAME)-$(VERSION)
TAR_FILE := $(NAMEVER).tar
TARGZ_FILE := $(TAR_FILE).gz
SPEC_FILE := $(NAME).spec
default:
@echo "alsa-scarlett-gui"
@echo
@echo "If you want to build and install from source, please try:"
@echo " cd src"
@echo " make -j4"
@echo " sudo make install"
@echo
@echo "This Makefile knows about packaging:"
@echo " make tar"
@echo " make rpm"
tar: $(TARGZ_FILE)
$(TARGZ_FILE):
git archive --format=tar --prefix=$(NAMEVER)/ HEAD > $(TAR_FILE)
sed 's_VERSION$$_$(VERSION)_' < $(SPEC_FILE).template > $(SPEC_FILE)
tar --append -f $(TAR_FILE) \
--transform s_^_$(NAMEVER)/_ \
--owner=root --group=root \
$(SPEC_FILE)
rm -f $(SPEC_FILE)
gzip < $(TAR_FILE) > $(TARGZ_FILE)
rm -f $(TAR_FILE)
rpm: $(TARGZ_FILE)
rpmbuild -tb $(TARGZ_FILE)

View File

@@ -0,0 +1,33 @@
Summary: ALSA Scarlett Gen 2/3 Control Panel
Name: alsa-scarlett-gui
Version: VERSION
Release: 1%{?dist}
License: GPLv3+ LGPLv3+
Url: https://github.com/geoffreybennett/alsa-scarlett-gui
Source: %{name}-%{version}.tar.gz
%description
alsa-scarlett-gui is a Gtk4 GUI for the ALSA controls presented by the
Linux kernel Focusrite Scarlett Gen 2/3 Mixer Driver.
%prep
%setup
%build
make -C src -j4 VERSION=%{version} PREFIX=/usr
%install
%make_install -C src PREFIX=/usr
DOCDIR=%{buildroot}/usr/share/doc/%{name}-%{version}
mkdir -p $DOCDIR/img
mkdir $DOCDIR/demo
cp *.md $DOCDIR
cp img/* $DOCDIR/img
cp demo/* $DOCDIR/demo
%files
%doc /usr/share/doc/%{name}-%{version}
/usr/bin/alsa-scarlett-gui
/usr/share/applications/vu.b4.alsa-scarlett-gui.desktop
/usr/share/icons/hicolor/256x256/apps/alsa-scarlett-gui.png