| 1 | ## Makefile for miscellaneous stuff |
| 2 | ## |
| 3 | ## No proper build system here. Just kludgy hacks. |
| 4 | |
| 5 | PACKAGE = nsict-utils |
| 6 | VERSION = 1.1.0 |
| 7 | |
| 8 | BINSCRIPTS = cdb-assign cdb-list check-sender unfwd splitconf z |
| 9 | SBINSCRIPTS = shadowfix |
| 10 | SCRIPTS = $(BINSCRIPTS) $(SBINSCRIPTS) |
| 11 | BINPROGS = not cdb-probe cdb-check-domain gorp locking if-mtu |
| 12 | SBINPROGS = qmail-checkspam |
| 13 | PROGS = $(BINPROGS) $(SBINPROGS) |
| 14 | PERLLIBS = MdwOpt.pm |
| 15 | LIBS = xtitle.so |
| 16 | DISTMAN1 = \ |
| 17 | not.1 z.1 cdb-assign.1 cdb-list.1 cdb-probe.1 cdb-check-domain.1 \ |
| 18 | gorp.1 unfwd.1 splitconf.1 locking.1 if-mtu.1 |
| 19 | MAN1 = $(DISTMAN1) |
| 20 | DISTMAN8 = qmail-checkspam.8 |
| 21 | MAN8 = $(DISTMAN8) shadowfix.8 |
| 22 | BUILDFILES = shadowfix.8 |
| 23 | SOURCES = \ |
| 24 | not.c cdb-probe.c cdb-check-domain.c gorp.c locking.c if-mtu.c \ |
| 25 | qmail-checkspam.c xtitle.c |
| 26 | |
| 27 | CC = gcc |
| 28 | LD = gcc |
| 29 | CFLAGS = -O2 -g -pedantic -Wall -DVERSION=\"$(VERSION)\" |
| 30 | LINK = $(LD) $(LDFLAGS) -o $@ $^ |
| 31 | |
| 32 | INST = |
| 33 | prefix = /usr/local |
| 34 | bindir = $(prefix)/bin |
| 35 | sbindir = $(prefix)/sbin |
| 36 | mandir = $(prefix)/man |
| 37 | man1dir = $(mandir)/man1 |
| 38 | man8dir = $(mandir)/man8 |
| 39 | libdir = $(prefix)/lib |
| 40 | perllibdir = $(libdir)/site_perl |
| 41 | |
| 42 | all: $(BUILDFILES) $(PROGS) $(LIBS) |
| 43 | |
| 44 | install: all |
| 45 | [ -d $(INST)$(libdir) ] || install -d $(INST)$(libdir) |
| 46 | install -m644 $(LIBS) $(INST)$(libdir) |
| 47 | [ -d $(INST)$(perllibdir) ] || install -d $(INST)$(perllibdir) |
| 48 | install -m644 $(PERLLIBS) $(INST)$(perllibdir) |
| 49 | [ -d $(INST)$(bindir) ] || install -d $(INST)$(bindir) |
| 50 | install -m775 $(BINPROGS) $(BINSCRIPTS) $(INST)$(bindir) |
| 51 | [ -d $(INST)$(sbindir) ] || install -d $(INST)$(sbindir) |
| 52 | install -m775 $(SBINPROGS) $(SBINSCRIPTS) $(INST)$(sbindir) |
| 53 | [ -d $(INST)$(man1dir) ] || install -d $(INST)$(man1dir) |
| 54 | install -m644 $(MAN1) $(INST)$(man1dir) |
| 55 | [ -d $(INST)$(man8dir) ] || install -d $(INST)$(man8dir) |
| 56 | install -m644 $(MAN8) $(INST)$(man8dir) |
| 57 | |
| 58 | uninstall: |
| 59 | for i in $(LIBS); do rm -f $(INST)$(libdir)/$$i; done |
| 60 | for i in $(PERLLIBS); do rm -f $(INST)$(perllibdir)/$$i; done |
| 61 | for i in $(BINPROGS) $(BINSCRIPTS); do \ |
| 62 | rm -f $(INST)$(bindir)/$$i; done |
| 63 | for i in $(SBINPROGS) $(SBINSCRIPTS); do \ |
| 64 | rm -f $(INST)$(sbindir)/$$i; done |
| 65 | for i in $(MAN1); do rm -f $(INST)$(man1dir)/$$i; done |
| 66 | for i in $(MAN8); do rm -f $(INST)$(man8dir)/$$i; done |
| 67 | |
| 68 | qmail-checkspam: qmail-checkspam.o |
| 69 | $(LINK) -lspamc |
| 70 | |
| 71 | cdb-probe: cdb-probe.o |
| 72 | $(LINK) -lfreecdb |
| 73 | |
| 74 | cdb-check-domain: cdb-check-domain.o |
| 75 | $(LINK) -lfreecdb |
| 76 | |
| 77 | not: not.o |
| 78 | $(LINK) |
| 79 | |
| 80 | xtitle.o: xtitle.c |
| 81 | $(CC) $(CFLAGS) -c -fpic -I/usr/include/bash -DBASH_BUILTIN -o $@ $^ |
| 82 | xtitle.so: xtitle.o |
| 83 | $(LINK) -shared |
| 84 | |
| 85 | gorp: gorp.o |
| 86 | $(LINK) -lcatacomb -lmLib |
| 87 | |
| 88 | locking: locking.o |
| 89 | $(LINK) -lmLib |
| 90 | |
| 91 | if-mtu: if-mtu.o |
| 92 | $(LINK) |
| 93 | |
| 94 | shadowfix.8: shadowfix |
| 95 | pod2man --section 8 shadowfix >shadowfix.8.new |
| 96 | mv shadowfix.8.new shadowfix.8 |
| 97 | |
| 98 | clean:; rm -f *.o *~ $(PROGS) $(OTHERS) |
| 99 | |
| 100 | DISTDIR = $(PACKAGE)-$(VERSION) |
| 101 | DISTFILES = \ |
| 102 | Makefile \ |
| 103 | $(SCRIPTS) $(DISTMAN1) $(DISTMAN8) $(SOURCES) $(PERLLIBS) \ |
| 104 | debian/changelog debian/control debian/copyright \ |
| 105 | debian/rules debian/inst |
| 106 | distdir: $(DISTFILES) |
| 107 | $(RM) -rf $(DISTDIR) |
| 108 | mkdir $(DISTDIR) $(DISTDIR)/debian |
| 109 | for i in $(DISTFILES); do \ |
| 110 | case $$i in \ |
| 111 | */*) \ |
| 112 | dir=$${i%/*}; \ |
| 113 | up=`echo $$dir | sed 's:[^/]\+:..:g'`; \ |
| 114 | mkdir -p $(DISTDIR)/$$dir;; \ |
| 115 | *) dir= up=;; \ |
| 116 | esac; \ |
| 117 | ln -s ../$$up/$$i $(DISTDIR)/$$i; \ |
| 118 | done |
| 119 | disttar: distdir |
| 120 | tar chofz $(INST)$(DISTDIR).tar.gz $(DISTDIR) |
| 121 | dist: disttar |
| 122 | $(RM) -rf $(DISTDIR) |
| 123 | distcheck: dist |
| 124 | @echo "*** Packing..." |
| 125 | $(MAKE) dist |
| 126 | @echo "*** Unpacking..." |
| 127 | tar xfz $(DISTDIR).tar.gz |
| 128 | @echo "*** Test building..." |
| 129 | set -e; \ |
| 130 | cd $(DISTDIR); \ |
| 131 | $(MAKE) clean; \ |
| 132 | $(MAKE); \ |
| 133 | $(MAKE) install INST=inst; \ |
| 134 | $(MAKE) dist |
| 135 | @echo "*** Tidying up..." |
| 136 | rm -rf $(DISTDIR) |
| 137 | @echo "*** All OK" |
| 138 | |
| 139 | .PHONY: all clean install dist distdir disttar |