Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/openj9
Path: blob/master/android_build/build.sh
5972 views
1
#!/bin/bash
2
set -e
3
4
cd $(dirname $0)/..
5
6
SDK=28
7
8
if [ -z "$ARCH" ]; then
9
echo "ARCH not set"
10
exit 1
11
elif [ "$ARCH" == "aarch64" ]; then
12
ANDROID_ABI=arm64-v8a
13
export COMPILER=$NDK/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android$SDK-clang
14
elif [ "$ARCH" == "x86-64" ]; then
15
ANDROID_ABI=x86_64
16
export COMPILER=$NDK/toolchains/llvm/prebuilt/linux-x86_64/bin/x86_64-linux-android$SDK-clang
17
else
18
echo "Unknown/Unsupported ARCH $ARCH"
19
exit 1
20
fi
21
22
if [ -z "$NDK" ]; then
23
echo "NDK not set"
24
exit 1
25
fi
26
27
if [ -z "$JRE_VERSION" ]; then
28
echo "JRE_VERSION not set"
29
exit 1
30
fi
31
32
# Init submodules
33
git submodule init
34
git submodule update
35
36
# Build and install OMR for the host
37
cd runtime/omr
38
cmake -B native_build
39
cmake --build native_build
40
sudo cmake --install native_build
41
cd ../..
42
43
# Create stub libs
44
sudo mkdir -p $NDK/toolchains/llvm/prebuilt/linux-x86_64/{aarch64-linux-android,x86_64-linux-android}/lib
45
sudo chown -R $(id -u):$(id -g) $NDK/toolchains/llvm/prebuilt/linux-x86_64/*/lib
46
ar cr $NDK/toolchains/llvm/prebuilt/linux-x86_64/aarch64-linux-android/lib/libpthread.a
47
ar cr $NDK/toolchains/llvm/prebuilt/linux-x86_64/aarch64-linux-android/lib/librt.a
48
ar cr $NDK/toolchains/llvm/prebuilt/linux-x86_64/x86_64-linux-android/lib/libpthread.a
49
ar cr $NDK/toolchains/llvm/prebuilt/linux-x86_64/x86_64-linux-android/lib/librt.a
50
51
# Configure
52
cmake -B build \
53
-C runtime/cmake/caches/linux_$ARCH.cmake \
54
-DCMAKE_TOOLCHAIN_FILE=$NDK/build/cmake/android.toolchain.cmake \
55
-DANDROID_ABI=$ANDROID_ABI \
56
-DANDROID_PLATFORM=$SDK \
57
-DCMAKE_MODULE_PATH=runtime/omr/cmake/modules \
58
-DOMR_GC_LIB=omrgc \
59
-DOMR_SEMAPHORE_IMPLEMENTATION=posix \
60
-DBOOT_JDK=/usr/lib/jvm/java-$JRE_VERSION-openjdk-amd64 \
61
-DJAVA_SPEC_VERSION=$JRE_VERSION \
62
-DOMR_EXE_LAUNCHER="$PWD/android_build/exelauncher.sh"
63
64
# Generate the config file
65
bash android_build/gen_version_info.sh
66
67
# Build
68
make -C build -j$(nproc)
69
70