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

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

PKD  = $(abspath $(dir $(MAKEFILE_LIST)))
PKG  = $(word 2,$(shell dpkg-parsechangelog -l$(PKD)/changelog | grep ^Source))
VER  = $(shell dpkg-parsechangelog -l$(PKD)/changelog -SVersion | perl -ne 'print $$1 if m{(\d.*)(?:\-\d+.*)};')
PKGG = $(patsubst %-pkg,%,$(PKG))
VERG = $(shell dpkg-parsechangelog -l$(PKGG)/debian/changelog -SVersion | perl -ne 'print $$1 if m{(\d.*)};')
## check if host package version (without debian revision) match full version of encapsulated guest package
ifneq ($(VER), $(VERG))
    $(error Error: Packages' version mismatch: host(upstream part)/$(VER) != guest/$(VERG))
endif

%: debian/po/templates.pot
	dh $@

debian/po/templates.pot:
	debconf-updatepo --verbose

override_dh_installchangelogs:
	dh_installchangelogs $(PKGG)/debian/changelog

override_dh_gencontrol:
	dh_gencontrol -v -- \
          -Vguest:Build-Depends="$(shell perl -0n -E 's{^#.*$$}{}mg;' -E 'print $$1 if m{^Build-Depends:([^:A-Z]+)}ms;' $(PKGG)/debian/control)" \
          -Vguest:Provides="$(shell perl -0nE 'print join q{,},m{^Package:\s+([^\s]+)}smg;' $(PKGG)/debian/control)" \
          -Vguest:Recommends="$(shell perl -0n -E 'print $$1 if m{^Recommends:([^:A-Z]+)}ms;' $(PKGG)/debian/control)" \
          -Vguest:Suggests="$(shell perl -0n -E 'print $$1 if m{^Suggests:([^:A-Z]+)}ms;' $(PKGG)/debian/control)" \
          -Vguest:Description="$(shell perl -0n -E 's/^Description:[^\n]+\K/./sm; s/\n\n|\Z/EEooDD/smg; s/\n\s+\.?/\\\$${Newline}/smg; print $$1 if m/^Description:\s*(.+?)EEooDD/ms;' $(PKGG)/debian/control)" \
          -Vguest="$(PKGG)"

override_dh_builddeb:
	dh_builddeb -- -Zxz

.PHONY: get-orig-source
XZ_FILES=$(notdir $(wildcard $(PKGG)/*.xz))
SHA_FILES=$(addprefix $(PKGG)/, $(XZ_FILES:.xz=.xz.sha256))
DELTA_FILES=$(addprefix $(PKGG)/, $(XZ_FILES:.xz=.xz.delta))
#$(info XZ_FILES="$(XZ_FILES)" SHA_FILES="$(SHA_FILES)")
get-orig-source: $(PKG)_$(VER).orig.tar.xz
	@

$(SHA_FILES):
	sha256sum $(@:.xz.sha256=.xz) | sed 's!  .*/!  /usr/src/$(PKG)/!' > $@

$(DELTA_FILES):
	pristine-xz gendelta $(@:.xz.delta=.xz) $@

$(PKG)_$(VER).orig.tar.xz: $(SHA_FILES)
	mkdir $(PKG)_$(VER)
	cp --archive --recursive $(PKGG) $(PKG)_$(VER)/
	find -L "$(PKG)_$(VER)" -xdev -type f -print | LC_ALL=C sort \
        | XZ_OPT="-6v" tar -caf $(PKG)_$(VER).orig.tar.xz -T- --exclude="*.xz" --owner=root --group=root --mode=a+rX
	$(RM) -r $(PKG)_$(VER)
