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

-include /usr/share/dpkg/buildflags.mk

name = globus-core
_name = globus_core

INSTALLDIR = $(CURDIR)/debian/tmp
GLOBUSPACKAGEDIR = $(INSTALLDIR)$(_datadir)/globus/packages

_prefix = /usr
_bindir = $(_prefix)/bin
_sbindir = $(_prefix)/sbin
_libdir = $(_prefix)/lib/$(DEB_HOST_MULTIARCH)
_datadir = $(_prefix)/share
_mandir = $(_datadir)/man
_docdir = $(_datadir)/doc/$(name)

perl_vendorlib = $(shell eval "`perl -V:installvendorlib`"; echo $$installvendorlib)

DEB_HOST_ARCH_BITS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_BITS)
DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)

ifeq ($(DEB_HOST_ARCH_BITS), 64)
flavor = gcc64-$(DEB_HOST_MULTIARCH)
enable64 = yes
else
flavor = gcc32-$(DEB_HOST_MULTIARCH)
enable64 = no
endif

configure: configure-stamp

configure-stamp:
	dh_testdir

	sed 's/5.2.0/5.2.5/' -i scripts/globus-spec-creator
	sed 's/"$$LDFLAGS -L$$libdir "/"$$LDFLAGS "/' -i config/accompiler.m4

	dh_autotools-dev_updateconfig

	./bootstrap

	PATH=`echo $$PATH | sed 's!/usr/lib/ccache:!!'` \
	CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" \
	FFLAGS="$(FFLAGS)" CPPFLAGS="$(CPPFLAGS)" \
	LDFLAGS="$(LDFLAGS) -Wl,--as-needed -Wl,-z,defs" ./configure \
	   --disable-static \
	   --with-flavor=$(flavor) \
	   --enable-64bit=$(enable64) \
	   --enable-debug \
	   --prefix=$(_prefix) \
	   --libdir='$${prefix}/lib/$(DEB_HOST_MULTIARCH)' \
	   --sysconfdir=/etc \
	   --localstatedir=/var \
	   --sharedstatedir=/var/lib \
	   --mandir='$${datadir}/man' \
	   --infodir='$${datadir}/info' \
	   --includedir='$${prefix}/include/globus' \
	   --libexecdir='$${datadir}/globus' \
	   --with-setupdir='$${datadir}/globus/setup' \
	   --with-testdir='$${datadir}/globus/test/$${PACKAGE}' \
	   --with-flavorincludedir='$${prefix}/include/$(DEB_HOST_MULTIARCH)/globus' \
	   --with-perlmoduledir=$(perl_vendorlib) \
	   --with-doxygendir='$${datadir}/globus/doxygen' \
	   --with-docdir=$(_docdir)

	# Reduce overlinking
	sed 's!CC -shared !CC \\$${wl}--as-needed -shared !g' -i libtool

	touch $@

build: build-arch build-indep

build-arch: build-stamp

build-indep:

build-stamp: configure-stamp
	dh_testdir

	$(MAKE)

	touch $@

clean:
	dh_testdir
	dh_testroot

	if [ -r Makefile ] ; then $(MAKE) distclean ; fi

	dh_autotools-dev_restoreconfig

	# Remove autogenerated files

	rm -f aclocal.m4
	rm -f configure
	rm -f config/compile
	rm -f config/install-sh
	rm -f config/ltmain.sh
	rm -f config/missing
	rm -f config/mkinstalldirs

	rm -f pkgdata/*.filelist
	rm -f pkgdata/*.gpt
	rm -f pkgdata/$(name).pc
	rm -f pkgdata/pkg_data_src.pc.in
	rm -f gptdata.sh
	rm -f aclocal/globus_automake*
	rm -rf autom4te.cache

	rm -f globus-*-libdir-choice
	rm -f scripts/globus-build-env-$(flavor).sh
	rm -f scripts/globus-spec-creator.1

	find . -name Makefile.in -exec rm {} ';'

	sed 's/"$$LDFLAGS "/"$$LDFLAGS -L$$libdir "/' -i config/accompiler.m4
	sed 's/5.2.5/5.2.0/' -i scripts/globus-spec-creator

	rm -f build-stamp configure-stamp

	dh_clean debian/*.install

install: build-stamp
	dh_testdir
	dh_testroot
	dh_prep

	$(MAKE) install DESTDIR=$(INSTALLDIR)

	# These scripts are intended to be sourced, not executed
	chmod -x $(INSTALLDIR)$(_datadir)/globus/globus-build-env-*.sh

	# Don't use /usr/bin/env
	sed 's!/usr/bin/env perl!/usr/bin/perl!' \
	  -i $(INSTALLDIR)$(_sbindir)/globus-*

	# Remove installed license file
	rm -f $(INSTALLDIR)$(_docdir)/GLOBUS_LICENSE
	sed /GLOBUS_LICENSE/d \
	  -i $(GLOBUSPACKAGEDIR)/$(_name)/noflavor_doc.filelist

	# Generate package filelists
	cat $(GLOBUSPACKAGEDIR)/$(_name)/$(flavor)_pgm.filelist \
	    $(GLOBUSPACKAGEDIR)/$(_name)/$(flavor)_dev.filelist \
	    $(GLOBUSPACKAGEDIR)/$(_name)/noflavor_data.filelist \
	    $(GLOBUSPACKAGEDIR)/$(_name)/noflavor_doc.filelist \
	  | sed s!^!debian/tmp$(_prefix)! > debian/$(name).install

binary: binary-arch binary-indep

binary-arch: install
	dh_testdir
	dh_testroot
	dh_installdocs debian/README
	dh_installchangelogs
	dh_install --fail-missing
	dh_installman
	dh_link
	dh_strip
	dh_compress
	dh_fixperms
	dh_perl
	dh_lintian
	dh_makeshlibs
	dh_installdeb
	dh_shlibdeps
	dh_gencontrol
	dh_md5sums
	dh_builddeb

binary-indep:

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