#!/usr/bin/make -f
# Made with the aid of debmake, by Christoph Lameter,
# based on the sample debian/rules file for GNU hello by Ian Jackson.

package=hypre

# This tells us which MPI implementation is in use
HYPRE_MPI=$(shell readlink /etc/alternatives/mpi | sed s/usr//g | sed s/include//g | sed s/lib//g | sed s/\\///g)

patch:
	if [ ! -d .pc ]; then \
	  QUILT_PATCHES=debian/patches quilt push -a || test $$? = 2; \
	fi
	if [ ! -e src/parcsr_ls/flexgmres.c ]; then \
	  ln -s ../krylov/HYPRE_flexgmres.c ../krylov/flexgmres.c src/parcsr_ls/; \
	fi

unpatch:
	if [ -d .pc ]; then \
	  QUILT_PATCHES=debian/patches quilt pop -a -R || test $$? = 2; \
	  rm -rf .pc; \
	fi
	if [ -e src/parcsr_ls/flexgmres.c ]; then \
	  rm -f src/parcsr_ls/flexgmres.c src/parcsr_ls/HYPRE_flexgmres.c; \
	fi

build: stamp-build
stamp-build: patch
	dh_testdir
	rm -f src/configure
	(cd src/config && aclocal -I .)
	(cd src && autoconf -I config config/configure.in > configure)
	chmod +x src/configure
	cp -f /usr/share/automake*/config.* src/config/
	(cd src/babel-runtime && libtoolize)
	cp -f src/babel-runtime/libltdl/ltdl.* src/babel-runtime/sidl/
	rm -f src/babel-runtime/config/config.*
	(cd src/babel-runtime && aclocal -I m4)
	(cd src/babel-runtime && automake -a)
	(cd src && ./configure --enable-shared --without-superlu \
	  --with-blas-libs="blas" --with-blas-lib-dirs="/usr/lib" \
	  --with-lapack-libs="lapack" --with-lapack-lib-dirs="/usr/lib")
	$(MAKE) -C src
#	Remove PIC object files
#	rm -f `find . -name \*.o -print`
#	(cd src && ./configure --without-superlu \
#	  --with-blas-libs="blas-3" --with-blas-lib-dirs="/usr/lib" \
#	  --with-lapack-libs="lapack-3" --with-lapack-lib-dirs="/usr/lib")
#	$(MAKE) -C src
	touch $@

clean:
	dh_testdir
	if [ -e src/Makefile ]; then \
	  touch src/config/Makefile.config; \
	  $(MAKE) -C src clean; fi
	rm -f stamp-configure stamp-build stamp-install	
	rm -f src/config/aclocal.m4 src/configure src/config/config.guess \
	  src/config/config.sub src/config/Makefile.config
	rm -f src/babel-runtime/Makefile.in src/babel-runtime/aclocal.m4 \
	  src/babel-runtime/bin/Makefile.in src/babel-runtime/config/Makefile.in \
	  src/babel-runtime/config/config.guess src/babel-runtime/config/config.sub \
	  src/babel-runtime/config/ltmain.sh src/babel-runtime/java/Makefile.in \
	  src/babel-runtime/m4/Makefile.in src/babel-runtime/m4/argz.m4 \
	  src/babel-runtime/m4/ltoptions.m4 src/babel-runtime/m4/libtool.m4 \
	  src/babel-runtime/m4/ltdl.m4 src/babel-runtime/m4/ltsugar.m4 \
	  src/babel-runtime/m4/ltversion.m4 src/babel-runtime/m4/lt~obsolete.m4 \
	  src/babel-runtime/sidl/Makefile.in src/babel-runtime/sidl/ltdl.c \
	  src/babel-runtime/sidl/ltdl.h src/babel-runtime/sidlx/Makefile.in
	rm -f src/config.log src/config.status src/HYPRE_config.h
	dh_clean
	debian/rules unpatch
	rm -rf src/babel-runtime/libltdl src/FEI_mv/fgmres

install: stamp-install
stamp-install: stamp-build
	install -d `pwd`/debian/tmp/usr/include
	install -d `pwd`/debian/tmp/usr/lib
	$(MAKE) -C src install HYPRE_INSTALL_DIR=`pwd`/debian/tmp/usr \
	  prefix=`pwd`/debian/tmp/usr exec_prefix=`pwd`/debian/tmp/usr
	touch $@

binary-indep: install
	dh_testdir -i
	dh_testroot -i
	dh_installdirs -i
	dh_movefiles -i
	dh_installdocs -i
	dh_installchangelogs -i
	dh_compress -i
	dh_fixperms -i
	dh_installdeb -i
	dh_gencontrol -i
	dh_md5sums -i
	dh_builddeb -i

binary-arch: install
	dh_testdir -a
	dh_testroot -a
	dh_installdirs -a
	dh_movefiles -a
	dh_installdocs -a
	dh_installchangelogs -a
	dh_strip -a
	dh_makeshlibs -a
	dh_compress -a
	dh_fixperms -a
	dh_installdeb -a
	dh_shlibdeps -a
	dh_gencontrol -a
	dh_md5sums -a
	dh_builddeb -a

binary: binary-arch binary-indep

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