#!/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      := mvapich2
export MPI_FAMILY
PNAME           := slepc
VERSION         := 3.24.3
INSTALL_PATH    := /opt/ohpc/pub/libs/$(COMPILER_FAMILY)/$(MPI_FAMILY)/$(PNAME)/$(VERSION)
PETSC_LIBDIR    := /opt/ohpc/pub/libs/$(COMPILER_FAMILY)/$(MPI_FAMILY)/petsc/3.24.4/lib
SRCDIR          := $(CURDIR)/$(PNAME)-$(VERSION)
PKG             := $(CURDIR)/debian/$(PNAME)-$(COMPILER_FAMILY)-$(MPI_FAMILY)-ohpc
ENV             := OHPC_MODULES="openblas petsc" bash /build/devel/build-mpi.sh

%:
	dh $@

override_dh_auto_configure:
	test -s SOURCES/$(PNAME)-$(VERSION).tar.gz || \
		wget -q -O SOURCES/$(PNAME)-$(VERSION).tar.gz \
			http://slepc.upv.es/download/distrib/$(PNAME)-$(VERSION).tar.gz
	rm -rf $(SRCDIR)
	tar xf SOURCES/$(PNAME)-$(VERSION).tar.gz

override_dh_auto_build:
	cd $(SRCDIR) && $(ENV) bash -c '\
		export PETSC_DIR=$$PETSC_DIR && \
		python3 ./configure --prefix=/tmp$(INSTALL_PATH) && \
		make SLEPC_DIR=$$(pwd) PETSC_DIR=$$PETSC_DIR -j$$(nproc)'

override_dh_auto_install:
	cd $(SRCDIR) && $(ENV) bash -c '\
		export PETSC_DIR=$$PETSC_DIR && \
		make SLEPC_DIR=$$(pwd) PETSC_DIR=$$PETSC_DIR DESTDIR=$(PKG) install'
	# Move from /tmp prefix to proper location
	mkdir -p $(shell dirname $(PKG)$(INSTALL_PATH))
	mv $(PKG)/tmp$(INSTALL_PATH) $(PKG)$(INSTALL_PATH)
	rm -rf $(PKG)/tmp
	# Clean up /tmp prefix references in installed files
	find $(PKG)$(INSTALL_PATH) -type f ! -name '*.so*' -exec \
		grep -l '/tmp' {} \; 2>/dev/null | while read f; do \
		sed -i 's|/tmp||g' "$$f"; \
	done || true
	# 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:$(PETSC_LIBDIR) -- --ignore-missing-info

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

override_dh_auto_test:
