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 11SH?= sh 12 13version= $(shell ${SH} get-version.sh) 14debversion= $(shell ${SH} get-version.sh | sed -Ee 's/^v//;s/[.]([[:digit:]]+)[.](g[[:xdigit:]]+)$$/+\1+\2/') 15 16CC?= gcc 17CFLAGS?= -O -pipe 18LDADD?= -lssl -lcrypto -lresolv 19 20CFLAGS+= -Wall -Wno-format-truncation -DDMA_VERSION='"${version}"' -DLIBEXEC_PATH='"${LIBEXEC}"' -DCONF_PATH='"${CONFDIR}"' 21 22INSTALL?= install -p 23CHGRP?= chgrp 24CHMOD?= chmod 25 26PREFIX?= /usr/local 27SBIN?= ${PREFIX}/sbin 28LIBEXEC?= ${PREFIX}/lib 29CONFDIR?= /etc/dma 30MAN?= ${PREFIX}/share/man 31VAR?= /var 32DMASPOOL?= ${VAR}/spool/dma 33VARMAIL?= ${VAR}/mail 34SYMLINK?= -s # or empty to create hard link 35 36YACC?= yacc 37LEX?= lex 38LN?= ln 39 40OBJS= aliases_parse.o aliases_scan.o base64.o conf.o crypto.o 41OBJS+= dma.o dns.o local.o mail.o net.o spool.o util.o 42OBJS+= dfcompat.o 43 44all: dma dma-mbox-create 45 46clean: 47 -rm -f .depend dma dma-mbox-create *.[do] 48 -rm -f aliases_parse.[ch] aliases_scan.c 49 50install: all 51 ${INSTALL} -d ${DESTDIR}${SBIN} 52 ${INSTALL} -d ${DESTDIR}${MAN}/man8 ${DESTDIR}${LIBEXEC} 53 ${INSTALL} -m 2755 -o root -g mail dma ${DESTDIR}${SBIN} 54 ${INSTALL} -m 4754 -o root -g mail dma-mbox-create ${DESTDIR}${LIBEXEC} 55 ${INSTALL} -m 0644 dma.8 ${DESTDIR}${MAN}/man8/ 56 57sendmail-link: 58 cd ${DESTDIR}${SBIN} && ${LN} ${SYMLINK} dma sendmail 59 60mailq-link: 61 cd ${DESTDIR}${SBIN} && ${LN} ${SYMLINK} dma mailq 62 63install-spool-dirs: 64 ${INSTALL} -d -m 2775 -o root -g mail ${DESTDIR}${DMASPOOL} 65 ${INSTALL} -d -m 2775 -o root -g mail ${DESTDIR}${VARMAIL} 66 67permissions: 68 -${CHGRP} mail ${DESTDIR}${VARMAIL}/* 69 -${CHMOD} g+w ${DESTDIR}${VARMAIL}/* 70 -${CHMOD} 660 ${DESTDIR}${DMASPOOL}/flush 71 72install-etc: 73 ${INSTALL} -d ${DESTDIR}${CONFDIR} 74 @if [ -e ${DESTDIR}${CONFDIR}/dma.conf ]; then \ 75 echo "Not overwriting ${DESTDIR}${CONFDIR}/dma.conf."; \ 76 else \ 77 echo ${INSTALL} -m 644 -o root -g mail dma.conf ${DESTDIR}${CONFDIR}; \ 78 ${INSTALL} -m 644 -o root -g mail dma.conf ${DESTDIR}${CONFDIR}; \ 79 fi 80 @if [ -e ${DESTDIR}${CONFDIR}/auth.conf ]; then \ 81 echo "Not overwriting ${DESTDIR}${CONFDIR}/auth.conf."; \ 82 else \ 83 echo ${INSTALL} -m 640 -o root -g mail auth.conf ${DESTDIR}${CONFDIR}; \ 84 ${INSTALL} -m 640 -o root -g mail auth.conf ${DESTDIR}${CONFDIR}; \ 85 fi 86 87aliases_parse.c: aliases_parse.y 88 ${YACC} -d -o aliases_parse.c aliases_parse.y 89 90aliases_scan.c: aliases_scan.l 91 ${LEX} -t aliases_scan.l > aliases_scan.c 92 93.SUFFIXES: .c .o 94 95.c.o: 96 ${CC} ${CFLAGS} ${CPPFLAGS} -include dfcompat.h -o $@ -c $< 97 98dma: ${OBJS} 99 ${CC} ${LDFLAGS} -o $@ ${OBJS} ${LDADD} 100 101 102dch: 103 dch --release-heuristic changelog -v ${debversion} 104 105 106ppa: 107 @if [ -z '${DEB_DIST}' ]; then echo "please set DEB_DIST to build"; exit 1; fi 108 dch -v "${debversion}~${DEB_DIST}" -D ${DEB_DIST} "${DEB_DIST} build" -b 109 debuild -S -sa 110 ver=$$(dpkg-parsechangelog -n1 | awk '$$1 == "Version:" { print $$2 }'); \ 111 dput ppa:corecode/dma ../dma_$${ver}_source.changes 112