#!/usr/bin/make -f
# -*- makefile -*-

DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)

%:
	dh $@ --buildsystem=meson --with gir

DPKG_GENSYMBOLS_CHECK_LEVEL=4
export DPKG_GENSYMBOLS_CHECK_LEVEL

ifeq (linux,$(DEB_HOST_ARCH_OS))
  SYSTEMD_CONFIG_FLAG = -Dsession_tracking=libsystemd-login
else
  SYSTEMD_CONFIG_FLAG = -Dsession_tracking=ConsoleKit
endif

override_dh_auto_clean:
	dh_auto_clean
	dh_auto_clean --builddirectory=obj-pkla

override_dh_autoreconf:

override_dh_auto_configure:
	mkdir -p subprojects
	cp -a test/mocklibc subprojects/
	rm -f subprojects/mocklibc/bin/*.in
	ln -fns mocklibc subprojects/mocklibc-1.0
	mkdir -p obj-$(DEB_HOST_GNU_TYPE)/subprojects
	ln -fns mocklibc obj-$(DEB_HOST_GNU_TYPE)/subprojects/mocklibc-1.0
	( cd debian/missing; find -type f ) | while read missing; do \
		if [ -e $$missing ] && ! cmp $$missing debian/missing/$$missing; then \
			echo "Remove the workaround for missing $$missing"; \
			exit 1; \
		else \
			echo "Copying missing $$missing"; \
			cp debian/missing/$$missing $$missing; \
		fi; \
	done
	dh_auto_configure -- \
		$(SYSTEMD_CONFIG_FLAG) \
		-Dexamples=false \
		-Dgtk_doc=true \
		-Dintrospection=true \
		-Dman=true \
		-Dsystemdsystemunitdir=/lib/systemd/system \
		-Dtests=true \
		$(NULL)
	dh_auto_configure \
		--builddirectory=obj-pkla \
		-- \
		$(SYSTEMD_CONFIG_FLAG) \
		-Dexamples=false \
		-Dgtk_doc=true \
		-Dintrospection=true \
		-Djs_engine=none \
		-Dman=true \
		-Dsystemdsystemunitdir=/lib/systemd/system \
		-Dtests=true \
		$(NULL)

override_dh_auto_build:
	dh_auto_build
	dh_auto_build --builddirectory=obj-pkla
	xsltproc \
		--output debian/pkla/polkit.8 --nonet \
		--stringparam man.base.url.for.relative.links /usr/share/gtk-doc/html/polkit-1 \
		http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl \
		debian/pkla/polkit.xml
	xsltproc \
		--output debian/pkla/pklocalauthority.8 --nonet \
		--stringparam man.base.url.for.relative.links /usr/share/gtk-doc/html/polkit-1 \
		http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl \
		debian/pkla/pklocalauthority.xml

override_dh_auto_test:
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
	# on buildds we can't rely on actually having a system bus
	dbus-run-session -- \
		sh -euc 'export DBUS_SYSTEM_BUS_ADDRESS="$$DBUS_SESSION_BUS_ADDRESS"; exec "$$@"' \
		sh \
		dh_auto_test \
		-- \
		$(NULL)
	dbus-run-session -- \
		sh -euc 'export DBUS_SYSTEM_BUS_ADDRESS="$$DBUS_SESSION_BUS_ADDRESS"; exec "$$@"' \
		sh \
		dh_auto_test \
		--builddirectory=obj-pkla \
		-- \
		$(NULL)
endif

override_dh_auto_install:
	dh_auto_install
	dh_auto_install --builddirectory=obj-pkla --destdir=debian/tmp-pkla

override_dh_install:
	install -d debian/tmp/etc/polkit-1/localauthority.conf.d
	chmod 0700 debian/tmp/etc/polkit-1/localauthority.conf.d
	# on Debian use sudo group; on Ubuntu, also allow the admin group for
	# historical reasons
	if dpkg-vendor --is ubuntu; then \
	    install -m644 debian/pkla/51-ubuntu-admin.conf debian/tmp/etc/polkit-1/localauthority.conf.d/; \
	    sed 's/@admin@/"unix-group:sudo", "unix-group:admin"/' debian/admin.rules.in > debian/tmp/usr/share/polkit-1/rules.d/40-ubuntu-admin.rules; \
	else \
	    install -m644 debian/pkla/51-debian-sudo.conf debian/tmp/etc/polkit-1/localauthority.conf.d/; \
	    sed 's/@admin@/"unix-group:sudo"/' debian/admin.rules.in > debian/tmp/usr/share/polkit-1/rules.d/40-debian-sudo.rules; \
	fi
	dh_install

override_dh_installsystemd:
	dh_installsystemd --no-start --restart-after-upgrade
