#!/usr/bin/make -f # see FEATURE AREAS in dpkg-buildflags(1) export DEB_BUILD_MAINT_OPTIONS = hardening=+all DPKG_EXPORT_BUILDFLAGS = yes include /usr/share/dpkg/buildflags.mk include /usr/share/dpkg/pkg-info.mk DEB_SOURCE_PACKAGE ?= sendmail DEB_SRCDIR ?= . DEB_DESTDIR ?= $(CURDIR)/debian/tmp/ CFLAGS += -fPIC LDFLAGS += -Wl,-z,noexecstack -Wl,--warn-shared-textrel version_debian ?= -$(lastword $(subst -, ,${DEB_VERSION})) SRC_DIR := $(CURDIR)/debian PKG_DIR := debian/${DEB_SOURCE_PACKAGE}-bin PKG_DOC = debian/${DEB_SOURCE_PACKAGE}-doc${docdir}/${DEB_SOURCE_PACKAGE}-doc SM_SUBDIRS := editmap libmilter mail.local mailstats \ makemap praliases rmail sendmail smrsh vacation PKG_TMP = debian/tmp # this is a "magic" value since it matches "obj${prefix}.${sfx}" if it exists # and will be used by the sendmail Build script SM_OBJDIR ?= obj. # Now that all that is out of the way, read the desired configuration # settings CONF_NAME = debian/configure.options $(eval CONFIG_OPTS := $(shell grep -v "^\#" ${CONF_NAME})) CONFIG_OPTS += ${SM_CONF_OPT} # Include Debian Autoconf settings include $(firstword $(wildcard debian/build/autoconf.mk \ debian/build/autoconf.mk.in)) #------------- # Maintainer only rule... refresh debian/configure, debian/*/Makefile.in, and debian/control AUTOMAKEARGS ?= --force AUTOMAKEARGS ?= --force --force-missing --add-missing --copy refresh-debian-configure: # regenerate cd debian && aclocal -I ./build cd debian && autoconf cd debian && automake $(AUTOMAKEARGS) # regenerate more, run twice in case debian/control gets updated debian/rules configure || debian/rules configure # cleanup fakeroot debian/rules clean $(RM) debian/aclocal.m4 #------------- # Maintainer only rule... must be run in external debian directory .PHONY: refresh-faq refresh-faq:: @echo 'Refreshing FAQ' @chmod u+w faq.txt; (wget --passive-ftp --timestamping \ --cache=off http://www.sendmail.org/faq/faq.txt;); @chmod a-w faq.txt; @echo 'Refreshing Misc' @chmod u+w cf/feature/rhsbl.m4; (cd cf/feature && wget --passive-ftp --timestamping \ --cache=off http://www.megacity.org/software_downloads/rhsbl.m4;); @chmod u-w cf/feature/rhsbl.m4; #------------------------------------------------------------------------------ # Build/Package check rules #------------------------------------------------------------------------------ #------------- .PHONY: info info: #-------------------------------------------------------------------- # The following information will be used for this run: # Source = ${DEB_SOURCE_PACKAGE} # Package = ${DEB_SOURCE_PACKAGE} ${DEB_VERSION} # ${version_string}${sm_custom_s}${version_debian} # BuildTree = ${DEB_SRCDIR} # Arch = ${DEB_BUILD_ARCH} on ${DEB_HOST_ARCH} # Options # configure = ${CONFIG_OPTS} # config opt = ${SM_CONF_OPT} # ENABLE_INDEP= ${ENABLE_INDEP} # ENABLE_ARCH = ${ENABLE_ARCH} # ENABLE_DEV = ${ENABLE_DEV} # ENABLE_DOC = ${ENABLE_DOC} # compile opt = ${CC} ${CFLAGS} ${DEFINES} # DEB_BUILD_OPTIONS = ${DEB_BUILD_OPTIONS} # DH_VERBOSE = ${DH_VERBOSE} # DH_OPTIONS = ${DH_OPTIONS} # DH_COMPAT = ${DH_COMPAT} #-------------------------------------------------------------------- #------------------------------------------------------------------------------ # User callable rules #------------------------------------------------------------------------------ %: dh $@ override_dh_auto_clean: $(RM) ${DEB_SRCDIR}/doc/op/op.txt dh_auto_clean -D debian $(RM) -r $(SM_OBJDIR) configure: override_dh_auto_configure ; override_dh_auto_configure: mkdir -p $(SM_OBJDIR) dh_auto_configure -D debian -- $(CONFIG_OPTS) override_dh_auto_build-indep: #-------------------------------------------------------------------- # build-indep: # # sendmail operations guide GROFF_NO_SGR=1 $(MAKE) -C ${DEB_SRCDIR}/doc/op/ op.txt # Debian stuff $(MAKE) -C debian -f Makefile build-indep #-------------------------------------------------------------------- override_dh_auto_install-indep: #-------------------------------------------------------------------- # install-indep # # sendmail operations guide and other documentation ${INSTALL} -d ${PKG_DOC}/op $(INSTALL_DATA) ${DEB_SRCDIR}/doc/op/op.ps ${PKG_DOC}/op/ $(INSTALL_DATA) ${DEB_SRCDIR}/doc/op/op.txt ${PKG_DOC}/op/ $(INSTALL_DATA) ${DEB_SRCDIR}/README ${PKG_DOC}/ $(INSTALL_DATA) ${DEB_SRCDIR}/KNOWNBUGS ${PKG_DOC}/ $(INSTALL_DATA) ${DEB_SRCDIR}/cf/README ${PKG_DOC}/cf.README ${INSTALL} -d ${PKG_DOC}/sendmail $(INSTALL_DATA) ${DEB_SRCDIR}/sendmail/README ${PKG_DOC}/sendmail/ $(INSTALL_DATA) ${DEB_SRCDIR}/sendmail/SECURITY ${PKG_DOC}/sendmail/ $(INSTALL_DATA) ${DEB_SRCDIR}/sendmail/TRACEFLAGS ${PKG_DOC}/sendmail/ $(INSTALL_DATA) ${DEB_SRCDIR}/sendmail/TUNING ${PKG_DOC}/sendmail/ $(INSTALL_DATA) ${DEB_SRCDIR}/smrsh/README ${PKG_DOC}/smrsh.README $(INSTALL_DATA) debian/faq.txt ${PKG_DOC}/ ${INSTALL} -d ${PKG_DOC}/libmilter/html $(INSTALL_DATA) ${DEB_SRCDIR}/libmilter/README ${PKG_DOC}/libmilter/ cp -a ${DEB_SRCDIR}/libmilter/docs/* ${PKG_DOC}/libmilter/html/ # Debian stuff $(MAKE) -C debian/cf -f Makefile install-indep DESTDIR="${SRC_DIR}/sendmail-cf" $(MAKE) -C debian/examples -f Makefile install-indep DESTDIR="${SRC_DIR}/sendmail-base" $(MAKE) -C debian/local -f Makefile install-indep DESTDIR="${SRC_DIR}/sendmail-base" #-------------------------------------------------------------------- override_dh_auto_build-arch: #-------------------------------------------------------------------- # build-arch # # Place our m4 configuration files for the sendmail build to use cp -f debian/build/site.config.m4 ${DEB_SRCDIR}/devtools/Site/ # Finally, build the whole enchilada (we'll let sendmail figure # which, if any of the dependant libraries each component needs) set -e ; \ set -x ; \ for subdir in ${SM_SUBDIRS}; do \ if [ -d ${DEB_SRCDIR}/$${subdir} ]; then \ (cd ${DEB_SRCDIR}/$${subdir} && ./Build -S;); \ fi; \ done; # Debian stuff $(MAKE) -C debian -f Makefile build-arch # Remove our config m4 files $(RM) ${DEB_SRCDIR}/devtools/Site/site.config.m4 #-------------------------------------------------------------------- override_dh_auto_install-arch: #-------------------------------------------------------------------- # install-arch # # sendmail install proper... with a little help ;-} $(MAKE) -C ${DEB_SRCDIR} install DESTDIR="$(DEB_DESTDIR)" $(MAKE) -C ${DEB_SRCDIR}/libmilter install DESTDIR="$(DEB_DESTDIR)" $(MAKE) -C ${DEB_SRCDIR}/mail.local force-install DESTDIR="$(DEB_DESTDIR)" # Debian stuff $(MAKE) -C debian/sensible_mda install-arch DESTDIR="$(DEB_DESTDIR)" # Handle man pages for the sendmail aliases mv ${PKG_TMP}${mandir}/man5/aliases.5 \ ${PKG_TMP}${mandir}/man5/aliases.sendmail.5 mv ${PKG_TMP}${mandir}/man1/mailq.1 \ ${PKG_TMP}${mandir}/man1/mailq.sendmail.1 mv ${PKG_TMP}${mandir}/man1/newaliases.1 \ ${PKG_TMP}${mandir}/man8/newaliases.sendmail.8 mv ${PKG_TMP}${mandir}/man8/sendmail.8 \ ${PKG_TMP}${mandir}/man8/sendmail.sendmail.8 # Special handling of vacation - Debian has a seperate package # with a different version (sigh) keep our copy just in case... mv ${PKG_TMP}${libexecdir}/vacation \ ${PKG_TMP}${libexecdir}/vacation.sendmail mv ${PKG_TMP}${mandir}/man1/vacation.1 \ ${PKG_TMP}${mandir}/man1/vacation.sendmail.1 #-------------------------------------------------------------------- override_dh_installdocs-indep: dh_installdocs -p${DEB_SOURCE_PACKAGE}-doc --doc-main-package=${DEB_SOURCE_PACKAGE}-doc -A $(DEB_SRCDIR)/README dh_installdocs -N${DEB_SOURCE_PACKAGE}-doc -A $(DEB_SRCDIR)/README override_dh_installdocs-arch: dh_installdocs -A $(DEB_SRCDIR)/README override_dh_installchangelogs: dh_installchangelogs $(DEB_SRCDIR)/RELEASE_NOTES override_dh_installcron: dh_installcron --name=$(DEB_SOURCE_PACKAGE) override_dh_installinit: dh_installinit --name=$(DEB_SOURCE_PACKAGE) override_dh_bugfiles: dh_bugfiles -A override_dh_fixperms-arch: dh_fixperms chown root:mail ${PKG_DIR}${libexecdir}/sendmail; chmod 02755 ${PKG_DIR}${libexecdir}/sendmail; chown root:mail ${PKG_DIR}${libexecdir}/mailstats; chmod 02755 ${PKG_DIR}${libexecdir}/mailstats; chmod 04755 debian/sensible-mda/usr/sbin/sensible-mda;