#!/usr/bin/make -f

export DH_VERBOSE=1

export DEB_BUILD_MAINT_OPTIONS = hardening=+all future=+lfs

include /usr/share/dpkg/pkg-info.mk
ver := $(DEB_VERSION_UPSTREAM)
ver_major := $(firstword $(subst ., ,$(ver)))

export DEB_CFLAGS_MAINT_APPEND = -Wall -fPIE -D__NO_STRING_INLINES
export DEB_LDFLAGS_MAINT_APPEND = -fPIE -pie

# Backup and restore mutable files to ensure idempotent builds.
MUTABLE_FILE_LIST := debian/mutable
BACKUP_TAR_FILE := debian/backup.tar

TEMPLATED_FILES := $(basename $(wildcard debian/*.in))
SED_RULES := \
	-e 's/@DEB_HOST_ARCH@/$(DEB_HOST_ARCH)/g' \
	-e 's/@DEB_HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/g'

%:
	dh $@

override_dh_update_autotools_config:
	dh_update_autotools_config
	test -f $(BACKUP_TAR_FILE) || \
		tar cpf $(BACKUP_TAR_FILE) -T $(MUTABLE_FILE_LIST)

override_dh_clean:
	dh_clean $(TEMPLATED_FILES)
	test ! -f $(BACKUP_TAR_FILE) || \
		tar xpf $(BACKUP_TAR_FILE) && rm -f $(BACKUP_TAR_FILE)

override_dh_auto_configure:
	dh_auto_configure -- --enable-threads --enable-shlib

override_dh_auto_build:
	dh_auto_build
	cd docs && $(MAKE) dmalloc.info \
			&& makeinfo --html --no-split dmalloc.texi \
			&& texi2pdf dmalloc.texi

override_dh_auto_test:
ifeq (,$(findstring nocheck,$(DEB_BUILD_OPTIONS) $(DEB_BUILD_MAINT_OPTIONS)))
	$(MAKE) heavy
else
	@echo "*** Tests disabled via DEB_BUILD(_MAINT)?_OPTIONS. ***"
endif

override_dh_auto_install:
	$(MAKE) install prefix=$(CURDIR)/debian/tmp/usr \
		exec_prefix=\$${prefix}/lib/$(DEB_HOST_MULTIARCH)/dmalloc

LP := usr/lib/$(DEB_HOST_MULTIARCH)

override_dh_link:
	dh_link -plibdmalloc5 \
		$(LP)/libdmalloc.so.$(ver) $(LP)/libdmalloc.so.$(ver_major) \
		$(LP)/libdmallocth.so.$(ver) $(LP)/libdmallocth.so.$(ver_major) \
		$(LP)/libdmalloccxx.so.$(ver) $(LP)/libdmalloccxx.so.$(ver_major) \
		$(LP)/libdmallocthcxx.so.$(ver) $(LP)/libdmallocthcxx.so.$(ver_major)
	dh_link -plibdmalloc-dev \
		$(LP)/libdmalloc.so.$(ver) $(LP)/libdmalloc.so \
		$(LP)/libdmallocth.so.$(ver) $(LP)/libdmallocth.so \
		$(LP)/libdmalloccxx.so.$(ver) $(LP)/libdmalloccxx.so \
		$(LP)/libdmallocthcxx.so.$(ver) $(LP)/libdmallocthcxx.so

override_dh_install: $(TEMPLATED_FILES)
	dh_install

override_dh_installchangelogs:
	dh_installchangelogs ChangeLog.1

override_dh_compress:
	dh_compress -Xusr/share/doc/libdmalloc-dev/examples

override_dh_makeshlibs:
	ln -sf libdmalloc5.symbols.cxx.$(DEB_HOST_ARCH_BITS)bit \
		debian/libdmalloc5.symbols.cxx
	dh_makeshlibs

$(TEMPLATED_FILES): %: %.in
	sed $(SED_RULES) $< > $@
