#!/usr/bin/make -f

include /usr/share/mpi-default-dev/debian_defaults

include /usr/share/cdbs/1/class/makefile.mk
include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/cdbs/1/rules/patchsys-quilt.mk

DEB_AUTO_CLEANUP_RCS := yes
DEB_SRCDIR := $(CURDIR)/
DEB_BUILDDIR := $(DEB_SRCDIR)/

DEB_MAKE_CLEAN_TARGET    := clean PSRCdir="SRC" PUTILdir="UTIL"
DEB_MAKE_BUILD_TARGET    := default FC="gfortran"
DEB_MAKE_ENVVARS         += FC="gfortran" FFLAGS="-O3 -fPIC -pipe"
DEB_COMPRESS_EXCLUDE     := .pdf
#DH_COMPAT=5

DEB_INSTALL_EXAMPLES_libarpack2-dev := EXAMPLES/* -X.svn

DEB_DH_MAKESHLIBS_ARGS := --version-info="libarpack2 (>= 2.1+parpack96-5)"

CFLAGS = -fPIC -fexceptions -Wall -O3
ifeq ($(DEB_HOST_ARCH_CPU),amd64)
 CFLAGS += -m64
endif

ifneq (,$(findstring openmpi,$(ARCH_DEFAULT_MPI_IMPL)))
 openmpilib = -lmpi_f77
endif

package=arpack

version=2.1 #$(shell expr `pwd` : '.*-\([0-9.]*\)')
version_major=2 #$(shell expr `pwd` : '.*-\([0-9]*\).[0-9.]*')

build/libarpack2::
	-mkdir -p objs pobjs
	-(cd objs && $(MAKE) -f ../UTIL/Makefile VPATH="../UTIL" srcdir="../UTIL" $(DEB_MAKE_ENVVARS) single double complex complex16; )
	-(cd objs && $(MAKE) -f ../SRC/Makefile VPATH="../SRC" srcdir="../SRC" $(DEB_MAKE_ENVVARS) single double complex complex16; )
	-(cd objs && gcc -shared -Wl,-soname,lib$(package).so.$(version_major) -o lib$(package).so.$(version) `ls *.o`  -L/usr/lib/atlas -llapack -lblas -lm -lgfortran)
	-(cd objs && ln -sf lib$(package).so.$(version) lib$(package).so.$(version_major) )
	-(cd objs && ln -sf lib$(package).so.$(version) lib$(package).so )
	-(cd objs && ar rv lib$(package).a `ls *.o`; ranlib lib$(package).a )
	-(cd pobjs && $(MAKE) -f ../PARPACK/UTIL/MPI/Makefile VPATH="../PARPACK/UTIL/MPI/" srcdir="../PARPACK/UTIL/MPI/" $(DEB_MAKE_ENVVARS) single double complex complex16; )
	-(cd pobjs && $(MAKE) -f ../PARPACK/SRC/MPI/Makefile VPATH="../PARPACK/SRC/MPI/" srcdir="../PARPACK/SRC/MPI/" $(DEB_MAKE_ENVVARS) single double complex complex16; )
	-(cd pobjs && gcc -shared -Wl,-soname,libp$(package).so.$(version_major) -o libp$(package).so.$(version) `ls *.o`  -L/usr/lib/atlas -llapack -lblas -lmpi $(openmpilib) -lm -lgfortran -L../objs -l$(package) )
	-(cd pobjs && ln -sf libp$(package).so.$(version) libp$(package).so.$(version_major) )
	-(cd pobjs && ln -sf libp$(package).so.$(version) libp$(package).so )
	-(cd pobjs && ar rv libp$(package).a `ls *.o`; ranlib libp$(package).a )

clean::
	-$(RM) -r objs pobjs
	-find $(DEB_BUILDDIR) \( -name "*.a" -o -name "*.so" -o -name "*.so.*" \) -delete
