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

name=voms

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

INSTALLDIR = $(CURDIR)/debian/tmp

_prefix = /usr
_bindir = $(_prefix)/bin
_sbindir = $(_prefix)/sbin
_libdir = $(_prefix)/lib
_includedir = $(_prefix)/include
_sysconfdir = /etc
_localstatedir = /var
_datadir = $(_prefix)/share
_mandir = $(_datadir)/man
_docdir = $(_datadir)/doc

configure: configure-stamp

configure-stamp:
	dh_testdir

	dh_autotools-dev_updateconfig

	# Remove embedded gsoap sources
	rm -f src/server/stdsoap2.c src/server/stdsoap2.h src/server/soap*

	# /var/lock/subsys is a redhat-ism - use /var/run/voms instead
	sed -e 's!/lock/subsys!/run/voms!g' -i src/install/voms.start.in

	# rebootstrap
	./autogen.sh

	CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" FFLAGS="$(FFLAGS)" \
	CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS) -Wl,-z,defs" ./configure \
	   --prefix=$(_prefix) \
	   --sysconfdir=$(_sysconfdir) \
	   --mandir='$${datadir}/man' \
	   --infodir='$${datadir}/info' \
	   --enable-docs \
	   --disable-parser-gen

	touch $@

build: build-arch build-indep

build-arch: build-stamp

build-indep: build-stamp

build-stamp: configure-stamp
	dh_testdir

	$(MAKE)

	cd doc/apidoc/api/VOMS_C_API/latex && make
	cd doc/apidoc/api/VOMS_CC_API/latex && make

	touch $@

clean:
	dh_testdir
	dh_testroot

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

	find . -name Makefile.in -exec rm {} ';'
	rm -f aclocal.m4
	rm -f configure
	rm -f project/ltmain.sh
	rm -f src/autogen/config.h.in

	rm -f m4/lt~obsolete.m4
	rm -f m4/ltversion.m4
	rm -f m4/ltoptions.m4
	rm -f m4/ltsugar.m4
	rm -f m4/libtool.m4

	sed -e 's!/run/voms!/lock/subsys!g' \
	    -e 's!/lock/subsys.pid!/run/voms.pid!g' \
	    -i src/install/voms.start.in

	dh_autotools-dev_restoreconfig

	rm -f src/server/vomsSOAP.GetAttributeCertificate.req.xml
	rm -f src/server/vomsSOAP.GetAttributeCertificate.res.xml
	rm -f src/server/vomsSOAP.nsmap

	rm -rf doc/apidoc
	rm -rf test/utest/.deps
	rm -f test/utest/Makefile
	rm -f test/Makefile
	rm -f .test

	rm -f INSTALL

	rm -f build-stamp configure-stamp

	dh_clean debian/voms-server.voms.init

install: build-stamp
	dh_testdir
	dh_testroot
	dh_prep

	$(MAKE) install DESTDIR=$(INSTALLDIR)

	rm -rf $(INSTALLDIR)$(_mandir)/man3
	rm $(INSTALLDIR)$(_libdir)/*.la

	# Remove in order to have a good upgrade path from voms 1.x
	# This file is installed in the documentation directory instead
	rm $(INSTALLDIR)$(_datadir)/$(name)/vomses.template

	rm $(INSTALLDIR)$(_sysconfdir)/rc.d/init.d/voms
	rm $(INSTALLDIR)$(_sysconfdir)/sysconfig/voms
	install src/install/voms.start $(CURDIR)/debian/voms-server.voms.init

	mkdir -p $(INSTALLDIR)$(_sysconfdir)/grid-security/vomsdir
	mkdir -p $(INSTALLDIR)$(_sysconfdir)/grid-security/$(name)
	mkdir -p $(INSTALLDIR)$(_sysconfdir)/$(name)
	mkdir -p $(INSTALLDIR)$(_localstatedir)/log/$(name)

	mkdir -p $(INSTALLDIR)/$(_docdir)/voms-dev/VOMS_C_API
	cp -pr doc/apidoc/api/VOMS_C_API/html \
		$(INSTALLDIR)/$(_docdir)/voms-dev/VOMS_C_API
	install -m 644 doc/apidoc/api/VOMS_C_API/latex/refman.pdf \
		$(INSTALLDIR)/$(_docdir)/voms-dev/VOMS_C_API

	mkdir -p $(INSTALLDIR)/$(_docdir)/voms-dev/VOMS_CC_API
	cp -pr doc/apidoc/api/VOMS_CC_API/html \
		$(INSTALLDIR)/$(_docdir)/voms-dev/VOMS_CC_API
	install -m 644 doc/apidoc/api/VOMS_CC_API/latex/refman.pdf \
		$(INSTALLDIR)/$(_docdir)/voms-dev/VOMS_CC_API

binary: binary-arch binary-indep

binary-arch: install
	dh_testdir
	dh_testroot
	dh_installdocs -a
	dh_installchangelogs -a ChangeLog
	dh_install -a --fail-missing
	dh_installinit -a --name=voms
	dh_installman -a
	dh_link -a
	dh_strip -a --dbg-package=voms-dbg
	dh_compress -a
	dh_fixperms -a
	dh_makeshlibs -a
	dh_installdeb -a
	dh_shlibdeps -a -l debian/libvomsapi1/usr/lib
	dh_gencontrol -a
	dh_md5sums -a
	dh_builddeb -a

binary-indep: install
	dh_testdir
	dh_testroot
	dh_installdocs -i
	dh_installchangelogs -i ChangeLog
	dh_install -i --fail-missing
	dh_installman -i
	dh_lintian -i
	dh_link -i
	dh_compress -i
	dh_fixperms -i
	dh_installdeb -i
	dh_gencontrol -i
	dh_md5sums -i
	dh_builddeb -i

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