commit 5d0c00b258030c049fc5c1f9d6f52b2e03a47d71 Author: Zhuowei Zhang Date: Sat Mar 10 00:23:52 2018 -0500 Initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..47f4a48 --- /dev/null +++ b/.gitignore @@ -0,0 +1,12 @@ +cups-2.2.4-source.tar.gz +freetype-2.6.2.tar.bz2 +cups-2.2.4 +freetype-2.6.2 +freetype-2.6.2-x86 +jdk-9.0.4 +jdk1.8.0_* +openjdk +android-ndk-r10e +android-ndk-r10e-linux-x86_64.zip +jre.tar.xz +jreout diff --git a/README.txt b/README.txt new file mode 100644 index 0000000..7288dba --- /dev/null +++ b/README.txt @@ -0,0 +1,22 @@ +Based on http://openjdk.java.net/projects/mobile/android.html + +Download Android NDK r10e from https://developer.android.com/ndk/downloads/older_releases.html and place it in this directory + +(Can't automatically download because of EULA) + +Run in this directory: + +./extractndk.sh +./getlibs.sh +./maketoolchain.sh +./clonejdk.sh +./buildlibs.sh +./buildjdk.sh +./removejdkdebuginfo.sh +./tarjdk.sh + +For x86: +./maketoolchain_x86.sh +./reextractlibs_x86.sh +./buildlibs_x86.sh +./buildjdk_x86.sh diff --git a/buildjdk.sh b/buildjdk.sh new file mode 100755 index 0000000..36c93e3 --- /dev/null +++ b/buildjdk.sh @@ -0,0 +1,27 @@ +#!/bin/bash +set -e +. setdevkitpath.sh +export FREETYPE_DIR=`pwd`/freetype-2.6.2/build_android-arm +export CUPS_DIR=`pwd`/cups-2.2.4 + +# My system's JDK is too old (7.0), so we add an Oracle boot JDK. +export PATH=`pwd`/jdk1.8.0_162/bin:$PATH + +cd openjdk +rm -rf build +bash ./configure \ + --enable-option-checking=fatal \ + --build=x86_64-unknown-linux-gnu \ + --host=arm-linux-androideabi \ + --target=arm-linux-androideabi \ + --disable-warnings-as-errors \ + --enable-headless-only \ + --with-jdk-variant=normal \ + --with-cups-include=$CUPS_DIR \ + --with-devkit=$ANDROID_DEVKIT \ + --with-debug-level=release \ + --with-freetype-lib=$FREETYPE_DIR/lib \ + --with-freetype-include=$FREETYPE_DIR/include/freetype2 + +cd build/android-arm-normal-server-release +make JOBS=4 images diff --git a/buildjdk_x86.sh b/buildjdk_x86.sh new file mode 100755 index 0000000..fa60830 --- /dev/null +++ b/buildjdk_x86.sh @@ -0,0 +1,28 @@ +#!/bin/bash +set -e +. setdevkitpath_x86.sh +export FREETYPE_DIR=`pwd`/freetype-2.6.2-x86/build_android-i686 +export CUPS_DIR=`pwd`/cups-2.2.4 + +# My system's JDK is too old (7.0), so we add an Oracle boot JDK. +export PATH=`pwd`/jdk1.8.0_162/bin:$PATH + +cd openjdk +#rm -rf build +bash ./configure \ + --enable-option-checking=fatal \ + --build=x86_64-unknown-linux-gnu \ + --host=i686-linux-android \ + --target=i686-linux-android \ + --disable-warnings-as-errors \ + --enable-headless-only \ + --with-jdk-variant=normal \ + --with-jvm-variants=server \ + --with-cups-include=$CUPS_DIR \ + --with-devkit=$ANDROID_DEVKIT \ + --with-debug-level=release \ + --with-freetype-lib=$FREETYPE_DIR/lib \ + --with-freetype-include=$FREETYPE_DIR/include/freetype2 + +cd build/android-x86-normal-server-release +make JOBS=4 images diff --git a/buildlibs.sh b/buildlibs.sh new file mode 100755 index 0000000..d0c0df5 --- /dev/null +++ b/buildlibs.sh @@ -0,0 +1,17 @@ +#!/bin/bash +set -e +. setdevkitpath.sh +export PATH=$ANDROID_DEVKIT/bin:$PATH + +echo "Building Freetype" + +cd freetype-2.6.2 +./configure \ + --host=arm-linux-androideabi \ + --prefix=`pwd`/build_android-arm \ + --without-zlib \ + --with-png=no \ + --with-harfbuzz=no + +make -j4 +make install diff --git a/buildlibs_x86.sh b/buildlibs_x86.sh new file mode 100755 index 0000000..0b038d2 --- /dev/null +++ b/buildlibs_x86.sh @@ -0,0 +1,17 @@ +#!/bin/bash +set -e +. setdevkitpath_x86.sh +export PATH=$ANDROID_DEVKIT/bin:$PATH + +echo "Building Freetype" + +cd freetype-2.6.2-x86 +./configure \ + --host=i686-linux-android \ + --prefix=`pwd`/build_android-i686 \ + --without-zlib \ + --with-png=no \ + --with-harfbuzz=no + +make -j4 +make install diff --git a/clonejdk.sh b/clonejdk.sh new file mode 100755 index 0000000..5bb3e16 --- /dev/null +++ b/clonejdk.sh @@ -0,0 +1,5 @@ +#!/bin/bash +set -e +hg clone http://hg.openjdk.java.net/mobile/dev openjdk +cd openjdk +bash ./get_source.sh diff --git a/devkit.info.arm b/devkit.info.arm new file mode 100644 index 0000000..17eb535 --- /dev/null +++ b/devkit.info.arm @@ -0,0 +1,3 @@ +DEVKIT_NAME="Android ARM" +DEVKIT_TOOLCHAIN_PATH="$DEVKIT_ROOT/arm-linux-androideabi/bin" +DEVKIT_SYSROOT="$DEVKIT_ROOT/sysroot" diff --git a/devkit.info.x86 b/devkit.info.x86 new file mode 100644 index 0000000..538b151 --- /dev/null +++ b/devkit.info.x86 @@ -0,0 +1,3 @@ +DEVKIT_NAME="Android X86" +DEVKIT_TOOLCHAIN_PATH="$DEVKIT_ROOT/i686-linux-android/bin" +DEVKIT_SYSROOT="$DEVKIT_ROOT/sysroot" diff --git a/extractndk.sh b/extractndk.sh new file mode 100755 index 0000000..0315047 --- /dev/null +++ b/extractndk.sh @@ -0,0 +1,2 @@ +#!/bin/sh +unzip android-ndk-r10e-linux-x86_64.zip diff --git a/getlibs.sh b/getlibs.sh new file mode 100755 index 0000000..f39346a --- /dev/null +++ b/getlibs.sh @@ -0,0 +1,7 @@ +#!/bin/sh +# https://github.com/termux/termux-packages/blob/master/disabled-packages/openjdk-9-jre-headless/build.sh +set -e +wget https://download.savannah.gnu.org/releases/freetype/freetype-2.6.2.tar.bz2 +tar xf freetype-2.6.2.tar.bz2 +wget https://github.com/apple/cups/releases/download/v2.2.4/cups-2.2.4-source.tar.gz +tar xf cups-2.2.4-source.tar.gz diff --git a/maketoolchain.sh b/maketoolchain.sh new file mode 100755 index 0000000..15639f0 --- /dev/null +++ b/maketoolchain.sh @@ -0,0 +1,7 @@ +#!/bin/bash +set -e +android-ndk-r10e/build/tools/make-standalone-toolchain.sh \ + --arch=arm \ + --platform=android-21 \ + --install-dir=`pwd`/android-ndk-r10e/generated-toolchains/android-arm-toolchain +cp devkit.info.arm android-ndk-r10e/generated-toolchains/android-arm-toolchain/ diff --git a/maketoolchain_x86.sh b/maketoolchain_x86.sh new file mode 100755 index 0000000..db33635 --- /dev/null +++ b/maketoolchain_x86.sh @@ -0,0 +1,7 @@ +#!/bin/bash +set -e +android-ndk-r10e/build/tools/make-standalone-toolchain.sh \ + --arch=x86 \ + --platform=android-21 \ + --install-dir=`pwd`/android-ndk-r10e/generated-toolchains/android-x86-toolchain +cp devkit.info.x86 android-ndk-r10e/generated-toolchains/android-x86-toolchain/ diff --git a/reextract_x86.sh b/reextract_x86.sh new file mode 100755 index 0000000..ebdfe44 --- /dev/null +++ b/reextract_x86.sh @@ -0,0 +1,8 @@ +#!/bin/bash +set -e +mkdir x86tmp || true +cd x86tmp +tar xf ../freetype-2.6.2.tar.bz2 +mv freetype-2.6.2 ../freetype-2.6.2-x86 +cd .. +rmdir x86tmp diff --git a/removejdkdebuginfo.sh b/removejdkdebuginfo.sh new file mode 100755 index 0000000..7939a9a --- /dev/null +++ b/removejdkdebuginfo.sh @@ -0,0 +1,5 @@ +#!/bin/bash +set -e +rm -rf jreout || true +cp -r openjdk/build/android-arm-normal-server-release/images/jre jreout +find jreout -name "*.diz" | xargs -- rm diff --git a/setdevkitpath.sh b/setdevkitpath.sh new file mode 100644 index 0000000..156de8a --- /dev/null +++ b/setdevkitpath.sh @@ -0,0 +1 @@ +export ANDROID_DEVKIT=`pwd`/android-ndk-r10e/generated-toolchains/android-arm-toolchain diff --git a/setdevkitpath_x86.sh b/setdevkitpath_x86.sh new file mode 100644 index 0000000..a4ab222 --- /dev/null +++ b/setdevkitpath_x86.sh @@ -0,0 +1 @@ +export ANDROID_DEVKIT=`pwd`/android-ndk-r10e/generated-toolchains/android-x86-toolchain diff --git a/tarjdk.sh b/tarjdk.sh new file mode 100755 index 0000000..4b3801f --- /dev/null +++ b/tarjdk.sh @@ -0,0 +1,4 @@ +#!/bin/bash +set -e +cd jreout +tar cJf ../jre.tar.xz .