#!/usr/bin/make -f
include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/cdbs/1/class/langcore.mk
include /usr/share/cdbs/1/rules/patchsys-quilt.mk

# Add here any variable or target overrides you need.
FC        := /usr/bin/gfortran
MPIFC     := /usr/bin/mpif90.openmpi
MPIEXEC   := /usr/bin/mpiexec.openmpi
SYSFFLAGS := -O3 -fPIC -fall-intrinsics
#FFLAGS    := $(SYSFFLAGS)
FFLAGS    :=
RUBY      := /usr/bin/ruby1.8
MANPAGES  := debian/*.1
EXT       := gnu

CONFIGURE_ENV     := 				\
	FC="$(FC)" SYSFFLAGS="$(SYSFFLAGS)" 	\
	FFLAGS="$(FFLAGS)" RUBY="$(RUBY)"
CONFIGURE_ENV_MPI := 				\
	FC="$(MPIFC)" SYSFFLAGS="$(SYSFFLAGS)" 	\
	FFLAGS="$(FFLAGS)" RUBY="$(RUBY)"
CONFIGURE_FLAGS   := 				\
	--with-netcdf=/usr/lib/libnetcdf.a 	\
	--with-netcdff=/usr/lib/libnetcdff.a 	\
	--with-netcdf-include=/usr/include  	\
	--with-abort=abort 			\
	--with-getarg=f2003std 			\
	--with-getenv=f2003std
CONFIGURE_FLAGS_SERIAL := $(CONFIGURE_FLAGS)	\
	--disable-mpi
CONFIGURE_FLAGS_MPI := $(CONFIGURE_FLAGS) 	\
	--with-mpiexec="$(MPIEXEC)"
DEB_INSTALL_DOCS_ALL := README
DEB_INSTALL_DOCS_gtool5-doc := doc htmltools
DEB_COMPRESS_EXCLUDE := .rd .nc
DEB_INSTALL_MANPAGES_gtool5 := $(MANPAGES)

pre-build::
	cd debian \
		&& rd2 -r rd/rd2man-lib 	\
	  gt5frt.rd > gt5frt.$(EXT).1		\
		&& rd2 -r rd/rd2man-lib 	\
	  gt5frt.rd > gt5frt.openmpi-$(EXT).1	\
		&& rd2 -r rd/rd2man-lib 	\
	  gt5config.rd > gt5config.$(EXT).1 	\
		&& rd2 -r rd/rd2man-lib 	\
	  gt5config.rd > gt5config.openmpi-$(EXT).1
	(cd debian && PACKAGE=gtool5 EXT=$(EXT) PRIORITY=20 sh ./pre-build.sh)

install/gtool5:: install-gtool5-serial install-gtool5-mpi
install-gtool5-serial: install-gtool5-serial-stamp
install-gtool5-serial-stamp:
	$(CONFIGURE_ENV) ./configure $(CONFIGURE_FLAGS_SERIAL) 	\
	  --prefix=/usr/lib/gtool5
	$(MAKE)
#	$(MAKE) test
	$(MAKE) install prefix=$(CURDIR)/debian/gtool5/usr/lib/gtool5
	$(MAKE) distclean.depend
	rm -f config.log chkfort.cfg
	find -name depend | xargs rm -f
	find -name xhistgetattr | xargs rm -rf
	rm -f src/dc_utils/dcstringputline.f90
	rm -f src/gtdata/gtdata_netcdf/gdncattrgetnum.f90
	touch $@

install-gtool5-mpi: install-gtool5-mpi-stamp
install-gtool5-mpi-stamp:
	$(CONFIGURE_ENV_MPI) ./configure $(CONFIGURE_FLAGS_MPI)	\
	  --prefix=/usr/lib/gtool5
	$(MAKE)
#	$(MAKE) test
	$(MAKE) install prefix=$(CURDIR)/debian/gtool5/usr/lib/gtool5-mpi
	$(MAKE) distclean.depend
	rm -f config.log chkfort.cfg
	find -name depend | xargs rm -f
	find -name xhistgetattr | xargs rm -rf
	rm -f src/dc_utils/dcstringputline.f90
	rm -f src/gtdata/gtdata_netcdf/gdncattrgetnum.f90
	touch $@

install/gtool5-doc:: install-gtool5-doc-stamp
install-gtool5-doc-stamp:
	touch $@

clean::
	[ ! -f Config.mk ] || $(MAKE) distclean
	rm -f debian/*.links
	rm -f debian/*.postinst
	rm -f debian/*.prerm
	rm -f debian/*.dirs
	rm -f $(MANPAGES)
	rm -f config.log chkfort.cfg
	find -name depend | xargs rm -f
	find -name xhistgetattr | xargs rm -rf
	rm -f src/dc_utils/dcstringputline.f90
	rm -f src/gtdata/gtdata_netcdf/gdncattrgetnum.f90
	rm -f install-gtool5*stamp
