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