summaryrefslogtreecommitdiff
path: root/packages
diff options
context:
space:
mode:
authorRobert Schuster <thebohemian@gmx.net>2008-08-13 14:12:14 +0000
committerRobert Schuster <thebohemian@gmx.net>2008-08-13 14:12:14 +0000
commitdb85f26152da4c6c04b967978e94fa534d045d8a (patch)
tree1189976446365cd6a1f40fb935a0820e7850857a /packages
parent45b3eb81fe9c7bd2d023957e11487bee04cec408 (diff)
phoneme-advanced-foundation: New recipe.
Diffstat (limited to 'packages')
-rw-r--r--packages/phoneme/.mtn2git_empty0
-rw-r--r--packages/phoneme/files/.mtn2git_empty0
-rw-r--r--packages/phoneme/files/phoneme-makefile-fix.patch144
-rw-r--r--packages/phoneme/phoneme-advanced-foundation_0.0.b73.bb26
-rw-r--r--packages/phoneme/phoneme-advanced.inc160
5 files changed, 330 insertions, 0 deletions
diff --git a/packages/phoneme/.mtn2git_empty b/packages/phoneme/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/phoneme/.mtn2git_empty
diff --git a/packages/phoneme/files/.mtn2git_empty b/packages/phoneme/files/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/phoneme/files/.mtn2git_empty
diff --git a/packages/phoneme/files/phoneme-makefile-fix.patch b/packages/phoneme/files/phoneme-makefile-fix.patch
new file mode 100644
index 0000000000..9dc80428f1
--- /dev/null
+++ b/packages/phoneme/files/phoneme-makefile-fix.patch
@@ -0,0 +1,144 @@
+Index: cdc/build/share/rules_zoneinfo.mk
+===================================================================
+--- cdc/build/share/rules_zoneinfo.mk.orig
++++ cdc/build/share/rules_zoneinfo.mk
+@@ -45,7 +45,7 @@ $(ZONEINFO_CLASSES_DIR):
+ .compile.classlist:
+ $(AT)if [ -s $(ZONEINFO_CLASSES_DIR)/.classes.list ] ; then \
+ echo "Compiling zic classes... "; \
+- $(JAVAC_CMD) \
++ $(JAVAC_CMD) -sourcepath $(CVM_SHAREROOT)/classes \
+ -d $(ZONEINFO_CLASSES_DIR) \
+ @$(ZONEINFO_CLASSES_DIR)/.classes.list ; \
+ fi
+Index: cdc/build/share/jcc.mk
+===================================================================
+--- cdc/build/share/jcc.mk.orig
++++ cdc/build/share/jcc.mk
+@@ -93,7 +93,7 @@ $(CVM_GENOPCODE_DEPEND) :: $(CVM_JCC_SRC
+ $(CVM_JCC_SRCPATH)/JCCMessage.properties
+ @echo "... $@"
+ $(AT)CLASSPATH=$(CVM_JCC_SRCPATH); export CLASSPATH; \
+- $(CVM_JAVAC) $(JAVAC_OPTIONS) -d $(CVM_JCC_CLASSPATH) \
++ $(CVM_JAVAC) $(JAVAC_OPTIONS) -sourcepath $(CVM_JCC_SRCPATH) -d $(CVM_JCC_CLASSPATH) \
+ $(subst /,$(CVM_FILESEP),$(CVM_JCC_SRCPATH)/GenOpcodes.java)
+ $(AT)rm -f $(CVM_JCC_CLASSPATH)/JCCMessage.properties; \
+ cp $(CVM_JCC_SRCPATH)/JCCMessage.properties $(CVM_JCC_CLASSPATH)/JCCMessage.properties
+@@ -253,7 +253,7 @@ $(CVM_JCC_DEPEND) :: $(CVM_JCC_SRCPATH)/
+ $(CVM_JCC_SRCPATH)/JCCMessage.properties
+ @echo "... $@"
+ @CLASSPATH=$(CVM_JCC_CLASSPATH)$(PS)$(CVM_JCC_SRCPATH)$(PS)$(CVM_DERIVEDROOT)/javavm/runtime; export CLASSPATH; \
+- $(CVM_JAVAC) $(JAVAC_OPTIONS) -d $(CVM_JCC_CLASSPATH) \
++ $(CVM_JAVAC) $(JAVAC_OPTIONS) -classpath $(CVM_JCC_CLASSPATH)$(PS)$(CVM_JCC_SRCPATH)$(PS)$(CVM_DERIVEDROOT)/javavm/runtime -d $(CVM_JCC_CLASSPATH) \
+ $(CVM_JCC_CLASSES)
+ @rm -f $(CVM_JCC_CLASSPATH)/JCCMessage.properties; \
+ cp $(CVM_JCC_SRCPATH)/JCCMessage.properties $(CVM_JCC_CLASSPATH)/JCCMessage.properties
+Index: cdc/build/share/defs.mk
+===================================================================
+--- cdc/build/share/defs.mk.orig
++++ cdc/build/share/defs.mk
+@@ -1187,7 +1187,7 @@ BUNDLE_PRODUCT_NAME = $(subst $(TM),$(e
+ BUNDLE_VERSION = $(subst -,_,$(J2ME_BUILD_VERSION_STRING))
+ BUNDLE_TARGET = $(subst -,_,$(CVM_TARGET))
+
+-BINARY_BUNDLE_NAME = \
++BINARY_BUNDLE_NAME ?= \
+ $(BUNDLE_PRODUCT_NAME)-$(BUNDLE_VERSION)-$(BUNDLE_TARGET)-bin
+ BINARY_BUNDLE_DIRNAME = $(BINARY_BUNDLE_NAME)
+
+@@ -2153,11 +2153,11 @@ endif
+
+ # Note, ALL_INCLUDE_FLAGS flags is setup in rules.mk so
+ # abs2rel only needs to be called on it once.
+-CPPFLAGS += $(CVM_DEFINES) $(ALL_INCLUDE_FLAGS)
+-CFLAGS_SPEED = $(CFLAGS) $(CCFLAGS_SPEED) $(CPPFLAGS)
+-CFLAGS_SPACE = $(CFLAGS) $(CCFLAGS_SPACE) $(CPPFLAGS)
+-CFLAGS_LOOP = $(CFLAGS) $(CCFLAGS_LOOP) $(CPPFLAGS)
+-CFLAGS_FDLIB = $(CFLAGS) $(CCFLAGS_FDLIB) $(CPPFLAGS)
++CVM_CPPFLAGS += $(CVM_DEFINES) $(ALL_INCLUDE_FLAGS)
++CFLAGS_SPEED = $(CFLAGS) $(CCFLAGS_SPEED) $(CVM_CPPFLAGS)
++CFLAGS_SPACE = $(CFLAGS) $(CCFLAGS_SPACE) $(CVM_CPPFLAGS)
++CFLAGS_LOOP = $(CFLAGS) $(CCFLAGS_LOOP) $(CVM_CPPFLAGS)
++CFLAGS_FDLIB = $(CFLAGS) $(CCFLAGS_FDLIB) $(CVM_CPPFLAGS)
+ CFLAGS_JCS =
+
+ LINKFLAGS += -g -Wl,-export-dynamic $(LINK_ARCH_FLAGS)
+@@ -2165,13 +2165,13 @@ LINKLIBS += -lpthread -ldl $(LINK_A
+ LINKLIBS_JCS +=
+
+ SO_CCFLAGS = $(CCFLAGS_SPEED)
+-SO_CFLAGS = $(CFLAGS) $(SO_CCFLAGS) $(CPPFLAGS)
++SO_CFLAGS = $(CFLAGS) $(SO_CCFLAGS) $(CVM_CPPFLAGS)
+ SO_LINKFLAGS = $(LINKFLAGS) -shared
+
+ #
+ # commands for running the tools
+ #
+-ASM_CMD = $(AT)$(TARGET_AS) $(ASM_FLAGS) -D_ASM $(CPPFLAGS) \
++ASM_CMD = $(AT)$(TARGET_AS) $(ASM_FLAGS) -D_ASM $(CVM_CPPFLAGS) \
+ -o $@ $(call abs2rel,$<)
+
+ # compileCCC(flags, objfile, srcfiles)
+Index: cdc/build/share/rules.mk
+===================================================================
+--- cdc/build/share/rules.mk.orig
++++ cdc/build/share/rules.mk
+@@ -521,7 +521,7 @@ endif
+ # As a performance improvement, evaluate some flags in case
+ # they contain shell commands.
+ # FIXME: Disabled because this causes GCI build failures
+-#$(J2ME_CLASSLIB):: CPPFLAGS := $(CPPFLAGS)
++#$(J2ME_CLASSLIB):: CVM_CPPFLAGS := $(CVM_CPPFLAGS)
+
+ $(J2ME_CLASSLIB):: initbuild
+ $(J2ME_CLASSLIB):: btclasses $(CVM_BUILDTIME_CLASSESZIP)
+@@ -708,14 +708,14 @@ $(CVM_OBJDIR)/executejava.o: $(CVM_DERIV
+ # command to use to generate dependency makefiles if requested
+ ifeq ($(GENERATEMAKEFILES), true)
+ GENERATEMAKEFILES_CMD = \
+- @$(TARGET_CC) $(CCDEPEND) $(CC_ARCH_FLAGS) $(CPPFLAGS) $< \
++ @$(TARGET_CC) $(CCDEPEND) $(CC_ARCH_FLAGS) $(CVM_CPPFLAGS) $< \
+ 2> /dev/null | sed 's!$*\.o!$(dir $@)&!g' > $(@:.o=.d)
+ endif
+
+ # command to use to generate stack map analysis files if requested
+ ifeq ($(CVM_CSTACKANALYSIS), true)
+ CSTACKANALYSIS_CMD = \
+- $(AT)$(TARGET_CC) -S $(CCFLAGS) $(CPPFLAGS) -o $(@:.o=.asm) $<
++ $(AT)$(TARGET_CC) -S $(CCFLAGS) $(CVM_CPPFLAGS) -o $(@:.o=.asm) $<
+ endif
+
+ #
+@@ -751,7 +753,7 @@ $(CVM_OBJDIR)/%.o: %.S
+ @echo "as $<"
+ $(ASM_CMD)
+ ifeq ($(GENERATEMAKEFILES), true)
+- @$(TARGET_CC) $(ASM_ARCH_FLAGS) $(CCDEPEND) $(CPPFLAGS) $< \
++ @$(TARGET_CC) $(ASM_ARCH_FLAGS) $(CCDEPEND) $(CVM_CPPFLAGS) $< \
+ 2> /dev/null | sed 's!$*\.o!$(dir $@)&!g' > $(@:.o=.d)
+ endif
+ ifeq ($(CVM_CSTACKANALYSIS), true)
+@@ -772,7 +774,7 @@ $(CVM_FDLIB_FILES): $(CVM_OBJDIR)/%.o: $
+ @echo "cc $<"
+ $(CC_CMD_FDLIB)
+ ifeq ($(GENERATEMAKEFILES), true)
+- @$(TARGET_CC) $(CC_ARCH_FLAGS) $(CCDEPEND) $(CPPFLAGS) $< \
++ @$(TARGET_CC) $(CC_ARCH_FLAGS) $(CCDEPEND) $(CVM_CPPFLAGS) $< \
+ 2> /dev/null | sed 's!$*\.o!$(dir $@)&!g' > $(@:.o=.d)
+ endif
+
+Index: cdc/src/linux-arm/javavm/runtime/segvhandler_arch.c
+===================================================================
+--- cdc/src/linux-arm/javavm/runtime/segvhandler_arch.c.orig
++++ cdc/src/linux-arm/javavm/runtime/segvhandler_arch.c
+@@ -41,8 +41,8 @@
+ #include <dlfcn.h>
+ #include <stddef.h>
+ /* avoid conflicting ucontext definitions */
+-#define ucontext asm_ucontext
+-#include <asm/ucontext.h>
++/*#define ucontext asm_ucontext*/
++#include <ucontext.h>
+ #include <unistd.h>
+
+ #define MAXSIGNUM 32
diff --git a/packages/phoneme/phoneme-advanced-foundation_0.0.b73.bb b/packages/phoneme/phoneme-advanced-foundation_0.0.b73.bb
new file mode 100644
index 0000000000..59dbfb7a3b
--- /dev/null
+++ b/packages/phoneme/phoneme-advanced-foundation_0.0.b73.bb
@@ -0,0 +1,26 @@
+require phoneme-advanced.inc
+
+BUILDREV = "b73"
+SRCREV = "11560"
+
+SRC_URI += "file://phoneme-makefile-fix.patch;patch=1;pnum=0"
+
+FILES_${PN} += "\
+ ${COMMON_DIR}/bin/cvm \
+ ${COMMON_DIR}/lib/btclasses.zip \
+ ${COMMON_DIR}/lib/content-types.properties \
+ ${COMMON_DIR}/lib/foundation.jar \
+ ${COMMON_DIR}/lib/security/java.security \
+ ${COMMON_DIR}/lib/security/java.policy \
+ ${COMMON_DIR}/lib/zi/Asia/Novosibirsk \
+ ${COMMON_DIR}/lib/zi/Asia/Calcutta \
+ ${COMMON_DIR}/lib/zi/ZoneInfoMappings \
+ ${COMMON_DIR}/lib/zi/GMT \
+ ${COMMON_DIR}/lib/zi/America/Los_Angeles \
+ ${COMMON_DIR}/democlasses.jar \
+ ${COMMON_DIR}/testclasses.zip \
+ ${COMMON_DIR}/legal/license.txt \
+ ${COMMON_DIR}/legal/thirdpartylicensereadme.txt \
+ ${COMMON_DIR}/legal/copyright.txt \
+"
+
diff --git a/packages/phoneme/phoneme-advanced.inc b/packages/phoneme/phoneme-advanced.inc
new file mode 100644
index 0000000000..aad82cfe42
--- /dev/null
+++ b/packages/phoneme/phoneme-advanced.inc
@@ -0,0 +1,160 @@
+DESCRIPTION = "A free CDC JavaVM and class library from Sun Microsystems."
+LICENSE = "GPLv2"
+HOMEPAGE = "https://phoneme.dev.java.net"
+AUTHOR = "Sun Microsystems, Inc."
+
+DEPENDS = "classpath-native virtual/javac-native linux-libc-headers"
+
+inherit java update-alternatives
+
+# The PhoneME Advanced build system is documented here: http://java.sun.com/javame/reference/docs/cdc_build_system.pdf
+# NOTE: We need to provide an empty password. pswd='' seems not to be the correct way.
+SRC_URI = "\
+ svn://phoneme.dev.java.net/svn/phoneme/builds/phoneme_advanced-mr2-dev-${BUILDREV};module=cdc;proto=https;localdir=cdc;user=guest;pswd='' \
+ svn://phoneme.dev.java.net/svn/phoneme/builds/phoneme_advanced-mr2-dev-${BUILDREV};module=tools;proto=https;localdir=tools;user=guest;pswd='' \
+ svn://phoneme.dev.java.net/svn/phoneme;module=legal;localdir=legal;proto=https;user=guest;pswd='' \
+ "
+
+PROVIDES = "virtual/java-cdc java-cdc-runtime"
+PRIORITY = "optional"
+SECTION = "interpreters"
+
+# PhoneME builds currently cannot be parallel
+PARALLEL_MAKE = ""
+
+S = "${WORKDIR}"
+
+BUILDREV = ${@bb.fatal('BUILDREV is not defined in this phoneme-advanced recipe!')}
+SRCREV = ${@bb.fatal('SRCREV is not defined in this phoneme-advanced recipe!')}
+
+COMMON_DIR = "${libdir_jvm}/${PN}"
+
+do_compile() {
+ set_arch
+ oe_runmake -C cdc/build/linux-$ARCH-generic bin
+}
+
+do_install() {
+ install -d ${D}/${libdir_jvm}
+
+ unzip cdc/install/${PN}.zip -d ${D}/${libdir_jvm}
+
+ # Additional link named cvm
+ install -d ${D}/${bindir}
+ ln -sf ${libdir_jvm}/${PN}/bin/cvm ${D}${bindir}/cvm
+}
+
+do_configure() {
+ set_arch
+ test ! -d cdc/build/linux-$ARCH-generic && mkdir -p cdc/build/linux-$ARCH-generic
+ cd cdc/build/linux-$ARCH-generic
+
+ echo "Configuring PhoneME Advanced build"
+ # At the moment we do not support anything else than the foundation
+ #profiles.
+ pmo_start J2ME_CLASSLIB foundation
+
+ # Dispatch to arch-specific functions.
+ oe_phoneme_config$ARCH
+
+ oe_phoneme_configbase
+
+ pmo "# Misc locations and file names."
+ pmo BINARY_BUNDLE_NAME ${PN}
+ pmo BINARY_BUNDLE_APPEND_REVISION false
+ pmo JAVAME_LEGAL_DIR ${WORKDIR}/legal
+
+ pmo "# Java toolchain binaries"
+ pmo JDK_HOME $JAVA_HOME
+ pmo CVM_TARGET_TOOLS_PREFIX ${CROSS_DIR}/bin/
+ pmo CVM_JAVA java
+ pmo CVM_JAVAC javac
+ pmo CVM_JAVADOC true
+ pmo CVM_JAVAH gjavah
+ pmo CVM_JAR gjar
+ pmo CVM_INCLUDE_DIR ${STAGING_INCDIR}/classpath
+
+ pmo JAVAC_OPTIONS -nowarn
+
+ pmo "# Host C/C++ toolchain binaries"
+ pmo HOST_CC "${BUILD_CC}"
+ pmo HOST_CC_PATH "${BUILD_CC}"
+ pmo HOST_CCC "${BUILD_CXX}"
+ pmo HOST_PATH "${BUILD_CXX}"
+ pmo HOST_LD "${BUILD_LD}"
+ pmo HOST_RANLIB "${BUILD_RANLIB}"
+
+ pmo "# C/C++ toolchain binaries"
+ pmo TARGET_CC "${CC}"
+ pmo TARGET_CC_PATH "${CC}"
+ pmo CCFLAGS "${CFLAGS}"
+ pmo TARGET_CCC "${CXX}"
+ pmo TARGET_PATH "${CXX}"
+ pmo CCCFLAGS "${CXXFLAGS}"
+ pmo TARGET_AR "${AR}"
+ pmo TARGET_LD "${CC}"
+ pmo TARGET_RANLIB "${RANLIB}"
+
+ pmo USE_GCC2 false
+
+ pmo "include ../share/top.mk"
+}
+
+pmo_start() {
+ echo "$1 = $2" > GNUmakefile
+ echo "$1 = $2"
+}
+
+pmo() {
+ if [ "$2" ]
+ then
+ echo "$1 = $2" >> GNUmakefile
+ echo "$1 = $2"
+ else
+ echo "$1" >> GNUmakefile
+ echo "$1"
+ fi
+}
+
+set_arch() {
+ case ${TARGET_ARCH} in
+ arm*) ARCH=arm ;;
+ i*86*) ARCH=x86 ;;
+ mips*) ARCH=mips ;;
+ powerpc*) ARCH=powerpc ;;
+ sparc*) ARCH=sparc ;;
+ x86_64*) ARCH=x86 ;;
+ *) die "Sorry, your target architecture is not supported!" ;;
+ esac
+}
+
+# Default non-arch specific configuration
+oe_phoneme_configbase() {
+ pmo CVM_DEBUG false
+ pmo CVM_JIT true
+}
+
+# Default arch specific configurations
+oe_phoneme_configarm() {
+ tf=true
+ if [ Xoabi = X${ARM_ABI} ]
+ then
+ tf=false
+ fi
+
+ pmo USE_AAPCS $tf
+}
+
+oe_phoneme_configx86() {
+ # Taken from linux-x86-generic/GNUmakefile
+ pmo CVM_JIT_REGISTER_LOCALS false
+}
+
+ALTERNATIVE_NAME = "java-cdc"
+ALTERNATIVE_LINK = "${bindir}/${ALTERNATIVE_NAME}"
+ALTERNATIVE_PATH = "${libdir}/jvm/${PN}/bin/cvm"
+ALTERNATIVE_PRIORITY = "10"
+
+FILES_${PN} = "${bindir}"
+FILES_${PN}-dbg += "${COMMON_DIR}/bin/.debug/cvm"
+