#!/usr/bin/make -f
# -*- makefile -*-
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
EFIDIR ?= $(shell dpkg-vendor --query vendor | awk '{ print tolower($$0) }')
PODATE := $(shell dpkg-parsechangelog --show-field Date | xargs -0 date --utc "+%Y-%m-%d %H:%M%z" --date)

deb_version	:= $(shell dpkg-parsechangelog --show-field Version)

SB_STYLE := debian
ifeq (yes,$(shell dpkg-vendor --derives-from Ubuntu && echo yes))
	SB_STYLE := ubuntu
	tar_name := fwupdate_$(deb_version)_$(DEB_HOST_ARCH).tar.gz
else
	TMPLDIR  := debian/fwupdate-$(DEB_HOST_ARCH)-signed-template/usr/share/code-signing/fwupdate-$(DEB_HOST_ARCH)-signed-template
endif

buildroot	:= debian/tmp

%:
	dh $@

override_dh_auto_build:
	dh_auto_build -- libdir=/usr/lib/$(DEB_HOST_MULTIARCH) \
			 libexecdir=\$${prefix}/lib/ \
			 datadir=/var/cache/ \
			 localedir=/usr/share/locale/ \
			 GNUEFIDIR=\$${prefix}/lib \
			 CROSS_COMPILE=$(DEB_HOST_GNU_TYPE)- \
			 EFIDIR=$(EFIDIR)
	sed 's,#EFIDIR#,$(EFIDIR),' \
		debian/fwupdate.postrm.in > debian/fwupdate.postrm
	sed 's,#EFIDIR#,$(EFIDIR),' \
		debian/fwupdate.postinst.in > debian/fwupdate.postinst

	# This is to satisfy https://wiki.debian.org/ReproducibleBuilds
	sed -i 's,POT-Creation-Date:.*,POT-Creation-Date: $(PODATE)\\n",' \
		linux/libfwup.po
	sed -i 's,POT-Creation-Date:.*,POT-Creation-Date: $(PODATE)\\n",' \
		linux/fwupdate.po

override_dh_auto_install:
	dh_auto_install -- libdir=/usr/lib/$(DEB_HOST_MULTIARCH) \
			   libexecdir=\$${prefix}/lib/ \
			   datadir=/var/cache/ \
			   localedir=/usr/share/locale/ \
			   GNUEFIDIR=\$${prefix}/lib \
			   CROSS_COMPILE=$(DEB_HOST_GNU_TYPE)- \
			   EFIDIR=$(EFIDIR)
	chmod -x ${buildroot}/boot/efi/EFI/$(EFIDIR)/*.efi
	mkdir -p ${buildroot}/usr/lib/fwupdate
	cp debian/scripts/install.in   ${buildroot}/usr/lib/fwupdate/install
	sed -i 's,#EFIDIR#,$(EFIDIR),' ${buildroot}/usr/lib/fwupdate/install

ifeq (debian,$(SB_STYLE))
	# Generate the template source for the Debian signing service to use
	mkdir -p $(TMPLDIR)/source-template/debian
	cp -a debian/signing-template/* $(TMPLDIR)/source-template/debian
	cp debian/README.Debian $(TMPLDIR)/source-template/debian
	find $(TMPLDIR)/source-template/debian -type f | xargs sed -i "s,SIGNARCH,$(DEB_HOST_ARCH),"
	find $(TMPLDIR)/source-template/debian -type f | xargs sed -i "s,SIGNVERSION,$(deb_version),"
	for file in $$(find $(TMPLDIR)/source-template/debian -type f -name *SIGNARCH*); do file1=$$(echo $$file | sed "s,SIGNARCH,$(DEB_HOST_ARCH),"); mv -v $$file $$file1; done
	install -m 0755 debian/fwupdate.postinst $(TMPLDIR)/source-template/debian/fwupdate-$(DEB_HOST_ARCH)-signed.postinst
	install -m 0755 debian/fwupdate.postrm $(TMPLDIR)/source-template/debian/fwupdate-$(DEB_HOST_ARCH)-signed.postrm
	./debian/gen_signing_changelog $(TMPLDIR)/source-template/debian fwupdate $(DEB_HOST_ARCH)
	./debian/gen_signing_json $(TMPLDIR) fwupdate ${DEB_HOST_ARCH}
endif

override_dh_auto_clean:
	dh_auto_clean -- EFIDIR=$(EFIDIR)

override_dh_builddeb:
	dh_builddeb -- -Zxz
