Cleanup to support a debian style "install" target.
authorRalph Ronnquist <rrq@rrq.au>
Mon, 17 Feb 2025 02:56:37 +0000 (13:56 +1100)
committerRalph Ronnquist <rrq@rrq.au>
Mon, 17 Feb 2025 02:56:37 +0000 (13:56 +1100)
Makefile

index 89b2cc4593a1a1dae90d0dc3db916c68d58a069b..9428b3d1b2a9cc917b68e74a726b6894281d4f4e 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -5,24 +5,45 @@ USERCOMMAND = nfblockerctl
 
 .PHONY: install clean
 
-default: bin/nfblocker nfblocker.5 nfblocker.8
+default: nfblocker nfblocker.5 nfblocker.8
 
 README.html: README.adoc
        asciidoctor -bhtml $<
 
-nfblocker.5 nfblocker.8: %: %.adoc
+nfblocker.5 nfblocker.8 nfblockerctl.8: %: %.adoc
        asciidoctor -bmanpage $<
 
-bin/nfblocker: $(wildcard src/*.c)
+nfblocker: $(wildcard src/*.c)
        # requires libnetfilter-queue-dev
        gcc -g -Wall -o $@ $^ -lnetfilter_queue
 
 # Installing the control script in $(INSTALLDIR)
 
-$(INSTALLDIR)/$(USERCOMMAND): bin/nfblocker.sh $(INSTALLDIR)
-       ln -sTf $$(readlink -f $<) $@
+SBINFILES = nfblocker
+BINFILES = nfblockerctl
+ETCFILES = blocked/ acl/
+MAN5FILES = nfblocker.5
+MAN8FILES = nfblocker.8 nfblockerctl.8
 
-install: bin/nfblocker $(INSTALLDIR)/$(USERCOMMAND)
+SBINDIR = $(DESTDIR)/usr/sbin
+BINDIR = $(DESTDIR)/usr/bin
+ETCDIR = $(DESTDIR)/etc/nfblocker
+MAN5DIR = $(DESTDIR)/usr/share/man/man5
+MAN8DIR = $(DESTDIR)/usr/share/man/man8
+
+INSTALLTARGETS = $(addprefix $(SBINDIR)/,$(SBINFILES))
+INSTALLTARGETS += $(addprefix $(BINDIR)/,$(BINFILES))
+INSTALLTARGETS += $(addprefix $(ETCDIR)/,$(ETCFILES))
+INSTALLTARGETS += $(addprefix $(MAN5DIR)/,$(MAN5FILES))
+INSTALLTARGETS += $(addprefix $(MAN8DIR)/,$(MAN8FILES))
+
+$(ETCDIR)/%/:
+       mkdir -p $@
+
+$(SBINDIR)/% $(BINDIR)/% $(ETCDIR)/% $(MAN5DIR)/% $(MAN8DIR)/%: %
+       install -D $< $@
+
+install: $(INSTALLTARGETS)
 
 clean:
-       rm -f bin/nfblocker
+       rm -f nfblocker