#!/usr/bin/make -f

# Force using debian/maven.ignoreRules.full during clean-up
# Because I've had no success setting up debian/cleanIgnoreRules
cleanbuilddir:: unpatch-poms
	cp debian/maven.ignoreRules.full debian/maven.ignoreRules

# CDBS + debian-maven-helper
include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/cdbs/1/class/maven.mk

# Honor dpkg-buildflags
export CPPFLAGS=$(shell dpkg-buildflags --get CPPFLAGS) -I$(JAVA_HOME)/include/linux
export CXXFLAGS=$(shell dpkg-buildflags --get CXXFLAGS)
export LDFLAGS=$(shell dpkg-buildflags --get LDFLAGS)

JAVA_HOME := /usr/lib/jvm/default-java

# Skip javadoc maven target because it fails resolving dependencies
# between SikuliX-* subprojects:
#  ...
#  [INFO] Building Unnamed - org.sikuli:SikuliX-Natives:jar:1.1.0
#  [INFO]    task-segment: [javadoc:jar]
#  [INFO] ------------------------------------------------------------------------
#  [INFO] ------------------------------------------------------------------------
#  [ERROR] BUILD ERROR
#  [INFO] ------------------------------------------------------------------------
#  [INFO] Failed to resolve artifact.
#  
#  Missing:
#  ----------
#  1) org.sikuli:SikuliX-Basics:jar:1.1.0
#  ...
# Instead, we use our own javadoc command line to generate the documentation
# (see target install/libsikulix-script-doc below)
DEB_MAVEN_DOC_TARGET :=

# Despite the option '--package=<package>', maven debian helper is not
# that good at handling several binary packages.
# So we tell maven-debian-helper the java package name is tmp to not
# interfere with the actual binary packages when it doesn't honour
# '--package'
DEB_JAR_PACKAGE := tmp

export VP_CONFIGURE_FLAGS=--build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE)

configure/libsikulixapi-jni::
	[ -z "$(DEB_FAIL)" ]
	sed "s/@DEB_HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/g;s/@DEB_HOST_GNU_TYPE@/$(DEB_HOST_GNU_TYPE)/g" debian/libsikulixapi-jni.install.in > debian/libsikulixapi-jni.install

clean::
	rm -f debian/libsikulixapi-jni.install
	# This ugly line because of #638001 and #723919
	grep -vwE '(debian|^org\.sikuli|^com\.sikulix)' debian/maven.ignoreRules.full >debian/maven.ignoreRules
	# We don't want our maven.rules file changed with broken published rules
	cp debian/maven.rules.ours debian/maven.rules

# ${maven:Depends} for each package
# Because '--package=<package>' in debian/*.poms files doesn't work for
# .substvars files.
install/sikulix::
	ln IDE/target/sikulix-1.1.0.jar IDE/target/sikulix.jar
	chmod a+x IDE/target/sikulix.jar
	cp debian/maven.ignoreRules.full debian/maven.ignoreRules
	mh_resolve_dependencies --non-interactive --offline -psikulix  --base-directory=$(CURDIR) --non-explore

install/libsikulixapi-java::
	cp debian/maven.ignoreRules.full debian/maven.ignoreRules
	mh_resolve_dependencies --non-interactive --offline -plibsikulixapi-java --base-directory=$(CURDIR) --non-explore

# Generate doc the good old way
install/libsikulixapi-doc::
	javadoc -windowtitle "Javadoc of Sikuli Script" \
		-encoding UTF-8 \
		-sourcepath Natives/src/main/java:Basics/src/main/java:Jython/src/main/java:JRuby/src/main/java:API/src/main/java \
		-subpackages org.sikuli \
		-d debian/tmp/doc/ \
		-link file:///usr/share/doc/default-jdk-doc/api \
		-link file:///usr/share/doc/jython-doc/html/javadoc \
		-link file:///usr/share/doc/libswing-layout-java/api \
		-link file:///usr/share/doc/libjxgrabkey-java/api \
		-link file:///usr/share/doc/libjavassist-java-doc/api \

