#!/usr/bin/make -f
# -*- makefile -*-

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

install_file    = /usr/bin/install -p -o root -g root -m 644
CONFIG_OPTS = --build=$(DEB_BUILD_GNU_TYPE) \
              --cache-file=../config.cache \
              --prefix=/usr \
              --mandir=\$${prefix}/share/man \
	      --disable-silent-rules \
	      --with-libctl=/usr/share/libctl 

DEST_DIR = $(CURDIR)/debian/build-tmp/mpb/usr
DEST_DIR_MPI = $(CURDIR)/debian/build-tmp/mpb-mpi/usr
LA_DIR = $(CURDIR)/debian/build-tmp

# Which MPI implementation?
# set ARCH_DEFAULT_MPI_IMPL
include /usr/share/mpi-default-dev/debian_defaults

ifneq ($(wildcard /usr/lib/$(DEB_HOST_MULTIARCH)/hdf5/$(ARCH_DEFAULT_MPI_IMPL)/libhdf5.so),)
  export DEB_CPPFLAGS_MAINT_APPEND := -I/usr/include/hdf5/$(ARCH_DEFAULT_MPI_IMPL)
  export DEB_LDFLAGS_MAINT_APPEND := -Wl,-L/usr/lib/$(DEB_HOST_MULTIARCH)/hdf5/$(ARCH_DEFAULT_MPI_IMPL)
endif

%:
	dh $@ --with autoreconf

override_dh_clean:
	dh_clean
	rm -f config.log config.sub config.guess config.cache ../config.cache
	rm -f mpb/mpb
	rm -f mpb/mpb-split
	rm -f mpb/mpbi-split
	rm -f utils/mpb-data
	rm -f src/mpb.h
	rm -f src/mpbi.h
	rm -f src/mpb_mpi.h
	rm -f src/mpbi_mpi.h
	rm -f src/libmpb.la
	rm -rf debian/build-tmp

override_dh_auto_configure:
	# we build 4 binaries and need to reconfigure for each
	# so nothing done here
#	dh_auto_configure -- $(CONFIG_OPTS)

override_dh_auto_build:
	# normal version
	echo "Step1: normal version start"
	#XXX dh_auto_configure -- $(CONFIG_OPTS)
	F77=gfortran CC=mpicc ./configure $(CONFIG_OPTS)
	dh_auto_build
	make install prefix=$(DEST_DIR)
	make clean
	echo "Step1: normal version end"

	# version with inverse symmetry
	#XXX dh_auto_configure -- --with-inv-symmetry $(CONFIG_OPTS)
	F77=gfortran CC=mpicc ./configure --with-inv-symmetry $(CONFIG_OPTS)
	echo "Step2: inverse version start"
	dh_auto_build
	make install prefix=$(DEST_DIR)
	make clean
	echo "Step2: inverse version end"

	# normal version with mpi
	echo "Step3: mpi version start"
	#XXX dh_auto_configure -- --with-mpi $(CONFIG_OPTS)
	F77=gfortran CC=mpicc ./configure --with-mpi $(CONFIG_OPTS)
	dh_auto_build
	make install prefix=$(DEST_DIR_MPI)
	make clean
	echo "Step3: mpi version end"

	# version with inverse symmetry with mpi
	echo "Step4: mpi inv version start"
	#XXX dh_auto_configure -- --with-mpi --with-inv-symmetry $(CONFIG_OPTS)
	F77=gfortran CC=mpicc ./configure --with-mpi --with-inv-symmetry $(CONFIG_OPTS)
	dh_auto_build
	echo "Step4: mpi inv version end"
	make install prefix=$(DEST_DIR_MPI)
	#make clean <- still needed in dh_auto_install
	# clear depdenncy_libs in *.la
	sed -i "/dependency_libs/ s/'.*'/''/" `find $(LA_DIR)/* -name '*.la'`
	# create mpbi-data.1
	cp $(DEST_DIR)/share/man/man1/mpb-data.1 $(DEST_DIR)/share/man/man1/mpbi-data.1

override_dh_auto_install:
	# last build is for inv + mpi
	dh_auto_install
	rm -f config.cache ../config.cache

override_dh_auto_test:
	# tests are done during build, so nothing to do here

get-orig-source:
	mkdir -p ../tarballs
	uscan --verbose --force-download --destdir=../tarballs


#######!/usr/bin/make -f
#### Sample debian/rules that uses debhelper.
#### GNU copyright 1997 to 1999 by Joey Hess.
###
#### Uncomment this to turn on verbose mode.
####export DH_VERBOSE=1
###
#### These are used for cross-compiling and for saving the configure script
#### from having to guess our platform (since we know it already)
###DEB_HOST_GNU_TYPE   ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
###DEB_BUILD_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
###
###src_toplevel = $(shell pwd)
###
###DEST_DIR = $(CURDIR)/debian/mpb/usr
###DEST_DIR_MPI = $(CURDIR)/debian/mpb-mpi/usr
###BUILD_DIR = $(CURDIR)/debian/build
###BUILD_DIR_INV = $(CURDIR)/debian/buildi
###BUILD_DIR_MPI = $(CURDIR)/debian/buildm
###BUILD_DIR_MPI_INV = $(CURDIR)/debian/buildmi
###
###
###CONFIG_OPTS = --build=$(DEB_BUILD_GNU_TYPE) \
###              --cache-file=../config.cache \
###              --prefix=/usr \
###              --mandir=\$${prefix}/share/man \
###	      --with-libctl=/usr/share/libctl 
###
###plop = $(shell test -f /usr/lib/atlas/liblapack.so && echo plop)
###ifeq ($(plop),plop)
###  CONFIG_OPTS += --with-lapack=/usr/lib/atlas/liblapack.so
###endif
###
###clean:
###	dh_testdir
###	dh_testroot
###	dh_clean debian/config.cache config.sub config.guess stamp-h \
###		autotools-stamp *-normal-stamp *-inv-stamp \
###		*-mpi-stamp *-mpi-inv-stamp
###	rm -rf $(BUILD_DIR) $(BUILD_DIR_INV) \
###		$(BUILD_DIR_MPI) $(BUILD_DIR_MPI_INV)
###
#### Configuration
###
###autotools-stamp:
###	dh_testdir
###	rm -f config.sub config.guess
###	ln -s /usr/share/misc/config.sub config.sub
###	ln -s /usr/share/misc/config.guess config.guess
###	touch autotools-stamp
###
###configure: configure-normal-stamp configure-inv-stamp configure-mpi-stamp configure-mpi-inv-stamp
###
###configure-normal-stamp: autotools-stamp
###	dh_testdir
###	mkdir -p $(BUILD_DIR)
###	( cd $(BUILD_DIR) && F77=gfortran ../../configure $(CONFIG_OPTS) )
###	touch configure-normal-stamp
###configure-inv-stamp: autotools-stamp
###	dh_testdir
###	mkdir -p $(BUILD_DIR_INV)
###	( cd $(BUILD_DIR_INV) && F77=gfortran ../../configure --with-inv-symmetry $(CONFIG_OPTS) )
###	touch configure-inv-stamp
###configure-mpi-stamp: autotools-stamp
###	dh_testdir
###	mkdir -p $(BUILD_DIR_MPI)
###	( cd $(BUILD_DIR_MPI) && F77=gfortran ../../configure --with-mpi $(CONFIG_OPTS) )
###	touch configure-mpi-stamp
###configure-mpi-inv-stamp: autotools-stamp
###	dh_testdir
###	mkdir -p $(BUILD_DIR_MPI_INV)
###	( cd $(BUILD_DIR_MPI_INV) && F77=gfortran ../../configure --with-mpi --with-inv-symmetry $(CONFIG_OPTS) )
###	touch configure-mpi-inv-stamp
###
#### Build
###
###build: build-arch build-indep
###build-arch: build-normal-stamp build-inv-stamp build-mpi-stamp build-mpi-inv-stamp
###build-indep: build-normal-stamp build-inv-stamp build-mpi-stamp build-mpi-inv-stamp
###
###build-normal-stamp: configure-normal-stamp
###	dh_testdir
###	( cd $(BUILD_DIR) && $(MAKE) )
###	touch build-normal-stamp
###build-inv-stamp: configure-inv-stamp
###	dh_testdir
###	( cd $(BUILD_DIR_INV) && $(MAKE) )
###	touch build-inv-stamp
###build-mpi-stamp: configure-mpi-stamp
###	dh_testdir
###	( cd $(BUILD_DIR_MPI) && $(MAKE) )
###	touch build-mpi-stamp
###build-mpi-inv-stamp: configure-mpi-inv-stamp
###	dh_testdir
###	( cd $(BUILD_DIR_MPI_INV) && $(MAKE) )
###	touch build-mpi-inv-stamp
###
#### Installation
###
###install: install-doc install-bin
###
###install-doc:
###	dh_testdir
###	dh_testroot
###	dh_installdirs -i
###	dh_install -i
###
###install-bin: build
###	dh_testdir
###	dh_testroot
###	dh_installdirs -a
###	( cd $(BUILD_DIR) && $(MAKE) install prefix=$(DEST_DIR) )
###	( cd $(BUILD_DIR_INV) && $(MAKE) install prefix=$(DEST_DIR) )
###	( cd $(BUILD_DIR_MPI) && $(MAKE) install prefix=$(DEST_DIR_MPI) )
###	( cd $(BUILD_DIR_MPI_INV) && $(MAKE) install prefix=$(DEST_DIR_MPI) )
###	rm -rf $(DEST_DIR_MPI)/share
###
#### Build architecture-independent files here.
###binary-indep: install-doc
###	dh_testdir -i
###	dh_testroot -i
###	dh_installdocs -i
###	dh_installexamples -i
###	dh_installman -i
###	dh_installchangelogs -i ChangeLog
###	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: install-bin
###	dh_testdir -a
###	dh_testroot -a
###	dh_installdocs -a
###	dh_installexamples -a
###	dh_installmenu -a
###	dh_installcron -a
###	dh_installman -a
###	dh_installchangelogs -a ChangeLog
###	dh_link -a
###	dh_strip -a
###	dh_compress -a
###	dh_fixperms -a
###	dh_installdeb -a
###	dh_shlibdeps -a
###	dh_gencontrol -a
###	dh_md5sums -a
###	dh_builddeb -a
###
###binary: binary-indep binary-arch
###
###.PHONY: clean configure build install install-doc install-bin binary-indep binary-arch binary
###
