diff options
author | Jens Rehsack <rehsack@gmail.com> | 2015-12-08 14:52:51 +0100 |
---|---|---|
committer | Maxin B. John <maxin.john@intel.com> | 2015-12-08 17:43:40 +0200 |
commit | bac3b9acee5110390d15d38dacdb1622e31b2238 (patch) | |
tree | 1f39d7b8392576f19f77fb65f470391e2d15c6c1 /recipes-core/openjdk/openjdk-8-native.inc | |
parent | 04d5d0bf414c05ca59618d77f17ff9898aa1c566 (diff) | |
download | meta-java-bac3b9acee5110390d15d38dacdb1622e31b2238.tar.gz |
openjdk-8: add recipes for openjdk-8 and openjre-8
This adds openjdk-8 for native and target builds and allows a stripped
openjre-8 being built as well instead of trying to cherry-pick jre
components from jdk-image.
The recipes allow building openjdk-8 with or without:
* x11
* cups
* alsa/pulseaudio
and let packager enable unlimited-crypto, if desired.
To support certificate based java libraries, cacerts is created based on
ca-certificates from OE-core.
Since there can be only one PROVIDES for virtual/java-native and virtual/javac-native,
move the provides to openjdk-8-native (I think everyone agrees it's a better
choice than ecj-bootstrap-native).
Plus: Applying a fix from openjdk-9 repository which fixes build issues using gcc5
Signed-off-by: Jens Rehsack <sno@netbsd.org>
Signed-off-by: Maxin B. John <maxin.john@intel.com>
Diffstat (limited to 'recipes-core/openjdk/openjdk-8-native.inc')
-rw-r--r-- | recipes-core/openjdk/openjdk-8-native.inc | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/recipes-core/openjdk/openjdk-8-native.inc b/recipes-core/openjdk/openjdk-8-native.inc new file mode 100644 index 0000000..7813ec2 --- /dev/null +++ b/recipes-core/openjdk/openjdk-8-native.inc | |||
@@ -0,0 +1,82 @@ | |||
1 | JDK_DIR = "openjdk-8-native" | ||
2 | DEPENDS = "\ | ||
3 | icedtea7-native ant-native \ | ||
4 | libxslt-native attr-native \ | ||
5 | giflib-native jpeg-native libpng-native \ | ||
6 | glib-2.0-native freetype-native fontconfig-native \ | ||
7 | zlib-native zip-native \ | ||
8 | unzip-native make-native \ | ||
9 | ca-certificates-native openssl-native \ | ||
10 | " | ||
11 | |||
12 | PACKAGECONFIG ??= "" | ||
13 | PACKAGECONFIG[x11] = "--with-x,,libx11-native xproto-native libxt-native libxext-native libxrender-native" | ||
14 | PACKAGECONFIG[cups] = "--with-cups,,cups" | ||
15 | PACKAGECONFIG[alsa] = "--with-alsa,,alsa-lib-native" | ||
16 | PACKAGECONFIG[jce] = "--enable-unlimited-crypto,," | ||
17 | |||
18 | # do not use --wth-extra-cflags, it breaks building demos for jdk | ||
19 | # maybe disabling demos is more reasonable than avoiding --wth-extra-cflags | ||
20 | # needs discussion | ||
21 | EXTRA_OECONF_append = "\ | ||
22 | --with-jobs=${@get_jdk8_native_jobs(d)} \ | ||
23 | \ | ||
24 | --with-sys-root=${STAGING_DIR_NATIVE} \ | ||
25 | --with-tools-dir=${STAGING_DIR_NATIVE} \ | ||
26 | --with-boot-jdk=${STAGING_LIBDIR_NATIVE}/jvm/icedtea7-native \ | ||
27 | ${@jdk_configure_options(d)} \ | ||
28 | " | ||
29 | # --with-boot-jdk=${WORKDIR}/fake-jdk | ||
30 | |||
31 | inherit native | ||
32 | |||
33 | require openjdk-8-common.inc | ||
34 | |||
35 | CFLAGS_append = "${@jdk_cpp_options(d)}" | ||
36 | CPPFLAGS_append = "${@jdk_cpp_options(d)}" | ||
37 | CXXFLAGS_append = "${@jdk_cpp_options(d)}" | ||
38 | |||
39 | export MAKE_VERBOSE = "y" | ||
40 | export MFLAGS="${@jdk_make_options(d)} MAKE_VERBOSE=y QUIETLY= VERBOSE=-s LOG_LEVEL=trace" | ||
41 | |||
42 | EXTRA_OEMAKE_append = ' \ | ||
43 | OE_CFLAGS="${CFLAGS}" \ | ||
44 | OE_CPPFLAGS="${CPPFLAGS}" \ | ||
45 | OE_CXXFLAGS="${CXXFLAGS}" \ | ||
46 | OE_LDFLAGS="${LDFLAGS}" \ | ||
47 | ${@jdk_make_options(d)} \ | ||
48 | MAKE_VERBOSE=y VERBOSE=-s LOG_LEVEL=trace \ | ||
49 | QUIETLY= \ | ||
50 | images \ | ||
51 | ' | ||
52 | |||
53 | do_compile_append() { | ||
54 | set -x | ||
55 | mkdir -p ${B}/certs | ||
56 | for pem in $(find ${STAGING_DATADIR}/ca-certificates -name "*.crt") | ||
57 | do | ||
58 | bp=`basename ${pem}` | ||
59 | alias=`echo ${bp} | sed -e 's,\.[^.]*$,,'` | ||
60 | md5a=`echo ${alias} | md5sum | awk '{print $1}'` | ||
61 | der=`echo ${bp} | sed -e 's,crt$,der,'` | ||
62 | openssl x509 -in "${pem}" -inform pem -out "${B}/certs/${md5a}.der" -outform der | ||
63 | ${B}/images/j2sdk-image/bin/keytool -importcert -noprompt -storepass changeit \ | ||
64 | -keystore "${B}/images/j2sdk-image/jre/lib/security/cacerts" \ | ||
65 | -alias "${alias}" -file "${B}/certs/${md5a}.der" | ||
66 | done | ||
67 | set +x | ||
68 | } | ||
69 | |||
70 | do_install() { | ||
71 | rm -rf ${STAGING_LIBDIR_NATIVE}/jvm/${JDK_DIR} | ||
72 | mkdir -p ${STAGING_LIBDIR_NATIVE}/jvm/${JDK_DIR} | ||
73 | cp -rp ${B}/images/j2sdk-image/* ${STAGING_LIBDIR_NATIVE}/jvm/${JDK_DIR} | ||
74 | |||
75 | # clean up the mess from bootstrap | ||
76 | for tool in jar java javac keytool pack200 unpack200 | ||
77 | do | ||
78 | rm -f ${STAGING_BINDIR_NATIVE}/$tool | ||
79 | |||
80 | ln -sf "../lib/jvm/${JDK_DIR}/bin/$tool" ${STAGING_BINDIR_NATIVE}/$tool | ||
81 | done | ||
82 | } | ||