chiark / gitweb /
Update meson version used from 0.41.2 to 0.42.0
[termux-packages] / disabled-packages / openjdk-9-jre-headless / build.sh
1 TERMUX_PKG_HOMEPAGE=http://openjdk.java.net
2 TERMUX_PKG_DESCRIPTION="OpenJDK 9 Java Runtime Environment (prerelease)"
3 _jbuild=174
4 _hg_tag="jdk-9+${_jbuild}"
5 _jvm_dir="lib/jvm/openjdk-9"
6 TERMUX_PKG_VERSION="9.2017.6.24"
7 TERMUX_PKG_MAINTAINER="Vishal Biswas @vishalbiswas"
8 TERMUX_PKG_HOMEPAGE=http://openjdk.java.net/projects/jdk9
9 TERMUX_PKG_DEPENDS="freetype, libpng, ca-certificates-java"
10 TERMUX_PKG_CONFFILES="$_jvm_dir/lib/jvm.cfg"
11 TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
12 --disable-aot
13 --disable-hotspot-gtest
14 --disable-option-checking
15 --disable-warnings-as-errors
16 --enable-headless-only
17 --with-freetype=$TERMUX_PREFIX
18 --with-libpng=system
19 --with-zlib=system
20 --with-jdk-variant=normal
21 --with-jvm-variants=server
22 "
23 TERMUX_PKG_CLANG=no
24 TERMUX_PKG_RM_AFTER_INSTALL="$_jvm_dir/demo $_jvm_dir/sample"
25 _cups_ver=2.2.3
26
27 changesets=('b0ac0fef5b92'
28         'dc78a3dd6b3a'
29         'a81769cc0015'
30         'ee95c24502f3'
31         'a5d361b9d1f7'
32         '736412a8dcce'
33         '83f6eb009d8f'
34         '734b3209b6ed')
35
36 sha256sums=('b269c630374c181840c126f8e82cd799147b556482cad3231c577741d0718373'
37         '7da8245591a3ea3c6c7d0aea6cd2c653e0039a2ea5511ff2cea988223b02c388'
38         '021b9b8f943087fc7967fe3640d68ab989b791ed1133966a402e1b49f4c6154e'
39         '77200280da08f56dd298a748b99a8107dddd113872d619677e0a02eeee88bc84'
40         '435d2e98df810ce45c36af511acbf8cf9b19c68371f9692e95c6aeef2b8fd473'
41         '43a89436e6f9c11939c7d93a4daa748bc3155e8f1d6fc6e6507310b3addf31a2'
42         'c8341d99f315575a11d1f33b243f4cbdab25240caf53668eea8e09a9ecfaf2c5'
43         '52eeb4ea0c77054f7abb847f9798cedf653ac50de56a6e2d69b7277822738314'
44         '66701fe15838f2c892052c913bde1ba106bbee2e0a953c955a62ecacce76885f')
45
46 reponames=(dev corba hotspot jdk jaxws jaxp langtools nashorn cups)
47
48 _url_src=http://hg.openjdk.java.net/mobile/dev
49
50 TERMUX_PKG_SRCURL=$_url_src/archive/${changesets[0]}.tar.bz2
51 TERMUX_PKG_SHA256=${sha256sums[0]}
52 TERMUX_PKG_FOLDERNAME=dev-${changesets[0]}
53
54 termux_step_post_extract_package () {
55         cd "$TERMUX_PKG_TMPDIR"
56         # download and extract repo archives
57         for index in {1..7}; do
58                 local sum=${sha256sums[index]}
59                 local repo=${reponames[index]}
60                 local change=${changesets[index]}
61                 local file=$TERMUX_PKG_CACHEDIR/$repo-$change.tar.bz2
62                 local url=${_url_src}/$repo/archive/$change.tar.bz2
63
64                 termux_download $url $file $sum
65                 tar xf $file -C $TERMUX_PKG_SRCDIR
66                 mv $TERMUX_PKG_SRCDIR/$repo-$change $TERMUX_PKG_SRCDIR/$repo
67         done
68
69         # setup cups source dir
70         file=$TERMUX_PKG_CACHEDIR/cups-$_cups_ver-source.tar.gz
71         url="https://github.com/apple/cups/releases/download/v$_cups_ver/`basename $file`"
72         termux_download $url $file ${sha256sums[8]}
73         tar xf $file -C $TERMUX_PKG_SRCDIR
74 }
75
76 # override this step to since openjdk provides its own customized guess scripts
77 termux_step_replace_guess_scripts () {
78         return
79 }
80
81 termux_step_pre_configure () {
82         TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" --with-cups-include=$TERMUX_PKG_SRCDIR/cups-$_cups_ver"
83
84         cat > "$TERMUX_STANDALONE_TOOLCHAIN/devkit.info" <<HERE
85 DEVKIT_NAME="Android ${TERMUX_ARCH^^}"
86 DEVKIT_TOOLCHAIN_PATH="\$DEVKIT_ROOT/$TERMUX_HOST_PLATFORM/bin"
87 DEVKIT_SYSROOT="\$DEVKIT_ROOT/sysroot"
88 HERE
89
90         export ANDROID_DEVKIT=$TERMUX_STANDALONE_TOOLCHAIN
91
92         if [ -n "$TERMUX_DEBUG" ]; then TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" --with-debug-level=slowdebug"; fi
93         BUILD_TRIPLE=$TERMUX_ARCH-linux-gnu
94         test "$TERMUX_ARCH" == "arm" && BUILD_TRIPLE+="eabi"
95
96         JVM_FEATURES="compiler1,compiler2,jvmti,fprof,vm-structs,jni-check,services,management,all-gcs,nmt,cds"
97         # enable features specific to some arches
98         if [ "$TERMUX_ARCH" == "aarch64" ] || [ "$TERMUX_ARCH" == "x86_64" ]; then JVM_FEATURES+=",jvmci,graal"; fi
99
100         test "$TERMUX_ARCH" == "aarch64" && CFLAGS="$CFLAGS -DUSE_LIBRARY_BASED_TLS_ONLY"
101
102         # remove sa_proc support
103         rm $TERMUX_PKG_SRCDIR/hotspot/make/lib/Lib-jdk.hotspot.agent.gmk
104 }
105
106 termux_step_configure () {
107         bash $TERMUX_PKG_SRCDIR/configure \
108                 --prefix=$TERMUX_PREFIX \
109                 --openjdk-target=$BUILD_TRIPLE \
110                 --libexecdir=$TERMUX_PREFIX/libexec \
111                 --with-devkit=$ANDROID_DEVKIT \
112                 --with-extra-cflags="$CPPFLAGS $CFLAGS" \
113                 --with-extra-cxxflags="$CPPFLAGS $CXXFLAGS" \
114                 --with-extra-ldflags="$LDFLAGS" \
115                 --with-jvm-features="$JVM_FEATURES" \
116                 $TERMUX_PKG_EXTRA_CONFIGURE_ARGS
117 }
118
119 termux_step_make () {
120         make JOBS=$TERMUX_MAKE_PROCESSES images
121 }
122
123 termux_step_post_make_install () {
124         # move jvm install dir
125         mkdir -p $TERMUX_PREFIX/lib/jvm
126         rm -rf "$TERMUX_PREFIX/lib/jvm/openjdk-9"
127         mv $TERMUX_PREFIX/jvm/openjdk-9-internal $TERMUX_PREFIX/$_jvm_dir
128
129         # place src.zip in standard location mimicking ubuntu
130         mv $TERMUX_PREFIX/$_jvm_dir/lib/src.zip $TERMUX_PREFIX/$_jvm_dir/src.zip
131
132         # create shell wrappers for binaries
133         for binary in $TERMUX_PREFIX/$_jvm_dir/bin/*; do
134                 binary=`basename $binary`
135                 rm -f $TERMUX_PREFIX/bin/$binary
136                 echo "export JAVA_HOME=\$PREFIX/$_jvm_dir" > $TERMUX_PREFIX/bin/$binary
137                 echo "export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:\$JAVA_HOME/lib:\$JAVA_HOME/lib/jli" >> $TERMUX_PREFIX/bin/$binary
138                 echo "\$JAVA_HOME/bin/$binary \"\$@\"" >> $TERMUX_PREFIX/bin/$binary
139                 chmod u+x $TERMUX_PREFIX/bin/$binary
140         done
141
142         # use cacerts provided by ca-certificates-java
143         ln -sf "$TERMUX_PREFIX/$_jvm_dir/lib/security/jssecacerts" "$TERMUX_PREFIX/$_jvm_dir/lib/security/cacerts"
144 }