#!/usr/bin/make -f

# export DH_VERBOSE=1

DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)

# Version numbers
EX_SO_MAJOR=5
EX_SO_MINOR=14
EX_SO_PATCH=0
EX_SONAME:=libexoIIv2c.so.$(EX_SO_MAJOR)
EX_SONAME_FULL=$(EX_SONAME).$(EX_SO_MINOR).$(EX_SO_PATCH)
NE_SO_MAJOR=3
NE_SO_MINOR=09
NE_SO_PATCH=0
NE_SONAME=libnemesis.so.$(NE_SO_MAJOR)
NE_SONAME_FULL=$(NE_SONAME).$(NE_SO_MINOR).$(NE_SO_PATCH)

TOPDIR=$(shell pwd)
PKGDIR=debian/libexodusii-dev
PREFIX=$(TOPDIR)/debian/tmp/usr
LIBDIR=/usr/lib/$(DEB_HOST_MULTIARCH)

# Magic debhelper rule
%:
	dh $@ --buildsystem cmake --sourcedirectory=exodus

# Workaround to cmake ignoring CPPFLAGS; needed for hardening
CFLAGS=$(shell  dpkg-buildflags --get CFLAGS) $(shell  dpkg-buildflags --get CPPFLAGS)
LDFLAGS=$(shell  dpkg-buildflags --get LDFLAGS) 

override_dh_auto_clean:
	dh_auto_clean
	rm -rf *build exodusii

override_dh_auto_build:
	dh_auto_build
	# Shared build.
	mkdir -p exodus-shared-build
	( cd exodus-shared-build && \
		cmake ../exodus -DCMAKE_INSTALL_PREFIX=$(PREFIX)  \
			-DBUILD_SHARED_LIBS=TRUE -DCMAKE_SHARED_LINKER_FLAGS="-Wl,-z,relro -Wl,--as-needed"  && \
		$(MAKE))
	mkdir -p exodus-static-build
	( cd exodus-static-build && \
		cmake ../exodus -DCMAKE_INSTALL_PREFIX=$(PREFIX)  \
			-DBUILD_SHARED_LIBS=FALSE && $(MAKE) )
	# Then build nemesis
	ln -sf exodus exodusii
	mkdir -p nemesis-static-build
	(cd nemesis-static-build && \
		cmake ../nemesis -DEXODUS_LIBRARY=$(TOPDIR)/exodus-shared-build/cbind/$(EX_SONAME_FULL)  && \
		$(MAKE))
	mkdir -p nemesis-shared-build
	( cd nemesis-shared-build && \
		cmake ../nemesis  -DEXODUS_LIBRARY=$(TOPDIR)/exodus-shared-build/cbind/$(EX_SONAME_FULL) \
			 -DBUILD_SHARED_LIBS=TRUE -DCMAKE_SHARED_LINKER_FLAGS="-Wl,-z,relro -Wl,--as-needed" && \
		$(MAKE) )	

override_dh_auto_install:
	$(MAKE) -C exodus-shared-build install
	dh_auto_install
	dh_install -p libexodusii-dev nemesis-static-build/libnemesis.a $(LIBDIR)
	dh_install -p libexodusii-dev usr/lib/libexoIIv2c.a $(LIBDIR)
	dh_install -p libexodusii-dev usr/lib/libexoIIv2for.a $(LIBDIR)
	dh_install -p libexodusii5  exodus-shared-build/cbind/$(EX_SONAME_FULL) $(LIBDIR)
	dh_install -p libnemesis3  nemesis-shared-build/$(NE_SONAME_FULL) $(LIBDIR)
	chrpath -d debian/libnemesis3/$(LIBDIR)/$(NE_SONAME_FULL)
	chrpath -d debian/libexodusii5/$(LIBDIR)/$(EX_SONAME_FULL)
	dh_link -p libexodusii5 $(LIBDIR)/$(EX_SONAME_FULL) $(LIBDIR)/$(EX_SONAME).$(EX_SO_MINOR)
	dh_link -p libexodusii5 $(LIBDIR)/$(EX_SONAME_FULL) $(LIBDIR)/$(EX_SONAME)
	dh_link -p libnemesis3  $(LIBDIR)/$(NE_SONAME_FULL) $(LIBDIR)/$(NE_SONAME).$(NE_SO_MINOR)
	dh_link -p libnemesis3  $(LIBDIR)/$(NE_SONAME_FULL) $(LIBDIR)/$(NE_SONAME)
	dh_link -p libexodusii-dev $(LIBDIR)/$(EX_SONAME_FULL) $(LIBDIR)/libexoIIv2.so
	dh_link -p libexodusii-dev $(LIBDIR)/$(NE_SONAME_FULL) $(LIBDIR)/libnemesis.so
