#!/usr/bin/make -f

CFLAGS=-g -O2

DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
export DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)

include /usr/share/mpi-default-dev/debian_defaults

empty :=
space := $(empty)$(empty)

ifneq (,$(findstring $(space)$(DEB_HOST_ARCH)$(space), $(space)$(OPENMPI_AVAILABLE_ARCHITECTURES)$(space)))
  MPI_SUPPORTED = openmpi
endif
ifneq (,$(findstring $(space)$(DEB_HOST_ARCH)$(space), $(space)$(MPICH_AVAILABLE_ARCHITECTURES)$(space)))
  MPI_SUPPORTED += mpich
endif

%:
	dh $@ --with autoreconf

execute_after_dh_clean:
	rm -rf $(CURDIR)/pristine-src $(CURDIR)/build-mpich $(CURDIR)/build-openmpi

override_dh_auto_configure:
	for mpi_flavor in $(MPI_SUPPORTED); do \
		MPICC=mpicc.$${mpi_flavor} \
		MPICXX=mpicxx.$${mpi_flavor} \
		MPIF77=mpif77.$${mpi_flavor} \
		MPIFC=mpifort.$${mpi_flavor} \
		MPIF90=mpif90.$${mpi_flavor} \
		LDFLAGS="$${LDFLAGS} -pthread" \
		MPIEXEC="mpiexec.$${mpi_flavor} -np %NP%" \
		dh_auto_configure --builddirectory=$(CURDIR)/build-$${mpi_flavor} -- \
		--enable-cxx 				\
		--with-tcgmsg				\
		--with-scalapack="-lscalapack-$${mpi_flavor}" \
		--with-blas4=-lblas			\
		--with-lapack=-llapack			\
		--with-mpi				\
		--with-armci=-larmci-$${mpi_flavor}	\
		MPI_FLAVOR=$${mpi_flavor};		\
	done

override_dh_auto_build:
	for mpi_flavor in $(MPI_SUPPORTED); do \
	  dh_auto_build --builddirectory=$(CURDIR)/build-$${mpi_flavor}; \
	done

override_dh_auto_install:
	for mpi_flavor in $(MPI_SUPPORTED); do \
	  dh_auto_install --builddirectory=$(CURDIR)/build-$${mpi_flavor} --destdir=$(CURDIR)/debian/tmp; \
	done
	rm -f $(CURDIR)/debian/tmp/usr/include/error.h
	rm -f $(CURDIR)/debian/tmp/usr/include/memcpy.h
	rm -f $(CURDIR)/debian/tmp/usr/include/scope.h
	rm -f $(CURDIR)/debian/tmp/usr/include/string-util.h
	rm -f $(CURDIR)/debian/tmp/usr/include/table.h

ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
override_dh_auto_test:
	-for mpi_flavor in $(MPI_SUPPORTED); do \
		dh_auto_test --builddirectory=$(CURDIR)/build-$${mpi_flavor} -- -j1 -k ARMCI_USE_WIN_ALLOCATE=1 MPIEXEC="mpiexec.$${mpi_flavor} -np 4"; \
	done
endif

override_dh_link:
	dh_link -plibglobalarrays-dev usr/lib/$(DEB_HOST_MULTIARCH)/libga-$(ARCH_DEFAULT_MPI_IMPL).a usr/lib/$(DEB_HOST_MULTIARCH)/libga.a
	dh_link -plibglobalarrays-dev usr/lib/$(DEB_HOST_MULTIARCH)/libga++-$(ARCH_DEFAULT_MPI_IMPL).a usr/lib/$(DEB_HOST_MULTIARCH)/libga++.a
	dh_link -plibglobalarrays-dev usr/lib/$(DEB_HOST_MULTIARCH)/ga/$(ARCH_DEFAULT_MPI_IMPL)/bin/ga-config  usr/bin/ga-config
