5bb99cd307
TERMUX_PKG_CLANG is going away since every package package needs to be built with clang starting with the upcoming ndk r18.
153 lines
5.3 KiB
Bash
153 lines
5.3 KiB
Bash
TERMUX_PKG_HOMEPAGE=http://openjdk.java.net
|
|
TERMUX_PKG_DESCRIPTION="OpenJDK 9 Java Runtime Environment (prerelease)"
|
|
_jbuild=181
|
|
_hg_tag="jdk-9+${_jbuild}"
|
|
_jvm_dir="lib/jvm/openjdk-9"
|
|
TERMUX_PKG_VERSION="9.2017.8.20"
|
|
TERMUX_PKG_MAINTAINER="Vishal Biswas @vishalbiswas"
|
|
TERMUX_PKG_HOMEPAGE=http://openjdk.java.net/projects/jdk9
|
|
TERMUX_PKG_DEPENDS="freetype, libpng, ca-certificates-java"
|
|
TERMUX_PKG_CONFFILES="$_jvm_dir/lib/jvm.cfg"
|
|
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
|
|
--disable-aot
|
|
--disable-hotspot-gtest
|
|
--disable-option-checking
|
|
--disable-warnings-as-errors
|
|
--enable-headless-only
|
|
--with-freetype=$TERMUX_PREFIX
|
|
--with-libpng=system
|
|
--with-zlib=system
|
|
--with-jdk-variant=normal
|
|
--with-jvm-variants=server
|
|
"
|
|
TERMUX_PKG_RM_AFTER_INSTALL="$_jvm_dir/demo $_jvm_dir/sample"
|
|
_cups_ver=2.2.4
|
|
|
|
changesets=('e5455438db96'
|
|
'5666eba44ac6'
|
|
'8076a7391ba0'
|
|
'17bb8a98d5e3'
|
|
'a1d64f45f9d5'
|
|
'364631d8ff2e'
|
|
'65bfdabaab9c'
|
|
'17cc754c8936')
|
|
|
|
sha256sums=('c759faa5bff4b3d7bcf87dce57e9d1a39600ef67ec68f96d6d12d07b1bf773ce'
|
|
'34518bf8b27aa893f834f8f81293ac0e04a210ee4f2e11bb2c89331f87912d96'
|
|
'3b649e34e2a1c8758c6311931d201a38432088ccb86a720afb1cb99fe193537f'
|
|
'bb330b8b516178304dc11c755994db20eccc696ae5c2a16b04a4a67b20b33b79'
|
|
'a213ebc4bf896c55855761891932a19f42ad5276d3fd155cfb604b27f4866d9d'
|
|
'0bc1953e9f23d59dafc415a7a37ff2da23cf8782e0532e253a6d7d63aa0ea954'
|
|
'739a5d275db4a2a81cf3c3ca17a78212b8c47092e5c10888b79e9599dd9dcc2d'
|
|
'fbc9b49a7f0fa1723e369d91068d51a11de40e931f281a3ed9650484b437cc7f'
|
|
'596d4db72651c335469ae5f37b0da72ac9f97d73e30838d787065f559dea98cc')
|
|
|
|
reponames=(dev corba hotspot jdk jaxws jaxp langtools nashorn cups)
|
|
|
|
_url_src=http://hg.openjdk.java.net/mobile/dev
|
|
|
|
TERMUX_PKG_SRCURL=$_url_src/archive/${changesets[0]}.tar.bz2
|
|
TERMUX_PKG_SHA256=${sha256sums[0]}
|
|
|
|
termux_step_post_extract_package () {
|
|
cd "$TERMUX_PKG_TMPDIR"
|
|
# download and extract repo archives
|
|
for index in {1..7}; do
|
|
local sum=${sha256sums[index]}
|
|
local repo=${reponames[index]}
|
|
local change=${changesets[index]}
|
|
local file=$TERMUX_PKG_CACHEDIR/$repo-$change.tar.bz2
|
|
local url=${_url_src}/$repo/archive/$change.tar.bz2
|
|
|
|
termux_download $url $file $sum
|
|
tar xf $file -C $TERMUX_PKG_SRCDIR
|
|
mv $TERMUX_PKG_SRCDIR/$repo-$change $TERMUX_PKG_SRCDIR/$repo
|
|
done
|
|
|
|
# setup cups source dir
|
|
file=$TERMUX_PKG_CACHEDIR/cups-$_cups_ver-source.tar.gz
|
|
url="https://github.com/apple/cups/releases/download/v$_cups_ver/`basename $file`"
|
|
termux_download $url $file ${sha256sums[8]}
|
|
tar xf $file -C $TERMUX_PKG_SRCDIR
|
|
}
|
|
|
|
# override this step to since openjdk provides its own customized guess scripts
|
|
termux_step_replace_guess_scripts () {
|
|
return
|
|
}
|
|
|
|
termux_step_pre_configure () {
|
|
TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" --with-cups-include=$TERMUX_PKG_SRCDIR/cups-$_cups_ver"
|
|
|
|
ln -sf $TERMUX_STANDALONE_TOOLCHAIN/sysroot/usr/lib/libc.so $TERMUX_PKG_TMPDIR/libpthread.so
|
|
|
|
cat > "$TERMUX_STANDALONE_TOOLCHAIN/devkit.info" <<HERE
|
|
DEVKIT_NAME="Android ${TERMUX_ARCH^^}"
|
|
DEVKIT_TOOLCHAIN_PATH="\$DEVKIT_ROOT/$TERMUX_HOST_PLATFORM/bin"
|
|
DEVKIT_SYSROOT="\$DEVKIT_ROOT/sysroot"
|
|
HERE
|
|
|
|
export ANDROID_DEVKIT=$TERMUX_STANDALONE_TOOLCHAIN
|
|
|
|
if [ -n "$TERMUX_DEBUG" ]; then TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" --with-debug-level=slowdebug"; fi
|
|
BUILD_TRIPLE=$TERMUX_ARCH-linux-gnu
|
|
test "$TERMUX_ARCH" == "arm" && BUILD_TRIPLE+="eabi"
|
|
|
|
JVM_FEATURES="compiler1,compiler2,jvmti,fprof,vm-structs,jni-check,services,management,all-gcs,nmt,cds"
|
|
# enable features specific to some arches
|
|
if [ "$TERMUX_ARCH" == "aarch64" ] || [ "$TERMUX_ARCH" == "x86_64" ]; then JVM_FEATURES+=",jvmci,graal"; fi
|
|
|
|
# remove sa_proc support
|
|
rm $TERMUX_PKG_SRCDIR/hotspot/make/lib/Lib-jdk.hotspot.agent.gmk
|
|
}
|
|
termux_step_configure () {
|
|
if [ $TERMUX_ARCH = "x86_64" ]; then
|
|
ln -sf $TERMUX_STANDALONE_TOOLCHAIN/sysroot/usr/lib64/libc.so $TERMUX_PKG_TMPDIR/libpthread.so
|
|
else
|
|
ln -sf $TERMUX_STANDALONE_TOOLCHAIN/sysroot/usr/lib/libc.so $TERMUX_PKG_TMPDIR/libpthread.so
|
|
fi
|
|
ARM64=""
|
|
if [ $TERMUX_ARCH = aarch64 ]; then
|
|
export ARM64=" --with-cpu-port=arm64"
|
|
fi
|
|
|
|
bash $TERMUX_PKG_SRCDIR/configure \
|
|
$ARM64 \
|
|
--prefix=$TERMUX_PREFIX \
|
|
--openjdk-target=$BUILD_TRIPLE \
|
|
--libexecdir=$TERMUX_PREFIX/libexec \
|
|
--with-devkit=$ANDROID_DEVKIT \
|
|
--with-extra-cflags="$CPPFLAGS $CFLAGS" \
|
|
--with-extra-cxxflags="$CPPFLAGS $CXXFLAGS" \
|
|
--with-extra-ldflags="-L$TERMUX_PKG_TMPDIR $LDFLAGS -ldl" \
|
|
--with-jvm-features="$JVM_FEATURES" \
|
|
$TERMUX_PKG_EXTRA_CONFIGURE_ARGS
|
|
}
|
|
|
|
termux_step_make () {
|
|
make JOBS=$TERMUX_MAKE_PROCESSES images
|
|
}
|
|
|
|
termux_step_post_make_install () {
|
|
# move jvm install dir
|
|
mkdir -p $TERMUX_PREFIX/lib/jvm
|
|
rm -rf "$TERMUX_PREFIX/lib/jvm/openjdk-9"
|
|
mv $TERMUX_PREFIX/jvm/openjdk-9-internal $TERMUX_PREFIX/$_jvm_dir
|
|
|
|
# place src.zip in standard location mimicking ubuntu
|
|
mv $TERMUX_PREFIX/$_jvm_dir/lib/src.zip $TERMUX_PREFIX/$_jvm_dir/src.zip
|
|
|
|
# create shell wrappers for binaries
|
|
for binary in $TERMUX_PREFIX/$_jvm_dir/bin/*; do
|
|
binary=`basename $binary`
|
|
rm -f $TERMUX_PREFIX/bin/$binary
|
|
echo "export JAVA_HOME=\$PREFIX/$_jvm_dir" > $TERMUX_PREFIX/bin/$binary
|
|
echo "export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:\$JAVA_HOME/lib:\$JAVA_HOME/lib/jli" >> $TERMUX_PREFIX/bin/$binary
|
|
echo "exec \$JAVA_HOME/bin/$binary \"\$@\"" >> $TERMUX_PREFIX/bin/$binary
|
|
chmod u+x $TERMUX_PREFIX/bin/$binary
|
|
done
|
|
|
|
# use cacerts provided by ca-certificates-java
|
|
ln -sf "$TERMUX_PREFIX/$_jvm_dir/lib/security/jssecacerts" "$TERMUX_PREFIX/$_jvm_dir/lib/security/cacerts"
|
|
}
|