#!/usr/bin/make -f

GRADLE_TASKS := assemble startScripts javadocAll groovydocAll samplesDocs

# 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:
	# Gradle 2.4 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 lintian warning zero-byte-file-in-doc-directory
	rm -f debian/gradle-doc/usr/share/doc/gradle/groovydoc/org/gradle/api/distribution/Distribution.html
	rm -f debian/gradle-doc/usr/share/doc/gradle/groovydoc/org/gradle/api/initialization/Settings.html

get-orig-source:
	uscan --download-current-version --force-download --repack --compression xz

# 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