#!/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.

binaries := $(shell dh_listpackages)

export DEB_BUILD_MAINT_OPTIONS = hardening=+bindnow

include /usr/share/dpkg/default.mk

ifneq ($(filter python-dbus,$(binaries)),)
PYTHON2 := $(shell pyversions --default --version)
else
PYTHON2 :=
endif
PYTHON3 := $(shell py3versions --requested --version debian/control)
PYDEFAULTVER := $(shell py3versions --default --version)

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

%:
	dh $@ $(DH_ADDONS) --buildsystem=autoconf
build binary %-indep: DH_ADDONS=--with=sphinxdoc

# 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-documentation \
			--enable-installed-tests \
			--libdir=/usr/lib \
			; \
	done
override_dh_auto_configure-indep:
	dh_auto_configure \
		--builddirectory=build-indep \
		-- \
		PYTHON=/usr/bin/python3 \
		--libdir=/usr/lib \
		--disable-installed-tests \
		--enable-documentation \
		--docdir=/usr/share/doc/python-dbus-doc \
		--htmldir=/usr/share/doc/python-dbus-doc/html \
		${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:
	PYTHON=/usr/bin/python3 dh_auto_build --indep --builddirectory=build-indep

override_dh_auto_test-arch:
	set -e; for x in $(PYTHON2) $(PYTHON3); do \
		LC_ALL=C.UTF-8 \
		PYTHON=/usr/bin/python$$x \
		VERBOSE=1 \
		dh_auto_test --arch --builddirectory=build-$$x; \
		LC_ALL=C.UTF-8 \
		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:
ifneq ($(filter python-dbus,$(binaries)),)
	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; \
		install -d debian/tmp/usr/lib/python$$x/dist-packages/dbus_python-${DEB_VERSION_UPSTREAM}.egg-info; \
		install -m644 dbus_python.egg-info/PKG-INFO debian/tmp/usr/lib/python$$x/dist-packages/dbus_python-${DEB_VERSION_UPSTREAM}.egg-info/; \
		install -m644 dbus_python.egg-info/dependency_links.txt debian/tmp/usr/lib/python$$x/dist-packages/dbus_python-${DEB_VERSION_UPSTREAM}.egg-info/; \
		install -m644 dbus_python.egg-info/top_level.txt debian/tmp/usr/lib/python$$x/dist-packages/dbus_python-${DEB_VERSION_UPSTREAM}.egg-info/; \
		touch debian/tmp/usr/lib/python$$x/dist-packages/dbus_python-${DEB_VERSION_UPSTREAM}.egg-info/not-zip-safe; \
	done
endif
	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; \
		mv "debian/tmp/usr/libexec/installed-tests/dbus-python/python$$x/test/dbus_py_test.so" \
			"debian/tmp/usr/lib/python3/dist-packages/dbus_py_test$$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; \
		mv "debian/tmp-dbg/usr/libexec/installed-tests/dbus-python/python$$x-dbg/test/dbus_py_test.so" \
			"debian/tmp-dbg/usr/lib/python3/dist-packages/dbus_py_test$$so"; \
	done
	install -d debian/tmp/usr/lib/python3/dist-packages/dbus_python-${DEB_VERSION_UPSTREAM}.egg-info
	install -m644 dbus_python.egg-info/PKG-INFO debian/tmp/usr/lib/python3/dist-packages/dbus_python-${DEB_VERSION_UPSTREAM}.egg-info/
	install -m644 dbus_python.egg-info/dependency_links.txt debian/tmp/usr/lib/python3/dist-packages/dbus_python-${DEB_VERSION_UPSTREAM}.egg-info/
	install -m644 dbus_python.egg-info/top_level.txt debian/tmp/usr/lib/python3/dist-packages/dbus_python-${DEB_VERSION_UPSTREAM}.egg-info/
	touch debian/tmp/usr/lib/python3/dist-packages/dbus_python-${DEB_VERSION_UPSTREAM}.egg-info/not-zip-safe

override_dh_auto_install-indep:
	dh_auto_install \
		--indep \
		--builddirectory=build-indep \
		--destdir=debian/tmp-indep \
		$(NULL)

override_dh_install:
	rm -fr debian/tmp/usr/include
	rm -fr debian/tmp/usr/lib/pkgconfig
	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

override_dh_installchangelogs:
	dh_installchangelogs -XChangeLog

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

override_dh_installdocs:
ifneq ($(filter python-dbus,$(binaries)),)
	dh_installdocs --link-doc=python-dbus -ppython-dbus-dbg
	dh_installdocs --doc-main-package=python-dbus -ppython-dbus
endif
	dh_installdocs --link-doc=python3-dbus -ppython3-dbus-dbg
	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_sphinxdoc-indep:
	dh_sphinxdoc /usr/share/doc/python-dbus-doc/html

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_missing:
	dh_missing --fail-missing

override_dh_strip:
ifneq ($(filter python-dbus,$(binaries)),)
	dh_strip --dbg-package=python-dbus-dbg -ppython-dbus -ppython-dbus-dbg -ppython-dbus-tests
endif
	dh_strip --dbg-package=python3-dbus-dbg -ppython3-dbus -ppython3-dbus-dbg -ppython3-dbus-tests

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

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