X-Git-Url: https://git.distorted.org.uk/~mdw/misc/blobdiff_plain/8d769cc9146d71188f2ffe9cd5a9160706614f1d..223bbefb9b4d1dd3e56a49adc2bf3b76927afe20:/Makefile?ds=sidebyside diff --git a/Makefile b/Makefile index 841e7fd..ae6a213 100644 --- a/Makefile +++ b/Makefile @@ -2,26 +2,81 @@ ## ## No proper build system here. Just kludgy hacks. -PROGS = \ - qmail-checkspam not \ - cdb-probe cdb-check-domain \ - xtitle.so +PACKAGE = nsict-utils +VERSION = 1.1.1 + +BINSCRIPTS = \ + cdb-assign cdb-map cdb-list check-sender unfwd \ + splitconf z buf create inplace +SBINSCRIPTS = shadowfix +SCRIPTS = $(BINSCRIPTS) $(SBINSCRIPTS) +BINPROGS = not cdb-probe cdb-check-domain gorp locking if-mtu pause stamp +SBINPROGS = qmail-checkspam +PROGS = $(BINPROGS) $(SBINPROGS) +PERLLIBS = MdwOpt.pm +LIBS = xtitle.so +DISTMAN1 = \ + not.1 z.1 cdb-assign.1 cdb-map.1 cdb-list.1 cdb-probe.1 \ + cdb-check-domain.1 \ + gorp.1 unfwd.1 splitconf.1 locking.1 if-mtu.1 pause.1 stamp.1 \ + buf.1 create.1 inplace.1 +MAN1 = $(DISTMAN1) +DISTMAN8 = qmail-checkspam.8 +MAN8 = $(DISTMAN8) shadowfix.8 +BUILDFILES = shadowfix.8 +SOURCES = \ + not.c cdb-probe.c cdb-check-domain.c gorp.c locking.c if-mtu.c \ + qmail-checkspam.c xtitle.c pause.c CC = gcc LD = gcc -CFLAGS = -O2 -g -pedantic -Wall +CFLAGS = -O2 -g -pedantic -Wall -DVERSION=\"$(VERSION)\" LINK = $(LD) $(LDFLAGS) -o $@ $^ -all: $(PROGS) +INST = +prefix = /usr/local +bindir = $(prefix)/bin +sbindir = $(prefix)/sbin +mandir = $(prefix)/man +man1dir = $(mandir)/man1 +man8dir = $(mandir)/man8 +libdir = $(prefix)/lib +perllibdir = $(libdir)/site_perl + +all: $(BUILDFILES) $(PROGS) $(LIBS) + +install: all + [ -d $(INST)$(libdir) ] || install -d $(INST)$(libdir) + install -m644 $(LIBS) $(INST)$(libdir) + [ -d $(INST)$(perllibdir) ] || install -d $(INST)$(perllibdir) + install -m644 $(PERLLIBS) $(INST)$(perllibdir) + [ -d $(INST)$(bindir) ] || install -d $(INST)$(bindir) + install -m775 $(BINPROGS) $(BINSCRIPTS) $(INST)$(bindir) + [ -d $(INST)$(sbindir) ] || install -d $(INST)$(sbindir) + install -m775 $(SBINPROGS) $(SBINSCRIPTS) $(INST)$(sbindir) + [ -d $(INST)$(man1dir) ] || install -d $(INST)$(man1dir) + install -m644 $(MAN1) $(INST)$(man1dir) + [ -d $(INST)$(man8dir) ] || install -d $(INST)$(man8dir) + install -m644 $(MAN8) $(INST)$(man8dir) + +uninstall: + for i in $(LIBS); do rm -f $(INST)$(libdir)/$$i; done + for i in $(PERLLIBS); do rm -f $(INST)$(perllibdir)/$$i; done + for i in $(BINPROGS) $(BINSCRIPTS); do \ + rm -f $(INST)$(bindir)/$$i; done + for i in $(SBINPROGS) $(SBINSCRIPTS); do \ + rm -f $(INST)$(sbindir)/$$i; done + for i in $(MAN1); do rm -f $(INST)$(man1dir)/$$i; done + for i in $(MAN8); do rm -f $(INST)$(man8dir)/$$i; done qmail-checkspam: qmail-checkspam.o $(LINK) -lspamc cdb-probe: cdb-probe.o - $(LINK) -lfreecdb + $(LINK) -lcdb cdb-check-domain: cdb-check-domain.o - $(LINK) -lfreecdb + $(LINK) -lcdb not: not.o $(LINK) @@ -31,6 +86,64 @@ xtitle.o: xtitle.c xtitle.so: xtitle.o $(LINK) -shared -clean:; rm -f *.o $(PROGS) +gorp: gorp.o + $(LINK) -lcatacomb -lmLib + +pause: pause.o + $(LINK) -lmLib + +locking: locking.o + $(LINK) -lmLib + +if-mtu: if-mtu.o + $(LINK) + +stamp: stamp.o + $(LINK) -lmLib + +shadowfix.8: shadowfix + pod2man --section 8 shadowfix >shadowfix.8.new + mv shadowfix.8.new shadowfix.8 + +clean:; rm -f *.o *~ $(PROGS) $(OTHERS) + +DISTDIR = $(PACKAGE)-$(VERSION) +DISTFILES = \ + Makefile \ + $(SCRIPTS) $(DISTMAN1) $(DISTMAN8) $(SOURCES) $(PERLLIBS) \ + debian/changelog debian/control debian/copyright \ + debian/rules debian/inst +distdir: $(DISTFILES) + $(RM) -rf $(DISTDIR) + mkdir $(DISTDIR) $(DISTDIR)/debian + for i in $(DISTFILES); do \ + case $$i in \ + */*) \ + dir=$${i%/*}; \ + up=`echo $$dir | sed 's:[^/]\+:..:g'`; \ + mkdir -p $(DISTDIR)/$$dir;; \ + *) dir= up=;; \ + esac; \ + ln -s ../$$up/$$i $(DISTDIR)/$$i; \ + done +disttar: distdir + tar chofz $(INST)$(DISTDIR).tar.gz $(DISTDIR) +dist: disttar + $(RM) -rf $(DISTDIR) +distcheck: dist + @echo "*** Packing..." + $(MAKE) dist + @echo "*** Unpacking..." + tar xfz $(DISTDIR).tar.gz + @echo "*** Test building..." + set -e; \ + cd $(DISTDIR); \ + $(MAKE) clean; \ + $(MAKE); \ + $(MAKE) install INST=inst; \ + $(MAKE) dist + @echo "*** Tidying up..." + rm -rf $(DISTDIR) + @echo "*** All OK" -.PHONY: all clean +.PHONY: all clean install dist distdir disttar