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

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1

include /usr/share/dpkg/default.mk

export ISOLINUX_BIN=/usr/lib/syslinux/

VERSION := $(shell dpkg-parsechangelog | sed -ne 's,^Version: *\(.*\)$$,\1,p')
UPSTREAM_REF = upstream/$(DEB_VERSION_UPSTREAM)

%:
	+dh $@

git-source: TAR_ORIG=$(DEB_SOURCE)_$(DEB_VERSION_UPSTREAM).orig.tar.xz
git-source: TAR_DEBIAN=$(DEB_SOURCE)_$(DEB_VERSION_UPSTREAM_REVISION).debian.tar.xz
git-source: CHANGES=$(DEB_SOURCE)_$(DEB_VERSION_UPSTREAM_REVISION)_source.changes
git-source:
	pristine-lfs checkout -o .. $(TAR_ORIG)
	@set -e; \
	  echo "extract debian dir to ../$(TAR_DEBIAN)"; \
	  PATCH_BLOB=$$(git diff $(UPSTREAM_REF) -- . ':!debian' | git hash-object -w --stdin); \
	  SERIES_BLOB=$$(echo debian-changes | git hash-object -w --stdin); \
	  FORMAT_BLOB=$$(echo '3.0 (quilt)' | git hash-object -w --stdin); \
	  PATCHES_TREE=$$(printf '100644 blob %s\tdebian-changes\n100644 blob %s\tseries\n' $$PATCH_BLOB $$SERIES_BLOB | git mktree); \
	  SOURCE_TREE=$$(printf '100644 blob %s\tformat\n' $$FORMAT_BLOB | git mktree); \
	  DEB_TREE_ORIG=$$(git ls-tree HEAD -- debian | awk '{print $$3}'); \
	  DEB_TREE=$$( (printf '040000 tree %s\tpatches\n040000 tree %s\tsource\n' $$PATCHES_TREE $$SOURCE_TREE; git ls-tree $$DEB_TREE_ORIG) | git mktree); \
	  git archive --format tar --prefix debian/ $$DEB_TREE | xz > ../$(TAR_DEBIAN)
	dpkg-source --build --format='3.0 (custom)' --target-format='3.0 (quilt)' . $(TAR_ORIG) $(TAR_DEBIAN)
	dpkg-genchanges -S > ../$(CHANGES)

git-orig: TAR_ORIG=$(DEB_SOURCE)_$(DEB_VERSION_UPSTREAM).orig.tar.xz
git-orig:
	git archive --format tar --prefix $(DEB_SOURCE)-$(DEB_VERSION_UPSTREAM)/ $(UPSTREAM_REF) | xz > ../$(TAR_ORIG)
	pristine-lfs commit ../$(TAR_ORIG)

override_dh_auto_configure:
	cp debian/config/* src/config/local

src/bin-i386-pcbios/% src/bin-x86_64-efi/%:
	dh_auto_build --sourcedirectory=src -- V=1 NO_WERROR=1 VERSION="$(VERSION)" $(subst src/,,$@)

src/bin-combined/%.efirom: src/bin-i386-pcbios/%.rom src/bin-x86_64-efi/%.efirom
	@[ -d $(dir $@) ] || mkdir $(dir $@)
	src/util/catrom.pl $^ > $@

src/bin-combined/%.iso: src/bin-i386-pcbios/%.lkrn src/bin-x86_64-efi/%.efi
	@[ -d $(dir $@) ] || mkdir $(dir $@)
	debian/util/geniso $@ $^

override_dh_auto_build: $(shell grep -hoE 'src/bin(-[^/]*)?/\S+' debian/*.install)

override_dh_auto_clean:
	$(MAKE) -C src veryclean
	rm -fr src/bin-*
	rm -f src/config/local/*

.NOTPARALLEL:
.SECONDARY:
