#!/usr/bin/make -f
#-*- makefile -*-
# Made with the aid of dh_make, by Craig Small
# Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess.
# Also some stuff taken from debmake scripts, by Christoph Lameter.

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1

# This is the debhelper compatability version to use.
#export DH_COMPAT=1

# OpenMPI is only supported on a subset of architectures at this time.
# This list should remain synced with the Build-Depends and the Architecture
# line of netpipe-openmpi in debian/control.

OPENMPI_ARCH    = alpha amd64 armel armhf arm64 i386 ia64 powerpc powerpcspe ppc64el sparc sparc64 kfreebsd-i386 kfreebsd-amd64 hurd-i386
DEB_HOST_ARCH  ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)

LDFLAGS := $(shell dpkg-buildflags --get LDFLAGS)
CC := cc $(LDFLAGS)
CFLAGS := $(shell dpkg-buildflags --get CPPFLAGS; dpkg-buildflags --get CFLAGS)

build: build-arch build-indep
build-arch: build-stamp
build-indep: build-stamp
build-stamp:
	dh_testdir

	$(MAKE) tcp CC="$(CC)" CFLAGS="$(CFLAGS)"
	cp debian/netpipe.1 NPtcp.1
	$(MAKE) pvm CC="$(CC)" CFLAGS="$(CFLAGS)"
	cp debian/netpipe.1 NPpvm.1
	$(MAKE) mpi MPICC="mpicc.lam $(LDFLAGS)" CC="$(CC)" CFLAGS="$(CFLAGS)"
	mv NPmpi NPlam
	cp debian/netpipe.1 NPlam.1
ifneq (,$(findstring $(DEB_HOST_ARCH),$(OPENMPI_ARCH)))
	$(MAKE) mpi MPICC="mpicc.openmpi $(LDFLAGS)" CC="$(CC)" CFLAGS="$(CFLAGS)"
	mv NPmpi NPopenmpi
	cp debian/netpipe.1 NPopenmpi.1
endif
	# $(MAKE) mpi MPICC=mpicc.mpich
	# mv NPmpi NPmpich
	# cp debian/netpipe.1 NPmpich.1
	$(MAKE) mpi MPICC="mpicc.mpich $(LDFLAGS)" CC="$(CC)" CFLAGS="$(CFLAGS)"
	mv NPmpi NPmpich2
	cp debian/netpipe.1 NPmpich2.1

#	MPI2_INC not necessary, but must not be empty
	$(MAKE) mpi2 MPI2CC="mpicc.lam $(LDFLAGS)" MPI2_INC=./ CC="$(CC)" CFLAGS="$(CFLAGS)"
	mv NPmpi2 NPlam2
	cp debian/netpipe.1 NPlam2.1
ifneq (,$(findstring $(DEB_HOST_ARCH),$(OPENMPI_ARCH)))
	$(MAKE) mpi2 MPI2CC="mpicc.openmpi $(LDFLAGS)" MPI2_INC=./ CC="$(CC)" CFLAGS="$(CFLAGS)"
	mv NPmpi2 NPopenmpi2
	cp debian/netpipe.1 NPopenmpi2.1
endif

	touch build-stamp

clean:
	dh_testdir
	dh_testroot
	rm -f build-stamp install-stamp

	$(MAKE) clean
	for i in tcp lam lam2 openmpi openmpi2 mpich mpich2 pvm; do rm -f NP$${i}*; done
	# rm -f NPtcp.1 NPlam.1 NPopenmpi.1 NPmpich.1 NPmpich2.1 NPopenmpi2.1 NPpvm.1
	# rm -f NPtcp NPopenmpi NPmpich NPopenmpi2 NPlam2 NPpvm NPmpich2 NPlam

	dh_clean

install: install-stamp
install-stamp: build-stamp
	dh_testdir
	dh_testroot
	dh_prep
	dh_installdirs

	mkdir -p debian/tmp/usr/bin
	cp NPtcp NPlam NPlam2 NPmpich2 NPpvm `pwd`/debian/tmp/usr/bin # NPmpich
ifneq (,$(findstring $(DEB_HOST_ARCH),$(OPENMPI_ARCH)))
	cp NPopenmpi NPopenmpi2 `pwd`/debian/tmp/usr/bin
endif

	dh_movefiles
	touch install-stamp

# Build architecture-independent files here.
binary-indep: build install
#	dh_testversion
	dh_testdir -i
	dh_testroot -i
	dh_installdocs -i
	dh_installexamples -i
	dh_installmenu -i
#	dh_installemacsen -i
#	dh_installpam -i
#	dh_installinit -i
	dh_installcron -i
#	dh_installmanpages -i
	dh_installinfo -i
#	dh_undocumented
	dh_installchangelogs -i 
	dh_link -i
	dh_compress -i
	dh_fixperms -i
	dh_installdeb -i
#	dh_perl -i
	dh_gencontrol -i
	dh_md5sums -i
	dh_builddeb -i

# Build architecture-dependent files here.
binary-arch: build install
#	dh_testversion
	dh_testdir -a
	dh_testroot -a
	dh_installdocs -a
	dh_installexamples -a
	dh_installmenu -a
#	dh_installemacsen -a
#	dh_installpam -a
#	dh_installinit -a
	dh_installcron -a
	dh_installman -a
#	dh_installmanpages -pnetpipe-openmpi NPtcp.1 NPmpich.1  NPpvm.1 netpipe.1
#	dh_installmanpages -pnetpipe-pvm NPtcp.1 NPmpich.1 NPopenmpi.1 NPopenmpi2.1 netpipe.1
#	dh_installmanpages -pnetpipe-tcp  NPmpich.1 NPopenmpi.1 NPopenmpi2.1 NPpvm.1 netpipe.1
#	dh_installmanpages -pnetpipe-mpich NPtcp.1  NPopenmpi.1 NPopenmpi2.1 NPpvm.1 netpipe.1
	dh_installinfo -a
#	dh_undocumented
	dh_installchangelogs -a 
	dh_strip -a
	dh_link -a
	dh_compress -a
	dh_fixperms -a
	dh_installdeb -a
#	dh_makeshlibs -a
#	dh_perl -a
	dh_shlibdeps -a
	dh_gencontrol -a
	dh_md5sums -a
	dh_builddeb -a

source diff:
	@echo >&2 'source and diff are obsolete - use dpkg-source -b'; false

binary:  binary-arch
.PHONY: build clean binary-indep binary-arch binary install
