Initial commit

This commit is contained in:
Zhuowei Zhang 2018-03-10 00:23:52 -05:00
commit 5d0c00b258
18 changed files with 176 additions and 0 deletions

12
.gitignore vendored Normal file
View File

@ -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

22
README.txt Normal file
View File

@ -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

27
buildjdk.sh Executable file
View File

@ -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

28
buildjdk_x86.sh Executable file
View File

@ -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

17
buildlibs.sh Executable file
View File

@ -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

17
buildlibs_x86.sh Executable file
View File

@ -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

5
clonejdk.sh Executable file
View File

@ -0,0 +1,5 @@
#!/bin/bash
set -e
hg clone http://hg.openjdk.java.net/mobile/dev openjdk
cd openjdk
bash ./get_source.sh

3
devkit.info.arm Normal file
View File

@ -0,0 +1,3 @@
DEVKIT_NAME="Android ARM"
DEVKIT_TOOLCHAIN_PATH="$DEVKIT_ROOT/arm-linux-androideabi/bin"
DEVKIT_SYSROOT="$DEVKIT_ROOT/sysroot"

3
devkit.info.x86 Normal file
View File

@ -0,0 +1,3 @@
DEVKIT_NAME="Android X86"
DEVKIT_TOOLCHAIN_PATH="$DEVKIT_ROOT/i686-linux-android/bin"
DEVKIT_SYSROOT="$DEVKIT_ROOT/sysroot"

2
extractndk.sh Executable file
View File

@ -0,0 +1,2 @@
#!/bin/sh
unzip android-ndk-r10e-linux-x86_64.zip

7
getlibs.sh Executable file
View File

@ -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

7
maketoolchain.sh Executable file
View File

@ -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/

7
maketoolchain_x86.sh Executable file
View File

@ -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/

8
reextract_x86.sh Executable file
View File

@ -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

5
removejdkdebuginfo.sh Executable file
View File

@ -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

1
setdevkitpath.sh Normal file
View File

@ -0,0 +1 @@
export ANDROID_DEVKIT=`pwd`/android-ndk-r10e/generated-toolchains/android-arm-toolchain

1
setdevkitpath_x86.sh Normal file
View File

@ -0,0 +1 @@
export ANDROID_DEVKIT=`pwd`/android-ndk-r10e/generated-toolchains/android-x86-toolchain

4
tarjdk.sh Executable file
View File

@ -0,0 +1,4 @@
#!/bin/bash
set -e
cd jreout
tar cJf ../jre.tar.xz .