diff options
author | Robert Schuster <thebohemian@gmx.net> | 2008-01-09 13:22:37 +0000 |
---|---|---|
committer | Robert Schuster <thebohemian@gmx.net> | 2008-01-09 13:22:37 +0000 |
commit | abf51ba185546d0f5af8316cfd7ee8d2b9992c38 (patch) | |
tree | 93e45f91f73eeab2a2e83f6d3d6a77900a0913c0 /packages/ecj | |
parent | 8f073edcc8e3324117e1f869b65d577e0cf2e4f1 (diff) |
jamvm: Added -initial version.
cacao: Multiple fixes.
- added -initial version
- added -native snapshot version
classpath:
- added -initial version
- added -native version
ecj:
- added -initial version
- added -native version that is compiled from source
jikes:
- jikes-native is not a virtual/javac-native provider any more
Diffstat (limited to 'packages/ecj')
-rw-r--r-- | packages/ecj/ecj-bootstrap-native_3.3.bb | 38 | ||||
-rw-r--r-- | packages/ecj/ecj-initial_3.3.bb | 84 | ||||
-rwxr-xr-x | packages/ecj/files/ecj.in | 1 |
3 files changed, 123 insertions, 0 deletions
diff --git a/packages/ecj/ecj-bootstrap-native_3.3.bb b/packages/ecj/ecj-bootstrap-native_3.3.bb new file mode 100644 index 0000000000..bd4347457c --- /dev/null +++ b/packages/ecj/ecj-bootstrap-native_3.3.bb @@ -0,0 +1,38 @@ +# ECJ as a bootstrap compiler is a drop-in replacement for Sun's javac. It offers no more +# and no less features. +# +# Since the VM running the compiler has no effect on the produced bytecode this recipe +# uses the jar created by ecj-initial and creates a start script that runs it with a different +# VM. + +DESCRIPTION = "JDT Core Batch Compiler - Bootstrap variant" +HOMEPAGE = "http://www.eclipse.org/" +SECTION = "devel" +PRIORITY = "optional" +LICENSE = "EPL" + +DEPENDS = "ecj-initial virtual/java-native" + +PROVIDES = "virtual/javac-native" + +SRC_URI = "file://ecj.in" + +S = "${WORKDIR}" + +JAR = "ecj-bootstrap-${PV}.jar" + +inherit native + +do_compile() { + # Create the start script + echo "#!/bin/sh" > ecj-bootstrap + echo "ECJ_JAR=${STAGING_DATADIR}/java/${JAR}" >> ecj-bootstrap + echo "RUNTIME=java" >> ecj-bootstrap + cat ecj.in >> ecj-bootstrap +} + +do_stage() { + install -d ${STAGING_BINDIR} + install -m 755 ${S}/ecj-bootstrap ${STAGING_BINDIR} + install -m 755 ${S}/ecj-bootstrap ${STAGING_BINDIR}/javac +} diff --git a/packages/ecj/ecj-initial_3.3.bb b/packages/ecj/ecj-initial_3.3.bb new file mode 100644 index 0000000000..7b65daef99 --- /dev/null +++ b/packages/ecj/ecj-initial_3.3.bb @@ -0,0 +1,84 @@ +# ECJ as a bootstrap compiler is a drop-in replacement for Sun's javac. It offers no more +# and no less features. + +# This variant runs on the initial (not Java5-compatible runtime). + +DESCRIPTION = "JDT Core Batch Compiler - Bootstrap variant" +HOMEPAGE = "http://www.eclipse.org/" +LICENSE = "EPL" + +DEPENDS = "fastjar-native jikes-initial virtual/java-initial" + +SRC_URI = "\ + http://mirrors.ibiblio.org/pub/mirrors/eclipse/eclipse/downloads/drops/R-3.3-200706251500/ecjsrc.zip \ + file://ecj.in \ + " + +S = "${WORKDIR}" + +inherit native + +JAR = "ecj-bootstrap-${PV}.jar" + +do_unpackpost() { + if [ ! -d source ]; then + mkdir source + fi + + if [ ! -d build ]; then + mkdir build + fi + + # Remove crap. + rm about.html build.xml + rm -rf META-INF + + # Move source into separate subdir. + mv org source/ + + # Remove stuff unneeded for the bootstrap compiler. + rm -rf source/org/eclipse/jdt/internal/compiler/apt + rm -rf source/org/eclipse/jdt/internal/compiler/tool + rm -rf source/org/eclipse/jdt/internal/antadapter + rm source/org/eclipse/jdt/core/JDTCompilerAdapter.java + + # Make a copy of the remaining source to get the embedded + # resources. + cp -r source/org build/ + + # Remove source code and other stuff. + find build -name '*.java' -exec rm -f {} \; + find build -name '*.html' -exec rm -f {} \; +} + +addtask unpackpost after do_unpack before do_patch + +do_compile() { + find source -name '*.java' > sourcefiles + split -l 25 sourcefiles ecj-sources. + + # Compiling in place is done because the sources contain + # property files which need to be available at runtime. + for list in `find . -name 'ecj-sources.*'`; do + echo "building files in $list ..."; + echo jikes-initial -d build -source 1.4 -sourcepath source `cat $list`; + jikes-initial \ + -d build -source 1.4 -sourcepath source `cat $list`; + done + + fastjar -c -C build . -f ${JAR} + + # Create the start script + echo "#!/bin/sh" > ecj-initial + echo "ECJ_JAR=${STAGING_DATADIR}/java/${JAR}" >> ecj-initial + echo "RUNTIME=java-initial" >> ecj-initial + cat ecj.in >> ecj-initial +} + +do_stage() { + install -d ${STAGING_DATADIR}/java + install -m 755 ${S}/${JAR} ${STAGING_DATADIR}/java + + install -d ${STAGING_BINDIR} + install -m 755 ${S}/ecj-initial ${STAGING_BINDIR} +} diff --git a/packages/ecj/files/ecj.in b/packages/ecj/files/ecj.in new file mode 100755 index 0000000000..2099991cef --- /dev/null +++ b/packages/ecj/files/ecj.in @@ -0,0 +1 @@ +${RUNTIME} -Xmx512m -cp ${ECJ_JAR} org.eclipse.jdt.internal.compiler.batch.Main ${1+"$@"} |