#!/bin/sh -ex

# Not sure why this fixes the check for GCC, but it works...
export CC=gcc
export CXX=g++

# Busybox sha256 does not support longopts.
sed -e "s/--check/-c/g" -i Makefile.am

mkdir -p path
ln -s "$(command -v gpatch)" "$PWD/path/patch"
export PATH="$PWD/path:$PATH"

mkdir -p patches
for p in *.patch; do
    case $p in
        icedtea-*.patch)
            cp "$p" patches/
            ;;
        *.patch)
            patch -p1 < "$p"
            ;;
    esac
done

./autogen.sh

jdk_prefix=/usr/lib/jvm/java-1.8-openjdk

# Using ccache causes ICEs with pregenerated headers.
export CCACHE_DISABLE=1

export ALT_PARALLEL_COMPILE_JOBS="$(nproc)"
export HOTSPOT_BUILD_JOBS="$(nproc)"
export JAVA_HOME="/usr/lib/jvm/java-1.7-openjdk"
export PATH="$JAVA_HOME/bin:/usr/share/apache-ant/bin:$PATH"
export DISTRIBUTION_PATCHES=""

export CFLAGS="-O3 -fcommon -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
export CXXFLAGS="-O3 -fcommon -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"

for p in patches/*.patch; do
    case $p in
        patches/icedtea-*.patch)
            DISTRIBUTION_PATCHES="$DISTRIBUTION_PATCHES $p"
            ;;
    esac
done

mv openjdk-git.tar.xz\?no-extract "openjdk-$2.tar.xz"

unset MAKEFLAGS

bash ./configure \
    --prefix="$jdk_prefix" \
    --sysconfdir=/etc \
    --mandir=/usr/share/man \
    --infodir=/usr/share/info \
    --localstatedir=/var \
    --disable-dependency-tracking \
    --disable-downloading \
    --disable-precompiled-headers \
    --disable-docs \
    --disable-tests \
    --disable-system-pcsc \
    --disable-system-sctp \
    --enable-headless \
    --with-openjdk-src-zip="$PWD/openjdk-$2.tar.xz" \
    --with-parallel-jobs="$(nproc)" \
    --with-jar=/usr/bin/fastjar \
    --with-hotspot-build=default \
    --disable-jfr \
    --with-curves="nist+" \
    --enable-nss \
    --with-jdk-home="$JAVA_HOME"

make JOBS="$(nproc)"

mkdir -p "$1/$jdk_prefix"
cp -a openjdk.build/j2sdk-image/* "$1/$jdk_prefix"
cp -a openjdk.build/include       "$1/$jdk_prefix"
rm -rf -- "$1/$jdk_prefix/src.zip"
rm -rf -- "$1/$jdk_prefix/jre/lib/"*/server/classes.jsa
