diff options
-rw-r--r-- | packages/cacao/cacao-initial_0.98.bb | 34 | ||||
-rw-r--r-- | packages/cacao/cacao-native.inc | 27 | ||||
-rw-r--r-- | packages/cacao/cacao-native_0.98+hg20071001.bb | 5 | ||||
-rw-r--r-- | packages/cacao/files/cacao-0.98-initial.patch | 45 | ||||
-rw-r--r-- | packages/classpath/classpath-initial_0.93.bb | 28 | ||||
-rw-r--r-- | packages/classpath/classpath-native.inc | 32 | ||||
-rw-r--r-- | packages/classpath/classpath-native_0.96.1.bb | 6 | ||||
-rw-r--r-- | packages/classpath/files/gjar-prefix-patch.diff | 40 | ||||
-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 | ||||
-rw-r--r-- | packages/jamvm/files/.mtn2git_empty | 0 | ||||
-rw-r--r-- | packages/jamvm/files/jamvm_1.5.0-initial.patch | 82 | ||||
-rw-r--r-- | packages/jamvm/jamvm-initial_1.5.0.bb | 36 | ||||
-rw-r--r-- | packages/jikes/jikes-initial.bb | 23 | ||||
-rw-r--r-- | packages/jikes/jikes-native_1.21.bb | 1 |
16 files changed, 481 insertions, 1 deletions
diff --git a/packages/cacao/cacao-initial_0.98.bb b/packages/cacao/cacao-initial_0.98.bb new file mode 100644 index 0000000000..08abf41c33 --- /dev/null +++ b/packages/cacao/cacao-initial_0.98.bb @@ -0,0 +1,34 @@ +require cacao-native.inc + +PROVIDES = "virtual/java-initial" + +DEPENDS = "zlib-native libtool-native fastjar-native classpath-initial jikes-initial" + +PR = "r0" + +SRC_URI = "\ + http://www.complang.tuwien.ac.at/cacaojvm/download/cacao-${PV}/cacao-${PV}.tar.bz2; \ + file://cacao-0.98-initial.patch;patch=1;pnum=1 \ + " + +# libjvm disabled - it would conflict with cacao-native installations +EXTRA_OECONF = "\ + --enable-debug \ + --with-classpath-libdir=${libdir} \ + --with-classpath-includedir=${includedir}/classpath-initial \ + --with-classpath-classes=${datadir}/classpath-initial/glibj.zip \ + --with-vm-zip=${datadir}/cacao-initial/vm.zip \ + --program-suffix=-initial \ + --disable-libjvm \ + " + +# enforces the usage of jikes-initial +export JAVAC=jikes-initial + +# enforces the usage of fastjar +export JAR=fastjar + +do_configure_append() { + # Fix the executable name in the wrapper script. + sed -i -e "s|exec cacao|exec cacao-initial|" src/scripts/java.in +} diff --git a/packages/cacao/cacao-native.inc b/packages/cacao/cacao-native.inc new file mode 100644 index 0000000000..26d3d37f58 --- /dev/null +++ b/packages/cacao/cacao-native.inc @@ -0,0 +1,27 @@ +DESCRIPTION = "CacaoVM for use as OpenEmbedded's Java VM" +HOMEPAGE = "http://www.cacaojvm.org/" +LICENSE = "GPL" +PRIORITY = "optional" +SECTION = "interpreters" + +DEPENDS = "zlib-native libtool-native classpath-native ecj-initial fastjar-native" + +PROVIDES = "virtual/java-native" + +S = "${WORKDIR}/cacao-${PV}" + +inherit native autotools + +EXTRA_OECONF = "\ + --enable-debug \ + --with-classpath-libdir=${libdir} \ + --with-classpath-includedir=${includedir}/classpath \ + --with-classpath-classes=${datadir}/classpath/glibj.zip \ + --with-vm-zip=${datadir}/cacao/vm.zip \ + " + +# force usage of ecj-initial (but Java5-compatible class library) +export JAVAC="${STAGING_BINDIR_NATIVE}/ecj-initial -bootclasspath ${STAGING_DATADIR_NATIVE}/classpath/glibj.zip" + +# force usage of fastjar +export JAR=fastjar diff --git a/packages/cacao/cacao-native_0.98+hg20071001.bb b/packages/cacao/cacao-native_0.98+hg20071001.bb new file mode 100644 index 0000000000..409d2c7858 --- /dev/null +++ b/packages/cacao/cacao-native_0.98+hg20071001.bb @@ -0,0 +1,5 @@ +require cacao-native.inc + +PR = "r1" + +SRC_URI = "http://jalimo.evolvis.org/repository/sources/cacao-${PV}.tar.bz2;md5sum=9ff10c929bd0cbf15909107c1aff7518" diff --git a/packages/cacao/files/cacao-0.98-initial.patch b/packages/cacao/files/cacao-0.98-initial.patch new file mode 100644 index 0000000000..30b6d147e8 --- /dev/null +++ b/packages/cacao/files/cacao-0.98-initial.patch @@ -0,0 +1,45 @@ +Index: cacao-0.98/configure.ac +=================================================================== +--- cacao-0.98.orig/configure.ac 2007-12-19 22:07:55.000000000 +0100 ++++ cacao-0.98/configure.ac 2007-12-19 22:08:02.000000000 +0100 +@@ -27,7 +27,7 @@ + dnl Process this file with autoconf to produce a configure script. + + +-AC_INIT(cacao, 0.98, cacao@cacaojvm.org) ++AC_INIT(cacao-initial, 0.98, cacao@cacaojvm.org) + AC_CONFIG_SRCDIR(src/cacao/cacao.c) + AC_CANONICAL_HOST + AC_PREREQ(2.59) +Index: cacao-0.98/src/vm/vm.c +=================================================================== +--- cacao-0.98.orig/src/vm/vm.c 2007-12-19 22:31:19.000000000 +0100 ++++ cacao-0.98/src/vm/vm.c 2007-12-19 22:32:36.000000000 +0100 +@@ -623,7 +623,7 @@ + #else + puts(" java.boot.class.path : "CLASSPATH_CLASSES""); + #endif +- puts(" gnu.classpath.boot.library.path: "CLASSPATH_LIBDIR"/classpath\n"); ++ puts(" gnu.classpath.boot.library.path: "CLASSPATH_LIBDIR"/classpath-initial\n"); + + puts("Runtime variables:\n"); + printf(" maximum heap size : %d\n", opt_heapmaxsize); +@@ -828,15 +828,15 @@ + + /* and finally set the path to GNU Classpath libraries */ + +- len = strlen(cacao_prefix) + strlen("/lib/classpath") + strlen("0"); ++ len = strlen(cacao_prefix) + strlen("/lib/classpath-initial") + strlen("0"); + + classpath_libdir = MNEW(char, len); + strcpy(classpath_libdir, cacao_prefix); +- strcat(classpath_libdir, "/lib/classpath"); ++ strcat(classpath_libdir, "/lib/classpath-initial"); + #else + cacao_prefix = CACAO_PREFIX; + cacao_libjvm = CACAO_LIBDIR"/libjvm"; +- classpath_libdir = CLASSPATH_LIBDIR"/classpath"; ++ classpath_libdir = CLASSPATH_LIBDIR"/classpath-initial"; + #endif + + /* set the bootclasspath */ diff --git a/packages/classpath/classpath-initial_0.93.bb b/packages/classpath/classpath-initial_0.93.bb new file mode 100644 index 0000000000..9e303f6eba --- /dev/null +++ b/packages/classpath/classpath-initial_0.93.bb @@ -0,0 +1,28 @@ +# No later version of Classpath may be used because this is the latest that can be compiled +# by jikes! + +require classpath-native.inc + +DESCRIPTION="Java1.4-compatible GNU Classpath variant that is used as bootclasspath for jikes-native." + +PR = "r0" + +DEPENDS = "zip-native fastjar-native jikes-native" + +EXTRA_OECONF = "\ + --with-jikes=jikes \ + --with-fastjar=fastjar \ + --with-glibj \ + --disable-local-sockets \ + --disable-alsa \ + --disable-gconf-peer \ + --disable-gtk-peer \ + --disable-plugin \ + --disable-dssi \ + --disable-examples \ + --disable-tools \ + --with-glibj-dir=${STAGING_DATADIR}/classpath-initial \ + --with-native-libdir=${STAGING_LIBDIR}/classpath-initial \ + --includedir=${STAGING_INCDIR}/classpath-initial \ + " + diff --git a/packages/classpath/classpath-native.inc b/packages/classpath/classpath-native.inc new file mode 100644 index 0000000000..bb5abaf178 --- /dev/null +++ b/packages/classpath/classpath-native.inc @@ -0,0 +1,32 @@ +DESCRIPTION = "GNU Classpath standard Java libraries - For native Java-dependent programs" +HOMEPAGE = "http://www.gnu.org/software/classpath/" +LICENSE = "Classpath" + +S = "${WORKDIR}/classpath-${PV}" + +SRC_URI = "${GNU_MIRROR}/classpath/classpath-${PV}.tar.gz" + +DEPENDS = "ecj-initial fastjar-native zip-native" + +inherit autotools native + +EXTRA_OECONF = "\ + --with-glibj \ + --with-ecj=${STAGING_BINDIR_NATIVE}/ecj-initial \ + --with-fastjar=fastjar \ + --enable-local-sockets \ + --disable-alsa \ + --disable-gconf-peer \ + --disable-gtk-peer \ + --disable-plugin \ + --disable-dssi \ + --enable-examples \ + --enable-tools \ + --includedir=${STAGING_INCDIR}/classpath \ + --with-vm=java \ + " + +do_stage() { + oe_runmake install +} + diff --git a/packages/classpath/classpath-native_0.96.1.bb b/packages/classpath/classpath-native_0.96.1.bb new file mode 100644 index 0000000000..e7d1d07a81 --- /dev/null +++ b/packages/classpath/classpath-native_0.96.1.bb @@ -0,0 +1,6 @@ +require classpath-native.inc + +PR = "r1" + +SRC_URI += "file://gjar-prefix-patch.diff;patch=1;pnum=0" + diff --git a/packages/classpath/files/gjar-prefix-patch.diff b/packages/classpath/files/gjar-prefix-patch.diff new file mode 100644 index 0000000000..64b262cb41 --- /dev/null +++ b/packages/classpath/files/gjar-prefix-patch.diff @@ -0,0 +1,40 @@ +Index: tools/gnu/classpath/tools/jar/Entry.java +=================================================================== +RCS file: /sources/classpath/classpath/tools/gnu/classpath/tools/jar/Entry.java,v +retrieving revision 1.1 +diff -u -r1.1 Entry.java +--- tools/gnu/classpath/tools/jar/Entry.java 8 May 2006 18:38:20 -0000 1.1 ++++ tools/gnu/classpath/tools/jar/Entry.java 10 Dec 2007 22:20:05 -0000 +@@ -1,5 +1,5 @@ + /* Entry.java - represent a single file to write to a jar +- Copyright (C) 2006 Free Software Foundation, Inc. ++ Copyright (C) 2006, 2007 Free Software Foundation, Inc. + + This file is part of GNU Classpath. + +@@ -49,12 +49,22 @@ + public Entry(File file, String name) + { + this.file = file; +- this.name = name; ++ ++ /* Removes any './' prefixes automatically. Those caused trouble ++ * in (boot) classpath use-cases. See #32516. ++ */ ++ int start = 0; ++ while (name.length() > start + 2 ++ && name.codePointAt(start) == '.' ++ && name.codePointAt(start + 1) == File.separatorChar) ++ start += 2; ++ ++ this.name = name.substring(start); + } + + public Entry(File file) + { +- this.file = file; +- this.name = file.toString(); ++ this(file, file.toString()); + } ++ + } 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+"$@"} diff --git a/packages/jamvm/files/.mtn2git_empty b/packages/jamvm/files/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/jamvm/files/.mtn2git_empty diff --git a/packages/jamvm/files/jamvm_1.5.0-initial.patch b/packages/jamvm/files/jamvm_1.5.0-initial.patch new file mode 100644 index 0000000000..9b972da014 --- /dev/null +++ b/packages/jamvm/files/jamvm_1.5.0-initial.patch @@ -0,0 +1,82 @@ +Index: jamvm-1.5.0/configure.ac +=================================================================== +--- jamvm-1.5.0.orig/configure.ac 2007-12-20 00:01:08.000000000 +0100 ++++ jamvm-1.5.0/configure.ac 2007-12-20 00:03:40.000000000 +0100 +@@ -22,7 +22,7 @@ + dnl Process this file with autoconf to produce a configure script. + + AC_INIT(src/jam.c) +-AM_INIT_AUTOMAKE(jamvm, 1.5.0) ++AM_INIT_AUTOMAKE(jamvm-initial, 1.5.0) + AC_CONFIG_HEADERS([src/config.h]) + AC_PREFIX_DEFAULT(/usr/local/jamvm) + +Index: jamvm-1.5.0/java-initial +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ jamvm-1.5.0/java-initial 2007-12-20 00:03:27.000000000 +0100 +@@ -0,0 +1,5 @@ ++#!/bin/sh ++# ++# Wrapper script inspired by the one provided by cacao. ++ ++exec jamvm-initial ${1+"$@"} +Index: jamvm-1.5.0/lib/Makefile.am +=================================================================== +--- jamvm-1.5.0.orig/lib/Makefile.am 2007-12-20 00:05:24.000000000 +0100 ++++ jamvm-1.5.0/lib/Makefile.am 2007-12-20 00:05:28.000000000 +0100 +@@ -19,7 +19,7 @@ + ## Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + ## + +-CP_LIB_DIR = ${with_classpath_install_dir}/share/classpath ++CP_LIB_DIR = ${with_classpath_install_dir}/share/classpath-initial + GLIBJ_ZIP = ${CP_LIB_DIR}/glibj.zip + + SUBDIRS = jamvm java gnu sun +Index: jamvm-1.5.0/src/class.h +=================================================================== +--- jamvm-1.5.0.orig/src/class.h 2007-12-20 00:06:34.000000000 +0100 ++++ jamvm-1.5.0/src/class.h 2007-12-20 00:16:41.000000000 +0100 +@@ -39,11 +39,11 @@ + separate class files in a directory structure */ + + #ifdef USE_ZIP +-#define JAMVM_CLASSES INSTALL_DIR"/share/jamvm/classes.zip" +-#define CLASSPATH_CLASSES CLASSPATH_INSTALL_DIR"/share/classpath/glibj.zip" ++#define JAMVM_CLASSES CLASSPATH_INSTALL_DIR"/share/jamvm-initial/classes.zip" ++#define CLASSPATH_CLASSES CLASSPATH_INSTALL_DIR"/share/classpath-initial/glibj.zip" + #else +-#define JAMVM_CLASSES INSTALL_DIR"/share/jamvm/classes" +-#define CLASSPATH_CLASSES CLASSPATH_INSTALL_DIR"/share/classpath" ++#define JAMVM_CLASSES CLASSPATH_INSTALL_DIR"/share/jamvm-initial/classes" ++#define CLASSPATH_CLASSES CLASSPATH_INSTALL_DIR"/share/classpath-initial" + #endif + + #define DFLT_BCP JAMVM_CLASSES":"CLASSPATH_CLASSES +Index: jamvm-1.5.0/src/dll.c +=================================================================== +--- jamvm-1.5.0.orig/src/dll.c 2007-12-20 00:01:24.000000000 +0100 ++++ jamvm-1.5.0/src/dll.c 2007-12-20 00:03:27.000000000 +0100 +@@ -294,7 +294,7 @@ + } + + char *getBootDllPath() { +- return CLASSPATH_INSTALL_DIR"/lib/classpath"; ++ return CLASSPATH_INSTALL_DIR"/lib/classpath-initial"; + } + + char *getDllName(char *name) { +Index: jamvm-1.5.0/src/Makefile.am +=================================================================== +--- jamvm-1.5.0.orig/src/Makefile.am 2007-12-20 00:21:37.000000000 +0100 ++++ jamvm-1.5.0/src/Makefile.am 2007-12-20 00:21:46.000000000 +0100 +@@ -23,7 +23,7 @@ + DIST_SUBDIRS = os arch interp + + bin_PROGRAMS = jamvm +-include_HEADERS = jni.h ++noinst_HEADERS = jni.h + + lib_LTLIBRARIES = libjvm.la + noinst_LTLIBRARIES = libcore.la diff --git a/packages/jamvm/jamvm-initial_1.5.0.bb b/packages/jamvm/jamvm-initial_1.5.0.bb new file mode 100644 index 0000000000..3369733340 --- /dev/null +++ b/packages/jamvm/jamvm-initial_1.5.0.bb @@ -0,0 +1,36 @@ +SUMMARY = "A compact Java Virtual Machine which conforms to the JVM specification version 2." +HOMEPAGE = "http://jamvm.sourceforge.net/" +LICENSE = "GPL" + +DEPENDS = "zlib-native classpath-initial jikes-initial" + +PROVIDES = "virtual/java-initial" + +S = "${WORKDIR}/jamvm-${PV}" + +SRC_URI = "${SOURCEFORGE_MIRROR}/jamvm/jamvm-${PV}.tar.gz \ + file://jamvm_${PV}-initial.patch;patch=1;pnum=1 \ + " + +# This uses 32 bit arm, so force the instruction set to arm, not thumb +ARM_INSTRUCTION_SET = "arm" + +inherit native autotools + +EXTRA_OECONF = "\ + --with-classpath-install-dir=${STAGING_DIR_NATIVE}\ + --program-suffix=-initial \ + " + +CFLAGS += "-DDEFAULT_MAX_HEAP=16*MB" + +do_compile() { + oe_runmake \ + JAVAC=jikes-initial \ + GLIBJ_ZIP=${STAGING_DATADIR_NATIVE}/classpath-initial/glibj.zip +} + +do_stage_append() { + install -d ${STAGING_BINDIR} + install -m 0755 java-initial ${STAGING_BINDIR} +} diff --git a/packages/jikes/jikes-initial.bb b/packages/jikes/jikes-initial.bb new file mode 100644 index 0000000000..0e2f4d0748 --- /dev/null +++ b/packages/jikes/jikes-initial.bb @@ -0,0 +1,23 @@ +SUMMARY = "Initial Java 1.4-compatible (and not higher) compiler" + +DEPENDS = "jikes-native classpath-initial" + +SRC_URI = "" + +S = "${WORKDIR}" + +inherit native + +do_configure() { + : +} + +do_compile() { + echo "#!/bin/sh" > jikes-initial + echo "${STAGING_BINDIR_NATIVE}/jikes -bootclasspath ${STAGING_DATADIR_NATIVE}/classpath-initial/glibj.zip \$@" >> jikes-initial +} + +do_stage() { + install -d ${STAGING_BINDIR} + install -m 0755 jikes-initial ${STAGING_BINDIR} +} diff --git a/packages/jikes/jikes-native_1.21.bb b/packages/jikes/jikes-native_1.21.bb index 2996046639..b95cbfcd75 100644 --- a/packages/jikes/jikes-native_1.21.bb +++ b/packages/jikes/jikes-native_1.21.bb @@ -1,7 +1,6 @@ inherit native require jikes_${PV}.bb -PROVIDES = "virtual/javac-native" S = "${WORKDIR}/jikes-${PV}" do_stage() { |