#!/usr/bin/make -f

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

COMPILER_FAMILY := intel
export COMPILER_FAMILY
PNAME           := superlu
VERSION         := 7.0.1
INSTALL_PATH    := /opt/ohpc/pub/libs/$(COMPILER_FAMILY)/$(PNAME)/$(VERSION)
SRCDIR          := $(CURDIR)/$(PNAME)-$(VERSION)
PKG             := $(CURDIR)/debian/$(PNAME)-$(COMPILER_FAMILY)-ohpc
ENV             := OHPC_MODULES="openblas" bash /build/devel/build-comp.sh

%:
	dh $@

override_dh_auto_configure:
	test -s SOURCES/v$(VERSION).tar.gz || \
		wget -q -O SOURCES/v$(VERSION).tar.gz \
			https://github.com/xiaoyeli/superlu/archive/refs/tags/v$(VERSION).tar.gz
	rm -rf $(SRCDIR)
	tar xf SOURCES/v$(VERSION).tar.gz
	cd $(SRCDIR) && patch -p1 < $(CURDIR)/SOURCES/superlu-4.3-include.patch || true
	cd $(SRCDIR) && patch -p1 < $(CURDIR)/SOURCES/superlu-5.1-disable-hsl.patch || true

override_dh_auto_build:
	cd $(SRCDIR) && $(ENV) sh -c ' \
		DEFAULT_OPTS="$${CFLAGS} -Wno-implicit-int -Wno-implicit-function-declaration -fPIC -DPIC" && \
		cmake -S . -B build -DCMAKE_INSTALL_PREFIX=./build -DCMAKE_C_FLAGS="$${DEFAULT_OPTS}" && \
		cmake --build build --target superlu && \
		mkdir -p tmp lib && \
		(cd tmp && ar -x ../build/SRC/libsuperlu.a) && \
		$$FC -shared -Wl,-soname,libsuperlu.so.7 -o lib/libsuperlu.so tmp/*.o -L$${OPENBLAS_LIB} -lopenblas \
	'

override_dh_auto_install:
	mkdir -p $(PKG)$(INSTALL_PATH)/lib
	mkdir -p $(PKG)$(INSTALL_PATH)/include
	install -m 644 $(SRCDIR)/SRC/*.h $(PKG)$(INSTALL_PATH)/include/
	install -m 755 $(SRCDIR)/lib/libsuperlu.so $(PKG)$(INSTALL_PATH)/lib/libsuperlu.so.$(VERSION)
	cd $(PKG)$(INSTALL_PATH)/lib && \
		ln -s libsuperlu.so.$(VERSION) libsuperlu.so.7 && \
		ln -s libsuperlu.so.7 libsuperlu.so
	# Install modulefile
	mkdir -p $(PKG)/opt/ohpc/pub/moduledeps/$(COMPILER_FAMILY)/$(PNAME)
	install -m 644 debian/modulefile $(PKG)/opt/ohpc/pub/moduledeps/$(COMPILER_FAMILY)/$(PNAME)/$(VERSION)

override_dh_auto_clean:
	rm -rf $(SRCDIR)

override_dh_usrlocal:

override_dh_shlibdeps:
	dh_shlibdeps -l$(PKG)$(INSTALL_PATH)/lib:/opt/ohpc/pub/libs/$(COMPILER_FAMILY)/openblas/0.3.32/lib -- --ignore-missing-info || true

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

override_dh_auto_test:
