distributable: # TODO: more majors - url: https://github.com/openjdk/jdk20u/archive/{{version.tag}}.tar.gz strip-components: 1 - url: https://github.com/openjdk/jdk17u/archive/{{version.tag}}.tar.gz strip-components: 1 versions: # TODO: more majors - github: openjdk/jdk20u/tags # each repo contains all the prior repo tags at the time of the fork, # as well as tags like 20+10, which should be 20.0.0.10, but parses to # 20.10.0. transform: 'v => v.match(/jdk-20\.0\./) ? v.replace(/\+/, ".").replace(/^jdk-/, "") : undefined' - github: openjdk/jdk17u/tags transform: 'v => v.match(/jdk-17\.0\./) ? v.replace(/\+/, ".").replace(/^jdk-/, "") : undefined' interprets: extensions: java args: java dependencies: giflib.sourceforge.io: '*' harfbuzz.org: ^8 libjpeg-turbo.org: '*' libpng.org: '*' littlecms.com: '*' openprinting.github.io/cups: '*' info-zip.org/unzip: '*' zlib.net: '*' libzip.org: '*' linux: alsa-project.org/alsa-lib: '*' freedesktop.org/fontconfig: '*' freetype.org: '*' x.org/x11: '*' x.org/exts: '*' x.org/xrandr: '*' x.org/xrender: '*' x.org/xt: '*' x.org/xtst: '*' info-zip.org/zip: '*' darwinsys.com/file: '*' runtime: env: JAVA_HOME: '{{prefix}}' build: dependencies: linux: llvm.org: <17 gnu.org/make: '*' gnu.org/autoconf: '*' freedesktop.org/pkg-config: '*' gnu.org/wget: '*' script: - run: wget -c ${BOOT_JDK{{version.major}}}_${JDK_ARCH}_bin.tar.gz -O - | tar xz -C . --strip-components=$STRIP working-directory: boot-jdk # autoconf won't find llvm-cxxfilt for c++filt, and won't take an envvar - run: sed -i -e's/c..filt/llvm-cxxfilt/' toolchain.m4 working-directory: make/autoconf if: linux - bash configure $ARGS --with-boot-jdk="$BOOT_JDK_DIR" --with-vendor-version-string="$(pkgx --version | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+')" --with-extra-cflags="$CFLAGS" --with-extra-cxxflags="$CXXFLAGS" --with-extra-ldflags="$LDFLAGS" - make images - mkdir -p {{prefix}} - mv $JDK_DIR {{prefix}}/ env: MAKEFLAGS: 'JOBS={{ hw.concurrency }}' darwin: STRIP: 2 BOOT_JDK_DIR: $SRCROOT/boot-jdk/Contents/Home JDK_DIR: build/*/images/jdk-bundle/jdk-{{version.marketing}}.{{version.patch}}.jdk/Contents/Home/* ARGS: - --enable-dtrace linux: STRIP: 1 BOOT_JDK_DIR: $SRCROOT/boot-jdk JDK_DIR: build/*/images/jdk/* ARGS: - --with-cups={{deps.openprinting.github.io/cups.prefix}} - --with-fontconfig={{deps.freedesktop.org/fontconfig.prefix}} - --with-freetype=system - --with-stdc++lib=dynamic - --with-toolchain-type=clang darwin/aarch64: JDK_ARCH: macos-aarch64 darwin/x86-64: JDK_ARCH: macos-x64 linux/aarch64: JDK_ARCH: linux-aarch64 linux/x86-64: JDK_ARCH: linux-x64 BOOT_JDK17: https://download.java.net/java/GA/jdk17.0.2/dfd4a8d0985749f896bed50d7138ee7f/8/GPL/openjdk-17.0.2 BOOT_JDK20: https://download.java.net/java/GA/jdk19.0.1/afdd2e245b014143b62ccb916125e3ce/10/GPL/openjdk-19.0.1 ARGS: - --disable-warnings-as-errors - --with-debug-level=release - --with-jvm-variants=server - --with-native-debug-symbols=none - --with-vendor-bug-url="https://github.com/teaxyz/pantry/issues" - --with-vendor-name="tea.xyz" - --with-vendor-url="https://github.com/teaxyz/pantry/issues" - --with-vendor-vm-bug-url="https://github.com/teaxyz/pantry/issues" - --with-version-build={{version.minor}} - --without-version-opt - --without-version-pre - --with-giflib=system - --with-harfbuzz=system - --with-lcms=system - --with-libjpeg=system - --with-libpng=system - --with-zlib=system provides: - bin/jar - bin/jarsigner - bin/java - bin/javac - bin/javadoc - bin/javap - bin/jcmd - bin/jconsole - bin/jdb - bin/jdeprscan - bin/jdeps - bin/jfr - bin/jhsdb - bin/jimage - bin/jinfo - bin/jlink - bin/jmap - bin/jmod - bin/jpackage - bin/jps - bin/jrunscript - bin/jshell - bin/jstack - bin/jstat - bin/jstatd - bin/keytool - bin/rmiregistry - bin/serialver test: script: - java --version | grep {{version.marketing}} - javac HelloWorld.java - java HelloWorld | grep 'Hello, world!'