#!/usr/bin/make -f

export JAVA_HOME:=/usr/lib/jvm/default-java
BUILD_ID:=dist

# Eclipse help plugins that generate html from DITA files
HELP_PLUGINS := org.eclipse.wst.command.env.doc.user org.eclipse.wst.dtdeditor.doc.user \
  org.eclipse.wst.server.ui.doc.user org.eclipse.wst.sse.doc.user \
  org.eclipse.wst.webtools.doc.user org.eclipse.wst.wsdl.ui.doc.user \
  org.eclipse.wst.wsi.ui.doc.user org.eclipse.wst.xmleditor.doc.user \
  org.eclipse.wst.xsdeditor.doc.user

%:
	dh $@ --with eclipse-helper

override_jh_compilefeatures:
	# Regenerate classes from EMF models
	/usr/lib/eclipse/eclipse                                                 \
		-application org.eclipse.ant.core.antRunner                      \
		-configuration debian/.eclipse-build/.platform/configuration     \
		-buildfile debian/emfRegenerate.xml                              \
		-data debian/.eclipse-build                                      \
		-Dosgi.sharedConfiguration.area=debian/.eclipse-build/build/home \
		-consoleLog -noSplash

	# Regenerate XML10Names and XMLHeadTokenizer classes
	cd debian/.eclipse-build/org.eclipse.wst.xml.core/DevTimeSupport; \
	ant -f buildNames.xml;                                            \
	ant -f buildParser.xml;

	# Regenerate xpath2 parser
	cd debian/.eclipse-build/org.eclipse.wst.xml.xpath2.processor && ant generate_parser

	# Regenerate eclipse help plugins from DITA files
	for plugin in $(HELP_PLUGINS); do            \
		cd "debian/.eclipse-build/$$plugin"; \
		ant -f DocBuild.xml;                 \
		cd "$$OLDPWD";                       \
	done

	# Regenerate Javascript parser from language grammar
	cd debian/.eclipse-build/org.eclipse.wst.jsdt.core/grammar;                           \
	jikespg js.g;                                                                         \
	sed -i -e 's/\$$eof/EOF/g' -e 's/\$$error/ERROR/g' javasym.java;                      \
	sed -ni                                                                               \
	    -e '/### BEGIN GENERATED CODE ###$$/ {p; r JavaAction.java'                       \
	    -e ':a; n; /### END GENERATED CODE ###/ {p; b}; ba}; p'                           \
	    ../src/org/eclipse/wst/jsdt/internal/compiler/parser/Parser.java;                 \
	# Out of the interfaces, cut only a variable definitions                              \
	sed -ni "/[{]/ {:a; n; /[}]/ {b}; p; ba}" javadef.java;                               \
	sed -ni "/[{]/ {:a; n; /[}]/ {b}; p; ba}" javasym.java;                               \
	sed -ni                                                                               \
	    -e '/[{]/ {p; r javadef.java'                                                     \
	    -e ':a; n; /[}]/ {p; b}; ba}; p'                                                  \
	    ../src/org/eclipse/wst/jsdt/internal/compiler/parser/ParserBasicInformation.java; \
	sed -ni                                                                               \
	    -e '/### BEGIN GENERATED CODE ###$$/ {p; r javasym.java'                          \
	    -e ':a; n; /### END GENERATED CODE ###/ {p; b}; ba}; p'                           \
	    ../src/org/eclipse/wst/jsdt/internal/compiler/parser/TerminalTokens.java;

	# Now we have to build resource files, but first we must have compiled JSDT core plugin
	# jar so that we can execute UpdateParserFiles

	jh_compilefeatures --build-opts="-DjavacTarget=1.5 -DjavacSource=1.5           \
	                   -DbuildId=$(BUILD_ID) -DforceContextQualifier=$(BUILD_ID)";

OSGI_JAR=$(shell ls /usr/lib/eclipse/plugins/org.eclipse.osgi_*.jar)
EQUINOX_COMMON_JAR=$(shell ls /usr/lib/eclipse/plugins/org.eclipse.equinox.common_*.jar)
ECLIPSE_CORE_RUNTIME_JAR=$(shell ls /usr/lib/eclipse/plugins/org.eclipse.core.runtime_*.jar)
override_jh_installeclipse:
	jh_installeclipse
	JSDT_CORE_JAR=`ls $$PWD/debian/eclipse-wtp-webtools/usr/share/eclipse/dropins/wtp-webtools/eclipse/plugins/org.eclipse.wst.jsdt.core_*.dist.jar`; \
	cd debian/.eclipse-build/org.eclipse.wst.jsdt.core/grammar;                                    \
	java -classpath $(OSGI_JAR):$(EQUINOX_COMMON_JAR):$(ECLIPSE_CORE_RUNTIME_JAR):$$JSDT_CORE_JAR  \
	     org.eclipse.wst.jsdt.internal.compiler.parser.UpdateParserFiles                           \
	     javadcl.java javahdr.java;                                                                \
	mv parser*.rsc readableNames.properties ../src/org/eclipse/wst/jsdt/internal/compiler/parser/; \
	cd ../src;                                                                                     \
	jar -uf $$JSDT_CORE_JAR                                                                        \
	    org/eclipse/wst/jsdt/internal/compiler/parser/parser*.rsc                                  \
	    org/eclipse/wst/jsdt/internal/compiler/parser/readableNames.properties

override_dh_install:
	dh_install
	dh_installxmlcatalogs
