#!/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

# Add 'intall' maven target to workaround failure in resolving dependencies
# between SikuliX-* subprojects during 'javadoc' target:
#  ...
#  [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
#  ...
DEB_MAVEN_BUILD_TARGET := package install

# 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

configure/libsikulixapi-jni configure/libsikulixapi-doc::
	# Workaround non-working <sourceFileExclude> at javadoc step
	rm -f API/src/main/java/org/sikuli/basics/WindowsHotkeyManager.java
	rm -f API/src/main/java/org/sikuli/util/SysJNA.java

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.1.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
