#!/usr/bin/make -f

export DEB_BUILD_MAINT_OPTIONS = hardening=-all
export CFLAGS =
export CXXFLAGS =
export LDFLAGS =

COMPILER_FAMILY := intel
export COMPILER_FAMILY
MPI_FAMILY      := mpich
PNAME           := mumps
VERSION         := 5.8.2
INSTALL_PATH    := /opt/ohpc/pub/libs/$(COMPILER_FAMILY)/$(MPI_FAMILY)/$(PNAME)/$(VERSION)
OPENBLAS_LIBDIR := /opt/ohpc/pub/libs/$(COMPILER_FAMILY)/openblas/0.3.32/lib
SCALAPACK_LIBDIR := /opt/ohpc/pub/libs/$(COMPILER_FAMILY)/$(MPI_FAMILY)/scalapack/2.2.2/lib
SRCDIR          := $(CURDIR)/MUMPS_$(VERSION)
PKG             := $(CURDIR)/debian/$(PNAME)-$(COMPILER_FAMILY)-$(MPI_FAMILY)-ohpc
ENV             := OHPC_MODULES="openblas scalapack" bash /build/devel/build-mpi.sh

%:
	dh $@

override_dh_auto_configure:
	test -s SOURCES/MUMPS_$(VERSION).tar.gz || \
		wget -q -O SOURCES/MUMPS_$(VERSION).tar.gz \
			http://mumps-solver.org/MUMPS_$(VERSION).tar.gz
	rm -rf $(SRCDIR)
	tar xf SOURCES/MUMPS_$(VERSION).tar.gz
	cp -f SOURCES/Makefile.gnu.inc $(SRCDIR)/Makefile.inc
	# Remove example builds (C examples fail with Intel due to for_main.o conflict)
	sed -i '/cd examples/d' $(SRCDIR)/Makefile

override_dh_auto_build:
	cd $(SRCDIR) && $(ENV) bash -c '\
		export LIBS="-L$$MPI_DIR/lib -lmpi_mpifh -lmpi" && \
		export FCFLAGS="-fPIC" && \
		export CFLAGS="-fPIC" && \
		make MUMPS_MPI=openmpi \
			FC=mpif77 CC=mpicc \
			MUMPS_LIBF77="$$LIBS" \
			OPTC="$$CFLAGS" OPTF="$$FCFLAGS" \
			allshared -j$$(nproc)'

override_dh_auto_install:
	mkdir -p $(PKG)$(INSTALL_PATH)/lib
	mkdir -p $(PKG)$(INSTALL_PATH)/include
	mkdir -p $(PKG)$(INSTALL_PATH)/etc
	# Move PORD shared libs into lib/ and remove sort binaries
	cd $(SRCDIR) && rm -vf PORD/lib/sort* && \
		mv -v PORD/lib/*so* lib/. && \
		mv -v PORD/include/* include/.
	install -m 755 $(SRCDIR)/lib/*so* $(PKG)$(INSTALL_PATH)/lib
	install -m 644 $(SRCDIR)/include/* $(PKG)$(INSTALL_PATH)/include
	install -m 644 $(SRCDIR)/Makefile.inc $(PKG)$(INSTALL_PATH)/etc
	# Install modulefile
	mkdir -p $(PKG)/opt/ohpc/pub/moduledeps/$(COMPILER_FAMILY)-$(MPI_FAMILY)/$(PNAME)
	install -m 644 debian/modulefile $(PKG)/opt/ohpc/pub/moduledeps/$(COMPILER_FAMILY)-$(MPI_FAMILY)/$(PNAME)/$(VERSION)

override_dh_auto_clean:
	rm -rf $(SRCDIR)

override_dh_usrlocal:

override_dh_shlibdeps:
	dh_shlibdeps -l$(PKG)$(INSTALL_PATH)/lib:$(OPENBLAS_LIBDIR):$(SCALAPACK_LIBDIR) -- --ignore-missing-info

override_dh_strip:
	dh_strip --no-automatic-dbgsym || true

override_dh_auto_test:
