[oe-commits] org.oe.dev phoneme-advanced-foundation: New recipe.

thebohemian commit oe at amethyst.openembedded.net
Mon Sep 1 18:07:32 UTC 2008


phoneme-advanced-foundation: New recipe.

Author: thebohemian at openembedded.org
Branch: org.openembedded.dev
Revision: e299597d894e9e46f3a316b7baf5b542d23260d5
ViewMTN: http://monotone.openembedded.org/revision/info/e299597d894e9e46f3a316b7baf5b542d23260d5
Files:
1
packages/phoneme
packages/phoneme/files
packages/phoneme/files/phoneme-makefile-fix.patch
packages/phoneme/phoneme-advanced-foundation_0.0.b73.bb
packages/phoneme/phoneme-advanced.inc
Diffs:

#
# mt diff -r5f06a3de7147315e15e46876e65d2a0d406334aa -re299597d894e9e46f3a316b7baf5b542d23260d5
#
#
#
# add_dir "packages/phoneme"
# 
# add_dir "packages/phoneme/files"
# 
# add_file "packages/phoneme/files/phoneme-makefile-fix.patch"
#  content [17a4c4f069d714e21e70a25fcbc9cd8d788082db]
# 
# add_file "packages/phoneme/phoneme-advanced-foundation_0.0.b73.bb"
#  content [aa80f45ba22c3a76ef6825a5ac1e27ba443a968a]
# 
# add_file "packages/phoneme/phoneme-advanced.inc"
#  content [007bcceb2ee829e446bc8efb4e871e5750fabb1b]
#
============================================================
--- packages/phoneme/files/phoneme-makefile-fix.patch	17a4c4f069d714e21e70a25fcbc9cd8d788082db
+++ packages/phoneme/files/phoneme-makefile-fix.patch	17a4c4f069d714e21e70a25fcbc9cd8d788082db
@@ -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
============================================================
--- packages/phoneme/phoneme-advanced-foundation_0.0.b73.bb	aa80f45ba22c3a76ef6825a5ac1e27ba443a968a
+++ packages/phoneme/phoneme-advanced-foundation_0.0.b73.bb	aa80f45ba22c3a76ef6825a5ac1e27ba443a968a
@@ -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 \
+"
+
============================================================
--- packages/phoneme/phoneme-advanced.inc	007bcceb2ee829e446bc8efb4e871e5750fabb1b
+++ packages/phoneme/phoneme-advanced.inc	007bcceb2ee829e446bc8efb4e871e5750fabb1b
@@ -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"
+






More information about the Openembedded-commits mailing list