ladybird/Ports/OpenJDK/package.sh
Timur Sultanov 1f886f94bd Ports: Add OpenJDK port
Port of OpenJDK 17.0.2, zero VM only.

More work needed to get the full hotspot VM up and running :^)

Co-Authored-By: Andrew Kaster <akaster@serenityos.org>
2022-06-19 09:05:35 +02:00

58 lines
2.1 KiB
Bash
Executable File

#!/usr/bin/env -S USE_CCACHE=false bash ../.port_include.sh
port='OpenJDK'
version='17.0.2'
workdir="jdk17u-dev-jdk-${version}-ga"
useconfigure='true'
use_fresh_config_guess='true'
config_guess_paths=("make/autoconf/build-aux/autoconf-config.guess")
use_fresh_config_sub='true'
config_sub_paths=("make/autoconf/build-aux/autoconf-config.sub")
auth_type='sha256'
files="https://github.com/openjdk/jdk17u-dev/archive/refs/tags/jdk-${version}-ga.tar.gz jdk-${version}-ga.tar.gz cb5b2a5d0916723d340f2c5bacd4607f8b8dc3a18dc8019fcfabf5306e2a4112"
depends=("fontconfig" "libffi")
configure() {
TOOLCHAIN_ARGS=()
WARNING_IGNORE_FLAGS='-Wno-error=switch -Wno-maybe-uninitialized'
if [ $SERENITY_TOOLCHAIN = 'Clang' ]; then
# We need the build CC and CXX to actually be clang when using clang to cross-compile
# ... for some reason.
TOOLCHAIN_ARGS=("--with-toolchain-type=clang"
"BUILD_CC=clang"
"BUILD_CXX=clang++")
WARNING_IGNORE_FLAGS="${WARNING_IGNORE_FLAGS} -Wno-error=bitwise-instead-of-logical"
fi
# Note: To use ccache with OpenJDK, pass --enable-ccache
# It rejects the ccache symlinks.
run bash configure \
AR=${AR} \
READELF=${READELF} \
STRIP=${STRIP} \
CXXFILT=${CXXFILT} \
BUILD_AR=${HOST_AR} \
BUILD_OBJCOPY=${HOST_OBJCOPY} \
BUILD_STRIP=${HOST_STRIP} \
--openjdk-target=${SERENITY_ARCH}-pc-serenity \
--with-sysroot=${SERENITY_INSTALL_ROOT} \
--with-jvm-variants=zero \
--enable-headless-only \
--with-debug-level=fastdebug \
--with-native-debug-symbols=internal \
--with-tools-dir=${SERENITY_TOOLCHAIN_BINDIR} \
--with-extra-cflags="${WARNING_IGNORE_FLAGS}" \
--with-extra-cxxflags="${WARNING_IGNORE_FLAGS}" \
"${TOOLCHAIN_ARGS[@]}"
}
build() {
run make java.base jdk.compiler java.logging
}
install() {
run mkdir -p ${SERENITY_INSTALL_ROOT}/usr/local/lib/jvm/
run sh -c "cp ./build/serenity-* ${SERENITY_INSTALL_ROOT}/usr/local/lib/jvm/ -rf"
}