# New ports collection makefile for:	jdk13
# Date created:				10 October 2000
# Whom:					Maxim Sobolev <sobomax@FreeBSD.org>
#
# $FreeBSD$
#

PORTNAME=	jdk
PORTVERSION=	${JDK_VERSION}p${JDK_PATCHSET_VERSION}
PORTREVISION=	4
CATEGORIES=	java devel
MASTER_SITES=	# http://www.sun.com/software/java2/download.html
#		 http://www.eyesbeyond.com/freebsddom/java/jdk13.html
DISTFILES=	j2sdk-${JDK_VERSION:S/./_/g}-src${EXTRACT_SUFX} \
		bsd-jdk131-patches-${JDK_PATCHSET_VERSION}.tar.gz

MAINTAINER=	glewis@FreeBSD.org

BUILD_DEPENDS=	gm4:${PORTSDIR}/devel/m4 \
		zip:${PORTSDIR}/archivers/zip \
		gtar:${PORTSDIR}/archivers/gtar \
		${JDK13DIR}/bin/javac:${PORTSDIR}/java/linux-jdk13 \
		${X11BASE}/lib/libMrm.a:${PORTSDIR}/x11-toolkits/open-motif-devel
.if !defined(WITHOUT_PLUGIN)
BUILD_DEPENDS+=	msgfmt:${PORTSDIR}/devel/gettext
LIB_DEPENDS=	glib12.3:$(PORTSDIR)/devel/glib12 \
		gtk12.2:$(PORTSDIR)/x11-toolkits/gtk12 \
		nspr4.1:$(PORTSDIR)/devel/nspr
.endif
RUN_DEPENDS=	javavm:${PORTSDIR}/java/javavmwrapper \
		${X11BASE}/lib/X11/fonts/URW/fonts.dir:${PORTSDIR}/x11-fonts/urwfonts

WRKSRC=		${WRKDIR}/j2sdk1.3.1/make

JDK_VERSION=	1.3.1
JDK_PATCHSET_VERSION=	6

.if defined(NATIVE_BOOTSTRAP)
JDK13DIR?=	${LOCALBASE}/jdk${JDK_VERSION}
.else
JDK13DIR?=	${LOCALBASE}/linux-jdk${JDK_VERSION}
.endif

ONLY_FOR_ARCHS=	i386
USE_GMAKE=	yes
RESTRICTED=	"Redistribution of pre-compiled binaries isn't permitted"
MAKE_ENV=	ALT_BOOTDIR="${JDK13DIR}" \
		ALT_MOTIF_DIR="${X11BASE}" \
		OPENWINHOME="${X11BASE}" \
		SYS_CFLAGS="${CFLAGS}" \
		CLASSPATH="" \
		LD_LIBRARY_PATH="" \
		JAVA_COMPILER=""
.if !defined(WITHOUT_PLUGIN)
MAKE_ENV +=	LIBG_HDRS="${LOCALBASE}/include/glib12" \
		GTK_HDRS="${X11BASE}/include/gtk12" \
		LIBIDL_HDRS=
.endif
.if !defined(WITHOUT_PLUGIN)
ALL_TARGET=	all plugin images
.else
ALL_TARGET=	all images
.endif
TAR=		gtar	# Necessary for proper extraction of sources
BSD_TAR=	/usr/bin/tar
PLIST_SUB+=	JDK_VERSION=${JDK_VERSION}

JDKIMAGEDIR=	${WRKSRC}/../build/bsd-i386/jdk-image-i386
JDKIMAGEDIR_G=	${WRKSRC}/../build/bsd-i386/jdk-debug-image-i386

.if defined(NODEBUG)
PLIST_SUB+=	DEBUG:="@comment "
PKGNAMESUFFIX=	-nodebug
.else
PLIST_SUB+=	DEBUG:=""
.endif

.if defined(WITH_NATIVE_THREADS)
PLIST_SUB+=    NATIVE:=""
MAKE_ARGS+=    HPIS="green native"
.else
PLIST_SUB+=    NATIVE:="@comment "
.endif

.if defined(WITHOUT_PLUGIN)
PLIST_SUB+=    PLUGIN:="@comment "
.else
PLIST_SUB+=    PLUGIN:=""
.endif

.if defined(BATCH) || defined(PACKAGE_BUILDING)
IGNORE=		"You can not legally distribute pre-compiled binaries"
.endif

.include <bsd.port.pre.mk>

.for file in ${DISTFILES}
.if !exists(${DISTDIR}/${file})
IGNORE=You must manually fetch the source distribution and FreeBSD patches (${DISTFILES}) from http://www.sun.com/software/java2/download.html and http://www.eyesbeyond.com/freebsddom/java/jdk13.html, place it in ${DISTDIR} and then run make again
.endif
.endfor

pre-patch:
	@cd ${WRKDIR} &&  \
		${CHMOD} -R u+w * && \
		${MKDIR} -p j2sdk1.3.1/ext/plugin/oji-plugin/include/bsd/jdk12 && \
		${MKDIR} -p j2sdk1.3.1/ext/plugin/oji-plugin/include/solaris/navig5/private && \
		${MKDIR} -p j2sdk1.3.1/src/bsd/doc/man && \
		${MKDIR} -p hotspot1.3.1/build/bsd && \
		${MKDIR} -p hotspot1.3.1/build/bsd/makefiles && \
		${MKDIR} -p hotspot1.3.1/build/bsd/package && \
		${MKDIR} -p hotspot1.3.1/src/os/bsd/launcher && \
		${MKDIR} -p hotspot1.3.1/src/os/bsd/vm && \
		${MKDIR} -p hotspot1.3.1/src/os_cpu/bsd_i486/vm && \
			${PATCH} < ${WRKDIR}/jdk131.patches

post-build:
	# Prune empty dirs
	${FIND} ${JDKIMAGEDIR} -type d | /usr/bin/sort -r | \
		${XARGS} ${RMDIR} 2> /dev/null || ${TRUE}
	${FIND} ${JDKIMAGEDIR_G} -type d | /usr/bin/sort -r | \
		${XARGS} ${RMDIR} 2> /dev/null || ${TRUE}

.if !defined(NODEBUG)
pre-install:
	@${ECHO_MSG}
	@${ECHO_MSG} "Please use \`make -DNODEBUG' if you don't want to install libraries and binaries"
	@${ECHO_MSG} "with debugging support."
	@${ECHO_MSG}
.endif

do-install:
	${MKDIR} ${PREFIX}/jdk${JDK_VERSION}
	cd ${JDKIMAGEDIR} && /usr/bin/find . \
	  | /usr/bin/cpio -pdmu -R ${LIBOWN}:${LIBGRP} ${PREFIX}/jdk${JDK_VERSION}
.if !defined(NODEBUG)
	cd ${JDKIMAGEDIR_G} && /usr/bin/find . \
	  | /usr/bin/cpio -pdmu -R ${LIBOWN}:${LIBGRP} ${PREFIX}/jdk${JDK_VERSION}
.endif
	${MKDIR} ${PREFIX}/jdk${JDK_VERSION}/jre/lib/ext

post-install:
	@${LOCALBASE}/bin/registervm "${PREFIX}/jdk${JDK_VERSION}/bin/java # FREEBSD-JDK${JDK_VERSION}"
.if !defined(WITHOUT_PLUGIN)
	@${ECHO_MSG}
	@${ECHO_MSG} The use the Java plugin with Mozilla you must create a
	@${ECHO_MSG} symbolic link from
	@${ECHO_MSG}
	@${ECHO_MSG} ${PREFIX}/jdk${JDK_VERSION}/jre/plugin/i386/ns600/libjavaplugin_oji.so
	@${ECHO_MSG}
	@${ECHO_MSG} to your Mozilla plugins directory, which is usually found at
	@${ECHO_MSG}
	@${ECHO_MSG} ${X11BASE}/lib/mozilla/plugins
	@${ECHO_MSG}
.endif

.include <bsd.port.post.mk>