summaryrefslogtreecommitdiff
path: root/dev-java/ecj-gcj/files/ecj-gcj.in
diff options
context:
space:
mode:
Diffstat (limited to 'dev-java/ecj-gcj/files/ecj-gcj.in')
-rw-r--r--dev-java/ecj-gcj/files/ecj-gcj.in23
1 files changed, 23 insertions, 0 deletions
diff --git a/dev-java/ecj-gcj/files/ecj-gcj.in b/dev-java/ecj-gcj/files/ecj-gcj.in
new file mode 100644
index 000000000000..4f838d5de240
--- /dev/null
+++ b/dev-java/ecj-gcj/files/ecj-gcj.in
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+# /usr/bin/gij was installed by gcj-jdk in the past and is now handled by
+# gcc-config, fall back to gcc-config to locate the binary should the
+# symlink/wrapper-binary not yet exists.
+GIJ_BIN="@GENTOO_PORTAGE_EPREFIX@/usr/bin/gij"
+if [[ ! -f ${GIJ_BIN} ]]; then
+ GIJ_BIN="$(gcc-config -B)/gij"
+fi
+if [[ ! -f ${GIJ_BIN} ]]; then
+ echo "gij not found! check that gcc is compiled with gcj flag"
+ exit 1
+fi
+# calling java-config would be an unnecessary slowdown here
+
+# we need to append user CLASSPATH otherwise it will be overriden by the -classpath parameter
+# this breaks e.g. bootstrap of ant-core
+ecj_cp="@GENTOO_PORTAGE_EPREFIX@/usr/share/ecj-gcj-@SLOT@/lib/ecj.jar"
+if [[ -n "${CLASSPATH}" ]]; then
+ ecj_cp="${ecj_cp}:${CLASSPATH}"
+fi
+
+${GIJ_BIN} -classpath "${ecj_cp}" org.eclipse.jdt.internal.compiler.batch.Main "${@}"