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

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

export LC_ALL=C.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 DEB_HOST_MULTIARCH

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

GRADLEHOME	:= $(CURDIR)/debian/.gradle
GRADLEOPTS	:= -g $(GRADLEHOME) \
		   --offline -PicegridguiProguard=false \
		   -PjgoodiesLooksVersion=debian \
		   -PjgoodiesFormsVersion=debian

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

PACKAGE_NAMES =	\
	libzeroc-freeze3.6 \
	libzeroc-ice-dev \
	libzeroc-ice-java \
	libzeroc-ice3.6 \
	libzeroc-icestorm3.6 \
	php-zeroc-ice \
	zeroc-glacier2 \
	zeroc-ice-all-dev \
	zeroc-ice-all-runtime \
	zeroc-ice-compilers \
	zeroc-ice-slice \
	zeroc-ice-utils \
	zeroc-ice-utils-java \
	zeroc-icebox \
	zeroc-icegrid \
	zeroc-icepatch2 \

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

ARTIFACT_NAMES = \
	glacier2 \
	ice \
	icebox \
	icediscovery \
	icegrid \
	icelocatordiscovery \
	icepatch2 \
	icestorm \
	freeze

ifeq ($(DEB_HOST_MULTIARCH),i386-linux-gnu)
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)

%:
	dh $@ $(DHARGS)

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

override_dh_auto_build-indep:
	gradle $(GRADLEOPTS) -pjava dist

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:
	gradle $(GRADLEOPTS) -pjava -Pprefix=/usr -PDESTDIR=$(DESTDIR) install

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

override_dh_auto_clean-indep:
	gradle $(GRADLEOPTS) -pjava clean
	rm -rf java/.gradle
	rm -rf $(GRADLEHOME)

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

override_dh_auto_test:

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 -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

dh_installdocs:
	dh_installdocs debian/README
