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