ksigner/Makefile
2025-09-23 19:45:56 -05:00

84 lines
2.4 KiB
Makefile

NAME = ksigner
VERSION = $(shell cat VERSION)
RELEASE = $(shell cat RELEASE)
DISTS = $(shell cat DISTS)
SOURCEDIR = .
BUILDDIR = build
SOURCES = src/ksigner src/ksigner.conf src/ksigner-update-hook docs/ksigner.8 README.md LICENSE
CLEANFILES = $(BUILDDIR) $(NAME).spec src/$(NAME) docs/$(NAME).8 noarch *.tar.gz *.rpm *.src.rpm
.PHONY: all clean dist rpm srpm install
all: dist
clean:
rm -rf $(CLEANFILES)
$(BUILDDIR):
mkdir -p $(BUILDDIR)
%.spec: %.spec.in VERSION RELEASE
sed -e 's/@VERSION@/$(VERSION)/g' \
-e 's/@RELEASE@/$(RELEASE)/g' \
$< > $@
src/%: src/%.in VERSION RELEASE
sed -e 's/@VERSION@/$(VERSION)/g' \
$< > $@
docs/%: docs/%.in VERSION RELEASE
sed -e 's/@VERSION@/$(VERSION)/g' \
$< > $@
dist: $(BUILDDIR) $(NAME).spec src/$(NAME) docs/$(NAME).8
mkdir -p $(BUILDDIR)/$(NAME)-$(VERSION)
cp -r $(SOURCES) $(NAME).spec $(BUILDDIR)/$(NAME)-$(VERSION)/
cd $(BUILDDIR) && tar -czf $(NAME)-$(VERSION).tar.gz $(NAME)-$(VERSION)/
cp $(BUILDDIR)/$(NAME)-$(VERSION).tar.gz $(SOURCEDIR)
sprm-all: dist
@for dist in $(DISTS); do \
echo "Building SRPM for $$dist..."; \
rpmbuild --define "_topdir $(PWD)/$(BUILDDIR)/$$dist" \
--undefine "dist" \
--define "dist .$$dist" \
--define "_sourcedir $(PWD)" \
--define "_srcrpmdir $(or $(outdir),$(PWD))" \
-bs $(NAME).spec; \
done
rpm-all: dist
@for dist in $(DISTS); do \
echo "Building RPM for $$dist..."; \
rpmbuild --define "_topdir $(PWD)/$(BUILDDIR)/$$dist" \
--undefine "dist" \
--define "dist .$$dist" \
--define "_sourcedir $(PWD)" \
--define "_rpmdir $(PWD)" \
--define "_buildrootdir $(PWD)/$(BUILDDIR)/$$dist" \
-ba $(NAME).spec; \
done
srpm: dist
rpmbuild --define "_topdir $(PWD)/$(BUILDDIR)" \
--define "_sourcedir $(PWD)" \
--define "_srcrpmdir $(or $(outdir),$(PWD))" \
-bs $(NAME).spec
rpm: dist
rpmbuild --define "_topdir $(PWD)/$(BUILDDIR)" \
--define "_sourcedir $(PWD)" \
--define "_rpmdir $(PWD)" \
--define "_buildrootdir $(PWD)/$(BUILDDIR)" \
-ba $(NAME).spec
install:
install -d $(DESTDIR)/usr/bin
install -d $(DESTDIR)/etc/ksigner
install -d $(DESTDIR)/etc/kernel/postinst.d
install -d $(DESTDIR)/usr/share/man/man8
install -m 755 src/ksigner $(DESTDIR)/usr/bin/
install -m 644 src/ksigner.conf $(DESTDIR)/etc/ksigner/
install -m 755 src/ksigner-update-hook $(DESTDIR)/etc/kernel/postinst.d/zz-ksigner
install -m 644 docs/ksigner.8 $(DESTDIR)/usr/share/man/man8/