#!/usr/bin/make -f
export DEB_BUILD_MAINT_OPTIONS = hardening=+all reproducible=+all future=+lfs
export DEB_CFLAGS_MAINT_APPEND = -DNDEBUG

include /usr/share/dpkg/architecture.mk
include /usr/share/dpkg/pkg-info.mk

BUILD_TESTING = $(if $(filter nocheck,$(DEB_BUILD_OPTIONS)),OFF,ON)
BUILD_DOCS = $(if $(filter nodoc,$(DEB_BUILD_OPTIONS)),OFF,ON)

DDS_PLUGINS_DIR = lib/$(DEB_HOST_MULTIARCH)/libddsc0

# TODO: compile-time check would be better than this hardcoded architecture list
LINK_LIBATOMIC = $(if $(filter s390x,$(DEB_HOST_ARCH)),ON,OFF)

%:
	dh $@ --buildsystem=cmake

override_dh_auto_configure:
	dh_auto_configure --buildsystem=cmake -- \
		-DCMAKE_SKIP_RPATH=ON \
		-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON \
		-DBUILD_DOCS=$(BUILD_DOCS) \
		-DBUILD_TESTING=OFF \
		-DBUILD_EXAMPLES=$(BUILD_DOCS) \
		-DBUILD_IDLC=ON \
		-DENABLE_TYPE_DISCOVERY=ON \
		-DENABLE_TOPIC_DISCOVERY=ON \
		-DCMAKE_C_VISIBILITY_PRESET=hidden \
		-DDDS_PLUGINS_DIR=$(DDS_PLUGINS_DIR) \
		-DDEB_LINK_LIBATOMIC=$(LINK_LIBATOMIC)

# Inject LD_LIBRARY_PATH on selected targets so we do not need RPATHs
override_dh_auto_build:
	env LD_LIBRARY_PATH=$(CURDIR)/obj-$(DEB_HOST_GNU_TYPE)/lib \
		dh_auto_build

# Disable flaky and long-running test suite
override_dh_auto_test:
#	cd obj-$(DEB_HOST_GNU_TYPE) && \
#	env LD_LIBRARY_PATH=$(CURDIR)/obj-$(DEB_HOST_GNU_TYPE)/lib \
#		ctest --force-new-ctest-process -j1

doc_dir = debian/tmp/usr/share/doc/CycloneDDS
execute_after_dh_auto_install:
ifeq (,$(filter nodoc,$(DEB_BUILD_OPTIONS)))
	mv $(doc_dir)/manual/docs $(doc_dir)/manual/html
endif

# Ignore plugins when generating the symbols file
override_dh_makeshlibs:
	dh_makeshlibs -X/$(DDS_PLUGINS_DIR)/

execute_before_dh_installman: debian/ddsconf.1 debian/ddsperf.1 debian/idlc.1 debian/pubsub.1
	true

override_dh_installdocs:
	dh_installdocs -pcyclonedds-doc --doc-main-package=cyclonedds-dev
	dh_installdocs -Ncyclonedds-doc

cyclonedds_doc_dir = debian/cyclonedds-doc/usr/share/doc/cyclonedds-dev
execute_after_dh_sphinxdoc-indep:
ifeq (,$(filter nodoc,$(DEB_BUILD_OPTIONS)))
	# Reuse _static files from main documentation
	rm -r $(cyclonedds_doc_dir)/examples/html/_static
	ln -s ../../html/_static $(cyclonedds_doc_dir)/examples/html/_static
endif

%.1: %.1.in
	sed -e 's/@VERSION@/$(DEB_VERSION_UPSTREAM)/g' $< > $@
