#!/usr/bin/make -f

# export DH_VERBOSE=1

export DEB_BUILD_MAINT_OPTIONS = hardening=+all
export LIBS="pthread"

## Memory consumption issues on some autobuilders have been causing
## build failures.  There are two ways to address such issues:
## (a) reduce parallelism, e.g., dh $@ --max-parallel=2
## (b) reduce GCC memory usage, e.g., g++ --param ggc-min-expand=20 to
## reduce abrupt memory spikes, and g++ -g0 to skip debugging info.

## These issues have occurred post-2.1.x in two places: Ubuntu
## Launchpad, and some particular Debian architectures including
## armhf, mips, mipsel, m68k, kfreebsd-amd64, kfreebsd-i386.

## For that reason, I am activating all of the above space-reduction
## mechanisms on Ubuntu, all 32-bit architectures, and all kfreebsd
## systems. And I am setting the build to single threaded on all
## architectures.

ifeq ($(shell dpkg-vendor --derives-from Ubuntu && echo yes),yes)
SAVE_SPACE=yes
endif

ifeq ($(shell dpkg-architecture --query DEB_BUILD_ARCH_BITS),32)
SAVE_SPACE=yes
endif

ifeq ($(shell dpkg-architecture --query DEB_BUILD_ARCH_OS),kfreebsd)
SAVE_SPACE=yes
endif

ifeq ($(SAVE_SPACE),yes)
ifneq (, $(filter $(shell dpkg-architecture -qDEB_HOST_ARCH_CPU),mips mipsel))
	export DEB_CXXFLAGS_MAINT_APPEND = --param ggc-min-expand=5 -g0
else
	export DEB_CXXFLAGS_MAINT_APPEND = --param ggc-min-expand=20 -g0
endif
endif

DH_FLAGS += --max-parallel=1

%:
	dh $@ ${DH_FLAGS}

override_dh_auto_configure:
	dh_auto_configure -- -DCMAKE_LIBRARY_PATH=$(DEB_HOST_MULTIARCH)

override_dh_auto_build:
	dh_auto_build
	@echo building PDF reference manual
	cd obj-*/doc/latex && \
	 latexmk --pdf refman.tex

override_dh_auto_test:
	@echo do not ask do not tell do not test

override_dh_install:
	dh_install
	@echo use shared jquery.js javascript library
	for f in $$(find debian/mlpack-doc -name jquery.js); do \
	  ln --verbose --symbolic --force /usr/share/javascript/jquery/jquery.js $$f; \
	done

override_dh_installdocs:
	dh_installdocs -pmlpack-doc --doc-main-package libmlpack-dev
	dh_installdocs -Nmlpack-doc

override_dh_installexamples:
	dh_installexamples -pmlpack-doc --doc-main-package libmlpack-dev
	dh_installexamples -Nmlpack-doc
	@echo Search and destroy stray VCS support file
	find debian/mlpack-doc -name .gitignore -ls -delete || true

override_dh_installchangelogs:
	dh_installchangelogs HISTORY.md

override_dh_installexamples:
	dh_installexamples
	@echo Remove empty directory
	-rmdir debian/mlpack-doc/usr/share/doc/libmlpack-dev/examples/sample-ml-app/sample-ml-app/data/
	@echo Remove stray VCS file
	-find debian/mlpack-doc -name .gitignore -print -delete

override_dh_compress:
	dh_compress -Xrefman.pdf -Xdoc/html/
