#!/usr/bin/make -f

DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
export JAVA_HOME = /usr/lib/jvm/default-java
export LDFLAGS = $(shell dpkg-buildflags --get LDFLAGS)

ifneq (,$(filter $(DEB_HOST_ARCH), s390))
  ARCHFLAG="-m31"
else ifneq (,$(filter $(DEB_HOST_ARCH), sparc powerpc i386))
  ARCHFLAG="-m32"
else
  ARCHFLAG="-m64"
endif

NB_PLATFORM_VERSION=18
NB_BUILD_PROPERTIES=-Dpermit.jdk9.builds=true
ABS_TOP_DIR=`pwd -P`
NB_DEST_DIR=$(ABS_TOP_DIR)/netbeans/nbbuild/netbeans_visualvm

%:
	dh $@

override_dh_auto_build:
	# Prepare the source tree
	mkdir -p netbeans/nbbuild/netbeans_visualvm/
	ln -s /usr/share/netbeans/platform$(NB_PLATFORM_VERSION) netbeans/nbbuild/netbeans_visualvm/platform
	ln -s /usr/share/netbeans/harness/ netbeans/nbbuild/netbeans_visualvm
	# Fix a FTBFS
	cp LICENSE netbeans/
	touch netbeans/DISCLAIMER

	# Build the native libraries
	cd netbeans/lib.profiler/native/build && \
	JAVA_HOME_15=$(JAVA_HOME) JAVA_HOME_16=$(JAVA_HOME) ./buildnative-linux64.sh

	# Build the Netbeans profiler
	ant -f netbeans/nbbuild/build.xml bootstrap $(NB_BUILD_PROPERTIES)
	for module in lib.profiler \
	              lib.profiler.charts \
	              lib.profiler.ui \
	              lib.profiler.common \
	              profiler \
	              profiler.oql \
	              profiler.snaptracer \
	              profiler.heapwalker; do \
	  ant -f netbeans/$$module/build.xml $(NB_BUILD_PROPERTIES) -Dnetbeans.dest.dir=$(NB_DEST_DIR) ; \
	done

	# Build VisualVM
	ln -s $(NB_DEST_DIR) visualvm/netbeans
	cd visualvm && ant build

override_dh_install-indep:
	dh_install -i

	# Create and install /etc/visualvm/visualvm.clusters
	echo visualvm >> debian/visualvm/etc/visualvm/visualvm.clusters
	echo profiler >> debian/visualvm/etc/visualvm/visualvm.clusters

	# Install the icons
	install -m 644 -D debian/icons/visualvm-22x22.png debian/visualvm/usr/share/icons/hicolor/22x22/apps/visualvm.png
	install -m 644 -D debian/icons/visualvm-32x32.png debian/visualvm/usr/share/icons/hicolor/32x32/apps/visualvm.png
	install -m 644 -D debian/icons/visualvm-48x48.png debian/visualvm/usr/share/icons/hicolor/48x48/apps/visualvm.png
	install -m 644 -D debian/icons/visualvm-64x64.png debian/visualvm/usr/share/icons/hicolor/64x64/apps/visualvm.png
	install -m 644 -D debian/icons/visualvm-128x128.png debian/visualvm/usr/share/icons/hicolor/128x128/apps/visualvm.png
	install -m 644 -D debian/icons/visualvm-256x256.png debian/visualvm/usr/share/icons/hicolor/256x256/apps/visualvm.png
	install -m 644 -D debian/icons/visualvm-512x512.png debian/visualvm/usr/share/icons/hicolor/512x512/apps/visualvm.png

	# Remove the native libraries from the visualvm package
	rm -Rf debian/visualvm/usr/share/visualvm/profiler/lib/deployed

override_dh_auto_clean:
	rm -Rf netbeans/lib.profiler/release/lib/deployed/*
	rm -Rf netbeans/nbbuild/netbeans_visualvm
	rm -Rf netbeans/nbbuild/netbeans/moduleCluster.properties
	rm -Rf visualvm/netbeans
	rm -f netbeans/LICENSE
	rm -f netbeans/DISCLAIMER

	find netbeans visualvm -name 'build' -not -path netbeans/lib.profiler/native/build | xargs rm -Rf

