]> git.ipfire.org Git - people/ms/dma.git/blob - Makefile
Makefile: add symlink for mailq
[people/ms/dma.git] / Makefile
1 #
2 # Depending on your operating system, you might want to influence
3 # the conditional inclusion of some helper functions:
4 #
5 # Define HAVE_* (in caps) if your system already provides:
6 # reallocf
7 # strlcpy
8 # getprogname
9 #
10
11 version= $(shell sh get-version.sh)
12 debversion= $(shell sh get-version.sh | sed -Ee 's/^v//;s/[.]([[:digit:]]+)[.](g[[:xdigit:]]+)$$/+\1+\2/')
13
14 CC?= gcc
15 CFLAGS?= -O -pipe
16 LDADD?= -lssl -lcrypto -lresolv
17
18 CFLAGS+= -Wall -DDMA_VERSION='"${version}"' -DLIBEXEC_PATH='"${LIBEXEC}"'
19
20 INSTALL?= install -p
21 CHGRP?= chgrp
22 CHMOD?= chmod
23
24 PREFIX?= /usr/local
25 SBIN?= ${PREFIX}/sbin
26 LIBEXEC?= ${PREFIX}/lib
27 CONFDIR?= /etc
28 MAN?= ${PREFIX}/share/man
29 VAR?= /var
30 DMASPOOL?= ${VAR}/spool/dma
31 VARMAIL?= ${VAR}/mail
32 SYMLINK?= -s # or empty to create hard link
33
34 YACC?= yacc
35 LEX?= lex
36 LN?= ln
37
38 OBJS= aliases_parse.o aliases_scan.o base64.o conf.o crypto.o
39 OBJS+= dma.o dns.o local.o mail.o net.o spool.o util.o
40 OBJS+= dfcompat.o
41
42 all: dma dma-mbox-create
43
44 clean:
45 -rm -f .depend dma dma-mbox-create *.[do]
46 -rm -f aliases_parse.[ch] aliases_scan.c
47
48 install: all
49 ${INSTALL} -d ${DESTDIR}${SBIN} ${DESTDIR}${CONFDIR}
50 ${INSTALL} -d ${DESTDIR}${MAN}/man8 ${DESTDIR}${LIBEXEC}
51 ${INSTALL} -m 2755 -o root -g mail dma ${DESTDIR}${SBIN}
52 ${INSTALL} -m 4754 -o root -g mail dma-mbox-create ${DESTDIR}${LIBEXEC}
53 ${INSTALL} -m 0644 dma.8 ${DESTDIR}${MAN}/man8/
54
55 sendmail-link:
56 cd ${DESTDIR}${SBIN} && ${LN} ${SYMLINK} dma sendmail
57
58 mailq-link:
59 cd ${DESTDIR}${SBIN} && ${LN} ${SYMLINK} dma mailq
60
61 install-spool-dirs:
62 ${INSTALL} -d -m 2775 -o root -g mail ${DESTDIR}${DMASPOOL}
63 ${INSTALL} -d -m 2775 -o root -g mail ${DESTDIR}${VARMAIL}
64
65 permissions:
66 -${CHGRP} mail ${DESTDIR}${VARMAIL}/*
67 -${CHMOD} g+w ${DESTDIR}${VARMAIL}/*
68
69 aliases_parse.c: aliases_parse.y
70 ${YACC} -d -o aliases_parse.c aliases_parse.y
71
72 aliases_scan.c: aliases_scan.l
73 ${LEX} -t aliases_scan.l > aliases_scan.c
74
75 .SUFFIXES: .c .o
76
77 .c.o:
78 ${CC} ${CFLAGS} ${CPPFLAGS} -include dfcompat.h -o $@ -c $<
79
80 dma: ${OBJS}
81 ${CC} ${LDFLAGS} -o $@ ${OBJS} ${LDADD}
82
83
84 dch:
85 dch --release-heuristic changelog -v ${debversion}
86
87
88 ppa:
89 @if [ -z '${DEB_DIST}' ]; then echo "please set DEB_DIST to build"; exit 1; fi
90 dch -v "${debversion}~${DEB_DIST}" -D ${DEB_DIST} "${DEB_DIST} build" -b
91 debuild -S -sa
92 ver=$$(dpkg-parsechangelog -n1 | awk '$$1 == "Version:" { print $$2 }'); \
93 dput ppa:corecode/dma ../dma_$${ver}_source.changes