#!/usr/bin/make -f

PVM_ARCH=$(shell debian/getpvmarch)
# upstream version
include /usr/share/dpkg/default.mk
version=$(shell dpkg-parsechangelog --show-field=Version | cut -d'-' -f1)
# Version from SONAME (.so.3 => 3)
# deliberately hard-coded - if this changes we definitely want to know about it
soversion=3

# yes, I know this will define RSHCOMMAND twice and generate a warning.
# I'm not modifying gcc. -dld
#
export DEB_CPPFLAGS_MAINT_APPEND=-DRSHCOMMAND=\\\"/usr/lib/pvm3/bin/rsh\\\" -DPVMDPATH=\\\"pvmd\\\" -DPVMDFILE=\\\"/usr/bin/pvmd\\\" -DPVM_DEFAULT_ROOT=\\\"/usr/lib/pvm3\\\" -DOVERLOADHOST
export DEB_BUILD_MAINT_OPTIONS=hardening=+all
include /usr/share/dpkg/architecture.mk
export DEB_HOST_MULTIARCH

CFLAGS = $(shell dpkg-buildflags --get CFLAGS) -I/usr/include/tirpc/ -DUSESTRERROR
CPPFLAGS = $(shell dpkg-buildflags --get CPPFLAGS)
LDFLAGS = $(shell dpkg-buildflags --get LDFLAGS) -Wl,--start-group -ltirpc

SOURCE_DATE := $(shell dpkg-parsechangelog --show-field=Date)

AIMKSTR	= -here -f ./conf/$(PVM_ARCH).def -f ./Makefile.aimk CFLOPTS="'$(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -fPIC'" cflags="'$(CFLAGS) $(CPPFLAGS) -fPIC'" link_flags="'$(LDFLAGS)'" SHAREDLDFLAGS="$(LDFLAGS) -fPIC -shared"

%:
	dh $@

override_dh_auto_build:
	echo "#!/bin/sh" > lib/pvmgetarch
	echo "echo $(PVM_ARCH)" >> lib/pvmgetarch
	chmod +x lib/pvmgetarch
	chmod +x debian/getpvmarch
	FC="gfortran" F77="gfortran" PVM_ROOT=`pwd` ./lib/aimk $(AIMKSTR)  PVMDIR=`pwd`  all
	tar --sort=name --numeric-owner --owner=0 --group=0 --mode=go=rX,u+rw,a-s --mtime="$(SOURCE_DATE)" -c examples | gzip -n > examples.tar.gz
	tar --sort=name --numeric-owner --owner=0 --group=0 --mode=go=rX,u+rw,a-s --mtime="$(SOURCE_DATE)" -c gexamples | gzip -n > gexamples.tar.gz

override_dh_auto_clean:
	echo "#!/bin/sh" > lib/pvmgetarch
	echo "echo $(PVM_ARCH)" > lib/pvmgetarch
	chmod +x lib/pvmgetarch
	chmod +x debian/getpvmarch
	-make PVM_ROOT=`pwd` clean
	rm -f build-stamp examples.tar.gz gexamples.tar.gz lib/pvmgetarch
	find . -type d -name $(PVM_ARCH) | xargs rm -rf

override_dh_auto_install:
	# pvm package
	mv bin/$(PVM_ARCH)/pvmgs debian/pvm/usr/bin

	cp lib/pvmgetarch debian/pvm/usr/bin
	cp lib/$(PVM_ARCH)/pvm debian/pvm/usr/bin
	cp lib/$(PVM_ARCH)/pvmgs debian/pvm/usr/bin
	cp lib/$(PVM_ARCH)/pvmd3 debian/pvm/usr/bin/pvmd

	ln -sf ../../../bin/pvmgetarch debian/pvm/usr/lib/pvm3/lib/pvmgetarch
	ln -sf ../../../bin/pvm debian/pvm/usr/lib/pvm3/lib/pvm
	ln -sf ../../../bin/pvmgs debian/pvm/usr/lib/pvm3/lib/pvmgs
	ln -sf ../../../bin/pvmd debian/pvm/usr/lib/pvm3/lib/pvmd

	# pvm-dev package
	cp lib/aimk debian/pvm-dev/usr/bin
	mv bin/$(PVM_ARCH)/pvm_gstat debian/pvm-dev/usr/bin
	mv bin/$(PVM_ARCH)/pvmgroups debian/pvm-dev/usr/bin
	mv bin/$(PVM_ARCH)/tracer debian/pvm-dev/usr/bin
	mv bin/$(PVM_ARCH)/trcsort debian/pvm-dev/usr/bin
	cp lib/$(PVM_ARCH)/*.a debian/pvm-dev/usr/lib/$(DEB_HOST_MULTIARCH)
	cp conf/$(PVM_ARCH).def debian/pvm-dev/usr/lib/pvm3/conf
	cp conf/$(PVM_ARCH).m4 debian/pvm-dev/usr/lib/pvm3/conf
	cp include/* debian/pvm-dev/usr/include
	ln -sf libpvm3.so.$(version) debian/pvm-dev/usr/lib/$(DEB_HOST_MULTIARCH)/libpvm3.so
	ln -sf libgpvm3.so.$(version) debian/pvm-dev/usr/lib/$(DEB_HOST_MULTIARCH)/libgpvm3.so

	# libpvm3 package
	cp lib/$(PVM_ARCH)/libpvm3.so debian/libpvm3/usr/lib/$(DEB_HOST_MULTIARCH)/libpvm3.so.$(version)
	ln -s libpvm3.so.$(version) debian/libpvm3/usr/lib/$(DEB_HOST_MULTIARCH)/libpvm3.so.$(soversion)
	cp lib/$(PVM_ARCH)/libgpvm3.so debian/libpvm3/usr/lib/$(DEB_HOST_MULTIARCH)/libgpvm3.so.$(version)
	ln -s libgpvm3.so.$(version) debian/libpvm3/usr/lib/$(DEB_HOST_MULTIARCH)/libgpvm3.so.$(soversion)

	# pvm-examples package
	mv bin/$(PVM_ARCH)/gs debian/pvm-examples/usr/bin/gs.pvm
	mv bin/$(PVM_ARCH)/hello debian/pvm-examples/usr/bin/hello.pvm
	mv bin/$(PVM_ARCH)/srm debian/pvm-examples/usr/bin/srm.pvm
	cp bin/$(PVM_ARCH)/* debian/pvm-examples/usr/bin/
