summaryrefslogtreecommitdiffstats
path: root/recipes-core/openjdk/openjdk-8-native.inc
diff options
context:
space:
mode:
authorJens Rehsack <rehsack@gmail.com>2015-12-08 14:52:51 +0100
committerMaxin B. John <maxin.john@intel.com>2015-12-08 17:43:40 +0200
commitbac3b9acee5110390d15d38dacdb1622e31b2238 (patch)
tree1f39d7b8392576f19f77fb65f470391e2d15c6c1 /recipes-core/openjdk/openjdk-8-native.inc
parent04d5d0bf414c05ca59618d77f17ff9898aa1c566 (diff)
downloadmeta-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.inc82
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 @@
1JDK_DIR = "openjdk-8-native"
2DEPENDS = "\
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
12PACKAGECONFIG ??= ""
13PACKAGECONFIG[x11] = "--with-x,,libx11-native xproto-native libxt-native libxext-native libxrender-native"
14PACKAGECONFIG[cups] = "--with-cups,,cups"
15PACKAGECONFIG[alsa] = "--with-alsa,,alsa-lib-native"
16PACKAGECONFIG[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
21EXTRA_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
31inherit native
32
33require openjdk-8-common.inc
34
35CFLAGS_append = "${@jdk_cpp_options(d)}"
36CPPFLAGS_append = "${@jdk_cpp_options(d)}"
37CXXFLAGS_append = "${@jdk_cpp_options(d)}"
38
39export MAKE_VERBOSE = "y"
40export MFLAGS="${@jdk_make_options(d)} MAKE_VERBOSE=y QUIETLY= VERBOSE=-s LOG_LEVEL=trace"
41
42EXTRA_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
53do_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
70do_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}