1 DESCRIPTION = "A free CDC JavaVM and class library from Sun Microsystems."
3 HOMEPAGE = "https://phoneme.dev.java.net"
4 AUTHOR = "Sun Microsystems, Inc."
6 DEPENDS = "classpath-tools-native virtual/javac-native linux-libc-headers"
8 inherit java update-alternatives
10 # The PhoneME Advanced build system is documented here: http://java.sun.com/javame/reference/docs/cdc_build_system.pdf
11 # NOTE: We need to provide an empty password. pswd='' seems not to be the correct way.
13 svn://guest:''@phoneme.dev.java.net/svn/phoneme/builds/phoneme_advanced-mr2-dev-${BUILDREV};module=cdc;proto=https;localdir=cdc \
14 svn://guest:''@phoneme.dev.java.net/svn/phoneme/builds/phoneme_advanced-mr2-dev-${BUILDREV};module=tools;proto=https;localdir=tools \
15 svn://guest:''@phoneme.dev.java.net/svn/phoneme;module=legal;localdir=legal;proto=https \
18 PROVIDES = "virtual/java-cdc java-cdc-runtime"
20 SECTION = "interpreters"
22 # PhoneME builds currently cannot be parallel
27 BUILDREV = ${@bb.fatal('BUILDREV is not defined in this phoneme-advanced recipe!')}
28 SRCREV = ${@bb.fatal('SRCREV is not defined in this phoneme-advanced recipe!')}
30 COMMON_DIR = "${libdir_jvm}/${PN}"
32 PME_PROFILE ?= "foundation"
36 oe_runmake -C cdc/build/linux-$ARCH-generic bin
40 install -d ${D}/${libdir_jvm}
42 unzip cdc/install/${PN}.zip -d ${D}/${libdir_jvm}
44 # Additional link named cvm-${PME_PROFILE}
45 install -d ${D}/${bindir}
46 ln -sf ${libdir_jvm}/${PN}/bin/cvm ${D}${bindir}/cvm-${PME_PROFILE}
51 test ! -d cdc/build/linux-$ARCH-generic && mkdir -p cdc/build/linux-$ARCH-generic
52 cd cdc/build/linux-$ARCH-generic
54 echo "Configuring PhoneME Advanced build"
55 pmo_start J2ME_CLASSLIB ${PME_PROFILE}
57 # Dispatch to arch-specific functions.
58 oe_phoneme_config$ARCH
62 pmo "# Misc locations and file names."
63 pmo BINARY_BUNDLE_NAME ${PN}
64 pmo BINARY_BUNDLE_APPEND_REVISION false
65 pmo JAVAME_LEGAL_DIR ${WORKDIR}/legal
67 pmo "# Java toolchain binaries"
68 pmo JDK_HOME /dev/null
69 pmo CVM_TARGET_TOOLS_PREFIX ${CROSS_DIR}/bin/
75 pmo CVM_INCLUDE_DIR ${STAGING_INCDIR}/classpath
77 pmo JAVAC_OPTIONS -nowarn
79 pmo "# Host C/C++ toolchain binaries"
80 pmo HOST_CC "${BUILD_CC}"
81 pmo HOST_CC_PATH "${BUILD_CC}"
82 pmo HOST_CCC "${BUILD_CXX}"
83 pmo HOST_PATH "${BUILD_CXX}"
84 pmo HOST_LD "${BUILD_LD}"
85 pmo HOST_RANLIB "${BUILD_RANLIB}"
87 pmo "# C/C++ toolchain binaries"
89 pmo TARGET_CC_PATH "${CC}"
90 pmo CCFLAGS "${CFLAGS}"
91 pmo TARGET_CCC "${CXX}"
92 pmo TARGET_PATH "${CXX}"
93 pmo CCCFLAGS "${CXXFLAGS}"
96 pmo TARGET_RANLIB "${RANLIB}"
100 pmo "include ../share/top.mk"
104 echo "$1 = $2" > GNUmakefile
111 echo "$1 = $2" >> GNUmakefile
114 echo "$1" >> GNUmakefile
120 case ${TARGET_ARCH} in
124 powerpc*) ARCH=powerpc ;;
125 sparc*) ARCH=sparc ;;
127 *) die "Sorry, your target architecture is not supported!" ;;
131 # Default non-arch specific configuration
132 oe_phoneme_configbase() {
137 # Default arch specific configurations
138 oe_phoneme_configarm() {
140 if [ Xoabi = X${ARM_ABI} ]
148 oe_phoneme_configx86() {
149 # Taken from linux-x86-generic/GNUmakefile
150 pmo CVM_JIT_REGISTER_LOCALS false
153 ALTERNATIVE_NAME = "java-cdc"
154 ALTERNATIVE_LINK = "${bindir}/${ALTERNATIVE_NAME}"
155 ALTERNATIVE_PATH = "${libdir}/jvm/${PN}/bin/cvm"
156 ALTERNATIVE_PRIORITY = "10"
158 FILES_${PN} = "${bindir}"
159 FILES_${PN}-dbg += "${COMMON_DIR}/bin/.debug/cvm"