#!/usr/bin/make -f

# -*- makefile -*-
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
export DEB_CFLAGS_MAINT_APPEND = "-fno-lto"
export DEB_LDFLAGS_MAINT_APPEND = "-fno-lto"

# This is the debhelper compatibility version to use.
# export DH_COMPAT=4
DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/buildflags.mk

prefix=/usr
qmaildir=/var/indimail
sysconfdir=/etc
qsysconfdir=/etc/indimail
shareddir=/usr/share/indimail
libexecdir=/usr/libexec/indimail
servicedir=/service
mandir=/usr/share/man

version=3.1
tcpserver_plugin=1
notlsarr=0
# check https://wiki.debian.org/Multiarch/Implementation#Dynamic_debian.2F.2A_files
libd=$(shell if [ -d $(prefix)/lib/$(arch)-linux-gnu ] ; then echo lib/$(arch)-linux-gnu; else echo lib;fi)
cp=/bin/cp
rm=/bin/rm

DESTDIR=$(CURDIR)/debian/indimail-mta.tmp

build: build-stamp
build-stamp:
	dh_testdir
	#
	# configure
	#
	if [ $(tcpserver_plugin) -eq 1 ] ; then \
		echo "-DLOAD_SHARED_OBJECTS" > conf-dlopen; \
	else \
		/bin/rm -f conf-dlopen; \
	fi
	if [ $(notlsarr) -eq 0 ] ; then \
		echo "-DHASTLSA" > conf-tlsa; \
	else \
		/bin/rm -f conf-tlsa; \
	fi
	#
	# run make
	#
	sed 's{PREFIX{${prefix}{'          conf-prefix.in     > conf-prefix
	sed 's{QMAIL{${qmaildir}{'         conf-qmail.in      > conf-qmail
	sed 's{SYSCONFDIR{${qsysconfdir}{' conf-sysconfdir.in > conf-sysconfdir
	sed 's{SHAREDDIR{${shareddir}{'    conf-shared.in     > conf-shared
	sed 's{LIBEXECDIR{${libexecdir}{'  conf-libexec.in    > conf-libexec
	sed 's{SERVICEDIR{${servicedir}{'  conf-servicedir.in > conf-servicedir
	sed -i 's/-Wformat.*//g' conf-cc-LINUX
	$(MAKE) CFLAGS="$(dpkg-buildflags --get CFLAGS) ${CFLAGS}" LDFLAGS="$(dpkg-buildflags --get LDFLAGS) ${LDFLAGS}"  SYSTEM=LINUX -s DESTDIR=$(DESTDIR)
	touch build-stamp

clean:
	rm -f build-stamp configure-stamp
	${rm} -rf $(DESTDIR)
	FAKED_MODE=1;export FAKED_MODE
	$(MAKE) SYSTEM=LINUX -s clean||true
	unset FAKED_MODE
	dh_testdir
	dh_testroot
	dh_clean

install: build
	dh_testdir
	dh_testroot
	dh_prep || dh_clean -k
	dh_installdirs
	FAKED_MODE=1;export FAKED_MODE
	$(MAKE) SYSTEM=LINUX -s install DESTDIR=$(DESTDIR)
	if [ -f indimail-mta.perms ] ; then \
		mkdir -p $(DESTDIR)$(qsysconfdir); \
		install -m 0644 indimail-mta.perms "$(DESTDIR)$(qsysconfdir)"/indimail-mta.perms; \
	fi
	unset FAKED_MODE
	mkdir -p $(DESTDIR)$(qsysconfdir)/control/defaultqueue
	mkdir -p $(DESTDIR)$(qsysconfdir)/control/global_vars
	head -1 conf-split > $(DESTDIR)/$(qsysconfdir)/control/global_vars/CONFSPLIT
	${rm} -rf $(DESTDIR)$(mandir)/man3
	if [ ! -d $(DESTDIR)$(sysconfdir)/apparmor.d/local ] ; then \
		mkdir -p $(DESTDIR)$(sysconfdir)/apparmor.d/local; \
	fi
	if [ -f ../SOURCES/usr.sbin.clamd ] ; then \
		${cp} ../SOURCES/usr.sbin.clamd $(DESTDIR)$(sysconfdir)/apparmor.d/local; \
	fi
	if [ -f ../SOURCES/usr.bin.freshclam ] ; then \
		${cp} ../SOURCES/usr.bin.freshclam $(DESTDIR)$(sysconfdir)/apparmor.d/local; \
	fi
	if [ -f ../BUILD/debian/usr.sbin.clamd ] ; then \
		${cp} ../BUILD/debian/usr.sbin.clamd $(DESTDIR)$(sysconfdir)/apparmor.d/local; \
	fi
	if [ -f ../BUILD/debian/usr.bin.freshclam ] ; then \
		${cp} ../BUILD/debian/usr.bin.freshclam $(DESTDIR)$(sysconfdir)/apparmor.d/local; \
	fi
	# for indimail-mini we require an empty control directory
	# so we create a directory and use that in indimail-mini.install
	# and qmta.install
	mkdir -p $(DESTDIR)/etc-mini/indimail/control/defaultqueue
	mkdir -p $(DESTDIR)/etc-qmta/indimail/control/defaultqueue
	mkdir -p $(DESTDIR)/etc-qmta/indimail/control/global_vars
	echo "${prefix}/sbin/qmail-qmqpc" > $(DESTDIR)/etc-mini/indimail/control/defaultqueue/QMAILQUEUE
	echo "${prefix}/sbin/qmail-queue" > $(DESTDIR)/etc-qmta/indimail/control/defaultqueue/QMAILQUEUE
	echo "${qmaildir}/queue/qmta"     > $(DESTDIR)/etc-qmta/indimail/control/defaultqueue/QUEUEDIR
	head -1 conf-split > $(DESTDIR)/etc-qmta/indimail/control/global_vars/CONFSPLIT
	if [ -f indimail-mta.perms ] ; then \
		install -m 0644 indimail-mta.perms  $(DESTDIR)/etc-mini/indimail/indimail-mini.perms; \
		install -m 0644 indimail-mta.perms  $(DESTDIR)/etc-qmta/indimail/qmta.perms; \
	fi
	if [ -f qupgrade ] ; then \
		mkdir -p $(DESTDIR)$(libexecdir); \
		install -m 0755 qupgrade "$(DESTDIR)$(libexecdir)"/qupgrade; \
	fi
	if [ -f qlocal_upgrade ] ; then \
		mkdir -p $(DESTDIR)$(libexecdir); \
		install -m 0755 qlocal_upgrade "$(DESTDIR)$(libexecdir)"/qlocal_upgrade; \
	fi

binary-indep: build install
	dh_testdir
	dh_testroot
	find $(DESTDIR)$(mandir) -name '*'.? -type f -exec gzip -q {} \;
	sed -i -e 's,@libd\@,$(libd),g' debian/indimail-mta.install
	sed -i -e 's,@libd\@,$(libd),g' debian/indimail-mini.install
	sed -i -e 's,@libd\@,$(libd),g' debian/qmta.install
	chmod 755 $(DESTDIR)${prefix}/sbin/qhpsi $(DESTDIR)${prefix}/sbin/run-cleanq $(DESTDIR)${prefix}/sbin/qmail-queue \
		$(DESTDIR)${prefix}/sbin/qscanq $(DESTDIR)${prefix}/sbin/sys-checkpwd $(DESTDIR)${prefix}/sbin/qmail-dkim
	dh_install --sourcedir=$(DESTDIR) -pindimail-mta
	dh_install --sourcedir=$(DESTDIR) -pindimail-mini
	dh_install --sourcedir=$(DESTDIR) -pqmta
	dh_installchangelogs
	dh_installcron
	dh_installdocs
	dh_link
	dh_strip
	dh_compress
	dh_fixperms
	dh_installdeb
	dh_makeshlibs -V
	dh_shlibdeps
	dh_gencontrol
	dh_md5sums
	dh_builddeb

# Build architecture-dependent files here. 
binary-arch: build install

binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install configure
