#!/usr/bin/make -f
#export DH_VERBOSE=1

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

# Use this variable to set the PackageKit configure flags
PK_CONFIGURE_FLAGS = -Dpackaging_backend=apt \
			-Dsystemd=true \
			-Doffline_update=true \
			-Dgobject_introspection=true \
			-Dman_pages=true \
			-Dgtk_doc=true \
			-Dbash_completion=true \
			-Dbash_command_not_found=true \
			-Dgstreamer_plugin=true \
			-Dgtk_module=true \
			-Dcron=false \
			-Dpython_backend=false

ifneq ($(DEB_HOST_ARCH_OS), linux)
	PK_CONFIGURE_FLAGS += -Dsystemd=false -Doffline_update=false
endif

LDFLAGS += -Wl,--as-needed

# Define install target dir
INSTALLDIR = $(CURDIR)/debian/tmp

%:
	dh $@ --with gir

extrainstallfiles-stamp:
	grep -E -v 'lib/systemd|pk-offline-update|pk-debconf-helper' debian/packagekit.install > debian/packagekit.install.kfreebsd
	grep -E -v 'lib/systemd|pk-offline-update|pk-debconf-helper' debian/packagekit.install > debian/packagekit.install.hurd
	touch $@

override_dh_auto_configure:
	cp -dpr $(CURDIR)/docs/api $(CURDIR)/docs/api.orig
	dh_auto_configure -- $(PK_CONFIGURE_FLAGS)

# The testsuite needs some manual interaction and a special
# setup for the daemon to work, so we don't run it during build.
override_dh_auto_test:

override_dh_auto_install:
	dh_auto_install --destdir=$(INSTALLDIR)

	# These files do not need to be installed
	rm -f $(INSTALLDIR)/usr/share/PackageKit/pk-upgrade-distro.sh
	rm -f $(INSTALLDIR)/usr/bin/packagekit-bugreport.sh
	rm -f $(INSTALLDIR)/var/lib/PackageKit/transactions.db

	rm $(INSTALLDIR)/etc/PackageKit/Vendor.conf
ifeq ($(shell dpkg-vendor --query vendor),Ubuntu)
	cp $(CURDIR)/debian/vendor/Vendor.ubuntu.conf $(INSTALLDIR)/etc/PackageKit/Vendor.conf
else
	cp $(CURDIR)/debian/vendor/Vendor.debian.conf $(INSTALLDIR)/etc/PackageKit/Vendor.conf
endif

override_dh_install: extrainstallfiles-stamp
	dh_install

override_dh_makeshlibs:
	dh_makeshlibs -Xlibpk-gtk-module -Xlibpk_
	dh_girepository

override_dh_auto_clean:
	dh_auto_clean
	# Remove the autogenerated .install files for non-linux architectures
	rm -f debian/packagekit.install.kfreebsd
	rm -f debian/packagekit.install.hurd

override_dh_gencontrol:
	dh_gencontrol -- $(SUBSTVARS)

override_dh_installsystemd:
	# We don't want to stop/restart the packagekit service and especially not the
	# packagekit-offline-update service, as PackageKit might be performing the
	# package upgrade right now and would kill the running APT/dpkg transaction,
	# leaving the system in a broken state.
	# The PackageKit daemon is fine with being upgraded while running, and we do
	# send it the `SuggestDaemonQuit` command to have it reload itself when it is
	# able to (ensuring it doesn't crash after ejecting the backend and reloading it).
	dh_installsystemd --no-start --no-restart-after-upgrade --no-stop-on-upgrade
