blob: 6a72572bd37c84501ac630625394d95c94c0117c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
DESCRIPTION = "Java runtime based upon the OpenJDK- and Icedtea Project"
HOMEPAGE = "http://icedtea.classpath.org"
LICENSE = "GPL-2.0-with-classpath-exception"
PRIORITY = "optional"
SECTION = "libs"
ICEDTEA_VERSION = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE', False),d)[1].split("-")[1] or '1.0'}"
S = "${WORKDIR}/${ICEDTEA}"
DEPENDS_append_libc-uclibc = " virtual/libiconv "
# The OpenJDK build with interpreter optimizations for ARM depends on a binary
# that generates constants for an assembler source file. There is no other
# way than to generate this on a pseudo machine. Cross-compiling would not help
# because structure sizes and/or alignment may differ.
DEPENDS_append = " qemu-native "
inherit java autotools gettext qemu pkgconfig
B = "${S}/build"
# OpenJDK uses slightly different names for certain arches. We need to know
# this to create some files which are expected by the build.
def get_jdk_arch(d):
import bb
jdk_arch = bb.data.getVar('TRANSLATED_TARGET_ARCH', d, 1)
if jdk_arch == "x86-64":
jdk_arch = "amd64"
elif jdk_arch == "powerpc":
jdk_arch = "ppc"
elif jdk_arch == "powerpc64":
jdk_arch = "ppc64"
elif (jdk_arch == "i486" or jdk_arch == "i586" or jdk_arch == "i686"):
jdk_arch = "i386"
return jdk_arch
JDK_ARCH = "${@get_jdk_arch(d)}"
JDK_HOME = "${libdir_jvm}/${JDK_DIR}"
JDK_FAKE = "${WORKDIR}/fake-jdk"
# A function that is needed in the Shark builds.
def get_llvm_configure_arch(d):
import bb;
arch = bb.data.getVar('TRANSLATED_TARGET_ARCH', d, 1)
if arch == "x86-64" or arch == "i486" or arch == "i586" or arch == "i686":
arch = "x86"
elif arch == "arm":
arch = "arm"
elif arch == "mipsel" or arch == "mips":
arch = "mips"
elif arch == "powerpc" or arch == "powerpc64":
arch = "powerpc"
else:
bb.warn("%s does not support %s yet" % (bb.data.getVar('PN', d, 1), arch) );
return arch
# Puts an OE specific string into the binary making it possible for the user
# to know where it comes from (and blame the right people ...).
DIST_ID = "Built for ${DISTRO}"
DIST_NAME = "${DISTRO}"
EXTRA_OEMAKE = 'DIST_NAME="${DIST_NAME}" DIST_ID="${DIST_ID}"'
# llvm configure and compiles stuff
export WANT_LLVM_RELEASE = "2.8"
# Provides the target architecture to the configure script.
export LLVM_CONFIGURE_ARCH="${@get_llvm_configure_arch(d)}"
# Large stack is required at least on x86_64 host, otherwise random segfaults appear:
QEMU = "${@qemu_target_binary(d)} ${QEMU_OPTIONS} -s 2097152"
EXTRA_OEMAKE += 'QEMU="${QEMU}"'
|