#!/usr/bin/make -f

DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
DEB_HOST_ARCH_CPU ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_CPU)

# gradle runs a long time without output
ifneq (,$(filter $(DEB_HOST_ARCH), armel armhf arm64 mips mipsel))
  gradle_debug = --debug
endif

# FIXME: looks like s390x is recognized as a 32bit arch ...
# more heap on s390x needed
ifneq (,$(filter $(DEB_HOST_ARCH), s390x))
  SET_JAVA_OPTS = JAVA_OPTS=-Xmx2304m
endif

export JAVA_HOME    = /usr/lib/jvm/java-8-openjdk-$(DEB_HOST_ARCH)
export OPENJFX_HOME = /usr/share/java/openjfx
export QT_SELECT    = qt5

jvm_arch_map = \
	alpha=alpha arm=arm armel=arm armhf=arm arm64=aarch64 amd64=amd64 hppa=parisc \
	i386=i386 m68k=m68k mips=mips mipsel=mipsel mips64=mips64 mips64el=mips64el \
	powerpc=ppc powerpcspe=ppc ppc64=ppc64 ppc64el=ppc64le \
	sparc=sparc sparc64=sparc64 sh4=sh s390x=s390x ia64=ia64 m68k=m68k x32=x32

jvm_arch   := $(strip $(patsubst $(DEB_HOST_ARCH_CPU)=%, %, $(filter $(DEB_HOST_ARCH_CPU)=%, $(jvm_arch_map))))

arch_only = $(shell (dh_listpackages | fgrep -q libopenjfx-java-doc) || echo yes)

%:
	dh $@ 

override_dh_auto_build:
	dh_auto_build
ifeq ($(arch_only),yes)
	cp debian/gradle.properties.arch gradle.properties
else
	cp debian/gradle.properties .
endif

	# replace the non-free JavaScript minifier with a noop equivalent
	cp debian/jsmin-noop.py modules/web/src/main/native/Source/JavaScriptCore/inspector/scripts/jsmin.py

	# work around a compilation issue with Gradle 2.x
	mkdir -p modules/web/build/linux/Release/WebCore/generated/java/com/sun/webkit/dom/
	mkdir -p modules/web/build/linux/Release/WebCore/generated/java/com/sun/webkit/perf/
	cp modules/web/src/main/java/com/sun/webkit/Disposer*            modules/web/build/linux/Release/WebCore/generated/java/com/sun/webkit/
	cp modules/web/src/main/java/com/sun/webkit/Invoker.java         modules/web/build/linux/Release/WebCore/generated/java/com/sun/webkit/
	cp modules/web/src/main/java/com/sun/webkit/dom/JSObject.java    modules/web/build/linux/Release/WebCore/generated/java/com/sun/webkit/dom/
	cp modules/web/src/main/java/com/sun/webkit/perf/PerfLogger.java modules/web/build/linux/Release/WebCore/generated/java/com/sun/webkit/perf/

	$(SET_JAVA_OPTS) gradle --offline --stacktrace $(gradle_debug) --refresh-dependencies --gradle-user-home .gradle

override_dh_install:
ifneq ($(arch_only),yes)
	dh_install -i
endif

	gzip -r -v -n --best build/sdk/man/
	dh_install -popenjfx build/sdk/bin/* $(JAVA_HOME)/bin
	dh_install -popenjfx build/sdk/man   $(JAVA_HOME)
	dh_link -popenjfx $(JAVA_HOME)/bin/javafxpackager           /usr/bin/javafxpackager
	dh_link -popenjfx $(JAVA_HOME)/man/man1/javafxpackager.1.gz /usr/share/man/man1/javafxpackager.1.gz

ifneq ($(arch_only),yes)
	dh_install -plibopenjfx-java build/sdk/lib                  $(OPENJFX_HOME)
	dh_install -plibopenjfx-java build/sdk/rt/lib/*.jar         $(OPENJFX_HOME)/jre/lib
	dh_install -plibopenjfx-java build/sdk/rt/lib/*.properties  $(OPENJFX_HOME)/jre/lib
	dh_install -plibopenjfx-java build/sdk/rt/lib/ext           $(OPENJFX_HOME)/jre/lib
endif

	dh_link -popenjfx $(OPENJFX_HOME)/jre/lib/jfxswt.jar        $(JAVA_HOME)/jre/lib/jfxswt.jar
	dh_link -popenjfx $(OPENJFX_HOME)/jre/lib/javafx.properties $(JAVA_HOME)/jre/lib/javafx.properties
	dh_link -popenjfx $(OPENJFX_HOME)/jre/lib/ext/jfxrt.jar     $(JAVA_HOME)/jre/lib/ext/jfxrt.jar
	dh_link -popenjfx $(OPENJFX_HOME)/lib/ant-javafx.jar        $(JAVA_HOME)/lib/ant-javafx.jar
	dh_link -popenjfx $(OPENJFX_HOME)/lib/javafx-mx.jar         $(JAVA_HOME)/lib/javafx-mx.jar

	ls -l build/sdk/rt/lib
	dh_install -plibopenjfx-jni build/sdk/rt/lib/*/*.so $(JAVA_HOME)/jre/lib/$(jvm_arch)

ifneq ($(arch_only),yes)
	dh_install -popenjfx-source build/javafx-src.zip $(JAVA_HOME)
endif

override_dh_auto_clean:
	dh_auto_clean
	rm -f gradle.properties
	rm -Rf build .gradle buildSrc/.gradle/ buildSrc/build/
	rm -Rf modules/base/build/
	rm -Rf modules/graphics/build/
	rm -Rf modules/controls/build/
	rm -Rf modules/designTime/build/
	rm -Rf modules/swing/build/
	rm -Rf modules/builders/build/
	rm -Rf modules/extensions/build/
	rm -Rf modules/fxml/build/
	rm -Rf modules/fxpackager/build/
	rm -Rf modules/media/build/
	rm -Rf modules/swt/build/
	rm -Rf modules/web/build/
	rm -Rf modules/jmx/build/
	rm -Rf tests/system/build/
	rm -f modules/web/src/main/native/Source/JavaScriptCore/inspector/scripts/CodeGeneratorInspectorStrings.pyc
	rm -f modules/web/src/main/native/Source/JavaScriptCore/inspector/scripts/jsmin.py

get-orig-source:
	uscan --download-current-version --force-download --rename
