Skip to content

Commit

Permalink
Add top-level Makefile and RPM spec file for packaging
Browse files Browse the repository at this point in the history
Top-level Makefile can create tar and RPM files to release.
Also add *.tar.gz to .gitignore.
  • Loading branch information
geoffreybennett committed Mar 16, 2022
1 parent f70c0cb commit d085fd4
Show file tree
Hide file tree
Showing 3 changed files with 68 additions and 0 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
*.tar.gz
*.o
.deps
.gdb_history
Expand Down
34 changes: 34 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -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)
33 changes: 33 additions & 0 deletions alsa-scarlett-gui.spec.template
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit d085fd4

Please sign in to comment.