8d769cc9 |
1 | ## Makefile for miscellaneous stuff |
2 | ## |
3 | ## No proper build system here. Just kludgy hacks. |
4 | |
b5284e05 |
5 | PACKAGE = nsict-utils |
f342fce2 |
6 | VERSION = 1.1.0 |
7 | |
b5284e05 |
8 | BINSCRIPTS = cdb-assign cdb-list check-sender unfwd splitconf z |
9 | SBINSCRIPTS = shadowfix |
e063712b |
10 | SCRIPTS = $(BINSCRIPTS) $(SBINSCRIPTS) |
b5284e05 |
11 | BINPROGS = not cdb-probe cdb-check-domain gorp locking if-mtu |
12 | SBINPROGS = qmail-checkspam |
e063712b |
13 | PROGS = $(BINPROGS) $(SBINPROGS) |
e063712b |
14 | PERLLIBS = MdwOpt.pm |
b5284e05 |
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 |
f342fce2 |
26 | |
8d769cc9 |
27 | CC = gcc |
28 | LD = gcc |
f342fce2 |
29 | CFLAGS = -O2 -g -pedantic -Wall -DVERSION=\"$(VERSION)\" |
8d769cc9 |
30 | LINK = $(LD) $(LDFLAGS) -o $@ $^ |
31 | |
b5284e05 |
32 | INST = |
f342fce2 |
33 | prefix = /usr/local |
34 | bindir = $(prefix)/bin |
e063712b |
35 | sbindir = $(prefix)/sbin |
f342fce2 |
36 | mandir = $(prefix)/man |
37 | man1dir = $(mandir)/man1 |
38 | man8dir = $(mandir)/man8 |
39 | libdir = $(prefix)/lib |
e063712b |
40 | perllibdir = $(libdir)/site_perl |
f342fce2 |
41 | |
de6fc7a9 |
42 | all: $(BUILDFILES) $(PROGS) $(LIBS) |
f342fce2 |
43 | |
44 | install: all |
b5284e05 |
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 |
de41f398 |
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 |
b5284e05 |
65 | for i in $(MAN1); do rm -f $(INST)$(man1dir)/$$i; done |
66 | for i in $(MAN8); do rm -f $(INST)$(man8dir)/$$i; done |
8d769cc9 |
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 | |
f342fce2 |
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 | |
e063712b |
94 | shadowfix.8: shadowfix |
de6fc7a9 |
95 | pod2man --section 8 shadowfix >shadowfix.8.new |
e063712b |
96 | mv shadowfix.8.new shadowfix.8 |
97 | |
f342fce2 |
98 | clean:; rm -f *.o *~ $(PROGS) $(OTHERS) |
8d769cc9 |
99 | |
b5284e05 |
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 |