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

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

DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/buildflags.mk

JAVA_HOME := $(firstword $(wildcard /usr/lib/jvm/java-7-openjdk-$(DEB_HOST_ARCH)))
PATH := ${JAVA_HOME}/bin:${PATH}

JARS := commons-logging.jar commons-pool.jar gnu-getopt.jar log4j-1.2.jar mysql-connector-java.jar xml-resolver.jar xercesImpl.jar xmlParserAPIs.jar xmlrpc-common.jar jglobus-ssl-proxies.jar jglobus-gss.jar jglobus-gridftp.jar jglobus-gram.jar gson.jar


build: build-arch build-indep


build-arch: build-arch-stamp


build-indep: build-indep-stamp


build-arch-stamp:
	dh_testdir
	
	# during build we need symlinks to system provided jars
	(cd share/pegasus/java && \
	 rm -f *.jar && \
	 for JAR in $(JARS); do \
	     ln -s /usr/share/java/$$JAR ; \
	 done \
	)
	
	ant dist doc-manpages
	
	rm -f dist/*.tar.gz
	mv dist/pegasus-* dist/pegasus
	
	touch build-arch-stamp


build-indep-stamp:
	dh_testdir
	
	# during build we need symlinks to system provided jars
	(cd share/pegasus/java && \
	 rm -f *.jar && \
	 for JAR in $(JARS); do \
	     ln -s /usr/share/java/$$JAR ; \
	 done \
	)
	
	# build documentation to get updated PDFs
	ant doc
	
	rm -f dist/*.tar.gz
	mv dist/pegasus-* dist/doc
	
	touch build-indep-stamp


# Build architecture-independent files here.
binary-indep: build-indep
	
	dh_testdir
	dh_testroot
	dh_prep
	dh_installdirs
	
	# move documentation to the -doc package
	mkdir -p debian/pegasus-wms-doc/usr/share/doc/pegasus-wms-doc
	cp -r dist/doc/share/doc/pegasus/* debian/pegasus-wms-doc/usr/share/doc/pegasus-wms-doc/
	rm -f debian/pegasus-wms-doc/usr/share/doc/pegasus-wms-doc/html/*.php
	
	dh_installchangelogs
	dh_installdocs
	dh_compress
	dh_fixperms
	dh_installdeb
	dh_gencontrol
	dh_md5sums
	dh_builddeb -i


# Build architecture-dependent files here.
binary-arch: build-arch
	dh_testdir
	dh_testroot
	dh_prep
	dh_installdirs
	
	# /etc/pegasus
	mkdir -p debian/pegasus-wms/etc/pegasus
	cp -a dist/pegasus/etc/* debian/pegasus-wms/etc/pegasus/
	
	# /usr/bin
	mkdir -p debian/pegasus-wms/usr
	cp -a dist/pegasus/bin debian/pegasus-wms/usr/
	strip debian/pegasus-wms/usr/bin/pegasus-cluster
	strip debian/pegasus-wms/usr/bin/pegasus-invoke
	strip debian/pegasus-wms/usr/bin/pegasus-keg
	strip debian/pegasus-wms/usr/bin/pegasus-kickstart
	
	# /usr/share/
	mkdir -p debian/pegasus-wms/usr
	cp -a dist/pegasus/share debian/pegasus-wms/usr/
	rm -rf debian/pegasus-wms/usr/share/pegasus/visualize
	rm -rf debian/pegasus-wms/usr/share/pegasus/examples/simple-examples
	rm -rf debian/pegasus-wms/usr/share/pegasus/examples/glite-montage-pmc
	rm -rf debian/pegasus-wms/usr/share/pegasus/examples/grid-pegasus-mpi-cluster
	
	# documentation is in the -doc package
	rm -rf debian/pegasus-wms/usr/share/doc/pegasus
	
	# /usr/lib
	mkdir -p debian/pegasus-wms/usr
	cp -a dist/pegasus/lib debian/pegasus-wms/usr/
	
	# remove stuff we don't need
	rm -f debian/pegasus-wms/etc/pegasus/stampede*
	rm -rf debian/pegasus-wms/usr/lib/pegasus/externals/python/boto/tests
	
	# replace jar symlinks with relative symlinks
	(cd debian/pegasus-wms/usr/share/pegasus/java/ && \
	 for JAR in $(JARS); do \
	     rm $$JAR && \
	     ln -s ../../java/$$JAR ; \
	 done \
	)
	
	dh_installchangelogs
	dh_installdocs
	dh_installman
	dh_compress
	dh_fixperms
	dh_installdeb
	dh_shlibdeps
	dh_gencontrol
	dh_md5sums
	dh_builddeb -a


binary: binary-indep binary-arch


clean:
	dh_testdir
	dh_testroot
	rm -f build-arch-stamp build-indep-stamp
	ant clean
	rm -f src/externals/._boto*
	rm -f src/tools/pegasus-keg/version.h 
	rm -f lib/pegasus/python/Pegasus/DAX3.pyc
	rm -f lib/pegasus/perl/*.tmp
	rm -rf dist
	rm -rf debian/.pc
	dh_clean


%:
	echo "Unknown make target: $@"
	exit 1


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

