#!/usr/bin/make -f

include /usr/share/javahelper/java-vars.mk
include /usr/share/dpkg/pkg-info.mk

export LEIN_HOME=$(CURDIR)/.lein
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-$(DEB_HOST_ARCH)

# Jars needed to bootstrap leiningen, one per line, with debian/maven-repo/
# removed.
BOOTSTRAP_JARS=leiningen-core/leiningen-core/$(DEB_VERSION_UPSTREAM)/leiningen-core-$(DEB_VERSION_UPSTREAM).jar \
	bultitude/bultitude/debian/bultitude-debian.jar \
	clojure-complete/clojure-complete/debian/clojure-complete-debian.jar \
	com/cemerick/pomegranate/debian/pomegranate-debian.jar \
	com/google/guava/guava/debian/guava-debian.jar \
	javax/inject/javax.inject/debian/javax.inject-debian.jar \
	com/hypirion/io/debian/io-debian.jar \
	commons-codec/commons-codec/debian/commons-codec-debian.jar \
	commons-io/commons-io/debian/commons-io-debian.jar \
	commons-logging/commons-logging/debian/commons-logging-debian.jar \
	org/apache/commons/commons-lang3/debian/commons-lang3-debian.jar \
	org/apache/httpcomponents/httpclient/debian/httpclient-debian.jar \
	org/apache/httpcomponents/httpcore/debian/httpcore-debian.jar \
	org/apache/maven/maven-artifact/3.x/maven-artifact-3.x.jar \
	org/apache/maven/maven-builder-support/3.x/maven-builder-support-3.x.jar \
	org/apache/maven/maven-model/3.x/maven-model-3.x.jar \
	org/apache/maven/maven-model-builder/3.x/maven-model-builder-3.x.jar \
	org/apache/maven/maven-repository-metadata/3.x/maven-repository-metadata-3.x.jar \
	org/apache/maven/maven-resolver-provider/3.x/maven-resolver-provider-3.x.jar \
	org/apache/maven/resolver/maven-resolver-api/debian/maven-resolver-api-debian.jar \
	org/apache/maven/resolver/maven-resolver-connector-basic/debian/maven-resolver-connector-basic-debian.jar \
	org/apache/maven/resolver/maven-resolver-impl/debian/maven-resolver-impl-debian.jar \
	org/apache/maven/resolver/maven-resolver-spi/debian/maven-resolver-spi-debian.jar \
	org/apache/maven/resolver/maven-resolver-transport-file/debian/maven-resolver-transport-file-debian.jar \
	org/apache/maven/resolver/maven-resolver-transport-http/debian/maven-resolver-transport-http-debian.jar \
	org/apache/maven/resolver/maven-resolver-transport-wagon/debian/maven-resolver-transport-wagon-debian.jar \
	org/apache/maven/resolver/maven-resolver-util/debian/maven-resolver-util-debian.jar \
	org/apache/maven/wagon/wagon-http/debian/wagon-http-debian.jar \
	org/apache/maven/wagon/wagon-http-shared/debian/wagon-http-shared-debian.jar \
	org/apache/maven/wagon/wagon-provider-api/debian/wagon-provider-api-debian.jar \
	org/clojure/clojure/debian/clojure-debian.jar \
	org/clojure/tools.macro/debian/tools.macro-debian.jar \
	org/clojure/tools.macro/debian/tools.nrepl-debian.jar \
	org/codehaus/plexus/plexus-component-annotations/debian/plexus-component-annotations-debian.jar \
	org/codehaus/plexus/plexus-interpolation/debian/plexus-interpolation-debian.jar \
	org/codehaus/plexus/plexus-utils/2.x/plexus-utils-2.x.jar \
	org/flatland/classlojure/debian/classlojure-debian.jar \
	org/jsoup/jsoup/debian/jsoup-debian.jar \
	org/slf4j/jcl-over-slf4j/debian/jcl-over-slf4j-debian.jar \
	org/slf4j/slf4j-api/debian/slf4j-api-debian.jar \
	org/slf4j/slf4j-nop/debian/slf4j-nop-debian.jar \
	org/tcrawley/dynapath/debian/dynapath-debian.jar \
	robert/hooke/debian/hooke-debian.jar

# Generate LEIN_BOOTSTRAP from BOOTSTRAP_JARS
BOOTSTRAP_PATHS=$(foreach jar,$(BOOTSTRAP_JARS),debian/maven-repo/$(jar))
EMPTY :=
SPACE := $(EMPTY) $(EMPTY)
LEIN_BOOTSTRAP=$(subst $(SPACE),:,$(BOOTSTRAP_PATHS))

%:
	dh $@ --with bash-completion --with javahelper --buildsystem=maven

override_dh_auto_build:
	cp resources/leiningen/bootclasspath-deps.clj \
	   leiningen-core/src/leiningen/bootclasspath-deps.clj
	dh_auto_build -- -f leiningen-core/pom.xml install
	echo $(LEIN_BOOTSTRAP) > leiningen-core/.lein-bootstrap
	chmod a+x bin/lein
	bin/lein uberjar
	bin/lein pom
	cp bin/lein bin/lein-standalone
	cp bin/lein-pkg bin/lein
	cp zsh_completion.zsh _lein

override_dh_auto_test:
	dh_auto_test -- -f leiningen-core/pom.xml test

override_dh_auto_install:
	dh_auto_install -- -f leiningen-core/pom.xml
	mh_installjar -pleiningen -l pom.xml target/leiningen-$(DEB_VERSION_UPSTREAM)-standalone.jar
	mh_installpom -pleiningen pom.xml

override_dh_auto_clean:
	rm -f leiningen-core/src/leiningen/bootclasspath-deps.clj
	dh_auto_clean -- -f leiningen-core/pom.xml clean
	rm -f leiningen-core/.lein-bootstrap
	rm -f .lein-project-checksum
	rm -f .lein-classpath
	rm -rf .lein
	rm -f pom.xml
	rm -rf target
	rm -f _lein
	if [ -f bin/lein-standalone ] ; then \
		mv bin/lein-standalone bin/lein; \
	fi

override_dh_strip_nondeterminism:
