#!/usr/bin/make -f
# Copyright © 2002,2003 Colin Walters <walters@verbum.org>
# Copyright © 2003 Daniel Stone <daniels@debian.org>
# Copyright © 2006 Sjoerd Simons <sjoerd@debian.org>
# Copyright © 2012 Collabora Ltd.

export DEB_BUILD_MAINT_OPTIONS = hardening=+bindnow

include /usr/share/dpkg/default.mk

PYTHON2 := $(shell pyversions --requested --version debian/control)
PYTHON3 := $(shell py3versions --requested --version debian/control)
PYDEFAULTVER := $(shell pyversions --default --version)

FLAVOURS := $(patsubst %,%-dbg,$(PYTHON2) $(PYTHON3)) $(PYTHON2) $(PYTHON3)

%:
	dh $@ --with python2,python3 --buildsystem=autoconf

# The special case for 2.7-dbg is a workaround. Python 2 doesn't have the
# LDVERSION sysconfig variable, which would give AX_PYTHON_DEVEL the
# information it needs to know that it should link -lpython2.7_d and not
# -lpython2.7.
override_dh_auto_configure-arch:
	set -e; for x in $(FLAVOURS); do \
		if [ "x$$x" = x2.7-dbg ]; then \
			maybe_python_libs="PYTHON_LIBS=-lpython2.7_d"; \
		else \
			maybe_python_libs=""; \
		fi; \
		dh_auto_configure \
			--builddirectory=build-$$x \
			-- \
			PYTHON=/usr/bin/python$$x \
			$${maybe_python_libs} \
			--disable-api-docs \
			--disable-html-docs \
			--enable-installed-tests \
			--libdir=/usr/lib \
			; \
	done
override_dh_auto_configure-indep:
	dh_auto_configure \
		--builddirectory=build-indep \
		-- \
		--libdir=/usr/lib \
		--disable-installed-tests \
		--docdir=/usr/share/doc/python-dbus-doc \
		${NULL}

override_dh_auto_build-arch:
	set -e; for x in $(FLAVOURS); do \
		PYTHON=/usr/bin/python$$x \
		dh_auto_build \
			--arch \
			--builddirectory=build-$$x \
			-- \
			installed_testdir='$${libexecdir}/installed-tests/$${PACKAGE_TARNAME}/'"python$$x" \
			installed_test_metadir='$${datadir}/installed-tests/$${PACKAGE_TARNAME}/'"python$$x" \
			$(NULL); \
	done
override_dh_auto_build-indep:
	dh_auto_build --indep --builddirectory=build-indep

override_dh_auto_test-arch:
	set -e; for x in $(PYTHON2) $(PYTHON3); do \
		PYTHON=/usr/bin/python$$x \
		VERBOSE=1 \
		dh_auto_test --arch --builddirectory=build-$$x; \
		PYTHON=/usr/bin/python$$x-dbg \
		VERBOSE=1 \
		dh_auto_test --arch --builddirectory=build-$$x-dbg; \
	done
override_dh_auto_test-indep:
	:

override_dh_auto_install-arch:
	set -e; for x in $(PYTHON2); do \
		PYTHON=/usr/bin/python$$x \
		dh_auto_install \
			--arch \
			--builddirectory=build-$$x \
			--destdir=debian/tmp \
			-- \
			installed_testdir='$${libexecdir}/installed-tests/$${PACKAGE_TARNAME}/'"python$$x" \
			installed_test_metadir='$${datadir}/installed-tests/$${PACKAGE_TARNAME}/'"python$$x" \
			pyexecdir='$${pythondir}' \
			pythondir='$${libdir}'/python$$x/dist-packages \
			; \
		PYTHON=/usr/bin/python$$x-dbg \
		dh_auto_install \
			--arch \
			--builddirectory=build-$$x-dbg \
			--destdir=debian/tmp-dbg \
			-- \
			installed_testdir='$${libexecdir}/installed-tests/$${PACKAGE_TARNAME}/'"python$$x-dbg" \
			installed_test_metadir='$${datadir}/installed-tests/$${PACKAGE_TARNAME}/'"python$$x-dbg" \
			pyexecdir='$${pythondir}' \
			pythondir='$${libdir}'/python$$x/dist-packages \
			; \
		install debian/tmp-dbg/usr/lib/python$$x/dist-packages/_dbus_bindings.so \
			debian/tmp/usr/lib/python$$x/dist-packages/_dbus_bindings_d.so; \
		install debian/tmp-dbg/usr/lib/python$$x/dist-packages/_dbus_glib_bindings.so \
			debian/tmp/usr/lib/python$$x/dist-packages/_dbus_glib_bindings_d.so; \
	done
	set -e; for x in $(PYTHON3); do \
		PYTHON=/usr/bin/python$$x \
		dh_auto_install \
			--arch \
			--builddirectory=build-$$x \
			--destdir=debian/tmp \
			-- \
			installed_testdir='$${libexecdir}/installed-tests/$${PACKAGE_TARNAME}/'"python$$x" \
			installed_test_metadir='$${datadir}/installed-tests/$${PACKAGE_TARNAME}/'"python$$x" \
			pyexecdir='$${pythondir}' \
			pythondir='$${libdir}/python3/dist-packages' \
			; \
		so=`/usr/bin/python$$x -c "import sysconfig; print(sysconfig.get_config_var('EXT_SUFFIX') or sysconfig.get_config_var('SO'))"`; \
		mv debian/tmp/usr/lib/python3/dist-packages/_dbus_bindings.so \
			debian/tmp/usr/lib/python3/dist-packages/_dbus_bindings$$so; \
		mv debian/tmp/usr/lib/python3/dist-packages/_dbus_glib_bindings.so \
			debian/tmp/usr/lib/python3/dist-packages/_dbus_glib_bindings$$so; \
		PYTHON=/usr/bin/python$$x-dbg \
		dh_auto_install \
			--arch \
			--builddirectory=build-$$x-dbg \
			--destdir=debian/tmp-dbg \
			-- \
			installed_testdir='$${libexecdir}/installed-tests/$${PACKAGE_TARNAME}/'"python$$x-dbg" \
			installed_test_metadir='$${datadir}/installed-tests/$${PACKAGE_TARNAME}/'"python$$x-dbg" \
			pyexecdir='$${pythondir}' \
			pythondir='$${libdir}/python3/dist-packages' \
			; \
		so=`/usr/bin/python$$x-dbg -c "import sysconfig; print(sysconfig.get_config_var('EXT_SUFFIX') or sysconfig.get_config_var('SO'))"`; \
		mv debian/tmp-dbg/usr/lib/python3/dist-packages/_dbus_bindings.so \
			debian/tmp-dbg/usr/lib/python3/dist-packages/_dbus_bindings$$so; \
		mv debian/tmp-dbg/usr/lib/python3/dist-packages/_dbus_glib_bindings.so \
			debian/tmp-dbg/usr/lib/python3/dist-packages/_dbus_glib_bindings$$so; \
	done

# do not install any docs, we copy those from the builddir
override_dh_auto_install-indep:
	make -C build-indep install-data DESTDIR=$(CURDIR)/debian/tmp

override_dh_install:
	rm -fr debian/tmp/usr/share/doc/dbus-python
	find debian/tmp -name '*.py[co]' -print0 | xargs -0 rm -f
	find debian/tmp -name '*.la' -print0 | xargs -0 rm -f
	dh_install --list-missing

override_dh_installexamples:
	dh_installexamples --doc-main-package=python-dbus-doc -ppython-dbus-doc
	dh_installexamples --remaining-packages

override_dh_installdocs:
	dh_installdocs --link-doc=python-dbus -ppython-dbus-dbg
	dh_installdocs --link-doc=python3-dbus -ppython3-dbus-dbg
	dh_installdocs --doc-main-package=python-dbus -ppython-dbus
	dh_installdocs --doc-main-package=python-dbus-doc -ppython-dbus-doc
	dh_installdocs --doc-main-package=python3-dbus -ppython3-dbus
	dh_installdocs --remaining-packages

override_dh_auto_clean:
	dh_auto_clean
	rm -Rf build-* install-2* install-3* debian/tmp-dbg
	find . -name '*.py[co]' -print0 | xargs -0 rm -f

override_dh_strip:
	dh_strip --dbg-package=python-dbus-dbg -ppython-dbus -ppython-dbus-dbg -ppython-dbus-tests
	dh_strip --dbg-package=python3-dbus-dbg -ppython3-dbus -ppython3-dbus-dbg -ppython3-dbus-tests

override_dh_python2:
	dh_python2
	set -e; for x in $(PYTHON2) $(patsubst %,%-dbg,$(PYTHON2)); do \
		dh_python2 --shebang="/usr/bin/python$$x" \
			/usr/lib/$(DEB_HOST_MULTIARCH)/installed-tests/dbus-python/python$$x; \
	done

override_dh_python3:
	dh_python3
	set -e; for x in $(PYTHON3) $(patsubst %,%-dbg,$(PYTHON3)); do \
		dh_python3 --shebang="/usr/bin/python$$x" \
			/usr/lib/$(DEB_HOST_MULTIARCH)/installed-tests/dbus-python/python$$x; \
	done
