# TODO: better places for bin and man?
# TODO: make -headless versions
# TODO: config files?
# TODO: find giflib patch for --with-giflib=system

_java_ver=8
_jdk_update=20
_jdk_build=23
_repo_ver="jdk${_java_ver}u${_jdk_update}-b${_jdk_build}"
_openjdk_version="openjdk-1.8.0_${_jdk_update}"

# Template file for 'openjdk'
pkgname=openjdk
version=${_java_ver}u${_jdk_update}
revision=6
nocross=yes
wrksrc=jdk8u-jdk8u${_jdk_update}-b${_jdk_build}/
build_style=gnu-configure
configure_args="
 --prefix=${XBPS_DESTDIR}/${sourcepkg}-${version}/usr/lib
 --with-update-version=${_jdk_update}
 --with-build-number=b${_jdk_build}
 --with-milestone=fcs
 --enable-unlimited-crypto
 --with-zlib=system
 $(vopt_if oracle_bootstrap --with-boot-jdk=/usr/lib/jvm/oracle-jdk \
                            --with-boot-jdk=/usr/lib/jvm/openjdk)"
make_build_args="DEBUG_BINARIES=true docs all"
hostmakedepends="pkg-config cpio unzip zip"
case "$XBPS_MACHINE" in
	arm*) hostmakedepends+=" $(vopt_if oracle_bootstrap oracle-jdk-arm openjdk)";;
	*) hostmakedepends+=" $(vopt_if oracle_bootstrap oracle-jdk openjdk)";;
esac
makedepends="libXrender-devel libXtst-devel libXt-devel  
 libjpeg-turbo-devel cups-devel freetype-devel alsa-lib-devel"
case "$XBPS_TARGET_MACHINE" in
	arm*)
		makedepends+=" libffi-devel" 
		configure_args+=" --with-jvm-variants=zero"
esac
depends="openjdk-jre-${version}_${revision}"
provides="java-environment-${version}_1"
replaces="java-environment>=0"
short_desc="OpenJDK Java Development Kit"
maintainer="Christian Neukirchen <chneukirchen@gmail.com>"
license="GPL-3"
homepage="http://openjdk.java.net/"
distfiles="http://hg.openjdk.java.net/jdk8u/jdk8u/archive/${_repo_ver}.tar.gz>jdk8u-${_repo_ver}.tar.gz
 http://hg.openjdk.java.net/jdk8u/jdk8u/corba/archive/${_repo_ver}.tar.gz>corba-${_repo_ver}.tar.gz
 http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot/archive/${_repo_ver}.tar.gz>hotspot-${_repo_ver}.tar.gz
 http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/archive/${_repo_ver}.tar.gz>jdk-${_repo_ver}.tar.gz
 http://hg.openjdk.java.net/jdk8u/jdk8u/jaxws/archive/${_repo_ver}.tar.gz>jaxws-${_repo_ver}.tar.gz
 http://hg.openjdk.java.net/jdk8u/jdk8u/jaxp/archive/${_repo_ver}.tar.gz>jaxp-${_repo_ver}.tar.gz
 http://hg.openjdk.java.net/jdk8u/jdk8u/langtools/archive/${_repo_ver}.tar.gz>langtools-${_repo_ver}.tar.gz
 http://hg.openjdk.java.net/jdk8u/jdk8u/nashorn/archive/${_repo_ver}.tar.gz>nashorn-${_repo_ver}.tar.gz"

checksum="ec0b86c0a5883f769cb951a96a0b61734aa7e3c2b62e3b448f7bf6866a36c237
 e979396e3d64af94664932a28eb63d3048bdf3595f180bd4bd3fad91bc8b685c
 ba0c359bb99b82fb2eca37ba5d2a7e775bd9f67749e41cbbf6a059677f20750a
 7f66b915b4ad378710cf1b8e52a3615105457d6a93aaf6183b76d7d6dfa14c14
 3d19d5b7fd7a13ed2bf860491731ca6c928ed0d44e10910f2d43340f627714f7
 046de26b27cf7f24b77c33af249aac7fa8d14269306ed2e1f9517cce279243c3
 05177c5ba5ec95d041d46e871358692ff1e62f8568c8c9580688b39e5165d580
 2499b19562e320eb304be8797c2a895f1fe2ab2d16fd7da68aeaed180b3f1899
 0abc573312fb20998f42c815857cbba0696a98165237e12c7c0e23f37ee361ab"

# Build is still parallel, but don't use -jN.
disable_parallel_build=yes

build_options="oracle_bootstrap"
desc_option_oracle_bootstrap="Bootstrap using Oracle JDK"

post_extract() {
	chmod +x configure
	for subrepo in corba hotspot jdk jaxws jaxp langtools nashorn; do
		ln -s ../${subrepo}-${_repo_ver} ${subrepo}
	done
	cd hotspot
	# https://bugs.openjdk.java.net/browse/JDK-8028407
	patch -p1 < ${FILESDIR}/001_adjust-mflags-for-gmake-4.patch
	# https://bugs.openjdk.java.net/browse/JDK-8041658
	patch -p1 < ${FILESDIR}/002_gcc.make-4.9.patch
}

post_install() {
	rm -rf ${DESTDIR}/usr/lib/bin
	vlicense ASSEMBLY_EXCEPTION
	vlicense LICENSE
	vlicense THIRD_PARTY_README
}

openjdk-jre_package() {
        short_desc="OpenJDK Java Runtime Environment"
	provides="java-runtime-${version}_1"
	replaces="java-runtime>=0"
        pkg_install() {
		vmove "usr/lib/jvm/$_openjdk_version/jre"
		ln -s $_openjdk_version ${PKGDESTDIR}/usr/lib/jvm/openjdk
		vmkdir etc/profile.d
		cat >>${PKGDESTDIR}/etc/profile.d/10_openjdk.sh <<EOF
export JAVA_HOME=\${JAVA_HOME=/usr/lib/jvm/$_openjdk_version/jre}
export PATH="\$PATH:/usr/lib/jvm/$_openjdk_version/jre/bin:/usr/lib/jvm/$_openjdk_version/bin"
EOF
        }
}

openjdk-src_package() {
        short_desc+=" -- sources"
        pkg_install() {
		vmove "usr/lib/jvm/$_openjdk_version/src.zip"
        }
}

openjdk-doc_package() {
        short_desc+=" -- documentation"
        pkg_install() {
		cd ${wrksrc}
		vmkdir usr/share/doc
		cp -a build/linux-*/docs/* ${PKGDESTDIR}/usr/share/doc
        }
}
