| 1 | TERMUX_PKG_HOMEPAGE=http://openjdk.java.net |
| 2 | TERMUX_PKG_DESCRIPTION="OpenJDK 9 Java Runtime Environment (prerelease)" |
| 3 | _jbuild=168 |
| 4 | _hg_tag="jdk-9+${_jbuild}" |
| 5 | _jvm_dir="lib/jvm/openjdk-9" |
| 6 | TERMUX_PKG_VERSION="9.2017.5.12" |
| 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=('d3e4e68dc2a4' |
| 28 | 'b2218d41edef' |
| 29 | '2982a1d6ecfc' |
| 30 | '69b4c97b87b5' |
| 31 | '912cf69806d5' |
| 32 | '5d9d2a65fb26' |
| 33 | '0e522ff8b9f5' |
| 34 | '131e25008015') |
| 35 | |
| 36 | sha256sums=('6e38d7ff3ae082206b43973fd43c07c88d1e5b30985e0c4d8357c364f51cf66c' |
| 37 | '3173a9b6bc380ebdda014c512f0f88871a8ebdea3fda0d9ad350dba42a3493d6' |
| 38 | 'ff1342410d63ccec54f3e043b74fbc0549b01260bb15170515c68a8dfb4f7b0b' |
| 39 | 'cda559ee5cae0f8ab0c7ea19d70eaff58e7a44462786c78dfa8811f24d548aef' |
| 40 | 'a24208276b465e64085890d7daf5c4d25eb8abf629d636477f85e8849a7c978a' |
| 41 | 'a1b1a77118183000cf20bac7e10e7272145dc64e1120ccb4559b8df7160a48db' |
| 42 | '3f4517e94efb689a291dce74ac2a12e496767d417a05d7fc6c74c483f3d14cca' |
| 43 | '961adb3a0facfec181ff3b999b6fa079dffb1ff4a8f5607905f5ea28dcc597bf' |
| 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 | # remove sa_proc support |
| 101 | rm $TERMUX_PKG_SRCDIR/hotspot/make/lib/Lib-jdk.hotspot.agent.gmk |
| 102 | } |
| 103 | |
| 104 | termux_step_configure () { |
| 105 | bash $TERMUX_PKG_SRCDIR/configure \ |
| 106 | --prefix=$TERMUX_PREFIX \ |
| 107 | --openjdk-target=$BUILD_TRIPLE \ |
| 108 | --libexecdir=$TERMUX_PREFIX/libexec \ |
| 109 | --with-devkit=$ANDROID_DEVKIT \ |
| 110 | --with-extra-cflags="$CPPFLAGS $CFLAGS" \ |
| 111 | --with-extra-cxxflags="$CPPFLAGS $CXXFLAGS" \ |
| 112 | --with-extra-ldflags="$LDFLAGS" \ |
| 113 | --with-jvm-features="$JVM_FEATURES" \ |
| 114 | $TERMUX_PKG_EXTRA_CONFIGURE_ARGS |
| 115 | } |
| 116 | |
| 117 | termux_step_make () { |
| 118 | make JOBS=$TERMUX_MAKE_PROCESSES images |
| 119 | } |
| 120 | |
| 121 | termux_step_post_make_install () { |
| 122 | # move jvm install dir |
| 123 | mkdir -p $TERMUX_PREFIX/lib/jvm |
| 124 | rm -rf "$TERMUX_PREFIX/lib/jvm/openjdk-9" |
| 125 | mv $TERMUX_PREFIX/jvm/openjdk-9-internal $TERMUX_PREFIX/$_jvm_dir |
| 126 | |
| 127 | # place src.zip in standard location mimicking ubuntu |
| 128 | mv $TERMUX_PREFIX/$_jvm_dir/lib/src.zip $TERMUX_PREFIX/$_jvm_dir/src.zip |
| 129 | |
| 130 | # create shell wrappers for binaries |
| 131 | for binary in $TERMUX_PREFIX/$_jvm_dir/bin/*; do |
| 132 | binary=`basename $binary` |
| 133 | rm -f $TERMUX_PREFIX/bin/$binary |
| 134 | echo "export JAVA_HOME=\$PREFIX/$_jvm_dir" > $TERMUX_PREFIX/bin/$binary |
| 135 | echo "export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:\$JAVA_HOME/lib:\$JAVA_HOME/lib/jli" >> $TERMUX_PREFIX/bin/$binary |
| 136 | echo "\$JAVA_HOME/bin/$binary \"\$@\"" >> $TERMUX_PREFIX/bin/$binary |
| 137 | chmod u+x $TERMUX_PREFIX/bin/$binary |
| 138 | done |
| 139 | |
| 140 | # use cacerts provided by ca-certificates-java |
| 141 | ln -sf "$TERMUX_PREFIX/$_jvm_dir/lib/security/jssecacerts" "$TERMUX_PREFIX/$_jvm_dir/lib/security/cacerts" |
| 142 | } |