Eva Isabella Luna 0b28f59414
[FEAT] Add TARGET_OS
Used to name the tarballs a bit clearer, mainly for Jenkins.
2025-06-29 19:36:25 -06:00
2025-06-29 19:36:25 -06:00
2025-05-28 20:43:38 -06:00
2025-06-29 19:36:25 -06:00
2023-02-26 08:31:03 +07:00
2023-02-26 08:31:03 +07:00
2020-07-20 18:13:39 +07:00
2020-06-29 15:49:04 -07:00
2018-03-10 00:24:36 -05:00
2022-08-16 12:26:27 +07:00
2022-08-16 12:26:27 +07:00
2025-06-29 19:36:25 -06:00

angelauramc-openjdk-build

This branch is for OpenJDK 17 and 21.

Based on Java for Android and the PojavLauncher variant

Building

Setup

Android

Note: We use Ubuntu 24.04 LTS to build our JDKs. Adapt these dependencies to your distribution, it should build fine.

  • Install autoconf, python3, python-is-python3, unzip, zip, systemtap-sdt-dev, libxtst-dev, libasound2-dev, libelf-dev, libfontconfig1-dev, libx11-dev, libxext-dev, libxrandr-dev, libxrender-dev, libxtst-dev, libxt-dev.
  • If building JDK 17, install openjdk-17-jdk. For 21, openjdk-21-jdk.
  • Install Android NDK r27b.

iOS

  • Install latest Xcode on your Mac.
  • If building JDK 17, install JDK 17. For 21, install JDK 21.

Platform and architecture specific environment variables

Environment variables
Platform - Architecture TARGET TARGET_JDK
Android - armv8/aarch64 aarch64-linux-android aarch64
Android - armv7/aarch32 arm-linux-androideabi arm
Android - x86/i686 i686-linux-android x86
Android - x86_64/amd64 x86_64-linux-android x86_64
iOS/iPadOS - armv8/aarch64 aarch64-macos-ios aarch64

Run in this directory:

export BUILD_IOS=1 # only when targeting iOS, default is 0 (target Android)

export BUILD_FREETYPE_VERSION=[2.6.2/.../2.10.4] # default: 2.10.4
export JDK_DEBUG_LEVEL=[release/fastdebug/debug] # default: release
export JVM_VARIANTS=[client/server] # default: client (aarch32), server (other architectures)

# Setup NDK, run once (Android only)
./extractndk.sh
./maketoolchain.sh 

# Get CUPS, Freetype and build Freetype
./getlibs.sh
./buildlibs.sh

# Clone JDK, run once
./clonejdk.sh

# Configure JDK and build, if no configuration is changed, run makejdkwithoutconfigure.sh instead
./buildjdk.sh

# Pack the built JDK
./removejdkdebuginfo.sh
./tarjdk.sh
Description
Build and packaging script for building OpenJDK, used for Amethyst
Readme 3.1 MiB
Languages
C 94%
Shell 6%