#!/usr/bin/make -f
# -*- makefile -*-
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1

export DH_OPTIONS

DEB_HOST_ARCH   ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)

export DEB_CFLAGS_MAINT_OPTIONS = -Wall -Wextra -g -pipe $(if $(findstring noopt,$(DEB_BUILD_OPTIONS)),-O0,-O2)
export DEB_LDFLAGS_MAINT_OPTIONS = -Wl,-z,defs -Wl,--as-needed 

%:
	dh $@ --with autoreconf,autotools-dev

override_dh_autoreconf:
	dh_autoreconf --as-needed

override_dh_auto_clean:
	dh_auto_clean -Bbuild-sqlite3
	dh_auto_clean -Denforcer -Bbuild-mysql/enforcer
	rm -rf build-mysql build-sqlite3

COMMON = --disable-rpath --with-ldns=/usr \
	 --with-cunit=/usr --libexecdir=/usr/lib/opendnssec/ \
	 --with-pkcs11-opensc=/usr/lib/pkcs11/opensc-pkcs11.so \
	 --with-pkcs11-softhsm=/usr/lib/softhsm/libsofthsm.so

override_dh_auto_configure:
	dh_auto_configure -Bbuild-sqlite3 -- $(COMMON) --with-database-backend=sqlite3 --with-sqlite3=/usr
	mkdir build-mysql
	ln -s ../build-sqlite3/libhsm build-mysql/libhsm
	dh_auto_configure -Bbuild-mysql/enforcer -- $(COMMON) --with-database-backend=mysql --disable-signer --disable-doxygen-doc --with-mysql=/usr

override_dh_auto_build-arch:
	dh_auto_build -Bbuild-sqlite3
	dh_auto_build -Bbuild-mysql/enforcer

override_dh_auto_build-indep:
	dh_auto_build -Bbuild-sqlite3 -- docs

override_dh_auto_install:
	# Comment out example zone after regression testing
	(cd build-sqlite3; patch -p1 -i $(CURDIR)/debian/signconf.xml.patch)
	# Remove $Id tags + new line from xml file
	(cd build-sqlite3; for xml in conf/*.xml; do sed -ie '/<!-- $$Id.*/ N; /<!-- $$Id.*\n/ d;' $$xml; done)
	dh_auto_install -Bbuild-sqlite3 -- DESTDIR=$(CURDIR)/debian/tmp
	install -m 755 $(CURDIR)/enforcer/utils/migrate_keyshare_sqlite3.pl $(CURDIR)/debian/tmp/usr/share/opendnssec/
	dh_auto_install -Bbuild-mysql/enforcer -- DESTDIR=$(CURDIR)/debian/opendnssec-enforcer-mysql
	# Install migration scripts
	install -m 755 $(CURDIR)/enforcer/utils/convert_database.pl $(CURDIR)/debian/tmp/usr/share/opendnssec/
	install -m 755 $(CURDIR)/enforcer/utils/convert_database.pl $(CURDIR)/debian/opendnssec-enforcer-mysql/usr/share/opendnssec/
	install -m 755 $(CURDIR)/enforcer/utils/migrate_keyshare_mysql.pl $(CURDIR)/debian/opendnssec-enforcer-mysql/usr/share/opendnssec/
	install -m 644 $(CURDIR)/enforcer/utils/migrate_adapters_1.mysql $(CURDIR)/debian/opendnssec-enforcer-mysql/usr/share/opendnssec/
	install -m 644 $(CURDIR)/enforcer/utils/migrate_zone_delete.mysql $(CURDIR)/debian/opendnssec-enforcer-mysql/usr/share/opendnssec/
	install -m 755 $(CURDIR)/enforcer/utils/migrate_to_ng_mysql.pl $(CURDIR)/debian/opendnssec-enforcer-mysql/usr/share/opendnssec/
	install -m 755 $(CURDIR)/enforcer/utils/migrate_id_mysql.pl $(CURDIR)/debian/opendnssec-enforcer-mysql/usr/share/opendnssec/
	install -m 755 $(CURDIR)/enforcer/utils/migrate_keyshare_sqlite3.pl $(CURDIR)/debian/tmp/usr/share/opendnssec/
	install -m 644 $(CURDIR)/enforcer/utils/migrate_adapters_1.sqlite3 $(CURDIR)/debian/tmp/usr/share/opendnssec/
	install -m 755 $(CURDIR)/enforcer/utils/migrate_to_ng_sqlite.pl $(CURDIR)/debian/tmp/usr/share/opendnssec/
	# Remove extra dist files from opendnssec-enforcer-mysql
	rm -rf $(CURDIR)/debian/opendnssec-enforcer-mysql/var/run/opendnssec/ \
	       $(CURDIR)/debian/opendnssec-enforcer-mysql/usr/bin/ods-hsm* \
	       $(CURDIR)/debian/opendnssec-enforcer-mysql/usr/bin/ods-kasp2html \
	       $(CURDIR)/debian/opendnssec-enforcer-mysql/usr/sbin/ods-control \
	       $(CURDIR)/debian/opendnssec-enforcer-mysql/usr/share/opendnssec/*.rn? \
	       $(CURDIR)/debian/opendnssec-enforcer-mysql/usr/share/opendnssec/kasp2html.xsl \
	       $(CURDIR)/debian/opendnssec-enforcer-mysql/etc/opendnssec \
	       $(CURDIR)/debian/opendnssec-enforcer-mysql/usr/share/man/man5 \
	       $(CURDIR)/debian/opendnssec-enforcer-mysql/usr/share/man/man7 \
	       $(CURDIR)/debian/opendnssec-enforcer-mysql/usr/share/man/man8/ods-control.* \
	       $(CURDIR)/debian/opendnssec-enforcer-mysql/usr/share/man/man1/ods-hsm* \

override_dh_installdocs-arch:
	dh_installdocs -popendnssec-common -popendnssec -popendnssec-dbg-mysql \
	               -popendnssec-dbg-sqlite3 -popendnssec-enforcer -popendnssec-enforcer-sqlite3 \
	               -popendnssec-enforcer-mysql -plibhsm-bin -popendnssec-signer \
	               --link-doc=opendnssec-common
	dh_installdocs -popendnssec-doc

override_dh_installchangelogs:
	dh_installchangelogs NEWS

override_dh_strip:
	dh_strip -s --keep-debug
	install -d -m 755 $(CURDIR)/debian/opendnssec-dbg-sqlite3/usr/lib/debug
	install -d -m 755 $(CURDIR)/debian/opendnssec-dbg-mysql/usr/lib/debug
	for p in opendnssec-signer libhsm-bin; do \
	    cp -a $(CURDIR)/debian/$$p/usr/lib/debug $(CURDIR)/debian/opendnssec-dbg-sqlite3/usr/lib/; \
	    cp -a $(CURDIR)/debian/$$p/usr/lib/debug $(CURDIR)/debian/opendnssec-dbg-mysql/usr/lib/; \
	    rm -rf $(CURDIR)/debian/$$p/usr/lib/debug; \
	done
	cp -a $(CURDIR)/debian/opendnssec-enforcer-sqlite3/usr/lib/debug $(CURDIR)/debian/opendnssec-dbg-sqlite3/usr/lib/
	cp -a $(CURDIR)/debian/opendnssec-enforcer-mysql/usr/lib/debug $(CURDIR)/debian/opendnssec-dbg-mysql/usr/lib/
	rm -rf $(CURDIR)/debian/opendnssec-enforcer-sqlite3/usr/lib/debug
	rm -rf $(CURDIR)/debian/opendnssec-enforcer-mysql/usr/lib/debug

override_dh_install:
	dh_install --fail-missing -Xxml.sample
