#!/usr/bin/make -f

# Parse debian/control once to extract all values we need.
# Replace eval with error to debug.
$(foreach line,$(shell sed -n '\
  s/^ gnat, gnat-\([0-9.]\+\)$$/          gnat_version:=\1             /p;\
  s/^Package: \(libahven\([0-9.]\+\)\)$$/ lib_pkg:=\1      VERSION:=\2 /p;\
  s/^Package: \(libahven[0-9.]\+-dev\)$$/ dev_pkg:=\1                  /p\
  ' debian/control),$(eval $(line)))

DPKG_EXPORT_BUILDFLAGS = 1
DEB_BUILD_MAINT_OPTIONS := hardening=+all
include /usr/share/dpkg/architecture.mk
include /usr/share/dpkg/buildflags.mk
include /usr/share/ada/debian_packaging-$(gnat_version).mk

export VERSION
export GNAT_BUILDER=gnatmake
export GNAT_BUILDER_FLAGS=$(BUILDER_OPTIONS)

BDIR := gnat/obj

%:
	dh ${@}

override_dh_auto_build:
	$(MAKE) -C gnat -- configure builddir=../$(BDIR)/dynamic library_type=dynamic prefix=/usr
	$(MAKE) -C gnat -- configure builddir=../$(BDIR)/static library_type=static prefix=/usr
	$(MAKE) -C $(BDIR)/dynamic base
	$(MAKE) -C $(BDIR)/static base

installed_project := debian/ahven.gpr
override_dh_auto_build: $(installed_project)
$(installed_project): debian/template_ahven.gpr
	sed s/@DEB_HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/ $< > $@

override_dh_auto_build: debian/doc-base.ahven-tutorial
debian/doc-base.ahven-tutorial: debian/template_doc-base.ahven-tutorial
	sed s/@dev_pkg@/$(dev_pkg)/ $< > $@

override_dh_auto_test:
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
# Disable tests until #870323 is fixed.
#	$(MAKE) -C $(BDIR)/dynamic check LD_LIBRARY_PATH=stage/usr/lib
endif

override_dh_auto_install:
	$(MAKE) -C $(BDIR)/dynamic DESTDIR=$(CURDIR)/debian/tmp install
	$(MAKE) -C $(BDIR)/static DESTDIR=$(CURDIR)/debian/tmp install

override_dh_install:
	dh_install -p$(lib_pkg) usr/lib/libahven.so.$(VERSION) usr/lib/$(DEB_HOST_MULTIARCH)
	dh_install -p$(dev_pkg) usr/lib/libahven.a             usr/lib/$(DEB_HOST_MULTIARCH)
	dh_install -p$(dev_pkg) usr/lib/libahven.so            usr/lib/$(DEB_HOST_MULTIARCH)
	dh_install -p$(dev_pkg) usr/lib/ahven                  usr/lib/$(DEB_HOST_MULTIARCH)/ada/adalib
	dh_install -p$(dev_pkg) usr/include/ahven usr/share/ada/adainclude
	dh_install -p$(dev_pkg) $(installed_project) usr/share/gpr
	dh_missing --fail-missing

override_dh_installdocs:
	dh_installdocs -p$(dev_pkg) doc/tutorial ROADMAP
	dh_installdocs --remaining-packages

override_dh_installexamples:
	dh_installexamples -p$(dev_pkg) examples/* contrib/docbook-testreport

override_dh_installchangelogs:
	dh_installchangelogs --all NEWS

override_dh_compress:
	dh_compress -p$(dev_pkg) -X.ads -X.adb -XMakefile
	dh_compress --remaining-packages
