#!/usr/bin/make -f

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

PNAME        := paraver
VERSION      := 4.12.0
DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
INSTALL_PATH := /opt/ohpc/pub/libs/paraver/$(VERSION)
PARAVER_KERNEL_LIBDIR := $(PKG)$(INSTALL_PATH)/lib/paraver-kernel
SRCDIR       := $(CURDIR)/wxparaver-$(VERSION)
PKG          := $(CURDIR)/debian/$(PNAME)-ohpc

%:
	dh $@

override_dh_auto_configure:
	test -s SOURCES/wxparaver-$(VERSION)-src.tar.bz2 || \
		wget -q -O SOURCES/wxparaver-$(VERSION)-src.tar.bz2 \
			https://ftp.tools.bsc.es/wxparaver/wxparaver-$(VERSION)-src.tar.bz2
	rm -rf $(SRCDIR)
	tar xf SOURCES/wxparaver-$(VERSION)-src.tar.bz2
	cd $(SRCDIR) && ./configure --prefix=$(INSTALL_PATH) \
		--with-boost-libdir=/usr/lib/$(DEB_HOST_MULTIARCH)

override_dh_auto_build:
	# Build kernel first (serial to ensure ordering), install to staging dir
	cd $(SRCDIR) && $(MAKE) -C src/paraver-kernel -j$$(nproc)
	cd $(SRCDIR) && $(MAKE) -C src/paraver-kernel DESTDIR=$(CURDIR)/staging install
	# Now build everything with staging headers accessible
	cd $(SRCDIR) && $(MAKE) -j$$(nproc) \
		CPPFLAGS="-I$(CURDIR)/staging$(INSTALL_PATH)/include -I$(CURDIR)/staging$(INSTALL_PATH)/include/pcfparser" \
		LDFLAGS="-L$(CURDIR)/staging$(INSTALL_PATH)/lib -L$(CURDIR)/staging$(INSTALL_PATH)/lib/paraver-kernel"

override_dh_auto_install:
	cd $(SRCDIR) && $(MAKE) DESTDIR=$(PKG) install
	find $(PKG) -name '*.la' -delete
	# Install modulefile
	mkdir -p $(PKG)/opt/ohpc/pub/modulefiles/paraver
	install -m 644 debian/modulefile $(PKG)/opt/ohpc/pub/modulefiles/paraver/$(VERSION)

override_dh_auto_clean:
	rm -rf $(SRCDIR)

override_dh_usrlocal:

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

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

override_dh_auto_test:
