diff options
author | Robert Schuster <thebohemian@gmx.net> | 2008-08-13 14:12:14 +0000 |
---|---|---|
committer | Robert Schuster <thebohemian@gmx.net> | 2008-08-13 14:12:14 +0000 |
commit | db85f26152da4c6c04b967978e94fa534d045d8a (patch) | |
tree | 1189976446365cd6a1f40fb935a0820e7850857a /packages/phoneme | |
parent | 45b3eb81fe9c7bd2d023957e11487bee04cec408 (diff) |
phoneme-advanced-foundation: New recipe.
Diffstat (limited to 'packages/phoneme')
-rw-r--r-- | packages/phoneme/.mtn2git_empty | 0 | ||||
-rw-r--r-- | packages/phoneme/files/.mtn2git_empty | 0 | ||||
-rw-r--r-- | packages/phoneme/files/phoneme-makefile-fix.patch | 144 | ||||
-rw-r--r-- | packages/phoneme/phoneme-advanced-foundation_0.0.b73.bb | 26 | ||||
-rw-r--r-- | packages/phoneme/phoneme-advanced.inc | 160 |
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" + |