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

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

export LC_ALL=en_US.UTF-8

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

# enable dpkg build flags
# disable full hardening for now
# export DEB_BUILD_MAINT_OPTIONS = hardening=+all
DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/default.mk

export JAVA_HOME=/usr/lib/jvm/default-java

GRADLEOPTS	= --gradle-user-home $(CURDIR)/.gradle \
		  --info \
		  --console plain \
		  --offline \
		  --stacktrace \
		  --no-daemon \
		  --refresh-dependencies \
		  -PicegridguiProguard=false \
		  -PjgoodiesLooksVersion=debian \
		  -PjgoodiesFormsVersion=debian

PHP_VERSIONS := $(shell /usr/sbin/phpquery -V)

export VERSION   := $(shell echo $(DEB_VERSION_UPSTREAM) | sed -e 's,^\([.0-9]*\).*,\1,')

ifeq ($(DEB_HOST_ARCH_CPU),i386)
export ICEBOX := icebox32
else
export ICEBOX := icebox
endif

DESTDIR=$(CURDIR)/debian/tmp
ifeq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
	OPTIMIZE=yes
endif

ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
	MAKEFLAGS += -j$(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
else
	PROCESSORS := $(shell cat /proc/cpuinfo | grep processor | wc -l)
	ifneq ($(PROCESSORS),0)
	    MAKEFLAGS += -j$(PROCESSORS)
	endif
endif

DHARGS	= --parallel --with maven_repo_helper --with systemd --with php --with python2

MAKEOPTS = prefix=/usr OPTIMIZE=$(OPTIMIZE)

ifneq ($(filter notest nocheck,$(DEB_BUILD_OPTIONS)),)
MAKEOPTS += NOTEST=yes
endif

%:
	dh $@ $(DHARGS)

override_dh_auto_build-arch:
	if [ ! -d cpp11 ]; then cp -r cpp cpp11; fi
	$(MAKE) $(MAKEOPTS) -C cpp11 CPP11=yes LD_LIBRARY_PATH=$(CURDIR)/cpp11/lib/$(DEB_HOST_MULTIARCH)
	$(MAKE) $(MAKEOPTS) -C cpp
	for v in $(PHP_VERSIONS); do \
	  cp -a php php-$${v}; \
	  PHP_CONFIG=php-config$${v} $(MAKE) $(MAKEOPTS) -C php-$${v}; \
	done

override_dh_auto_build-indep:
	$(MAKE) $(MAKEOPTS) -C cpp
ifeq ($(filter notest nocheck,$(DEB_BUILD_OPTIONS)),)
	LD_LIBRARY_PATH=$(CURDIR)/cpp/lib/$(DEB_HOST_MULTIARCH) gradle $(GRADLEOPTS) -pjava build
else
	LD_LIBRARY_PATH=$(CURDIR)/cpp/lib/$(DEB_HOST_MULTIARCH) gradle $(GRADLEOPTS) -pjava dist
endif

override_dh_auto_install-arch:
	$(MAKE) $(MAKEOPTS) -C cpp11 DESTDIR=$(DESTDIR) CPP11=yes install
	$(MAKE) $(MAKEOPTS) -C cpp DESTDIR=$(DESTDIR) install
	for v in $(PHP_VERSIONS); do \
	  PHP_CONFIG=php-config$${v} $(MAKE) $(MAKEOPTS) -C php-$${v} DESTDIR=$(DESTDIR) install; \
	done

override_dh_auto_install-indep:
	$(MAKE) $(MAKEOPTS) -C cpp DESTDIR=$(DESTDIR) install
#	gradle $(GRADLEOPTS) -pjava -PjarsClassPath=true -Pprefix=/usr -PDESTDIR=$(DESTDIR) install
	gradle $(GRADLEOPTS) -pjava -Pprefix=/usr -PDESTDIR=$(DESTDIR) install
	rm -rf $(DESTDIR)/usr/share/java/*-sources.jar

override_dh_auto_clean-arch:
	$(MAKE) $(MAKEOPTS) -C cpp clean
	for v in $(PHP_VERSIONS); do \
	  rm -rf php-$${v}; \
	done
	rm -rf cpp11

override_dh_auto_clean-indep:
	$(MAKE) $(MAKEOPTS) -C cpp clean
	-gradle $(GRADLEOPTS) -pjava clean
	rm -rf java/.gradle
	rm -rf $(CURDIR)/.gradle

override_dh_auto_test-arch:
ifeq ($(filter nocheck notest,$(DEB_BUILD_OPTIONS)),)
	-$(MAKE) $(MAKEOPTS) -C cpp test
endif

override_dh_auto_test-indep:
ifeq ($(filter nocheck notest,$(DEB_BUILD_OPTIONS)),)
	-$(MAKE) $(MAKEOPTS) -C java test
endif

override_dh_clean:
	find . -iname "*.pyc" -exec rm -rf {} \;
	dh_clean

override_dh_installinit:
	dh_installinit --noscripts --name icegridregistry
	dh_installinit --noscripts --name icegridnode
	dh_installinit --noscripts --name glacier2router

override_dh_install:
	install -d -m 0755 $(DESTDIR)/usr/bin
	install -m 0755 debian/zeroc-ice-utils-java.icegridgui $(DESTDIR)/usr/bin/icegridgui
	install -m 0644 debian/zeroc-ice-utils-java.icegridgui.1 $(DESTDIR)/usr/share/man/man1/icegridgui.1
	install -d -m 0755 $(DESTDIR)/etc/

	install -m 0644 debian/zeroc-glacier2.glacier2router.conf $(DESTDIR)/etc/glacier2router.conf
	install -m 0644 debian/zeroc-icegrid.icegridnode.conf $(DESTDIR)/etc/icegridnode.conf
	install -m 0644 debian/zeroc-icegrid.icegridregistry.conf $(DESTDIR)/etc/icegridregistry.conf

	for slice in $(DESTDIR)/usr/share/Ice-$(VERSION)/icegrid-slice.*.ice.gz; do \
	  gzip -d $${slice}; \
	  gzip -9 -n $${slice%.gz}; \
	done

	dh_install --list-missing -X.pom -XICE_LICENSE -XLICENSE

override_dh_installdocs:
	dh_installdocs -A debian/README

override_mh_install-arch:

override_mh_install-indep:
	mh_install

get-orig-source:
	uscan --download-current-version --rename --force-download
