#!/usr/bin/make -f

GRADLE_TASKS := assemble docs startScripts

# Only for debug purpose
# export JAVA_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005

# Under fakeroot Gradle will show error while creating /root/.gradle, hence
# specifies the Gradle home location
GRADLE_FLAGS := --project-prop finalRelease=true --offline --gradle-user-home .gradlehome --stacktrace

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

%:
	dh $@ --with javahelper

override_dh_auto_build:
	find /usr/share/gradle -type l ! -exec test -r {} \; -print

	# Gradle 1.12 buildSrc uses APIs that does not exist in Gradle 1.5, hence
	# make the codes available inside buildSrc.
	cp -r subprojects/base-services/src/main/java/ buildSrc/src/main/

	gradle $(GRADLE_TASKS) $(GRADLE_FLAGS)
	pandoc -s -o debian/gradle.1 debian/gradle.1.md

override_dh_auto_clean:
	dh_auto_clean

	# buildSrc must be prepared well before all Gradle operations
	cp -r subprojects/base-services/src/main/java/ buildSrc/src/main/

	gradle clean $(GRADLE_FLAGS)
	rm -rf debian/gradle.1

	rm -rf .gradle/ .gradlehome/ buildSrc/.gradle/ buildSrc/build/
	rm -rf buildSrc/src/main/java/

override_dh_install:
	dh_install

	# Remove empty files that raise lintian warnings
	rm -f debian/gradle-doc/usr/share/doc/gradle/dsl/dsl-standalone.html
	rm -f debian/gradle-doc/usr/share/doc/gradle/dsl/sidebar.js

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