#!/usr/bin/make -f

DH_VERBOSE := 1
export LC_ALL=C.UTF-8

include /usr/share/dpkg/default.mk
export DEB_BUILD_MAINT_OPTIONS=hardening=+all
export DEB_CFLAGS_MAINT_APPEND+=-DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3
export DEB_CXXFLAGS_MAINT_APPEND+=-DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3
export CFLAGS=$(shell dpkg-buildflags --get CFLAGS)
export CPPFLAGS=$(shell dpkg-buildflags --get CPPFLAGS)
export LDFLAGS=$(shell dpkg-buildflags --get LDFLAGS)
export CXXFLAGS=$(shell dpkg-buildflags --get CXXFLAGS)

prefix=$(CURDIR)/debian/$(DEB_SOURCE)/usr
libexecdir=$(prefix)/lib/$(DEB_SOURCE)

%:
	dh $@

override_dh_autoreconf:
	dh_autoreconf --sourcedirectory=$(CURDIR)/deps/vowpal_wabbit


override_dh_clean:
	rm -Rf ./deps/DYNAMIC/build/CMakeFiles
	dh_clean

override_dh_auto_clean:
	mv include/vg_git_version.hpp debian/
	rm -Rf include/*
	mv debian/vg_git_version.hpp include/
	dh_auto_clean || true

override_dh_auto_build-arch:
	mkdir -p $(CURDIR)/debian/help
ifneq (,$(filter $(DEB_HOST_ARCH),amd64 i386))
	mkdir -p $(prefix)
	mkdir -p $(libexecdir)
	for SIMD in avx2 avx sse4.1 ssse3 sse3 ; do \
		export CXXFLAGS="$(CXXFLAGS) -m$${SIMD}" && export CFLAGS="$(CFLAGS) -m$${SIMD}" && \
		make clean ; \
		dh_auto_build -- SFX=-$${SIMD} all test/build_graph bin/shuf ; \
	done
	CXXFLAGS="$(CXXFLAGS)" CFLAGS="$(CFLAGS)" dh_auto_build -- SFX=-plain all test/build_graph bin/shuf
	cp bin/vg-plain debian/help/vg
ifeq (i386,$(DEB_HOST_ARCH))
	for SIMD in sse2 sse ; do \
		export CXXFLAGS="$(CXXFLAGS) -m$${SIMD}" && export CFLAGS="$(CFLAGS) -m$${SIMD}" && \
		make clean ; \
		dh_auto_build -- SFX=-$${SIMD} ; \
	done
endif
else
	dh_auto_build -- all test/build_graph bin/shuf
	cp bin/vg debian/help/
endif
ifeq (,$(filter nodoc,$(DEB_BUILD_PROFILES)))
	PATH=$$PATH:$(CURDIR)/debian/help help2man --no-discard-stderr --no-info --help-option=help --version-option=version vg > debian/vg.1
endif

override_dh_auto_test-arch:
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
ifneq (,$(filter $(DEB_HOST_ARCH),amd64 i386))
	set +e ; for BIN in bin/vg-* ; do \
	  echo Testing $${BIN} && cp $${BIN} debian/help/vg && \
	  export PATH=$$PATH:$(CURDIR)/debian/help && . ./source_me.sh && cd test && prove -v t && cd .. ; \
	done ; set -e
else
	export PATH=$$PATH:$(CURDIR)/debian/help && . ./source_me.sh && cd test && prove -v t
endif
endif

override_dh_auto_test-indep:
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
	echo No arch independent tests
endif

override_dh_auto_build-indep:
ifeq (,$(filter nodoc,$(DEB_BUILD_PROFILES)))
	dh_auto_build -- docs
endif

override_dh_auto_install-arch:
ifneq (,$(filter $(DEB_HOST_ARCH),amd64 i386))
	dh_install debian/bin/simd-dispatch /usr/lib/$(DEB_SOURCE)/
	dh_install bin/vg* usr/lib/$(DEB_SOURCE)/
	mkdir -p $(prefix)/bin
	cd $(prefix)/bin \
		&& for prog in vg ; do \
		ln -s ../lib/$(DEB_SOURCE)/simd-dispatch $${prog} ; done
else
	dh_install bin/vg usr/bin/
endif

override_dh_auto_install-indep:

override_dh_gencontrol:
	dh_gencontrol -- -Vsimde:Built-Using="$(shell dpkg-query -f '$${source:Package} (= $${source:Version}), ' -W "libsimde-dev")"
