#!/usr/bin/make -f
#
# debian/rules for LCG-DM
# 
# Copyright (c) Members of the EGEE Collaboration. 2004-2009.
# GNU General Public License v2.
#
# Authors:
# 	Akos FROHNER <Akos.Frohner@cern.ch>
# 	Eamonn Kenny <Eamonn.Kenny@cs.tcd.ie>
#   Ricardo Rocha <Ricardo.Rocha@cern.ch>
#

include VERSION
PYTHON_VERSION=$(shell python -c "import sys; print sys.version[:3]")

PREFIX=/opt/lcg
SHELL := sh -e

SOURCE_DIR=lcg-dm-$(VERSION)
SOURCE_TAR=$(SOURCE_DIR).tar.gz


DM_COMMON_PACKAGING = \
	debian/liblcgdm1.install \
	debian/liblcgdm1.postinst \
	debian/liblcgdm-dev.install

LFC_PACKAGING = \
	debian/lfc-client.install \
	debian/liblfc1.install \
	debian/liblfc1.postinst \
	debian/liblfc-dev.install \
	debian/liblfc-perl.install \
	debian/python-lfc.install

DPM_PACKAGING = \
	debian/dpm-client.install \
	debian/libdpm1.install \
	debian/libdpm1.postinst \
	debian/libdpm-dev.install \
	debian/libdpm-perl.install \
	debian/python-dpm.install


$(SOURCE_TAR):
	rm -rf $(SOURCE_DIR); \
	mkdir $(SOURCE_DIR); \
	cp -rp Imakefile Makefile.ini Makefile.ini.Win32 README VERSION \
		config imake test setosflags configure doc scripts \
		h lib shlib common ns rfio dpm srmv1 srmv2 srmv2.2 security \
		dli dicomcopy dpmcopy $(SOURCE_DIR); \
	find $(SOURCE_DIR) -name .svn -print0 | xargs -0 rm -rf ; \
	tar -czf $(SOURCE_TAR) $(SOURCE_DIR); \
	rm -rf $(SOURCE_DIR)

debian/liblcgdm1.install: debian/templates/liblcgdm1.install
	for t in debian/templates/*.*; do \
		sed -e "s/@PYTHON.VERSION@/$(PYTHON_VERSION)/g; s/@lib@/$(LIBDIR)/g; s/@prefix@/\/opt\/lcg/g" $$t >debian/$$(basename $$t) ; \
	done

build: build-stamp

builddm-common/$(SOURCE_DIR)/Makefile: $(SOURCE_TAR) debian/liblcgdm1.install
	dh_testdir
	mkdir -p builddm-common
	tar -C builddm-common -xzf $(SOURCE_TAR)
	cd builddm-common/$(SOURCE_DIR); \
	export LD_LIBRARY_PATH=$(GLOBUS_LOCATION)/lib:$(LD_LIBRARY_PATH); \
	./configure --libdir=$(LIBDIR) --with-client-only dm $(EXTRA_CONFIGURE_OPTIONS)

buildlfc/$(SOURCE_DIR)/Makefile: $(SOURCE_TAR)
	dh_testdir
	mkdir -p buildlfc
	tar -C buildlfc -xzf $(SOURCE_TAR)
	cd buildlfc/$(SOURCE_DIR); \
	export LD_LIBRARY_PATH=$(GLOBUS_LOCATION)/lib:$(LD_LIBRARY_PATH); \
	./configure --libdir=$(LIBDIR) --with-client-only lfc $(EXTRA_CONFIGURE_OPTIONS)

builddpm/$(SOURCE_DIR)/Makefile: $(SOURCE_TAR)
	dh_testdir
	mkdir -p builddpm
	tar -C builddpm -xzf $(SOURCE_TAR)
	cd builddpm/$(SOURCE_DIR); \
	export LD_LIBRARY_PATH=$(GLOBUS_LOCATION)/lib:$(LD_LIBRARY_PATH); \
	./configure --libdir=$(LIBDIR) --with-client-only dpm $(EXTRA_CONFIGURE_OPTIONS)

build-stamp: builddm-common/$(SOURCE_DIR)/Makefile buildlfc/$(SOURCE_DIR)/Makefile builddpm/$(SOURCE_DIR)/Makefile
	dh_testdir
	LD_LIBRARY_PATH=$(GLOBUS_LOCATION)/lib:$(LD_LIBRARY_PATH) $(MAKE) -C builddm-common/$(SOURCE_DIR)
	LD_LIBRARY_PATH=$(GLOBUS_LOCATION)/lib:$(LD_LIBRARY_PATH) $(MAKE) -C buildlfc/$(SOURCE_DIR)
	LD_LIBRARY_PATH=$(GLOBUS_LOCATION)/lib:$(LD_LIBRARY_PATH) $(MAKE) -C builddpm/$(SOURCE_DIR)
	touch $@

clean:
	dh_testdir
	dh_testroot
	rm -rf builddm-common builddpm buildlfc $(SOURCE_TAR)	
	dh_clean build-stamp install-stamp \
		$(DM_COMMON_PACKAGING) $(LFC_PACKAGING) $(DPM_PACKAGING)

install: install-stamp
install-stamp: build-stamp
	dh_listpackages
	dh_testdir
	dh_testroot
	dh_clean -k
	$(MAKE) -C builddm-common/$(SOURCE_DIR) prefix=$(CURDIR)/debian/tmp/opt/lcg install
	$(MAKE) -C builddm-common/$(SOURCE_DIR) prefix=$(CURDIR)/debian/tmp/opt/lcg install.man
	$(MAKE) -C buildlfc/$(SOURCE_DIR) prefix=$(CURDIR)/debian/tmp/opt/lcg install
	$(MAKE) -C buildlfc/$(SOURCE_DIR) prefix=$(CURDIR)/debian/tmp/opt/lcg install.man
	$(MAKE) -C builddpm/$(SOURCE_DIR) prefix=$(CURDIR)/debian/tmp/opt/lcg install
	$(MAKE) -C builddpm/$(SOURCE_DIR) prefix=$(CURDIR)/debian/tmp/opt/lcg install.man
	touch $@

binary-indep:

binary-arch: install
	dh_testdir
	dh_testroot
	dh_install --sourcedir=debian/tmp --list-missing
	dh_installdocs
	dh_installexamples
	dh_strip 
	dh_compress
	dh_fixperms
	dh_makeshlibs
	#dh_shlibdeps
	#dh_perl /opt/lcg/$(LIBDIR)/perl
	#dh_pysupport /opt/lcg/$(LIBDIR)/python$(PYTHON_VERSION)
	dh_installchangelogs CHANGES
	dh_installdeb
	dh_gencontrol
	dh_md5sums
	dh_builddeb

binary: binary-indep binary-arch

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

