summaryrefslogtreecommitdiff
path: root/recipes/phoneme
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/phoneme')
-rw-r--r--recipes/phoneme/files/b87-makefile-fix.patch144
-rw-r--r--recipes/phoneme/phoneme-advanced-foundation_0.0.b87.bb28
-rw-r--r--recipes/phoneme/phoneme-advanced-personal-qt3_0.0.b87.bb44
-rw-r--r--recipes/phoneme/phoneme-advanced.inc160
4 files changed, 376 insertions, 0 deletions
diff --git a/recipes/phoneme/files/b87-makefile-fix.patch b/recipes/phoneme/files/b87-makefile-fix.patch
new file mode 100644
index 0000000000..5181087f6f
--- /dev/null
+++ b/recipes/phoneme/files/b87-makefile-fix.patch
@@ -0,0 +1,144 @@
+Index: cdc/build/share/rules_zoneinfo.mk
+===================================================================
+--- cdc.orig/build/share/rules_zoneinfo.mk 2008-09-17 17:38:44.424243663 +0200
++++ cdc/build/share/rules_zoneinfo.mk 2008-09-17 17:46:13.900243700 +0200
+@@ -45,7 +45,7 @@
+ .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.orig/build/share/jcc.mk 2008-09-17 17:38:44.664243074 +0200
++++ cdc/build/share/jcc.mk 2008-09-17 17:46:13.900243700 +0200
+@@ -93,7 +93,7 @@
+ $(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
+@@ -252,7 +252,7 @@
+ $(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.orig/build/share/defs.mk 2008-09-17 17:38:44.324242543 +0200
++++ cdc/build/share/defs.mk 2008-09-17 17:46:13.923263871 +0200
+@@ -1205,7 +1205,7 @@
+ 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)
+
+@@ -2193,11 +2193,11 @@
+
+ # 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)
+@@ -2205,13 +2205,13 @@
+ 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.orig/build/share/rules.mk 2008-09-17 17:38:44.636242663 +0200
++++ cdc/build/share/rules.mk 2008-09-17 17:46:13.947252841 +0200
+@@ -520,7 +520,7 @@
+ # 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)
+@@ -709,14 +709,14 @@
+ # 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
+
+ #
+@@ -752,7 +752,7 @@
+ @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)
+@@ -773,7 +773,7 @@
+ @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.orig/src/linux-arm/javavm/runtime/segvhandler_arch.c 2008-09-17 17:41:08.367553837 +0200
++++ cdc/src/linux-arm/javavm/runtime/segvhandler_arch.c 2008-09-17 17:46:13.963253086 +0200
+@@ -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/recipes/phoneme/phoneme-advanced-foundation_0.0.b87.bb b/recipes/phoneme/phoneme-advanced-foundation_0.0.b87.bb
new file mode 100644
index 0000000000..7348e87ca3
--- /dev/null
+++ b/recipes/phoneme/phoneme-advanced-foundation_0.0.b87.bb
@@ -0,0 +1,28 @@
+PR = "r1"
+
+require phoneme-advanced.inc
+
+BUILDREV = "b87"
+SRCREV = "13783"
+
+SRC_URI += "file://${BUILDREV}-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/recipes/phoneme/phoneme-advanced-personal-qt3_0.0.b87.bb b/recipes/phoneme/phoneme-advanced-personal-qt3_0.0.b87.bb
new file mode 100644
index 0000000000..675d7b7b9a
--- /dev/null
+++ b/recipes/phoneme/phoneme-advanced-personal-qt3_0.0.b87.bb
@@ -0,0 +1,44 @@
+PR = "r1"
+
+require phoneme-advanced.inc
+
+BUILDREV = "b87"
+SRCREV = "13783"
+
+SRC_URI += "file://${BUILDREV}-makefile-fix.patch;patch=1;pnum=0"
+
+FILES_${PN} += "\
+ ${COMMON_DIR}/bin/cvm \
+ ${COMMON_DIR}/lib/btclasses.zip \
+ ${COMMON_DIR}${COMMON_DIR}/lib/content-types.properties \
+ ${COMMON_DIR}/lib/libawtjpeg.so \
+ ${COMMON_DIR}/lib/libqtawt.so \
+ ${COMMON_DIR}/lib/personal.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 \
+ "
+
+DEPENDS += "uicmoc3-native qt-x11-free"
+
+PME_PROFILE = "personal"
+
+oe_phoneme_configbase() {
+ pmo CVM_DEBUG false
+ pmo CVM_JIT true
+
+ pmo AWT_PEERSET qt
+ pmo QTDIR "${STAGING_DIR_HOST}/qt3"
+ pmo QT_TARGET_DIR "${STAGING_DIR_HOST}/qt3"
+ pmo X11_LIB_DIR "${STAGING_LIBDIR}"
+ pmo MOC "${STAGING_DIR_HOST}/qt3/bin/moc"
+}
diff --git a/recipes/phoneme/phoneme-advanced.inc b/recipes/phoneme/phoneme-advanced.inc
new file mode 100644
index 0000000000..a74bc04504
--- /dev/null
+++ b/recipes/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-tools-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://guest:''@phoneme.dev.java.net/svn/phoneme/builds/phoneme_advanced-mr2-dev-${BUILDREV};module=cdc;proto=https;localdir=cdc \
+ svn://guest:''@phoneme.dev.java.net/svn/phoneme/builds/phoneme_advanced-mr2-dev-${BUILDREV};module=tools;proto=https;localdir=tools \
+ svn://guest:''@phoneme.dev.java.net/svn/phoneme;module=legal;localdir=legal;proto=https \
+ "
+
+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}"
+
+PME_PROFILE ?= "foundation"
+
+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-${PME_PROFILE}
+ install -d ${D}/${bindir}
+ ln -sf ${libdir_jvm}/${PN}/bin/cvm ${D}${bindir}/cvm-${PME_PROFILE}
+}
+
+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"
+ pmo_start J2ME_CLASSLIB ${PME_PROFILE}
+
+ # 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 /dev/null
+ 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"
+