#!/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-\([0-9.]\+\),$$/               gnat_version:=\1             /p;\
  s/^Package: libahven\([0-9.]\+\)$$/     ahven_soversion:=\1          /p;\
  ' debian/control),$(eval $(line)))

doc_pkg := libahven-doc

DPKG_EXPORT_BUILDFLAGS := 1
DEB_BUILD_MAINT_OPTIONS := hardening=+all
DEB_LDFLAGS_MAINT_APPEND := -Wl,--no-undefined \
  -Wl,--no-copy-dt-needed-entries -Wl,--no-allow-shlib-undefined
include /usr/share/dpkg/buildflags.mk
include $(wildcard /usr/share/ada/debian_packaging-$(gnat_version).mk)
# wildcard means: not during -indep builds.

conf_args := \
  GNAT_BUILDER=gprbuild \
  GNAT_BUILDER_FLAGS='$(BUILDER_OPTIONS) -Xahven_soversion=$(ahven_soversion)'

%:
	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:
	LD_LIBRARY_PATH=stage/usr/local/lib dh_auto_test -- -C obj-dynamic
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

override_dh_ada_library:
	ADA_PROJECT_PATH=obj-dynamic \
	dh_ada_library OS_VERSION=unix gnat_linux/build_ahven.gpr

# An explicit main package prevents a warning.
override_dh_installdocs override_dh_installexamples: override_%:
	$* --package=$(doc_pkg) --doc-main-package=$(doc_pkg)
	$* --remaining-packages
