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

export LC_ALL := C.UTF-8
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
export DEB_LDFLAGS_MAINT_STRIP=-Wl,-Bsymbolic-functions

#GPGME needs this for proper building on 32 bit archs
ifeq ($(DEB_HOST_ARCH_BITS),32)
	export DEB_CFLAGS_MAINT_APPEND = -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
endif

CONFARGS =

ifneq ($(CI),)
	CONFARGS += --werror -Db_coverage=true
else
	CONFARGS += -Dsupported_build=enabled
endif

ifneq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH))
	CONFARGS += -Dtests=false
endif

ifneq ($(DEB_HOST_ARCH_CPU),ia64)
	CONFARGS += -Dplugin_flashrom=enabled
else
	CONFARGS += -Dplugin_flashrom=disabled
endif

ifneq ($(QUBES_OPTION),)
	CONFARGS += -Dqubes=true
endif

ifneq ($(filter nodoc,$(DEB_BUILD_PROFILES)),)
	CONFARGS += -Ddocs=disabled
endif

CONFARGS += -Dplugin_modem_manager=enabled

%:
	dh $@ --with gir

override_dh_auto_clean:
	rm -fr obj-*
	rm -fr debian/build

override_dh_auto_configure:
	dh_auto_configure -- $(CONFARGS)

override_dh_install:
	find debian/tmp/usr -type f -name "*a" -print | xargs rm -f
	sed -i 's,wheel,sudo,' debian/tmp/usr/share/polkit-1/rules.d/org.freedesktop.fwupd.rules
	dh_install
	dh_install -pfwupd $$(pkg-config --variable=systemdsystemunitdir systemd | sed s,^/,,)
	#install MSR conf if needed (depending on distro)
	[ ! -d debian/tmp/usr/lib/modules-load.d ] || dh_install -pfwupd usr/lib/modules-load.d
	[ ! -d debian/tmp/lib/modules-load.d ] || dh_install -pfwupd lib/modules-load.d
	[ ! -d debian/tmp/usr/share/fwupd/quirks.d ] || dh_install -pfwupd usr/share/fwupd/quirks.d

	#install docs (maybe)
	[ ! -d debian/tmp/usr/share/doc ] || dh_install -pfwupd-doc usr/share/doc

	#install tests (unless -Dtests=false)
	#The install-tests dir is in a generic looking directory because
	#that is where gnome-desktop-testing expects to
	#find them. for more information see:
	#https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=872458
	[ ! -d debian/tmp/usr/share/installed-tests ] || dh_install -pfwupd-tests "usr/share/installed-tests/*"
	[ ! -d debian/tmp/usr/libexec/installed-tests/fwupd ] || dh_install -pfwupd-tests "usr/libexec/installed-tests/fwupd/*-test"
	[ ! -f debian/tmp/usr/share/fwupd/remotes.d/fwupd-tests.conf ] || dh_install -pfwupd-tests usr/share/fwupd/remotes.d/fwupd-tests.conf

	#install devices-tests (maybe)
	[ ! -d debian/tmp/usr/share/fwupd/device-tests/ ] || dh_install -pfwupd-tests usr/share/fwupd/device-tests

	#/usr merge or not (make backporting easier)
	[ ! -d debian/tmp/lib/systemd ] || dh_install -pfwupd lib/systemd
	[ ! -d debian/tmp/usr/lib/systemd ] || dh_install -pfwupd usr/lib/systemd

	dh_missing -a --fail-missing

	#this is placed in fwupd-tests
	rm -f debian/fwupd/usr/share/fwupd/remotes.d/fwupd-tests.conf

	# avoid shipping an empty directory
	[ ! -d debian/fwupd/lib/systemd ] || find debian/fwupd/lib/systemd -type d -empty -delete
	[ ! -d debian/fwupd/usr/lib/systemd ] || find debian/fwupd/usr/lib/systemd -type d -empty -delete

	# the below step is automatic with debhelper >= 14
	dh_installsysusers

override_dh_strip_nondeterminism:
	dh_strip_nondeterminism -Xfirmware-example.xml.gz

ifneq (yes,$(shell command -v valgrind >/dev/null 2>&1 && echo yes))
override_dh_auto_test:
	:
endif

override_dh_builddeb:
	dh_builddeb
