xf86-video-omapfb: pandora: handle cycle/forcer events better
[openembedded.git] / recipes / phoneme / phoneme-advanced.inc
1 DESCRIPTION = "A free CDC JavaVM and class library from Sun Microsystems."
2 LICENSE = "GPLv2"
3 HOMEPAGE = "https://phoneme.dev.java.net"
4 AUTHOR = "Sun Microsystems, Inc."
5
6 DEPENDS = "classpath-tools-native virtual/javac-native linux-libc-headers"
7
8 inherit java update-alternatives
9
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.
12 SRC_URI = "\
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 \
16         "
17
18 PROVIDES = "virtual/java-cdc java-cdc-runtime"
19 PRIORITY = "optional"
20 SECTION  = "interpreters"
21
22 # PhoneME builds currently cannot be parallel
23 PARALLEL_MAKE = ""
24
25 S = "${WORKDIR}"
26
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!')}
29
30 COMMON_DIR  = "${libdir_jvm}/${PN}"
31
32 PME_PROFILE ?= "foundation"
33
34 do_compile() {
35         set_arch
36         oe_runmake -C cdc/build/linux-$ARCH-generic bin
37 }
38
39 do_install() {
40         install -d ${D}/${libdir_jvm}
41
42         unzip cdc/install/${PN}.zip -d ${D}/${libdir_jvm}
43
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}
47 }
48
49 do_configure() {
50   set_arch
51   test ! -d cdc/build/linux-$ARCH-generic && mkdir -p cdc/build/linux-$ARCH-generic
52   cd cdc/build/linux-$ARCH-generic
53
54   echo "Configuring PhoneME Advanced build"
55   pmo_start J2ME_CLASSLIB ${PME_PROFILE}
56
57   # Dispatch to arch-specific functions.
58   oe_phoneme_config$ARCH
59
60   oe_phoneme_configbase
61
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
66
67   pmo "# Java toolchain binaries"
68   pmo JDK_HOME /dev/null
69   pmo CVM_TARGET_TOOLS_PREFIX ${CROSS_DIR}/bin/
70   pmo CVM_JAVA java
71   pmo CVM_JAVAC javac
72   pmo CVM_JAVADOC true
73   pmo CVM_JAVAH gjavah
74   pmo CVM_JAR gjar
75   pmo CVM_INCLUDE_DIR ${STAGING_INCDIR}/classpath
76
77   pmo JAVAC_OPTIONS -nowarn
78
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}"
86
87   pmo "# C/C++ toolchain binaries"
88   pmo TARGET_CC "${CC}"
89   pmo TARGET_CC_PATH "${CC}"
90   pmo CCFLAGS "${CFLAGS}"
91   pmo TARGET_CCC "${CXX}"
92   pmo TARGET_PATH "${CXX}"
93   pmo CCCFLAGS "${CXXFLAGS}"
94   pmo TARGET_AR "${AR}"
95   pmo TARGET_LD "${CC}"
96   pmo TARGET_RANLIB "${RANLIB}"
97
98   pmo USE_GCC2 false
99
100   pmo "include ../share/top.mk"
101 }
102
103 pmo_start() {
104         echo "$1 = $2" > GNUmakefile
105         echo "$1 = $2"
106 }
107
108 pmo() {
109         if [ "$2" ]
110         then
111                 echo "$1 = $2" >> GNUmakefile
112                 echo "$1 = $2"
113         else
114                 echo "$1" >> GNUmakefile
115                 echo "$1"
116         fi
117 }
118
119 set_arch() {
120         case ${TARGET_ARCH} in
121                 arm*)     ARCH=arm ;;
122                 i*86*)    ARCH=x86 ;;
123                 mips*)    ARCH=mips ;;
124                 powerpc*) ARCH=powerpc ;;
125                 sparc*)   ARCH=sparc ;;
126                 x86_64*)  ARCH=x86 ;;
127                 *)    die "Sorry, your target architecture is not supported!" ;;
128         esac
129 }
130
131 # Default non-arch specific configuration
132 oe_phoneme_configbase() {
133   pmo CVM_DEBUG false
134   pmo CVM_JIT true
135 }
136
137 # Default arch specific configurations
138 oe_phoneme_configarm() {
139         tf=true
140         if [ Xoabi = X${ARM_ABI} ]
141         then
142                 tf=false
143         fi
144
145         pmo USE_AAPCS $tf
146 }
147
148 oe_phoneme_configx86() {
149         # Taken from linux-x86-generic/GNUmakefile
150         pmo CVM_JIT_REGISTER_LOCALS false
151 }
152
153 ALTERNATIVE_NAME = "java-cdc"
154 ALTERNATIVE_LINK = "${bindir}/${ALTERNATIVE_NAME}"
155 ALTERNATIVE_PATH = "${libdir}/jvm/${PN}/bin/cvm"
156 ALTERNATIVE_PRIORITY = "10"
157
158 FILES_${PN} = "${bindir}"
159 FILES_${PN}-dbg += "${COMMON_DIR}/bin/.debug/cvm"
160