#!/usr/bin/make -f
# -*- makefile -*-
# Build rules for the Debian package kalign

include /usr/share/dpkg/default.mk
export DEB_CFLAGS_MAINT_APPEND += -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3
export DEB_CXXFLAGS_MAINT_APPEND += -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
prefix=$(CURDIR)/debian/$(DEB_SOURCE)/usr
libexecdir=$(prefix)/lib/$(DEB_SOURCE)

%:
	dh $@

override_dh_auto_build:
ifeq (amd64,$(DEB_HOST_ARCH))
	mkdir -p $(prefix)
	mkdir -p $(libexecdir)
	# pulled avx2 out of the loop to pass the HAVE_AVX2 flag that the source looks for
	dh_auto_configure -- CFLAGS="-DHAVE_AVX2=1 $(CFLAGS) -mavx2" &&\
		dh_auto_build
	cp src/kalign src/kalign-avx2
	cp src/timescorealn src/timescorealn-avx2
	for SIMD in avx sse4.1 ssse3 sse3 sse2 ; do \
		make clean ; \
		dh_auto_configure -- CFLAGS="$(CFLAGS) -m$${SIMD}" && \
		dh_auto_build && \
		cp src/kalign src/kalign-$${SIMD} && \
		cp src/timescorealn src/timescorealn-$${SIMD} ; \
	done
else ifeq (i386,$(DEB_HOST_ARCH))
	mkdir -p $(prefix)
	mkdir -p $(libexecdir)
	for SIMD in ssse3 sse3 sse2 sse mmx; do \
		dh_auto_configure -- CFLAGS="$(CFLAGS) -m$${SIMD}" && \
		dh_auto_build && \
		cp src/kalign src/kalign-$${SIMD} && \
		cp src/timescorealn src/timescorealn-$${SIMD} && \
		make clean ; \
	done
	dh_auto_build
	cp src/kalign src/kalign-plain && \
	cp src/timescorealn src/timescorealn-plain
else
	dh_auto_build
endif

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

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