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