#!/usr/bin/make -f

include /usr/share/postgresql-common/pgxs_debian_control.mk
include /usr/share/dpkg/architecture.mk

# use Java 8 (or 6/7) for compilation
export JAVA_HOME = $(wildcard /usr/lib/jvm/java-[678]-openjdk-*)
# use the default Java for libjvm at runtime
DPKG_S = $(shell dpkg -S '/usr/lib/jvm/*/libjvm.so' | sort -V | tail -1)
JRE_DEB = $(shell echo $(firstword $(DPKG_S)) | sed -e 's/:.*//')
LIBJVM_SO = $(lastword $(DPKG_S))

# saxon examples require Java 8
ifneq ($(findstring -8-,$(JAVA_HOME)),)
SAXONEXAMPLES = -Psaxon-examples
endif

# teach nar how to compile and link on ppc
ifeq ($(DEB_HOST_ARCH),ppc64el)
AOLPROPERTIES = -Dnar.aolProperties=pljava-so/aol.properties
endif

override_dh_auto_clean:
	# disable fakeroot here, we need the real ~/.m2
	LD_PRELOAD= mvn --batch-mode clean
	rm -rf build-*

override_dh_auto_build:
	set -ex; \
	for version in $$(pg_buildext supported-versions .) ; do \
		PG_CONFIG=/usr/lib/postgresql/$$version/bin/pg_config; \
		echo "### Compiling for PostgreSQL $$version"; \
		mvn --batch-mode -Pwnosign $(SAXONEXAMPLES) \
		    -Dso.debug=true $(AOLPROPERTIES) \
		    -Dpgsql.pgconfig=$$PG_CONFIG \
		    -Dpljava.libjvmdefault=$(LIBJVM_SO) \
		    clean install; \
		mkdir -p build-$$version; \
		cp pljava-packaging/target/pljava-pg$$version*.jar build-$$version; \
	done

override_dh_auto_test:

override_dh_auto_install:
	set -ex; \
	for version in $$(pg_buildext supported-versions .) ; do \
		PG_CONFIG=/usr/lib/postgresql/$$version/bin/pg_config; \
		echo "### Installing for PostgreSQL $$version"; \
		java -Dpgsql.pgconfig=$$PG_CONFIG \
		     -Dpgconfig.pkglibdir=debian/postgresql-$$version-pljava/usr/lib/postgresql/$$version/lib \
		     -Dpgconfig.sharedir=debian/postgresql-$$version-pljava/usr/share/postgresql/$$version \
		     -jar build-$$version/pljava-pg$$version*.jar; \
	done

override_dh_installdocs:
	dh_installdocs --all docs/*.html

override_dh_gencontrol:
	# add dependency on $(JRE_DEB) for libjvm.so
	dh_gencontrol -- -V"jre:Depends=$(JRE_DEB)"

%:
	dh $@
