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

export DEB_BUILD_MAINT_OPTIONS = hardening=+all
-include /usr/share/dpkg/buildflags.mk

name = myproxy

INSTALLDIR = $(CURDIR)/debian/tmp

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

configure: configure-stamp

configure-stamp:
	dh_testdir

	dh_autoreconf

	CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" \
	FFLAGS="$(FFLAGS)" CPPFLAGS="$(CPPFLAGS)" \
	LDFLAGS="$(LDFLAGS) -Wl,--as-needed -Wl,-z,defs" \
	dh_auto_configure -- \
	   --disable-static \
	   --sharedstatedir=/var/lib \
	   --includedir='$${prefix}/include/globus' \
	   --libexecdir='$${datadir}/globus' \
	   --docdir=$(_docdir) \
	   --with-voms=/usr \
	   --with-openldap=/usr \
	   --with-kerberos5=/usr \
	   --with-sasl2=/usr

	# Reduce overlinking
	sed 's!CC \(.*-shared\) !CC \\\$${wl}--as-needed \1 !' -i libtool

	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 VERBOSE=1
endif

	touch $@

clean:
	dh_testdir
	dh_testroot

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

	dh_autoreconf_clean

	rm -f build-stamp configure-stamp

	dh_clean debian/myproxy-server.service debian/myproxy-server.tmpfile

install: build-stamp
	dh_testdir
	dh_testroot
	dh_prep

	$(MAKE) install DESTDIR=$(INSTALLDIR)

	# Remove libtool archives (.la files)
	rm $(INSTALLDIR)$(_libdir)/*/*.la

	# Move documentation to default debian location
	mkdir -p $(INSTALLDIR)$(_docdir)/extras
	for FILE in login.html myproxy-accepted-credentials-mapapp \
	  myproxy-cert-checker myproxy-certificate-mapapp \
          myproxy-certreq-checker myproxy-crl.cron myproxy.cron \
	  myproxy-get-delegation.cgi myproxy-get-trustroots.cron \
	  myproxy-passphrase-policy myproxy-revoke ; do \
	  mv $(INSTALLDIR)$(_datadir)/$(name)/$$FILE \
	     $(INSTALLDIR)$(_docdir)/extras ; \
	done

	for FILE in PROTOCOL VERSION ; do \
	  mv $(INSTALLDIR)$(_datadir)/$(name)/$$FILE \
	    $(INSTALLDIR)$(_docdir) ; \
	done

	# Remove irrelavent example configuration files.
	for FILE in etc.inetd.conf.modifications etc.init.d.myproxy.nonroot \
	  etc.services.modifications etc.xinetd.myproxy \
	  etc.init.d.myproxy LICENSE* INSTALL README ; do \
	  rm $(INSTALLDIR)$(_datadir)/$(name)/$$FILE ; \
	done

	# Move example configuration file into place.
	mkdir -p $(INSTALLDIR)$(_sysconfdir)
	mv $(INSTALLDIR)$(_datadir)/$(name)/myproxy-server.config \
	   $(INSTALLDIR)$(_sysconfdir)

	mkdir -p $(INSTALLDIR)/var/lib/$(name)
	chmod 700 $(INSTALLDIR)/var/lib/$(name)

	# Create a directory to hold myproxy owned host certificates.
	mkdir -p $(INSTALLDIR)$(_sysconfdir)/grid-security/$(name)

	# systemd unit files
	mv $(INSTALLDIR)$(_datadir)/$(name)/myproxy-server.service debian
	mv $(INSTALLDIR)$(_datadir)/$(name)/myproxy-server.conf \
	   debian/myproxy-server.tmpfile

binary: binary-arch binary-indep

binary-arch: install
	dh_testdir
	dh_testroot
	dh_installdocs -a
	dh_installchangelogs -a
	dh_install -a
	dh_missing -a --fail-missing
	dh_installinit -a
	dh_installman -a
	dh_lintian -a
	dh_link -a
	dh_strip -a --dbgsym-migration='lib$(name)-dbg (<< 6.1.28-2~), $(name)-dbg (<< 6.1.28-2~)'
	dh_compress -a
	dh_fixperms -a -X var/lib/$(name)
	dh_perl -a
	dh_makeshlibs -a
	dh_installdeb -a
	dh_shlibdeps -a
	dh_gencontrol -a
	dh_md5sums -a
	dh_builddeb -a

binary-indep: install
	dh_testdir
	dh_testroot
	dh_installdocs -i
	dh_installchangelogs -i
	dh_install -i
	dh_missing -i --fail-missing
	dh_installman -i
	dh_link -i
	dh_compress -i
	dh_fixperms -i
	dh_perl -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
