#!/usr/bin/make -f

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1

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

prefix=/usr
sysconfdir=/etc/indimail
libexecdir=/usr/libexec/indimail
mandir=/usr/share/man
version=1.0.1
release=1.1
nssd_version=1.4.0
pam_multi_version=1.3.0
pam_moduledir=/lib/security
pam_confdir=/etc/pam.d
default_domain=indimail.org
arch=$(shell uname -m)
# 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)
libdir=/usr/lib
rm=/bin/rm
cp=/bin/cp

DESTDIR=$(CURDIR)/debian/tmp


build: build-stamp
build-stamp:
	dh_testdir
	#
	# Extract source archives
	#
	if [ -f ../BUILD/debian/obs_deb_prep ] ; then sh ../BUILD/debian/obs_deb_prep; fi
	#
	# run configure script
	#
	if [ -d nssd-$(nssd_version) ] ; then \
		if [ -d /run ] ; then \
			nssd_sock=/run/indimail/pwdlookup/nssd.sock; \
		elif [ -d /var/run ] ; then \
			nssd_sock=/var/run/indimail/pwdlookup/nssd.sock; \
		else \
			nssd_sock=/tmp/pwdlookup/nssd.sock; \
		fi; \
		cd nssd-$(nssd_version) ; \
		./configure $(shell dpkg-buildflags --export=cmdline) \
			--prefix=$(prefix) --sysconfdir=$(sysconfdir) --libdir=$(prefix)/$(libd) \
			--libexecdir=$(libexecdir) --enable-nssd-socket=$$nssd_sock \
			--datarootdir=$(prefix)/share/indimail \
			--enable-nssd-config-path=$(sysconfdir)/nssd.conf \
			--mandir=$(mandir) --enable-mysqlprefix=/usr \
			--enable-dlload-mysql=yes --enable-default-domain=$(default_domain); \
		cd ..; \
	fi
	if [ -d pam-multi-$(pam_multi_version) ] ; then \
		cd pam-multi-$(pam_multi_version); \
		./configure $(shell dpkg-buildflags --export=cmdline) \
			--prefix=$(prefix) --datarootdir=$(prefix)/share/indimail \
			--enable-moduledir=${pam_moduledir} \
			--enable-pamconfdir=${pam_confdir} \
			--enable-controldir=$(sysconfdir)/control \
			--enable-mysqlprefix=/usr \
			--enable-dlload-mysql=yes --enable-default-domain=$(default_domain); \
		cd ..; \
	fi
	#
	# run make
	#
	if [ -d nssd-$(nssd_version) ]           ; then $(MAKE) -s -C nssd-$(nssd_version) DESTDIR=$(DESTDIR); fi
	if [ -d pam-multi-$(pam_multi_version) ] ; then $(MAKE) -s -C pam-multi-$(pam_multi_version) DESTDIR=$(DESTDIR); fi
	( \
	echo NAME=indimail-auth; \
	echo Description=\"IndiMail Authentication Package\"; \
	echo AUTH_version=$(version)-$(release); \
	echo ID=indimail-auth; \
	echo HOME_URL="https://github.com/mbhangui/indimail-virtualdomains"; \
	echo PACKAGE_BUGREPORT=\"'Manvendra Bhangui <indimail-auth@indimail.org>'\"; \
	) > indimail-auth-release
	touch build-stamp

clean:
	${rm} -f build-stamp configure-stamp
	${rm} -rf $(DESTDIR)
	if [ -d nssd-$(nssd_version) ]           ; then $(MAKE) -s clean -C nssd-$(nssd_version) || true; fi
	if [ -d pam-multi-$(pam_multi_version) ] ; then $(MAKE) -s clean -C pam-multi-$(pam_multi_version) || true; fi
	if [ -d nssd-$(nssd_version) ]           ; then $(MAKE) -s distclean -C nssd-$(nssd_version) || true; fi
	if [ -d pam-multi-$(pam_multi_version) ] ; then $(MAKE) -s distclean -C pam-multi-$(pam_multi_version) || true; fi
	dh_testdir
	dh_testroot
	dh_clean
	dh_auto_clean

install: build
	dh_testdir
	dh_testroot
	dh_prep || dh_clean -k
	dh_installdirs
	if [ -d nssd-$(nssd_version) ]           ; then $(MAKE) -s install -C nssd-$(nssd_version) DESTDIR=$(DESTDIR); fi
	if [ -d pam-multi-$(pam_multi_version) ] ; then $(MAKE) -s install -C pam-multi-$(pam_multi_version) DESTDIR=$(DESTDIR); fi
	${rm} -f $(DESTDIR)${prefix}/$(libd)/libnss_nssd.la
	${rm} -f $(DESTDIR)${prefix}/$(libd)/libnss_nssd.so
	${rm} -f $(DESTDIR)$(pam_moduledir)/pam-multi.la
	${rm} -f $(DESTDIR)$(pam_moduledir)/pam-multi.a
	mkdir -p $(DESTDIR)$(sysconfdir)
	if [ -f perm_list.auth ] ; then \
		install -m 0644 perm_list.auth "$(DESTDIR)$(sysconfdir)"/perm_list.auth; \
	fi
	install -m 0644 indimail-auth-release "$(DESTDIR)$(sysconfdir)"/indimail-auth-release
	/bin/rm -f indimail-auth-release

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-auth.install
	dh_install --sourcedir=$(DESTDIR) -pindimail-auth
	dh_installchangelogs
	dh_installcron
	dh_installdocs
	dh_link
	dh_strip
	dh_compress
	dh_fixperms
	dh_installdeb
	dh_makeshlibs -V
	dh_shlibdeps
	dh_gencontrol
	dh_installcron
	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
