#!/usr/bin/make -f

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

# Filter out -Wl,-Bsymbolic-functions from default Ubuntu LDFLAGS
COMMA = ,
LDFLAGS := $(filter-out -Wl$(COMMA)-Bsymbolic-functions,$(LDFLAGS))

ifeq ($(shell pkg-config --atleast-version 2.6 sigc++-2.0 && echo 1),1)
ifeq ($(shell echo __GNUC__ | gcc -E - | tail -1),5)
# Workaround for too new libsigc++/glibmm, too old gcc combination
CXXFLAGS += -std=c++11
endif
endif

ifeq ($(shell perl -mInline::Python < /dev/null 2>/dev/null && echo 1),1)
N =
else
N = -Nnordugrid-arc-arex-python-lrms
endif

configure: configure-stamp

configure-stamp:
	dh_testdir

	if [ ! -f po/POTFILES.in.save ] ; then \
	    cp -p po/POTFILES.in po/POTFILES.in.save ; \
	fi

	dh_autoreconf

	CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" \
	CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS) -Wl,-z,defs" \
	./configure --host=$(DEB_HOST_GNU_TYPE) \
		    --build=$(DEB_BUILD_GNU_TYPE) \
		    --prefix=/usr \
		    --libexecdir='$${prefix}/lib' \
		    --sysconfdir=/etc \
		    --localstatedir=/var \
		    --mandir='$${datadir}/man' \
		    --infodir='$${datadir}/info' \
		    --disable-doc \
		    --with-docdir='$${datadir}/doc/nordugrid-arc' \
		    --enable-sqlite \
		    --enable-internal
	touch $@

build: build-arch build-indep

build-arch: build-stamp

build-indep: build-stamp

build-stamp: configure-stamp
	dh_testdir

	$(MAKE)
ifeq ($(filter nocheck,$(DEB_BUILD_OPTIONS)),)
	$(MAKE) check
endif

	touch $@

clean:
	dh_testdir
	dh_testroot

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

	rm -f debian/nordugrid-arc-arex.arc-arex.init
	rm -f debian/nordugrid-arc-hed.arched.init
	rm -f debian/nordugrid-arc-datadelivery-service.arc-datadelivery-service.init
	rm -f debian/nordugrid-arc-gridftpd.arc-gridftpd.init
	rm -f debian/nordugrid-arc-infosys-ldap.arc-infosys-ldap.init
	rm -f debian/nordugrid-arc-acix-scanner.arc-acix-scanner.init
	rm -f debian/nordugrid-arc-acix-index.arc-acix-index.init

	if [ -f po/POTFILES.in.save ] ; then \
	    mv po/POTFILES.in.save po/POTFILES.in ; \
	fi

	find python src -name *.pyc -exec rm {} ';'
	rm -rf src/services/acix/*/test/_trial_temp
	rm -rf ./src/services/a-rex/infoproviders/_Inline
	rm -rf ./src/services/a-rex/infoproviders/test/_Inline

	dh_autoreconf_clean

	dh_clean configure-stamp build-stamp

install: build-stamp
	dh_testdir
	dh_testroot
	dh_prep

	$(MAKE) DESTDIR=$(CURDIR)/debian/tmp install

	find $(CURDIR)/debian/tmp -name \*.la -exec rm -fv '{}' ';'

	rm -f $(CURDIR)/debian/tmp/usr/lib/arc/lib*.a

	rm -f $(CURDIR)/debian/tmp/usr/lib/libarcglobusutils.so

	mv debian/tmp/etc/init.d/arc-arex \
	   debian/nordugrid-arc-arex.arc-arex.init
	mv debian/tmp/etc/init.d/arched \
	   debian/nordugrid-arc-hed.arched.init
	mv debian/tmp/etc/init.d/arc-datadelivery-service \
	   debian/nordugrid-arc-datadelivery-service.arc-datadelivery-service.init
	mv debian/tmp/etc/init.d/arc-gridftpd \
	   debian/nordugrid-arc-gridftpd.arc-gridftpd.init
	mv debian/tmp/etc/init.d/arc-infosys-ldap \
	   debian/nordugrid-arc-infosys-ldap.arc-infosys-ldap.init
	mv debian/tmp/etc/init.d/arc-acix-scanner \
	   debian/nordugrid-arc-acix-scanner.arc-acix-scanner.init
	mv debian/tmp/etc/init.d/arc-acix-index \
	   debian/nordugrid-arc-acix-index.arc-acix-index.init

binary: binary-arch binary-indep

binary-arch: install
	dh_testdir
	dh_testroot
	dh_installdirs -a $(N)
	dh_installdocs -a $(N)
	dh_installexamples -a $(N)
	dh_installman -a $(N)
	dh_installlogrotate -a $(N)
	dh_install -a $(N) --fail-missing
	dh_installchangelogs -a $(N)
	dh_installinit -p nordugrid-arc-hed --name arched
	dh_installinit -p nordugrid-arc-arex --name arc-arex
	dh_installinit -p nordugrid-arc-datadelivery-service --name arc-datadelivery-service
	dh_installinit -p nordugrid-arc-gridftpd --name arc-gridftpd
	dh_perl -a $(N)
	[ -x /usr/bin/dh_python2 ] && dh_python2 -a $(N) || dh_pysupport -a $(N)
	dh_lintian -a $(N)
	dh_link -a $(N)
	dh_strip -a $(N)
	dh_compress -a $(N) -X .pdf -X arc.conf
	dh_fixperms -a $(N)
	dh_makeshlibs -a $(N)
	dh_installdeb -a $(N)
	dh_shlibdeps -a $(N)
	dh_gencontrol -a $(N)
	dh_md5sums -a $(N)
	dh_builddeb -a $(N)

binary-indep: install
	dh_testdir
	dh_testroot
	dh_installdirs -i
	dh_installdocs -i
	dh_installexamples -i
	dh_installman -i
	dh_installlogrotate -i
	dh_install -i --fail-missing
	dh_installchangelogs -i
	dh_installinit -p nordugrid-arc-infosys-ldap --name arc-infosys-ldap
	dh_installinit -p nordugrid-arc-acix-scanner --name arc-acix-scanner
	dh_installinit -p nordugrid-arc-acix-index --name arc-acix-index
	dh_perl -i
	[ -x /usr/bin/dh_python2 ] && dh_python2 -i || dh_pysupport -i
	dh_lintian -i
	dh_link -i
	dh_compress -i -X .pdf
	dh_fixperms -i
	dh_installdeb -i
	dh_gencontrol -i
	dh_md5sums -i
	dh_builddeb -i

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