freebsd-dev/etc/sendmail/Makefile
Gregory Neil Shapiro f88f925efc If the user sets SENDMAIL_MC to /etc/mail/sendmail.mc, install is told to
install /etc/mail/sendmail.cf to /etc/mail/sendmail.cf and exits with an
error:

===> etc/sendmail
install -c -o root -g wheel -m 644 /etc/mail/sendmail.cf /etc/mail/sendmail.cf
install: /etc/mail/sendmail.cf and /etc/mail/sendmail.cf are the same file
*** Error code 64

Catch this in the Makefile and don't call install if the source and target
are the same file.

Reported by:	Alexandr Listopad <laa@reis.zp.ua>
MFC after:	1 week
2001-07-23 02:19:02 +00:00

93 lines
2.3 KiB
Makefile

# @(#)Makefile 8.19 (Berkeley) 1/14/97
# $FreeBSD$
M4= m4
CHMOD= chmod
ROMODE= 444
RM= rm -f
SENDMAIL_DIR= ${.CURDIR}/../../contrib/sendmail
SMDIR= ${SENDMAIL_DIR}/src
CFDIR= ${SENDMAIL_DIR}/cf
SENDMAIL_M4_FLAGS+= -D_FFR_TLS_O_T
# this is overkill, but....
M4FILES!= find ${CFDIR} -type f -name '*.m4' -print
.SUFFIXES: .mc .cf
.mc.cf: ${M4FILES}
${RM} ${.TARGET}
(cd ${.CURDIR} && \
${M4} -D_CF_DIR_=${CFDIR}/ ${SENDMAIL_M4_FLAGS} \
${CFDIR}/m4/cf.m4 ${@:R}.mc) > ${.TARGET}
${CHMOD} ${ROMODE} ${.TARGET}
ALL= freebsd.cf
# Local SENDMAIL_MC or SENDMAIL_CF may be set in /etc/make.conf.
# Warning! If set, this causes 'make install' to always copy it
# over /etc/mail/sendmail.cf!!!
# Caveat emptor! Be sure you want this before you enable it.
.if defined(SENDMAIL_MC)
INSTALL_CF= ${SENDMAIL_MC:R}.cf
.else
.if defined(SENDMAIL_CF)
INSTALL_CF= ${SENDMAIL_CF}
.endif
.endif
DEST_CF= ${DESTDIR}/etc/mail/sendmail.cf
ALL+= ${INSTALL_CF}
# Additional .cf files to build
.if defined(SENDMAIL_ADDITIONAL_MC)
ALL+= ${SENDMAIL_ADDITIONAL_MC:S/.mc$/.cf/g}
.endif
CLEANFILES+= ${ALL}
all: ${ALL}
depend:
install: ${INSTALL_CF}
.if (defined(SENDMAIL_MC) && defined(SENDMAIL_CF))
@echo ">>> ERROR: Both SENDMAIL_CF and SENDMAIL_MC can not be set"
@false
.endif
.if defined(INSTALL_CF)
.if ${INSTALL_CF} != ${DEST_CF}
${INSTALL} ${COPY} -o ${BINOWN} -g ${BINGRP} -m 644 ${INSTALL_CF} \
${DEST_CF}
.endif
.endif
# Helper for src/etc/Makefile
distribution: freebsd.cf freebsd.mc ${INSTALL_CF}
.if (defined(SENDMAIL_MC) && defined(SENDMAIL_CF))
@echo ">>> ERROR: Both SENDMAIL_CF and SENDMAIL_MC can not be set"
@false
.endif
${INSTALL} ${COPY} -o ${BINOWN} -g ${BINGRP} -m 644 ${.CURDIR}/freebsd.mc \
${DESTDIR}/etc/mail/freebsd.mc
${INSTALL} ${COPY} -o ${BINOWN} -g ${BINGRP} -m 644 freebsd.cf \
${DESTDIR}/etc/mail/freebsd.cf
.if defined(INSTALL_CF)
.if ${INSTALL_CF} != ${DEST_CF}
${INSTALL} ${COPY} -o ${BINOWN} -g ${BINGRP} -m 644 ${INSTALL_CF} \
${DEST_CF}
.endif
.else
${INSTALL} ${COPY} -o ${BINOWN} -g ${BINGRP} -m 644 freebsd.cf \
${DEST_CF}
.endif
${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m 444 ${SMDIR}/helpfile \
${DESTDIR}/etc/mail/helpfile
${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m 644 /dev/null \
${DESTDIR}/var/log/sendmail.st
.include <bsd.prog.mk>