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

export DEB_BUILD_MAINT_OPTIONS = hardening=+bindnow

include /usr/share/dpkg/default.mk

built_binaries := $(shell dh_listpackages)

%:
	dh $@ --with xml-core

DPKG_GENSYMBOLS_CHECK_LEVEL=4
export DPKG_GENSYMBOLS_CHECK_LEVEL

configure_flags =
compat_configure_flags =

ifeq ($(filter %-doc,$(built_binaries)),)
configure_flags_doc = -Dgtk_doc=false
else
configure_flags_doc = -Dgtk_doc=true
endif

configure_flags_elogind = \
		$(configure_flags_doc) \
		-Dman=true \
		-Dsystemdsystemunitdir=/lib/systemd/system \
		-Dsession_tracking=libelogind

configure_flags_consolekit = \
		-Dgtk_doc=false \
		-Dman=false \
		-Dsession_tracking=ConsoleKit

configure_flags += \
		-Dintrospection=true \
		-Dexamples=false \
		-Dtests=true

override_dh_auto_clean:
	dh_auto_clean
	dh_auto_clean --builddirectory=build-consolekit
	dh_auto_clean --sourcedirectory=polkit-pkla-compat

override_dh_auto_configure:
	dh_auto_configure \
		-- \
		$(configure_flags_elogind) \
		$(configure_flags)
	dh_auto_configure \
		--builddirectory=build-consolekit \
		-- \
		$(configure_flags_consolekit) \
		$(configure_flags)
	dh_auto_configure \
		--sourcedirectory=polkit-pkla-compat \
		-- \
		--bindir=/usr/sbin \
		POLKIT_CFLAGS="-I$(CURDIR)/src -I$(CURDIR)/obj-$(DEB_HOST_GNU_TYPE)/src" \
		POLKIT_LIBS="$(CURDIR)/obj-$(DEB_HOST_GNU_TYPE)/src/polkit/libpolkit-gobject-1.so" \
		$(compat_configure_flags)

override_dh_auto_build:
	dh_auto_build
	dh_auto_build --sourcedirectory=polkit-pkla-compat

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 \
		env LD_LIBRARY_PATH="$(CURDIR)/obj-$(DEB_HOST_GNU_TYPE)/src/polkit" \
		dh_auto_test --sourcedirectory=polkit-pkla-compat \
		-- \
		$(NULL)
endif

override_dh_shlibdeps:
	dh_shlibdeps -plibpolkit-gobject-consolekit-1-0 -- -Ldebian/shlibs-consolekit.local
	dh_shlibdeps -plibpolkit-gobject-elogind-1-0 -- -Ldebian/shlibs-elogind.local
	dh_shlibdeps --remaining-packages

override_dh_auto_install:
	dh_auto_install
	dh_auto_install --builddirectory=build-consolekit --destdir=debian/install/consolekit
	dh_auto_install --sourcedirectory=polkit-pkla-compat

override_dh_install:
	dh_install \
	-plibpolkit-gobject-consolekit-1-0       \
	--sourcedir=debian/install/consolekit

	# on Devuan use sudo group; on Ubuntu, also allow the admin group for
	# historical reasons
	if dpkg-vendor --is ubuntu; then \
		install -m644 debian/49-ubuntu-admin.rules debian/tmp/usr/share/polkit-1/rules.d/; \
	fi
	dh_install --remaining-packages
