#!/usr/bin/make -f

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1

# Some programs are suid. Compiling them with hardening flags...
# https://wiki.debian.org/Hardening
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/buildflags.mk

# This has to be exported to make some magic below work.
export DH_OPTIONS

# This is required to use systemd
export SYSTEMD_INIT=true

INSTALLDIR=debian

export OARUSER=oar
export OARCONFDIR=/etc/oar
export PREFIX=/usr
export MANDIR=/usr/share/man
export OARDIR=/usr/lib/oar
export BINDIR=/usr/bin
export SBINDIR=/usr/sbin
export CGIDIR=/usr/lib/cgi-bin
export PERLLIBDIR=/usr/share/perl5
export VARLIBDIR=/var/lib
export SETUP_TYPE=deb
export TARGET_DIST=debian

CFLAGS += -Wall

%:
	dh $@ --with sphinxdoc

override_dh_auto_build:
	dh_auto_build -- -e packages-build   PACKAGES_DIR=$(CURDIR)/$(INSTALLDIR)


override_dh_auto_install:
	$(MAKE) -e packages-install PACKAGES_DIR=$(CURDIR)/$(INSTALLDIR)
	## oar-server
	cat $(CURDIR)/$(INSTALLDIR)/oar-server/usr/share/oar/oar-server/cron.d/oar-server > debian/oar-server.cron.d
	cat $(CURDIR)/$(INSTALLDIR)/oar-server/usr/share/oar/oar-server/systemd/oar-server.service > debian/oar-server.service
	cat $(CURDIR)/$(INSTALLDIR)/oar-server/usr/share/oar/oar-server/systemd/oar-accounting.timer > debian/oar-server.oar-accounting.timer
	cat $(CURDIR)/$(INSTALLDIR)/oar-server/usr/share/oar/oar-server/systemd/oar-accounting.service > debian/oar-server.oar-accounting.service

	## oar-node
	cat $(CURDIR)/$(INSTALLDIR)/oar-node/usr/share/oar/oar-node/cron.d/oar-node > debian/oar-node.cron.d
	cat $(CURDIR)/$(INSTALLDIR)/oar-node/usr/share/oar/oar-node/systemd/oar-node.service > debian/oar-node.service
	cat $(CURDIR)/$(INSTALLDIR)/oar-node/usr/share/oar/oar-node/systemd/oar-node-script.service > debian/oar-node.oar-node-script.service
	cat $(CURDIR)/$(INSTALLDIR)/oar-node/usr/share/oar/oar-node/systemd/oar-nodecheck.timer > debian/oar-node.oar-nodecheck.timer
	cat $(CURDIR)/$(INSTALLDIR)/oar-node/usr/share/oar/oar-node/systemd/oar-nodecheck.service > debian/oar-node.oar-nodecheck.service
	cat $(CURDIR)/$(INSTALLDIR)/oar-node/usr/share/oar/oar-node/systemd/oar.target > debian/oar-node.oar.target

	## oar-common
	cat $(CURDIR)/$(INSTALLDIR)/oar-common/usr/share/oar/oar-common/logrotate.d/oar-common > debian/oar-common.logrotate
	## oar-web-status
	# (poar) use libjs-jquery instead of the embedded one.
	# -- poar is not in the debian packaging (still an experimental feature)
	#rm $(CURDIR)/$(INSTALLDIR)/oar-web-status/usr/share/oar/oar-web-status/poar/external/jquery.js
	#ln -s /usr/share/javascript/jquery/jquery.js  $(CURDIR)/$(INSTALLDIR)/oar-web-status/usr/share/oar-web-status/poar/external/jquery.js

	## oar-doc
	rm -r $(CURDIR)/$(INSTALLDIR)/oar-doc/usr/share/doc/oar-doc/doctrees

	dh_install -i
	dh_installsystemd --name=oar
	dh_installsystemd --name=oar-node-script
	dh_installsystemd --name=oar-accounting
	dh_installsystemd --name=oar-nodecheck

override_dh_clean:
	dh_clean

	$(MAKE) -e packages-clean   PACKAGES_DIR=$(CURDIR)/$(INSTALLDIR)

	# Cleaning package
	$(RM) debian/oar-server.init
	$(RM) debian/oar-server.service
	$(RM) debian/oar-server.oar-accounting.service
	$(RM) debian/oar-server.oar-accounting.timer
	$(RM) debian/oar-node.init
	$(RM) debian/oar-node.service
	$(RM) debian/oar-node.oar-node-script.service
	$(RM) debian/oar-node.oar-nodecheck.service
	$(RM) debian/oar-node.oar-nodecheck.timer
	$(RM) debian/oar-server.default
	$(RM) debian/oar-node.default
	$(RM) debian/oar-common.logrotate
	$(RM) debian/oar-server.cron.d
	$(RM) debian/oar-node.cron.d

override_dh_installinit:
	dh_installinit --error-handler=errorinit

override_dh_compress:
	# avoid to compress examples as we use ucf after.
	dh_compress -Xexamples

override_dh_fixperms:
	dh_fixperms
	chmod +x debian/oar-server/usr/share/oar/oar-server/server_epilogue
	chmod +x debian/oar-server/usr/share/oar/oar-server/server_prologue
	chmod +x debian/oar-server/usr/share/oar/oar-server/shut_down_nodes.sh
	chmod +x debian/oar-server/usr/share/oar/oar-server/wake_up_nodes.sh
	chmod +x debian/oar-common/usr/share/oar/oar-common/oarnodesetting_ssh
	chmod +x debian/oar-common/usr/share/oar/oar-common/update_cpuset_id.sh
	chmod +x debian/oar-web-status/usr/share/oar/oar-web-status/userInfos.cgi
	chmod +x debian/oar-restful-api/usr/share/oar/oar-api/stress_factor.sh
	chmod +x debian/oar-node/usr/share/oar/oar-node/epilogue
	chmod +x debian/oar-node/usr/share/oar/oar-node/prologue