#!/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.]\+\)$$/     ahven_soversion:=\1          /p;\
  ' debian/control),$(eval $(line)))

doc_pkg := libahven-doc

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

conf_args := \
  GNAT_BUILDER=gprbuild \
  GNAT_BUILDER_FLAGS='$(BUILDER_OPTIONS) -Xahven_soversion=$(ahven_soversion)' \
  $(foreach v,ADAFLAGS LDFLAGS,$(v)='$($(v))')

%:
	dh ${@}

override_dh_auto_configure:
	$(MAKE) configure builddir=../obj-dynamic library_type=dynamic $(conf_args)
	$(MAKE) configure builddir=../obj-static library_type=static $(conf_args)
	$(MAKE) configure builddir=../obj-docs $(conf_args)

override_dh_auto_build-arch:
	dh_auto_build -- -C obj-dynamic
	dh_auto_build -- -C obj-static
override_dh_auto_build-indep:
ifeq (,$(filter nodoc,$(DEB_BUILD_OPTIONS)))
	SPHINXOPTS=-j$(BUILDER_JOBS) dh_auto_build -- -C obj-docs docs
endif

override_dh_auto_test-arch:
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
	LD_LIBRARY_PATH=stage/usr/local/lib dh_auto_test -- -C obj-dynamic
endif
override_dh_auto_test-indep:

override_dh_auto_install:

override_dh_auto_clean:
	rm -fr obj-dynamic obj-static obj-docs
	rm -f gnat_linux/comfignat.gpr

# Mimic 'dh --with ada-library', but without adding dh-ada-library to
# Build-Depends.
# dh_ada_library has no -aP option.
override_dh_install-arch:
	dh_install -a
	cp -f obj-dynamic/comfignat.gpr gnat_linux
	dh_ada_library OS_VERSION=unix gnat_linux/build_ahven.gpr
	rm gnat_linux/comfignat.gpr

# Mimic 'dh --with sphinxdoc', but without adding sphinx-common to
# Build-Depends for arch-only builds.
override_dh_installdocs-indep:
	dh_installdocs -i
	dh_sphinxdoc

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