#!/usr/bin/make -f

VERSION := $(shell dpkg-parsechangelog | grep ^Version: | sed 's/^Version: \(.\+\)-.\+$$/\1/')
UPSTREAM_VERSION := $(shell echo $(VERSION) | sed 's/~m/-milestone-/')
PLUGINS_JARS := announce antlr build-comparison code-quality cpp diagnostics ear ide ivy javascript jetty maven osgi plugins publish reporting scala signing
export JAVA_HOME=/usr/lib/jvm/default-java
export GRADLE_OPTS=-Dfile.encoding=UTF-8 -Xmx512m
export GRADLE_USER_HOME=$(CURDIR)/.gradlehome
# Only for debug purpose
# export JAVA_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005
DEB_GRADLE_OPTS := --project-prop finalRelease=true --stacktrace --offline

# Support for DEB_BUILD_OPTIONS parallel=n
ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
	NUMTHREADS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
	DEB_GRADLE_OPTS += --parallel --parallel-threads=$(NUMTHREADS)
endif

%:
	dh $@ --with javahelper

override_dh_auto_build:
	find /usr/share/gradle -type l ! -exec test -r {} \; -print
	mkdir $(CURDIR)/.gradlehome
	gradle $(DEB_GRADLE_OPTS) assemble
	unzip -q -n build/distributions/gradle-*-bin.zip -d build/distributions/bin
	unzip -q -n build/distributions/gradle-*-all.zip -d build/distributions/all
	pod2man -c '' -r '' debian/gradle.pod > build/gradle.1
	patch -p1 < debian/patches/90_respect_user_java_home.diff

override_dh_auto_clean:
	dh_auto_clean
	-gradle $(DEB_GRADLE_OPTS) clean
	-rm -rf .gradle buildSrc/.gradle buildSrc/build $(CURDIR)/.gradlehome build

override_dh_link:
	dh_link
	# plugins symlinks
	for j in $(PLUGINS_JARS); do \
		dh_link -plibgradle-plugins-java usr/share/java/gradle-$$j.jar \
		usr/share/gradle/lib/plugins/gradle-$$j-$(VERSION).jar; \
	done ;
	dh_link -plibgradle-core-java usr/share/java/gradle-core-impl.jar \
		usr/share/gradle/lib/plugins/gradle-core-impl-$(VERSION).jar
	dh_link -plibgradle-core-java usr/share/java/gradle-wrapper.jar \
		usr/share/gradle/lib/gradle-wrapper-$(VERSION).jar
	dh_link -pgradle usr/share/java/gradle-core.jar \
		usr/share/gradle/lib/gradle-core-$(VERSION).jar

override_jh_installlibs:
	jh_installlibs --upstream-version=$(UPSTREAM_VERSION)

override_jh_installjavadoc:
	jh_installjavadoc -pgradle-doc \
		build/distributions/all/gradle-$(UPSTREAM_VERSION)/docs/javadoc

get-orig-source:
	cd $(dir $(firstword $(MAKEFILE_LIST)))../ && \
	uscan \
		--verbose \
		--no-symlink \
		--destdir $(CURDIR)      \
		--watchfile debian/watch \
		--force-download

# since gradle build-depends on itself, a way to generate a deb from upstream
# binary distribution is provided with this target. With the resulting .deb,
# gradle can be rebuilt from source.
bootstrap:
	cd $(dir $(firstword $(MAKEFILE_LIST)))../ && \
	./debian/bootstrap.sh
