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