1dnl $Id: Makefile.m4,v 8.143 2013-09-04 19:49:04 ca Exp $ 2include(confBUILDTOOLSDIR`/M4/switch.m4')
| 1# 2# This Makefile is designed to work on any reasonably current version of 3# "make" program. 4# 5# @(#)Makefile.m4 8.23 (Berkeley) 6/16/98 6#
|
3
| 7
|
4define(`confREQUIRE_LIBSM', `true') 5define(`confREQUIRE_SM_OS_H', `true') 6bldPRODUCT_START(`executable', `sendmail') 7define(`bldBIN_TYPE', `G') 8define(`bldINSTALL_DIR', `') 9define(`bldSOURCES', `main.c alias.c arpadate.c bf.c collect.c conf.c control.c convtime.c daemon.c deliver.c domain.c envelope.c err.c headers.c macro.c map.c mci.c milter.c mime.c parseaddr.c queue.c ratectrl.c readcf.c recipient.c sasl.c savemail.c sfsasl.c shmticklib.c sm_resolve.c srvrsmtp.c stab.c stats.c sysexits.c timers.c tls.c trace.c udb.c usersmtp.c util.c version.c ') 10PREPENDDEF(`confENVDEF', `confMAPDEF') 11bldPUSH_SMLIB(`sm') 12bldPUSH_SMLIB(`smutil')
| 8# C compiler 9CC= confCC
|
13
| 10
|
| 11# Shell 12SHELL= confSHELL
|
14
| 13
|
15dnl hack: /etc/mail is not defined as "location of .cf" in the build system 16define(`bldTARGET_INST_DEP', ifdef(`confINST_DEP', `confINST_DEP', 17`${DESTDIR}/etc/mail/submit.cf ${DESTDIR}${MSPQ}'))dnl 18define(`bldTARGET_LINKS', ifdef(`confLINKS', `confLINKS', 19`${DESTDIR}${UBINDIR}/newaliases ${DESTDIR}${UBINDIR}/mailq ${DESTDIR}${UBINDIR}/hoststat ${DESTDIR}${UBINDIR}/purgestat') 20)dnl
| 14# use O=-O (usual) or O=-g (debugging) 15O= ifdef(`confOPTIMIZE', `confOPTIMIZE', `-O')
|
21
| 16
|
22# location of sendmail statistics file (usually /etc/mail/ or /var/log) 23STDIR= ifdef(`confSTDIR', `confSTDIR', `/etc/mail')
| 17# location of sendmail source directory 18SRCDIR= .
|
24
| 19
|
25# statistics file name 26STFILE= ifdef(`confSTFILE', `confSTFILE', `statistics') 27MSPSTFILE=ifdef(`confMSP_STFILE', `confMSP_STFILE', `sm-client.st')
| 20# define the database mechanisms available for map & alias lookups: 21# -DNDBM -- use new DBM 22# -DNEWDB -- use new Berkeley DB 23# -DNIS -- include NIS support 24# The really old (V7) DBM library is no longer supported. 25# See README for a description of how these flags interact. 26# 27MAPDEF= ifdef(`confMAPDEF', `confMAPDEF')
|
28
| 28
|
29# full path to installed statistics file (usually ${STDIR}/statistics) 30STPATH= ${STDIR}/${STFILE}
| 29# environment definitions (e.g., -D_AIX3) 30ENVDEF= ifdef(`confENVDEF', `confENVDEF')
|
31
| 31
|
32# location of sendmail helpfile file (usually /etc/mail) 33HFDIR= ifdef(`confHFDIR', `confHFDIR', `/etc/mail')
| 32# see also conf.h for additional compilation flags
|
34
| 33
|
35# full path to installed help file (usually ${HFDIR}/helpfile) 36HFFILE= ${HFDIR}/ifdef(`confHFFILE', `confHFFILE', `helpfile')
| 34# include directories 35INCDIRS=confINCDIRS
|
37
| 36
|
38ifdef(`confSMSRCADD', `APPENDDEF(`confSRCADD', `confSMSRCADD')') 39ifdef(`confSMOBJADD', `APPENDDEF(`confOBJADD', `confSMOBJADD')')
| 37# loader options 38LDOPTS= ifdef(`confLDOPTS', `confLDOPTS')
|
40
| 39
|
41bldPUSH_TARGET(`statistics') 42divert(bldTARGETS_SECTION) 43statistics: 44 ${CP} /dev/null statistics
| 40# library directories 41LIBDIRS=confLIBDIRS
|
45
| 42
|
46${DESTDIR}/etc/mail/submit.cf: 47 @echo "Please read INSTALL if anything fails while installing the binary." 48 @echo "${DESTDIR}/etc/mail/submit.cf will be installed now." 49 cd ${SRCDIR}/cf/cf && make install-submit-cf
| 43# libraries required on your system 44# delete -l44bsd if you are not running BIND 4.9.x 45LIBS= ifdef(`confLIBS', `confLIBS')
|
50
| 46
|
51MSPQ=ifdef(`confMSP_QUEUE_DIR', `confMSP_QUEUE_DIR', `/var/spool/clientmqueue')
| 47# location of sendmail binary (usually /usr/sbin or /usr/lib) 48BINDIR= ${DESTDIR}ifdef(`confMBINDIR', `confMBINDIR', `/usr/sbin')
|
52
| 49
|
53${DESTDIR}${MSPQ}: 54 @echo "Please read INSTALL if anything fails while installing the binary." 55 @echo "You must have setup a new user ${MSPQOWN} and a new group ${GBINGRP}" 56 @echo "as explained in sendmail/SECURITY." 57 mkdir -p ${DESTDIR}${MSPQ} 58 chown ${MSPQOWN} ${DESTDIR}${MSPQ} 59 chgrp ${GBINGRP} ${DESTDIR}${MSPQ} 60 chmod 0770 ${DESTDIR}${MSPQ}
| 50# location of "user" binaries (usually /usr/bin or /usr/ucb) 51UBINDIR=${DESTDIR}ifdef(`confUBINDIR', `confUBINDIR', `/usr/bin')
|
61
| 52
|
62divert(0)
| 53# location of sendmail.st file (usually /var/log or /usr/lib) 54STDIR= ${DESTDIR}ifdef(`confSTDIR', `confSTDIR', `/var/log')
|
63
| 55
|
64ifdef(`confSETUSERID_INSTALL', `bldPUSH_INSTALL_TARGET(`install-set-user-id')') 65ifdef(`confMTA_INSTALL', `bldPUSH_INSTALL_TARGET(`install-sm-mta')') 66ifdef(`confNO_HELPFILE_INSTALL',, `bldPUSH_INSTALL_TARGET(`install-hf')') 67ifdef(`confNO_STATISTICS_INSTALL',, `bldPUSH_INSTALL_TARGET(`install-st')') 68divert(bldTARGETS_SECTION)
| 56# location of sendmail.hf file (usually /usr/share/misc or /usr/lib) 57HFDIR= ${DESTDIR}ifdef(`confHFDIR', `confHFDIR', `/usr/share/misc')
|
69
| 58
|
70install-set-user-id: bldCURRENT_PRODUCT ifdef(`confNO_HELPFILE_INSTALL',, `install-hf') ifdef(`confNO_STATISTICS_INSTALL',, `install-st') ifdef(`confNO_MAN_BUILD',, `install-docs') 71 ${INSTALL} -c -o ${S`'BINOWN} -g ${S`'BINGRP} -m ${S`'BINMODE} bldCURRENT_PRODUCT ${DESTDIR}${M`'BINDIR} 72 for i in ${sendmailTARGET_LINKS}; do \ 73 rm -f $$i; \ 74 ${LN} ${LNOPTS} ${M`'BINDIR}/sendmail $$i; \ 75 done
| 59# additional .o files needed 60OBJADD= ifdef(`confOBJADD', `confOBJADD') ifdef(`confSMOBJADD', `confSMOBJADD')
|
76
| 61
|
77define(`confMTA_LINKS', `${DESTDIR}${UBINDIR}/newaliases ${DESTDIR}${UBINDIR}/mailq ${DESTDIR}${UBINDIR}/hoststat ${DESTDIR}${UBINDIR}/purgestat') 78install-sm-mta: bldCURRENT_PRODUCT 79 ${INSTALL} -c -o ${M`'BINOWN} -g ${M`'BINGRP} -m ${M`'BINMODE} bldCURRENT_PRODUCT ${DESTDIR}${M`'BINDIR}/sm-mta 80 for i in confMTA_LINKS; do \ 81 rm -f $$i; \ 82 ${LN} ${LNOPTS} ${M`'BINDIR}/sm-mta $$i; \ 83 done
| 62undivert(1)
|
84
| 63
|
85install-hf: 86 if [ ! -d ${DESTDIR}${HFDIR} ]; then mkdir -p ${DESTDIR}${HFDIR}; else :; fi 87 ${INSTALL} -c -o ${UBINOWN} -g ${UBINGRP} -m 444 helpfile ${DESTDIR}${HFFILE}
| 64################### end of user configuration flags ######################
|
88
| 65
|
89install-st: statistics 90 if [ ! -d ${DESTDIR}${STDIR} ]; then mkdir -p ${DESTDIR}${STDIR}; else :; fi 91 ${INSTALL} -c -o ${SBINOWN} -g ${UBINGRP} -m ifdef(`confSTMODE', `confSTMODE', `0600') statistics ${DESTDIR}${STPATH}
| 66BUILDBIN=confBUILDBIN 67COPTS= -I. ${INCDIRS} ${MAPDEF} ${ENVDEF} 68CFLAGS= $O ${COPTS}
|
92
| 69
|
93install-submit-st: statistics ${DESTDIR}${MSPQ} 94 ${INSTALL} -c -o ${MSPQOWN} -g ${GBINGRP} -m ifdef(`confSTMODE', `confSTMODE', `0600') statistics ${DESTDIR}${MSPQ}/${MSPSTFILE}
| 70BEFORE= confBEFORE 71OBJS= alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \ 72 deliver.o domain.o envelope.o err.o headers.o macro.o main.o \ 73 map.o mci.o mime.o parseaddr.o queue.o readcf.o recipient.o \ 74 safefile.o savemail.o snprintf.o srvrsmtp.o stab.o stats.o \ 75 sysexits.o trace.o udb.o usersmtp.o util.o version.o ${OBJADD}
|
95
| 76
|
96divert(0) 97bldPRODUCT_END
| 77LINKS= ifdef(`confLINKS', `confLINKS', 78 `${UBINDIR}/newaliases \ 79 ${UBINDIR}/mailq \ 80 ${UBINDIR}/hoststat \ 81 ${UBINDIR}/purgestat')
|
98
| 82
|
99bldPRODUCT_START(`manpage', `sendmail') 100define(`bldSOURCES', `sendmail.8 aliases.5 mailq.1 newaliases.1') 101bldPRODUCT_END
| 83NROFF= ifdef(`confNROFF', `confNROFF', `groff -Tascii') 84MANDOC= ifdef(`confMANDOC', `confMANDOC', `-mandoc')
|
102
| 85
|
103bldFINISH
| 86INSTALL=ifdef(`confINSTALL', `confINSTALL', `install') 87BINOWN= ifdef(`confSBINOWN', `confSBINOWN', `root') 88BINGRP= ifdef(`confSBINGRP', `confSBINGRP', `kmem') 89BINMODE=ifdef(`confSBINMODE', `confSBINMODE', `4555') 90 91MANOWN= ifdef(`confMANOWN', `confMANOWN', `bin') 92MANGRP= ifdef(`confMANGRP', `confMANGRP', `bin') 93MANMODE=ifdef(`confMANMODE', `confMANMODE', `444') 94 95MANROOT=${DESTDIR}ifdef(`confMANROOT', `confMANROOT', `/usr/share/man/cat') 96MAN1= ${MANROOT}ifdef(`confMAN1', `confMAN1', `1') 97MAN1EXT=ifdef(`confMAN1EXT', `confMAN1EXT', `1') 98MAN1SRC=ifdef(`confMAN1SRC', `confMAN1SRC', `0') 99MAN5= ${MANROOT}ifdef(`confMAN5', `confMAN5', `5') 100MAN5EXT=ifdef(`confMAN5EXT', `confMAN5EXT', `5') 101MAN5SRC=ifdef(`confMAN5SRC', `confMAN5SRC', `0') 102MAN8= ${MANROOT}ifdef(`confMAN8', `confMAN8', `8') 103MAN8EXT=ifdef(`confMAN8EXT', `confMAN8EXT', `8') 104MAN8SRC=ifdef(`confMAN8SRC', `confMAN8SRC', `0') 105 106ALL= sendmail aliases.${MAN5SRC} mailq.${MAN1SRC} newaliases.${MAN1SRC} sendmail.${MAN8SRC} 107 108all: ${ALL} 109 110sendmail: ${BEFORE} ${OBJS} 111 ${CC} -o sendmail ${LDOPTS} ${LIBDIRS} ${OBJS} ${LIBS} 112 cp /dev/null sendmail.st 113 114undivert(3) 115 116aliases.${MAN5SRC}: aliases.5 117 ${NROFF} ${MANDOC} aliases.5 > aliases.${MAN5SRC} 118 119mailq.${MAN1SRC}: mailq.1 120 ${NROFF} ${MANDOC} mailq.1 > mailq.${MAN1SRC} 121 122newaliases.${MAN1SRC}: newaliases.1 123 ${NROFF} ${MANDOC} newaliases.1 > newaliases.${MAN1SRC} 124 125sendmail.${MAN8SRC}: sendmail.8 126 ${NROFF} ${MANDOC} sendmail.8 > sendmail.${MAN8SRC} 127 128install: install-sendmail install-docs 129 130install-sendmail: sendmail 131 ${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} sendmail ${BINDIR} 132 for i in ${LINKS}; do rm -f $$i; ln -s ${BINDIR}/sendmail $$i; done 133 ${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m 444 sendmail.hf ${HFDIR} 134 ${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m 644 sendmail.st \ 135 ${STDIR}/sendmail.st 136 137install-docs: aliases.${MAN5SRC} mailq.${MAN1SRC} newaliases.${MAN1SRC} sendmail.${MAN8SRC} 138ifdef(`confNO_MAN_INSTALL', `dnl', 139` ${INSTALL} -c -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} sendmail.${MAN8SRC} ${MAN8}/sendmail.${MAN8EXT} 140 ${INSTALL} -c -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} aliases.${MAN5SRC} ${MAN5}/aliases.${MAN5EXT} 141 ${INSTALL} -c -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} mailq.${MAN1SRC} ${MAN1}/mailq.${MAN1EXT} 142 ${INSTALL} -c -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} newaliases.${MAN1SRC} ${MAN1}/newaliases.${MAN1EXT}') 143 144clean: 145 rm -f ${OBJS} sendmail aliases.${MAN5SRC} mailq.${MAN1SRC} newaliases.${MAN1SRC} sendmail.${MAN8SRC} 146 147################ Dependency scripts 148include(confBUILDTOOLSDIR/M4/depend/ifdef(`confDEPEND_TYPE', `confDEPEND_TYPE', `generic').m4)dnl 149################ End of dependency scripts
|
| |