#!/usr/bin/make -f

include /usr/share/dpkg/architecture.mk

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

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

# put m2 cache into debian/m2 and keep it in git
REPO = debian/m2
OFFLINE = --offline
MVN = mvn $(OFFLINE) -Dmaven.repo.local=$(REPO)

override_dh_clean:
	dh_clean
	find debian/m2 -type f | LC_COLLATE=C sort > debian/source/include-binaries

override_dh_auto_clean:
	pg_buildext checkcontrol
	# delete stale m2 files
	test ! -d $(REPO) || find $(REPO) \( -name \*.part -or -name \*.lock \) -delete
	# only invoke "clean" if the package was built
	[ ! -d pljava-so/target ] || $(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 -Psaxon-examples \
		    -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_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 \
		     -Dpgconfig.sysconfdir=debian/postgresql-pljava-common/etc/postgresql-common \
		     -jar build-$$version/pljava-pg$$version*.jar; \
	done

override_dh_pgxs_test:
	+pg_buildext virtualenv . . postgresql-%v-pljava < debian/tests/test.sh

override_dh_installdocs:
	dh_installdocs --all -Npostgresql-pljava-common docs/*.html

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

%:
	dh $@ --with pgxs
