#!/bin/sh -
#
# build script for 1.8+
#
# If it's given a buildname it creates a subdirectory and places a build in it,
# otherwise it just creates the docs and class files.
#

if [ "${JDKPATH}" = "" ]
then
	JDKPATH=/usr/lib/jvm/java-8-openjdk-amd64
else
	JDKPATH_WAS_SET=yes
fi

if [ ! -x "${JDKPATH}/bin/java" ]
then
	echo "build1-8+: no JDK found at ${JDKPATH} (${JDKPATH}/bin/java is missing)." >&2
	echo "build1-8+: set JDKPATH to a JDK 8 installation, or to the JDK you intend to test on together with a matching JAVA_VERSION_PREFIX." >&2
	exit 1
fi

JAVA_HOME=$JDKPATH
export JAVA_HOME

PATH=$JDKPATH/bin:$PATH
export PATH

if [ "${JAVA_VERSION_PREFIX}" = "" ]
then
    if [ "${JDKPATH_WAS_SET}" = "yes" ]
    then
        # JDKPATH was supplied but JAVA_VERSION_PREFIX wasn't: derive the prefix
        # from the JVM's reported version so it matches System.getProperty("java.version").
        # e.g. java.version "1.8.0_492" -> 1.8, "11.0.31" -> 11, "17.0.19" -> 17.
        _javaVersion=`"${JDKPATH}/bin/java" -version 2>&1 | sed -n '1s/.*version "\([^"]*\)".*/\1/p'`
        case "${_javaVersion}" in
            1.*) JAVA_VERSION_PREFIX=`echo "${_javaVersion}" | cut -d. -f1-2` ;;
            ?*)  JAVA_VERSION_PREFIX=`echo "${_javaVersion}" | cut -d. -f1` ;;
        esac
    fi
    if [ "${JAVA_VERSION_PREFIX}" = "" ]
    then
        JAVA_VERSION_PREFIX=1.8
    fi
    export JAVA_VERSION_PREFIX
fi

if [ "$1" = "test" ]
then
    ANT_OPTS="-Djdk.xml.enableExtensionFunctions=true" ant -f ant/jdk18+.xml test
elif [ "$1" = "clean" ]
then
    ant -f ant/jdk18+.xml clean
else
    if ant -f ant/jdk18+.xml build-provider
    then
        ant -f ant/jdk18+.xml build
        ant -f ant/jdk18+.xml zip-src
    fi
    if [ -f build/artifacts/jdk1.8/jars/bcprov-jdk18on*.jar ]
    then
	tar cf - prov/src/main/resources/META-INF | (cd build/artifacts/jdk1.8/jars/; tar xf -)
        cd build/artifacts/jdk1.8/jars/
        mv prov/src/main/resources/META-INF .
        jar uf bcprov-jdk18on*.jar META-INF
        jar uf bcprov-ext-jdk18on*.jar META-INF
        rm -r prov META-INF
    fi
fi

