#!/usr/bin/make -f

# Filter out -Wl,-Bsymbolic-functions from default Ubuntu LDFLAGS
export DEB_LDFLAGS_MAINT_STRIP=-Wl,-Bsymbolic-functions

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
export DEB_CXXFLAGS_MAINT_APPEND=-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

ifeq ($(shell dpkg-query -W -f '$${Depends}' libinline-python-perl 2>/dev/null | grep -q python3 && echo 1),1)
PYVER = 3
else
PYVER = 2
endif

ifeq ($(shell type dh_systemd_enable > /dev/null 2> /dev/null && echo 1),1)
WSD = --with systemd
else
WSD =
endif

ifeq ($(shell test -r /usr/include/systemd/sd-daemon.h && echo 1),1)
ifeq ($(DEB_HOST_ARCH_OS),linux)
SYSTEMD = yes
else
SYSTEMD = no
endif
else
SYSTEMD = no
endif

%:
	dh $@ --with autoreconf --with python$(PYVER) $(WSD) $(N)

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

	LDFLAGS="$(LDFLAGS) -Wl,-z,defs" \
	dh_auto_configure -- \
		    --disable-doc \
		    --libdir=/usr/lib \
		    --libexecdir=/usr/lib \
		    --docdir=/usr/share/doc/nordugrid-arc \
		    --enable-internal \
		    --enable-systemd=$(SYSTEMD) \
		    --with-systemd-units-location=/lib/systemd/system \
		    --with-sysv-scripts-location=/etc/init.d \
		    --with-python=python$(PYVER)

override_dh_auto_clean:
	dh_auto_clean

	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

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

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

	find python src -name *.pyc -exec rm {} ';'
	find python src -depth -name __pycache__ -exec rm -rf {} ';'
	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

override_dh_auto_install:
	dh_auto_install

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

	rm -f debian/tmp/usr/lib/arc/*.a

	rm -f debian/tmp/usr/lib/libarcglobusutils.so

	find debian/tmp -depth -name __pycache__ -exec rm -rf '{}' ';'

	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

	mv debian/tmp/lib/systemd/system/arc-arex.service \
	   debian/nordugrid-arc-arex.arc-arex.service
	mv debian/tmp/lib/systemd/system/arched.service \
	   debian/nordugrid-arc-hed.arched.service
	mv debian/tmp/lib/systemd/system/arc-datadelivery-service.service \
	   debian/nordugrid-arc-datadelivery-service.arc-datadelivery-service.service
	mv debian/tmp/lib/systemd/system/arc-gridftpd.service \
	   debian/nordugrid-arc-gridftpd.arc-gridftpd.service
	mv debian/tmp/lib/systemd/system/arc-infosys-ldap.service \
	   debian/nordugrid-arc-infosys-ldap.arc-infosys-ldap.service
	mv debian/tmp/lib/systemd/system/arc-infosys-ldap-slapd.service \
	   debian/nordugrid-arc-infosys-ldap.arc-infosys-ldap-slapd.service
	mv debian/tmp/lib/systemd/system/arc-acix-scanner.service \
	   debian/nordugrid-arc-acix-scanner.arc-acix-scanner.service
	mv debian/tmp/lib/systemd/system/arc-acix-index.service \
	   debian/nordugrid-arc-acix-index.arc-acix-index.service

	chmod 4755 debian/tmp/usr/bin/arc-job-cgroup

override_dh_install:
	dh_install --fail-missing

override_dh_installinit:
	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_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

override_dh_systemd_enable:
	dh_systemd_enable -p nordugrid-arc-hed --name arched
	dh_systemd_enable -p nordugrid-arc-arex --name arc-arex
	dh_systemd_enable -p nordugrid-arc-datadelivery-service --name arc-datadelivery-service
	dh_systemd_enable -p nordugrid-arc-gridftpd --name arc-gridftpd
	dh_systemd_enable -p nordugrid-arc-infosys-ldap --name arc-infosys-ldap
	dh_systemd_enable -p nordugrid-arc-infosys-ldap --name arc-infosys-ldap-slapd
	dh_systemd_enable -p nordugrid-arc-acix-scanner --name arc-acix-scanner
	dh_systemd_enable -p nordugrid-arc-acix-index --name arc-acix-index

override_dh_systemd_start:
	dh_systemd_start -p nordugrid-arc-hed --name arched
	dh_systemd_start -p nordugrid-arc-arex --name arc-arex
	dh_systemd_start -p nordugrid-arc-datadelivery-service --name arc-datadelivery-service
	dh_systemd_start -p nordugrid-arc-gridftpd --name arc-gridftpd
	dh_systemd_start -p nordugrid-arc-infosys-ldap --name arc-infosys-ldap
	dh_systemd_start -p nordugrid-arc-infosys-ldap --name arc-infosys-ldap-slapd
	dh_systemd_start -p nordugrid-arc-acix-scanner --name arc-acix-scanner
	dh_systemd_start -p nordugrid-arc-acix-index --name arc-acix-index

override_dh_fixperms:
	dh_fixperms -X /usr/bin/arc-job-cgroup

override_dh_python2:
	dh_python2

	echo "pydeps:Depends=python-ldap, python-isodate, python-stompy" \
		>> debian/nordugrid-arc-arex.substvars
	echo "pydeps:Depends=python-twisted, python-openssl" \
		>> debian/nordugrid-arc-acix-core.substvars
	echo "pydeps:Depends=python-ldap, python-dns" \
		>> debian/nordugrid-arc-archery-manage.substvars

override_dh_python3:
	dh_python3

	echo "pydeps:Depends=python3-ldap, python3-isodate" \
		>> debian/nordugrid-arc-arex.substvars
	echo "pydeps:Depends=python3-twisted, python3-openssl" \
		>> debian/nordugrid-arc-acix-core.substvars
	echo "pydeps:Depends=python3-ldap, python3-dns" \
		>> debian/nordugrid-arc-archery-manage.substvars
