#!/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.
# This version is for a hypothetical package that builds an
# architecture-dependant package, as well as an architecture-independant
# package.
# Modified by Rafael Laboissiere <rafael@debian.org> on 1998/06/12
# for the plplot package

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

include /usr/share/octave/debian/defs.make
include /usr/share/dpatch/dpatch.make

version		:= $(shell perl debian/get-upstream-version.pl < configure.ac)
libpkg          := libplplot9
docpkg          := plplot-doc
debbase		:= $(shell pwd)/debian
debtmp		:= $(debbase)/tmp
debusr		:= $(debtmp)/usr
deblib		:= $(debusr)/lib
debshr		:= $(debusr)/share
debdoc		:= $(debshr)/doc
debinfo		:= $(debshr)/info
debex		:= $(debshr)/plplot$(version)/examples

JAVA_HOME = /usr/lib/jvm/java-gcj

PYVERS = $(shell pyversions -vr)
CONFIGURE_OPTIONS = -DBUILD_TEST=ON -DHAVE_PTHREAD=ON \
	-DBUILD_DOC=ON -DCMAKE_INSTALL_PREFIX=/usr \
	-DCMAKE_Java_RUNTIME=$(JAVA_HOME)/bin/java \
	-DCMAKE_Java_COMPILER=$(JAVA_HOME)/bin/javac \
	-DCMAKE_Java_ARCHIVE=$(JAVA_HOME)/bin/jar \
	-DOCTAVE_OCT_DIR=$(OCTDIR) \
	-DUSE_RPATH=OFF -DPLD_psttf=OFF

BUILD_DIR = $(debbase)/build_tmp
SRC_DIR = $(shell pwd)

config: config-stamp
config-stamp:
	mkdir $(BUILD_DIR)
	(cd $(BUILD_DIR) ; \
	PKG_CONFIG_ENV=" " F77=gfortran FC=gfortran \
	JAVA_HOME=$(JAVA_HOME) \
	cmake $(SRC_DIR) $(CONFIGURE_OPTIONS) -DENABLE_python=OFF )
	touch config-stamp

build: build-stamp
build-stamp: patch config-stamp
	dh_testdir
	# The hack below is to go around a bug in matwrap that was
	# preventing the Octave binding to compile with g++ 4.0
	#( cd lib ; $(MAKE) )
	#( cd src ; $(MAKE) )
	#( cd bindings/octave ; \
	#  $(MAKE) CC="gcc -D__builtin_va_list=void" plplot_octave.oct )
	( cd $(BUILD_DIR) ; $(MAKE)  )
	-( cd $(BUILD_DIR) ; ITCL_LIBRARY=/usr/lib/itcl3.2 ctest )
	touch build-stamp

clean: unpatch
	dh_testdir
	dh_testroot
	rm -f build-stamp install-stamp config-stamp \
              patch-stamp debian/files install-python*
	rm -rf $(BUILD_DIR)
	rm -rf $(debbase)/$(libpkg)
	dh_clean

install: install-stamp install-python
	dh_movefiles -a --no-package=$(libpkg) --no-package=libplplot-dev \
		     --no-package=plplot-bin --no-package=python-plplot
	dh_movefiles -i
	dh_movefiles --package=python-plplot
	dh_movefiles --package=libplplot-dev
	dh_movefiles --package=plplot-bin
	dh_movefiles --package=$(libpkg)

install-stamp: build-stamp
	dh_testdir
	dh_testroot

	( cd $(BUILD_DIR) ; \
	  $(MAKE) DESTDIR=$(debtmp) install )

	rm -f $(debtmp)/usr/bin/plplot-config

	( cd $(debdoc)/plplot ; \
	  rm -f COPYING.LIB *.dvi ; \
	  mv ChangeLog changelog )
	mv $(debdoc)/plplot $(debdoc)/$(libpkg)
	mkdir -p $(debdoc)/$(docpkg)
	(cd $(debdoc)/$(libpkg) ; mv html *.pdf *.ps.gz $(debdoc)/$(docpkg))
	install -d $(debex)/perl
	install --mode=644 examples/perl/x* examples/perl/README* \
		$(debex)/perl
	mv $(debex) $(debdoc)/$(libpkg)

	for i in libplplot-dev plplot-tcl plplot-tcl-dev 		\
		plplot9-driver-gd plplot9-driver-xwin octave-plplot	\
		python-plplot plplot-bin libplplot-c++9c2 		\
		plplot9-driver-gnome2 plplot9-driver-wxwidgets		\
		plplot9-driver-cairo libplplot-fortran9			\
		libplplot9-java; do					\
	  ln -s $(libpkg) $(debdoc)/$$i ;				\
	done

	mv $(debshr)/java/plplot.jar $(debshr)/java/plplot-$(version).jar
	( cd $(debshr)/java ; ln -s plplot-$(version).jar plplot.jar )

	touch install-stamp

install-python: $(PYVERS:%=install-python%)
	( cd $(BUILD_DIR)/examples/python ; $(MAKE) DESTDIR=$(debtmp) install )
	mv $(debex)/python $(debdoc)/$(libpkg)/examples
	touch $@

install-python%: build-stamp
	( cd $(BUILD_DIR) ; \
	  cmake $(SRC_DIR) $(CONFIGURE_OPTIONS) -DENABLE_python=ON -DENABLE_pygcw=ON -DPYTHON_EXECUTABLE=/usr/bin/python$* -DPYTHON_LIBRARIES=/usr/lib/python$* -DPYTHON_LIBRARY=/usr/lib/python$*/config/libpython$*.so -DPYTHON_INCLUDE_PATH="/usr/include/python$*;/usr/lib/python$*/site-packages/numpy/core/include/numpy"  -DNUMERIC_INCLUDE_PATH=/usr/lib/python$*/site-packages/numpy/core/include/numpy ; \
	  for d in gnome2/python python ; do		\
	    ( cd bindings/$$d;				\
	      $(MAKE) clean ;				\
	      $(MAKE) ;					\
	      $(MAKE) DESTDIR=$(debtmp) install ) ;	\
	  done )
	touch $@

# Build architecture-independent files here.
binary-indep: build install
	dh_testdir -i
	dh_testroot -i
	dh_installdirs -i
	dh_installdocs --package=$(docpkg)
	dh_installchangelogs --package=$(docpkg)
	dh_compress -i --exclude=.pdf
	dh_fixperms -i
	dh_installdeb -i
	dh_gencontrol -i
	dh_md5sums -i
	dh_builddeb -i

binary-arch: build install
	dh_testdir -a
	dh_testroot -a
	dh_installdirs -a

	dh_installdocs --package=$(libpkg) --package=libcsiro0
	dh_installchangelogs --package=$(libpkg) --package=libcsiro0

	dh_pycentral --package=python-plplot
	dh_strip -a
	dh_compress -a -Xexamples/
	dh_fixperms -a
	dh_makeshlibs -V -a
	dh_shlibdeps -a -L $(libpkg) \
          -l $(debbase)/$(libpkg)/usr/lib:$(debbase)/plplot-tcl/usr/lib
	octave-depends --package=octave-plplot
	dh_installdeb -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-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary config \
        patch unpatch
