#!/usr/bin/make -f

export DEB_BUILD_MAINT_OPTIONS = hardening=+all

include /usr/share/dpkg/architecture.mk
include /usr/share/mpi-default-dev/debian_defaults

ifeq ($(ARCH_DEFAULT_MPI_IMPL),openmpi)
OPENMPI=yes
else
OPENMPI=no
endif

OMPT_ARCHS = amd64 arm64 i386 ppc64el riscv64

CONFIGURE_ENV=
CONFIGURE=-DEZTRACE_ENABLE_MPI=ON \
	  -DEZTRACE_ENABLE_MEMORY=ON \
	  -DEZTRACE_ENABLE_OPENMP=ON \
	  -DCMAKE_INSTALL_INCLUDEDIR=/usr/include/$(DEB_HOST_MULTIARCH)

%:
	dh $@

override_dh_auto_configure:
	$(CONFIGURE_ENV) dh_auto_configure -Bbuild-mpich -- $(CONFIGURE) -DMPICC=/usr/bin/mpicc.mpich -DMPIF90=/usr/bin/mpif90.mpich -DMPI_MODULE_NAME=mpich
ifeq ($(OPENMPI),yes)
	$(CONFIGURE_ENV) dh_auto_configure -Bbuild-openmpi -- $(CONFIGURE) -DMPICC=/usr/bin/mpicc.openmpi -DMPIF90=/usr/bin/mpif90.openmpi -DMPI_MODULE_NAME=openmpi
endif
ifneq ($(filter $(DEB_HOST_ARCH),$(OMPT_ARCHS)),)
	$(CONFIGURE_ENV) CC=clang dh_auto_configure -Bbuild-ompt -- -DEZTRACE_ENABLE_OMPT=ON
endif

override_dh_auto_build:
	dh_auto_build -Bbuild-mpich
ifeq ($(OPENMPI),yes)
	dh_auto_build -Bbuild-openmpi
endif
ifneq ($(filter $(DEB_HOST_ARCH),$(OMPT_ARCHS)),)
	dh_auto_build -Bbuild-ompt
endif

override_dh_auto_clean:
	dh_auto_clean -Bbuild-mpich
ifeq ($(OPENMPI),yes)
	dh_auto_clean -Bbuild-openmpi
endif
ifneq ($(filter $(DEB_HOST_ARCH),$(OMPT_ARCHS)),)
	dh_auto_clean -Bbuild-ompt
endif

override_dh_auto_install:
	dh_auto_install -Bbuild-mpich
ifeq ($(OPENMPI),yes)
	dh_auto_install -Bbuild-openmpi -- -C src/modules/mpi
endif
ifneq ($(filter $(DEB_HOST_ARCH),$(OMPT_ARCHS)),)
	dh_auto_install -Bbuild-ompt -- -C src/modules/ompt
endif

export EZTRACE_LIBRARY_PATH=../../src/modules/mpi:../../src/modules/memory:../../src/modules/ompt:../../src/modules/omp
override_dh_auto_test:
	MPI_MODULE_NAME=mpich EZTRACE_ABS_TOP_BUILDDIR=$(CURDIR)/build-mpich/ dh_auto_test --no-parallel -Bbuild-mpich -- -k
ifeq ($(OPENMPI),yes)
	MPI_MODULE_NAME=openmpi EZTRACE_ABS_TOP_BUILDDIR=$(CURDIR)/build-openmpi/ dh_auto_test --no-parallel -Bbuild-openmpi -- -k
endif
ifneq ($(filter $(DEB_HOST_ARCH),$(OMPT_ARCHS)),)
	EZTRACE_ABS_TOP_BUILDDIR=$(CURDIR)/build-ompt/ dh_auto_test --no-parallel -Bbuild-ompt -- -k
endif

override_dh_dwz:
	:
