aboutsummaryrefslogtreecommitdiffstats
path: root/graphics/jogl
diff options
context:
space:
mode:
authoredwin <edwin@FreeBSD.org>2008-06-11 21:08:32 +0800
committeredwin <edwin@FreeBSD.org>2008-06-11 21:08:32 +0800
commit7933ffb06ed5eee85bf5327e990c48ae0d1c0eaa (patch)
treeee615d1331e95cb06f7175ee555d5ee4e7b5c5a6 /graphics/jogl
parentf0f43ee124147671e5636c285f654a8debf4c66d (diff)
downloadfreebsd-ports-graphics-7933ffb06ed5eee85bf5327e990c48ae0d1c0eaa.tar.gz
freebsd-ports-graphics-7933ffb06ed5eee85bf5327e990c48ae0d1c0eaa.tar.zst
freebsd-ports-graphics-7933ffb06ed5eee85bf5327e990c48ae0d1c0eaa.zip
New port: graphics/jogl - Java bindings for OpenGL
The JOGL project hosts the development version of the Java Binding for the OpenGL API (JSR-231), and is designed to provide hardware- supported 3D graphics to applications written in Java. JOGL provides full access to the APIs in the OpenGL 2.0 specification as well as nearly all vendor extensions, and integrates with the AWT and Swing widget sets. It is part of a suite of open-source technologies initiated by the Game Technology Group at Sun Microsystems. WWW: https://jogl.dev.java.net/ PR: ports/124414 Submitted by: Peter Jeremy <peterjeremy@optushome.com.au>
Diffstat (limited to 'graphics/jogl')
-rw-r--r--graphics/jogl/Makefile76
-rw-r--r--graphics/jogl/distinfo3
-rw-r--r--graphics/jogl/files/patch-gluegen_make_build.xml22
-rw-r--r--graphics/jogl/files/patch-gluegen_make_gluegen-cpptasks.xml96
-rw-r--r--graphics/jogl/files/patch-gluegen_src_java_com_sun_gluegen_StructLayout.java10
-rw-r--r--graphics/jogl/files/patch-gluegen_src_java_com_sun_gluegen_runtime_CPU.java10
-rw-r--r--graphics/jogl/files/patch-jogl_make_build.xml211
-rw-r--r--graphics/jogl/pkg-descr9
-rw-r--r--graphics/jogl/pkg-plist107
9 files changed, 544 insertions, 0 deletions
diff --git a/graphics/jogl/Makefile b/graphics/jogl/Makefile
new file mode 100644
index 00000000000..04a0bb440f1
--- /dev/null
+++ b/graphics/jogl/Makefile
@@ -0,0 +1,76 @@
+# New ports collection makefile for: jogl
+# Date created: 5 December 1994
+# Whom: Peter Jeremy <peterjeremy@optushome.com.au>
+#
+# $FreeBSD$
+#
+
+PORTNAME= jogl
+PORTVERSION= 1.1.1
+CATEGORIES= graphics devel java
+MASTER_SITES=http://download.java.net/media/jogl/builds/archive/jsr-231-1.1.1/
+EXTRACT_SUFX= -src.zip
+
+MAINTAINER= peterjeremy@optushome.com.au
+COMMENT= Java bindings for OpenGL
+
+LIB_DEPENDS= GL.1:${PORTSDIR}/graphics/libGL \
+ X11.6:${PORTSDIR}/x11/libX11 \
+ Xau.6:${PORTSDIR}/x11/libXau \
+ Xdamage.1:${PORTSDIR}/x11/libXdamage \
+ Xdmcp.6:${PORTSDIR}/x11/libXdmcp \
+ Xext.6:${PORTSDIR}/x11/libXext \
+ Xfixes.3:${PORTSDIR}/x11/libXfixes \
+ Xxf86vm.1:${PORTSDIR}/x11/libXxf86vm \
+ drm.2:${PORTSDIR}/graphics/libdrm
+BUILD_DEPENDS= java:${PORTSDIR}/java/javavmwrapper \
+ ${JAVALIBDIR}/antlr.jar:${PORTSDIR}/devel/antlr
+RUN_DEPENDS= java:${PORTSDIR}/java/javavmwrapper
+
+NO_WRKSUBDIR= yes
+
+DATADIR= ${JAVASHAREDIR}/${PORTNAME}
+
+ALL_TARGET= all
+.if !defined(NOPORTDOCS)
+ALL_TARGET+= javadoc
+.endif
+
+# Java currently only supports i386 and amd64. Supporting additional
+# architectures will need patches to at least
+# gluegen/src/java/com/sun/gluegen/StructLayout.java
+# gluegen/src/java/com/sun/gluegen/runtime/CPU.java
+# gluegen/make/gluegen-cpptasks.xml
+# jogl/make/build.xml
+ONLY_FOR_ARCHS= i386 amd64
+
+USE_ZIP= yes
+USE_ANT= yes
+USE_LDCONFIG= yes
+USE_JAVA= yes
+JAVA_VERSION= 1.4+
+
+BUILD_WRKSRC= ${WRKSRC}/jogl/make
+
+post-patch:
+ @${REINPLACE_CMD} -e 's|%%JAVALIBDIR%%|${JAVALIBDIR}|g' \
+ ${WRKSRC}/gluegen/make/build.xml
+ @${REINPLACE_CMD} -e 's|%%JAVALIBDIR%%|${JAVALIBDIR}|g' \
+ -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \
+ ${WRKSRC}/jogl/make/build.xml
+
+do-install:
+.if !defined(NOPORTDOCS)
+ ${MKDIR} ${DATADIR}
+ ${INSTALL_DATA} ${WRKSRC}/jogl/doc/userguide/index.html \
+ ${DATADIR}/UserGuide.html
+ cd ${BUILD_WRKSRC}/../javadoc_public && \
+ ${FIND} . -print | ${CPIO} -pdm ${DATADIR}
+.endif
+ ${INSTALL_DATA} ${WRKSRC}/gluegen/build/obj/libgluegen-rt.so \
+ ${WRKSRC}/jogl/build/obj/libjogl.so \
+ ${WRKSRC}/jogl/build/obj/libjogl_awt.so ${PREFIX}/lib
+ ${INSTALL_DATA} ${WRKSRC}/gluegen/build/gluegen-rt.jar \
+ ${WRKSRC}/jogl/build/jogl.jar ${JAVAJARDIR}
+
+.include <bsd.port.mk>
diff --git a/graphics/jogl/distinfo b/graphics/jogl/distinfo
new file mode 100644
index 00000000000..4ceb95d72b4
--- /dev/null
+++ b/graphics/jogl/distinfo
@@ -0,0 +1,3 @@
+MD5 (jogl-1.1.1-src.zip) = 2f5a12e82c1cd93054dce9fd6556dc02
+SHA256 (jogl-1.1.1-src.zip) = dbd34718f15e6f45deb2d96bc328c3d54aa2f3a2160a4593997506c837d859a0
+SIZE (jogl-1.1.1-src.zip) = 3638019
diff --git a/graphics/jogl/files/patch-gluegen_make_build.xml b/graphics/jogl/files/patch-gluegen_make_build.xml
new file mode 100644
index 00000000000..8806ec072b7
--- /dev/null
+++ b/graphics/jogl/files/patch-gluegen_make_build.xml
@@ -0,0 +1,22 @@
+--- gluegen/make/build.xml.orig 2008-05-14 18:54:48.000000000 +1000
++++ gluegen/make/build.xml 2008-06-09 10:41:50.000000000 +1000
+@@ -11,8 +11,8 @@
+ -->
+ <project name="GlueGen" basedir="." default="all">
+ <!-- On jpackage.org-compatible systems, antlr.jar can be found in /usr/share/java -->
+- <available property="antlr.jar" file="/usr/share/java/antlr.jar"
+- value="/usr/share/java/antlr.jar"/>
++ <available property="antlr.jar" file="%%JAVALIBDIR%%/antlr.jar"
++ value="%%JAVALIBDIR%%/antlr.jar"/>
+
+ <target name="load.user.properties" unless="user.properties.file">
+ <!-- Load the user specified properties file that defines various host
+@@ -281,7 +281,7 @@
+ <property name="compiler.cfg.id" value="compiler.cfg.freebsd" />
+ <property name="linker.cfg.id" value="linker.cfg.linux" />
+ <property name="c.src.dir" value="unix" />
+- <property name="java.includes.dir.freebsd" value="${java.includes.dir}/freebsd" />
++ <property name="java.includes.dir.platform" value="${java.includes.dir}/freebsd" />
+ </target>
+
+ <target name="declare.hpux" if="isHPUX">
diff --git a/graphics/jogl/files/patch-gluegen_make_gluegen-cpptasks.xml b/graphics/jogl/files/patch-gluegen_make_gluegen-cpptasks.xml
new file mode 100644
index 00000000000..ebffda8c02d
--- /dev/null
+++ b/graphics/jogl/files/patch-gluegen_make_gluegen-cpptasks.xml
@@ -0,0 +1,96 @@
+--- gluegen/make/gluegen-cpptasks.xml.orig 2008-02-08 20:47:30.000000000 +1100
++++ gluegen/make/gluegen-cpptasks.xml 2008-05-27 22:25:42.000000000 +1000
+@@ -30,6 +30,8 @@
+ - configuration is exactly as specified.
+ -
+ - isFreeBSD
++ - isFreeBSDamd64
++ - isFreeBSDx86
+ - isHPUX
+ - isIA64
+ - isLinux
+@@ -88,6 +90,7 @@
+ - compiler.cfg.win32.msvc
+ - compiler.cfg.macosx
+ - compiler.cfg.freebsd
++ - compiler.cfg.freebsd.amd64
+ - compiler.cfg.hpux
+ - linker.cfg.linux
+ - linker.cfg.linux.amd64
+@@ -158,6 +161,25 @@
+ <condition property="isFreeBSD">
+ <os name="FreeBSD" />
+ </condition>
++ <condition property="isFreeBSDamd64">
++ <and>
++ <istrue value="${isFreeBSD}" />
++ <or>
++ <os arch="AMD64" />
++ <os arch="amd64" />
++ <os arch="x86_64" />
++ </or>
++ </and>
++ </condition>
++ <condition property="isFreeBSDx86">
++ <and>
++ <istrue value="${isFreeBSD}" />
++ <or>
++ <os arch="i386" />
++ <os arch="x86" />
++ </or>
++ </and>
++ </condition>
+ <condition property="isHPUX">
+ <os name="HP-UX" />
+ </condition>
+@@ -235,6 +257,8 @@
+ </condition>
+
+ <echo message="FreeBSD=${isFreeBSD}" />
++ <echo message="FreeBSDamd64=${isFreeBSDamd64}" />
++ <echo message="FreeBSDx86=${isFreeBSDx86}" />
+ <echo message="HPUX=${isHPUX}" />
+ <echo message="IA64=${isIA64}" />
+ <echo message="Linux=${isLinux}" />
+@@ -253,10 +277,16 @@
+ <echo message="X11=${isX11}" />
+ </target>
+
+- <target name="gluegen.cpptasks.detect.os.freebsd" unless="gluegen.cpptasks.detected.os" if="isFreeBSD">
++ <target name="gluegen.cpptasks.detect.os.freebsd.x86" unless="gluegen.cpptasks.detected.os" if="isFreeBSDx86">
+ <property name="os.and.arch" value="freebsd-i586" />
+ </target>
+
++ <target name="gluegen.cpptasks.detect.os.freebsd.amd64" unless="gluegen.cpptasks.detected.os" if="isFreeBSDamd64">
++ <property name="os.and.arch" value="freebsd-amd64" />
++ </target>
++
++ <target name="gluegen.cpptasks.detect.os.freebsd" depends="gluegen.cpptasks.detect.os.freebsd.amd64,gluegen.cpptasks.detect.os.freebsd.x86" unless="gluegen.cpptasks.detected.os" />
++
+ <target name="gluegen.cpptasks.detect.os.hpux" unless="gluegen.cpptasks.detected.os" if="isHPUX">
+ <property name="os.and.arch" value="hpux-hppa" />
+ </target>
+@@ -466,6 +496,10 @@
+
+ <compiler id="compiler.cfg.freebsd" name="gcc">
+ </compiler>
++ <compiler id="compiler.cfg.freebsd.amd64" name="gcc">
++ <compilerarg value="-fPIC"/>
++ </compiler>
++
+
+ <compiler id="compiler.cfg.hpux" name="aCC">
+ <!-- Interpret source as ANSI C89 (not C++) -->
+@@ -496,6 +530,12 @@
+ <linker id="linker.cfg.linux.amd64" name="gcc">
+ </linker>
+
++ <linker id="linker.cfg.freebsd" name="gcc">
++ </linker>
++
++ <linker id="linker.cfg.freebsd.amd64" name="gcc">
++ </linker>
++
+ <linker id="linker.cfg.solaris" name="suncc">
+ </linker>
+
diff --git a/graphics/jogl/files/patch-gluegen_src_java_com_sun_gluegen_StructLayout.java b/graphics/jogl/files/patch-gluegen_src_java_com_sun_gluegen_StructLayout.java
new file mode 100644
index 00000000000..97c8bdab621
--- /dev/null
+++ b/graphics/jogl/files/patch-gluegen_src_java_com_sun_gluegen_StructLayout.java
@@ -0,0 +1,10 @@
+--- gluegen/src/java/com/sun/gluegen/StructLayout.java.orig 2008-02-23 06:46:44.000000000 +1100
++++ gluegen/src/java/com/sun/gluegen/StructLayout.java 2008-06-09 08:40:19.000000000 +1000
+@@ -140,6 +140,7 @@
+ (os.startsWith("mac os") && cpu.equals("i386")) ||
+ (os.startsWith("mac os") && cpu.equals("x86_64")) ||
+ (os.startsWith("freebsd") && cpu.equals("i386")) ||
++ (os.startsWith("freebsd") && cpu.equals("amd64")) ||
+ (os.startsWith("hp-ux") && cpu.equals("pa_risc2.0"))
+ ) {
+ // FIXME: make struct alignment configurable? May need to change
diff --git a/graphics/jogl/files/patch-gluegen_src_java_com_sun_gluegen_runtime_CPU.java b/graphics/jogl/files/patch-gluegen_src_java_com_sun_gluegen_runtime_CPU.java
new file mode 100644
index 00000000000..55104f1bcf8
--- /dev/null
+++ b/graphics/jogl/files/patch-gluegen_src_java_com_sun_gluegen_runtime_CPU.java
@@ -0,0 +1,10 @@
+--- gluegen/src/java/com/sun/gluegen/runtime/CPU.java.orig 2008-02-23 06:46:44.000000000 +1100
++++ gluegen/src/java/com/sun/gluegen/runtime/CPU.java 2008-06-09 18:38:20.000000000 +1000
+@@ -64,6 +64,7 @@
+ (os.startsWith("hp-ux") && cpu.equals("pa_risc2.0"))) {
+ is32Bit = true;
+ } else if ((os.startsWith("windows") && cpu.equals("amd64")) ||
++ (os.startsWith("freebsd") && cpu.equals("amd64")) ||
+ (os.startsWith("linux") && cpu.equals("amd64")) ||
+ (os.startsWith("linux") && cpu.equals("x86_64")) ||
+ (os.startsWith("linux") && cpu.equals("ia64")) ||
diff --git a/graphics/jogl/files/patch-jogl_make_build.xml b/graphics/jogl/files/patch-jogl_make_build.xml
new file mode 100644
index 00000000000..a7d650472bf
--- /dev/null
+++ b/graphics/jogl/files/patch-jogl_make_build.xml
@@ -0,0 +1,211 @@
+--- jogl/make/build.xml.orig 2008-04-29 17:18:50.000000000 +1000
++++ jogl/make/build.xml 2008-06-09 10:49:28.000000000 +1000
+@@ -82,8 +82,8 @@
+ </target>
+
+ <!-- On jpackage.org-compatible systems, antlr.jar can be found in /usr/share/java -->
+- <available property="antlr.jar" file="/usr/share/java/antlr.jar"
+- value="/usr/share/java/antlr.jar"/>
++ <available property="antlr.jar" file="%%JAVALIBDIR%%/antlr.jar"
++ value="%%JAVALIBDIR%%/antlr.jar"/>
+
+ <!-- ================================================================== -->
+ <!--
+@@ -213,6 +213,9 @@
+ <property name="java.lib.dir.linux" value="${java.home.dir}/jre/lib/i386" />
+ <property name="java.lib.dir.linux.amd64" value="${java.home.dir}/jre/lib/amd64" />
+ <property name="java.lib.dir.linux.ia64" value="${java.home.dir}/jre/lib/ia64" />
++ <property name="java.lib.dir.freebsd.x86" value="${java.home.dir}/jre/lib/i386" />
++ <property name="java.lib.dir.freebsd.amd64" value="${java.home.dir}/jre/lib/amd64" />
++ <property name="java.lib.dir.freebsd.ia64" value="${java.home.dir}/jre/lib/ia64" />
+ <property name="java.lib.dir.hpux" value="${java.home.dir}/jre/lib/PA_RISC2.0" />
+ <condition property="cpu" value="sparc">
+ <os name="SunOS" arch="sparc" />
+@@ -437,15 +440,26 @@
+ <property name="linker.cfg.id.core" value="linker.cfg.macosx.jogl" />
+ </target>
+
+- <target name="declare.freebsd" depends="declare.x11" if="isFreeBSD">
+- <echo message="FreeBSD" />
+- <property name="java.includes.dir.platform" value="${java.includes.dir.freebsd}" />
+- <property name="java.lib.dir.platform" value="${java.lib.dir.linux}" />
++ <target name="declare.freebsd.x86" depends="declare.x11" if="isFreeBSDx86">
++ <echo message="FreeBSD.x86" />
++ <property name="java.includes.dir.platform" value="${java.includes.dir}/freebsd" />
++ <property name="java.lib.dir.platform" value="${java.lib.dir.freebsd.x86}" />
+
+- <property name="compiler.cfg.id" value="compiler.cfg.freebsd.jogl" />
+- <property name="linker.cfg.id.core" value="linker.cfg.linux.jogl" />
++ <property name="compiler.cfg.id" value="compiler.cfg.freebsd.jogl" />
++ <property name="linker.cfg.id.core" value="linker.cfg.freebsd.jogl" />
+ </target>
+
++ <target name="declare.freebsd.amd64" depends="declare.x11" if="isFreeBSDamd64">
++ <echo message="FreeBSD.amd64*" />
++ <property name="java.includes.dir.platform" value="${java.includes.dir}/freebsd" />
++ <property name="java.lib.dir.platform" value="${java.lib.dir.freebsd.amd64}" />
++
++ <property name="compiler.cfg.id" value="compiler.cfg.freebsd.amd64" />
++ <property name="linker.cfg.id.core" value="linker.cfg.freebsd.amd64.jogl" />
++ </target>
++
++ <target name="declare.freebsd" depends="declare.freebsd.x86,declare.freebsd.amd64,declare.x11" if="isFreeBSD" />
++
+ <target name="declare.hpux" depends="declare.x11" if="isHPUX">
+ <echo message="HP-UX" />
+ <property name="java.includes.dir.platform" value="${java.includes.dir.hpux}" />
+@@ -727,7 +741,7 @@
+ <compiler id="compiler.cfg.freebsd.jogl" extends="compiler.cfg.freebsd">
+ <!-- Need to force X11R6 headers on to include path after stub_includes -->
+ <includepath path="stub_includes/opengl"/>
+- <includepath path="/usr/X11R6/include" />
++ <includepath path="%%LOCALBASE%%/include" />
+ </compiler>
+
+ <!-- linker configuration -->
+@@ -744,6 +758,18 @@
+ <syslibset dir="${x11.cg.lib}" libs="Cg, CgGL" if="c.compiler.use-cglib"/>
+ </linker>
+
++ <linker id="linker.cfg.freebsd.jogl" extends="linker.cfg.freebsd">
++ <syslibset dir="%%LOCALBASE%%/lib" libs="GL, X11"/>
++ <syslibset dir="%%LOCALBASE%%/lib" libs="Xxf86vm" />
++ <syslibset dir="${x11.cg.lib}" libs="Cg, CgGL" if="c.compiler.use-cglib"/>
++ </linker>
++
++ <linker id="linker.cfg.freebsd.amd64.jogl" name="gcc">
++ <syslibset dir="%%LOCALBASE%%/lib" libs="GL, X11"/>
++ <syslibset dir="%%LOCALBASE%%/lib" libs="Xxf86vm" />
++ <syslibset dir="${x11.cg.lib}" libs="Cg, CgGL" if="c.compiler.use-cglib"/>
++ </linker>
++
+ <linker id="linker.cfg.solaris.jogl" extends="linker.cfg.solaris">
+ <syslibset libs="GL, X11"/>
+ <syslibset dir="${x11.cg.lib}" libs="Cg, CgGL" if="c.compiler.use-cglib"/>
+@@ -855,6 +881,7 @@
+ <includepath path="stub_includes/cg" if="c.compiler.use-cglib"/>
+ <!-- This must come last to not override real include paths -->
+ <!-- includepath path="stub_includes/macosx" if="isOSX" / -->
++ <sysincludepath path="%%LOCALBASE%%/include" if="isFreeBSD"/>
+ </compiler>
+
+ <linker extends="${linker.cfg.id}">
+@@ -1210,6 +1237,60 @@
+ </fail>
+ </target>
+
++ <target name="dist.check.freebsd-x86" if="jogl.dist.dir">
++ <condition property="freebsd-x86.complete">
++ <and>
++ <available file="${jogl.dist.dir}/jogl-freebsd/jogl.jar" />
++ <available file="${jogl.dist.dir}/jogl-freebsd/libjogl.so" />
++ <available file="${jogl.dist.dir}/jogl-freebsd/libjogl_awt.so" />
++ <available file="${jogl.dist.dir}/jogl-freebsd/libjogl_cg.so" />
++ <available file="${jogl.dist.dir}/jogl-freebsd/libgluegen-rt.so" />
++ <available file="${jogl.dist.dir}/jogl-freebsd/gluegen-rt-natives-freebsd-i586.jar" />
++ <!-- Assume we also copy over these generated files in the FreeBSD build -->
++ <!-- in order to satisfy requests from end users that we provide these -->
++ <!-- files for easier source browsing in IDEs -->
++ <available file="${jogl.dist.dir}/jogl-freebsd/DebugGL.java" />
++ <available file="${jogl.dist.dir}/jogl-freebsd/TraceGL.java" />
++ <available file="${jogl.dist.dir}/jogl-freebsd/GL.java" />
++ <available file="${jogl.dist.dir}/jogl-freebsd/GLU.java" />
++ </and>
++ </condition>
++ <fail unless="freebsd-x86.complete">
++ ********************************************************************
++ ** Files are missing from the FreeBSD/i386 build. This will cause **
++ ** the distribution to be incomplete. Please check the status of **
++ ** the FreeBSD/i386 build and try again. **
++ ********************************************************************
++ </fail>
++ </target>
++
++ <target name="dist.check.freebsd-amd64" if="jogl.dist.dir">
++ <condition property="freebsd-amd64.complete">
++ <and>
++ <available file="${jogl.dist.dir}/jogl-freebsd/jogl.jar" />
++ <available file="${jogl.dist.dir}/jogl-freebsd/libjogl.so" />
++ <available file="${jogl.dist.dir}/jogl-freebsd/libjogl_awt.so" />
++ <available file="${jogl.dist.dir}/jogl-freebsd/libjogl_cg.so" />
++ <available file="${jogl.dist.dir}/jogl-freebsd/libgluegen-rt.so" />
++ <available file="${jogl.dist.dir}/jogl-freebsd/gluegen-rt-natives-freebsd-amd64.jar" />
++ <!-- Assume we also copy over these generated files in the FreeBSD build -->
++ <!-- in order to satisfy requests from end users that we provide these -->
++ <!-- files for easier source browsing in IDEs -->
++ <available file="${jogl.dist.dir}/jogl-freebsd/DebugGL.java" />
++ <available file="${jogl.dist.dir}/jogl-freebsd/TraceGL.java" />
++ <available file="${jogl.dist.dir}/jogl-freebsd/GL.java" />
++ <available file="${jogl.dist.dir}/jogl-freebsd/GLU.java" />
++ </and>
++ </condition>
++ <fail unless="freebsd-amd64.complete">
++ ********************************************************************
++ ** Files are missing from the FreeBSD/amd64 build. This will cause **
++ ** the distribution to be incomplete. Please check the status of **
++ ** the FreeBSD/amd64 build and try again. **
++ ********************************************************************
++ </fail>
++ </target>
++
+ <target name="dist.check.macosx" if="jogl.dist.dir">
+ <condition property="macosx.complete">
+ <and>
+@@ -1373,7 +1454,7 @@
+ <property name="tmp.version" value="${base_version}-pre-${timestamp}" />
+ </target>
+
+- <target name="dist" depends="dist.dir.check,dist.check.windows,dist.check.windows-amd64,dist.check.linux,dist.check.linux-amd64,dist.check.macosx,dist.check.macosxfat,dist.check.solsparc,dist.check.solsparcv9,dist.check.solx86,dist.check.solamd64,setup-version-RI,setup-version-non-RI">
++ <target name="dist" depends="dist.dir.check,dist.check.windows,dist.check.windows-amd64,dist.check.linux,dist.check.linux-amd64,dist.check.freebsd-x86,dist.check.freebsd-amd64,dist.check.macosx,dist.check.macosxfat,dist.check.solsparc,dist.check.solsparcv9,dist.check.solx86,dist.check.solamd64,setup-version-RI,setup-version-non-RI">
+ <delete>
+ <fileset dir="${jogl.dist.dir}" includes="*.jar" />
+ </delete>
+@@ -1391,7 +1472,7 @@
+ <!-- Build jar files suitable for Java Web Start -->
+ <jar manifest="${jogl.dist.dir}/META-INF/MANIFEST.MF" destfile="${jogl.dist.dir}/jogl.jar" duplicate="preserve">
+ <zipgroupfileset dir="${jogl.dist.dir}"
+- includes="jogl-win/jogl.jar, jogl-linux/jogl.jar, jogl-macosx/jogl.jar" />
++ includes="jogl-win/jogl.jar, jogl-linux/jogl.jar, jogl-freebsd/jogl.jar, jogl-macosx/jogl.jar" />
+ </jar>
+ <!-- Apply Pack200 repacking to allow later compression by that mechanism -->
+ <apply executable="pack200" verbose="true" >
+@@ -1410,6 +1491,12 @@
+ <jar destfile="${jogl.dist.dir}/jogl-natives-linux-amd64.jar"
+ basedir="${jogl.dist.dir}/jogl-linux/64"
+ includes="libjogl.so,libjogl_awt.so,libjogl_cg.so" />
++ <jar destfile="${jogl.dist.dir}/jogl-natives-freebsd-i586.jar"
++ basedir="${jogl.dist.dir}/jogl-freebsd"
++ includes="libjogl.so,libjogl_awt.so,libjogl_cg.so" />
++ <jar destfile="${jogl.dist.dir}/jogl-natives-freebsd-amd64.jar"
++ basedir="${jogl.dist.dir}/jogl-freebsd"
++ includes="libjogl.so,libjogl_awt.so,libjogl_cg.so" />
+ <jar destfile="${jogl.dist.dir}/jogl-natives-macosx-ppc.jar"
+ basedir="${jogl.dist.dir}/jogl-macosx/ppc"
+ includes="libjogl.jnilib,libjogl_awt.jnilib,libjogl_cg.jnilib" />
+@@ -1444,6 +1531,9 @@
+ <fileset dir="${jogl.dist.dir}/jogl-linux/64" includes="gluegen-natives-*.jar" />
+ </copy>
+ <copy todir="${jogl.dist.dir}">
++ <fileset dir="${jogl.dist.dir}/jogl-freebsd" includes="gluegen-natives-*.jar" />
++ </copy>
++ <copy todir="${jogl.dist.dir}">
+ <fileset dir="${jogl.dist.dir}/jogl-macosx/ppc" includes="gluegen-natives-*.jar" />
+ </copy>
+ <copy todir="${jogl.dist.dir}">
+@@ -1492,6 +1582,16 @@
+ <param name="zip.src.so.dir" value="${jogl.dist.dir}/jogl-linux/64" />
+ </antcall>
+ <antcall target="dist.build.zip" inheritAll="true">
++ <param name="zip.os.arch" value="freebsd-i586" />
++ <param name="zip.so.suffix" value=".so" />
++ <param name="zip.src.so.dir" value="${jogl.dist.dir}/jogl-freebsd" />
++ </antcall>
++ <antcall target="dist.build.zip" inheritAll="true">
++ <param name="zip.os.arch" value="freebsd-amd64" />
++ <param name="zip.so.suffix" value=".so" />
++ <param name="zip.src.so.dir" value="${jogl.dist.dir}/jogl-freebsd" />
++ </antcall>
++ <antcall target="dist.build.zip" inheritAll="true">
+ <param name="zip.os.arch" value="macosx-ppc" />
+ <param name="zip.so.suffix" value=".jnilib" />
+ <param name="zip.src.so.dir" value="${jogl.dist.dir}/jogl-macosx/ppc" />
diff --git a/graphics/jogl/pkg-descr b/graphics/jogl/pkg-descr
new file mode 100644
index 00000000000..0ba95432a4a
--- /dev/null
+++ b/graphics/jogl/pkg-descr
@@ -0,0 +1,9 @@
+The JOGL project hosts the development version of the Java Binding for
+the OpenGL API (JSR-231), and is designed to provide hardware-
+supported 3D graphics to applications written in Java. JOGL provides
+full access to the APIs in the OpenGL 2.0 specification as well as
+nearly all vendor extensions, and integrates with the AWT and Swing
+widget sets. It is part of a suite of open-source technologies
+initiated by the Game Technology Group at Sun Microsystems.
+
+WWW: https://jogl.dev.java.net/
diff --git a/graphics/jogl/pkg-plist b/graphics/jogl/pkg-plist
new file mode 100644
index 00000000000..276bad57ff2
--- /dev/null
+++ b/graphics/jogl/pkg-plist
@@ -0,0 +1,107 @@
+lib/libgluegen-rt.so
+lib/libjogl.so
+lib/libjogl_awt.so
+%%JAVAJARDIR%%/gluegen-rt.jar
+%%JAVAJARDIR%%/jogl.jar
+%%PORTDOCS%%%%DATADIR%%/UserGuide.html
+%%PORTDOCS%%%%DATADIR%%/com/sun/opengl/util/Animator.html
+%%PORTDOCS%%%%DATADIR%%/com/sun/opengl/util/BufferUtil.html
+%%PORTDOCS%%%%DATADIR%%/com/sun/opengl/util/FileUtil.html
+%%PORTDOCS%%%%DATADIR%%/com/sun/opengl/util/FPSAnimator.html
+%%PORTDOCS%%%%DATADIR%%/com/sun/opengl/util/Gamma.html
+%%PORTDOCS%%%%DATADIR%%/com/sun/opengl/util/GLUT.html
+%%PORTDOCS%%%%DATADIR%%/com/sun/opengl/util/ImageUtil.html
+%%PORTDOCS%%%%DATADIR%%/com/sun/opengl/util/JOGLAppletLauncher.html
+%%PORTDOCS%%%%DATADIR%%/com/sun/opengl/util/Screenshot.html
+%%PORTDOCS%%%%DATADIR%%/com/sun/opengl/util/StreamUtil.html
+%%PORTDOCS%%%%DATADIR%%/com/sun/opengl/util/TGAWriter.html
+%%PORTDOCS%%%%DATADIR%%/com/sun/opengl/util/TileRenderer.html
+%%PORTDOCS%%%%DATADIR%%/com/sun/opengl/util/j2d/Overlay.html
+%%PORTDOCS%%%%DATADIR%%/com/sun/opengl/util/j2d/TextRenderer.html
+%%PORTDOCS%%%%DATADIR%%/com/sun/opengl/util/j2d/TextRenderer.DefaultRenderDelegate.html
+%%PORTDOCS%%%%DATADIR%%/com/sun/opengl/util/j2d/TextRenderer.RenderDelegate.html
+%%PORTDOCS%%%%DATADIR%%/com/sun/opengl/util/j2d/TextureRenderer.html
+%%PORTDOCS%%%%DATADIR%%/com/sun/opengl/util/j2d/package-frame.html
+%%PORTDOCS%%%%DATADIR%%/com/sun/opengl/util/j2d/package-summary.html
+%%PORTDOCS%%%%DATADIR%%/com/sun/opengl/util/j2d/package-tree.html
+%%PORTDOCS%%%%DATADIR%%/com/sun/opengl/util/texture/Texture.html
+%%PORTDOCS%%%%DATADIR%%/com/sun/opengl/util/texture/TextureCoords.html
+%%PORTDOCS%%%%DATADIR%%/com/sun/opengl/util/texture/TextureData.html
+%%PORTDOCS%%%%DATADIR%%/com/sun/opengl/util/texture/TextureData.Flusher.html
+%%PORTDOCS%%%%DATADIR%%/com/sun/opengl/util/texture/TextureIO.html
+%%PORTDOCS%%%%DATADIR%%/com/sun/opengl/util/texture/spi/DDSImage.html
+%%PORTDOCS%%%%DATADIR%%/com/sun/opengl/util/texture/spi/DDSImage.ImageInfo.html
+%%PORTDOCS%%%%DATADIR%%/com/sun/opengl/util/texture/spi/SGIImage.html
+%%PORTDOCS%%%%DATADIR%%/com/sun/opengl/util/texture/spi/TextureProvider.html
+%%PORTDOCS%%%%DATADIR%%/com/sun/opengl/util/texture/spi/TextureWriter.html
+%%PORTDOCS%%%%DATADIR%%/com/sun/opengl/util/texture/spi/TGAImage.html
+%%PORTDOCS%%%%DATADIR%%/com/sun/opengl/util/texture/spi/TGAImage.Header.html
+%%PORTDOCS%%%%DATADIR%%/com/sun/opengl/util/texture/spi/package-frame.html
+%%PORTDOCS%%%%DATADIR%%/com/sun/opengl/util/texture/spi/package-summary.html
+%%PORTDOCS%%%%DATADIR%%/com/sun/opengl/util/texture/spi/package-tree.html
+%%PORTDOCS%%%%DATADIR%%/com/sun/opengl/util/texture/package-frame.html
+%%PORTDOCS%%%%DATADIR%%/com/sun/opengl/util/texture/package-summary.html
+%%PORTDOCS%%%%DATADIR%%/com/sun/opengl/util/texture/package-tree.html
+%%PORTDOCS%%%%DATADIR%%/com/sun/opengl/util/package-frame.html
+%%PORTDOCS%%%%DATADIR%%/com/sun/opengl/util/package-summary.html
+%%PORTDOCS%%%%DATADIR%%/com/sun/opengl/util/package-tree.html
+%%PORTDOCS%%%%DATADIR%%/javax/media/opengl/AbstractGraphicsConfiguration.html
+%%PORTDOCS%%%%DATADIR%%/javax/media/opengl/AbstractGraphicsDevice.html
+%%PORTDOCS%%%%DATADIR%%/javax/media/opengl/AWTGraphicsConfiguration.html
+%%PORTDOCS%%%%DATADIR%%/javax/media/opengl/AWTGraphicsDevice.html
+%%PORTDOCS%%%%DATADIR%%/javax/media/opengl/ComponentEvents.html
+%%PORTDOCS%%%%DATADIR%%/javax/media/opengl/DebugGL.html
+%%PORTDOCS%%%%DATADIR%%/javax/media/opengl/DefaultGLCapabilitiesChooser.html
+%%PORTDOCS%%%%DATADIR%%/javax/media/opengl/GL.html
+%%PORTDOCS%%%%DATADIR%%/javax/media/opengl/GLAutoDrawable.html
+%%PORTDOCS%%%%DATADIR%%/javax/media/opengl/GLCanvas.html
+%%PORTDOCS%%%%DATADIR%%/javax/media/opengl/GLCapabilities.html
+%%PORTDOCS%%%%DATADIR%%/javax/media/opengl/GLCapabilitiesChooser.html
+%%PORTDOCS%%%%DATADIR%%/javax/media/opengl/GLContext.html
+%%PORTDOCS%%%%DATADIR%%/javax/media/opengl/GLDrawable.html
+%%PORTDOCS%%%%DATADIR%%/javax/media/opengl/GLDrawableFactory.html
+%%PORTDOCS%%%%DATADIR%%/javax/media/opengl/GLJPanel.html
+%%PORTDOCS%%%%DATADIR%%/javax/media/opengl/GLEventListener.html
+%%PORTDOCS%%%%DATADIR%%/javax/media/opengl/GLException.html
+%%PORTDOCS%%%%DATADIR%%/javax/media/opengl/GLPbuffer.html
+%%PORTDOCS%%%%DATADIR%%/javax/media/opengl/Threading.html
+%%PORTDOCS%%%%DATADIR%%/javax/media/opengl/TraceGL.html
+%%PORTDOCS%%%%DATADIR%%/javax/media/opengl/glu/GLU.html
+%%PORTDOCS%%%%DATADIR%%/javax/media/opengl/glu/GLUnurbs.html
+%%PORTDOCS%%%%DATADIR%%/javax/media/opengl/glu/GLUquadric.html
+%%PORTDOCS%%%%DATADIR%%/javax/media/opengl/glu/GLUtessellator.html
+%%PORTDOCS%%%%DATADIR%%/javax/media/opengl/glu/GLUtessellatorCallback.html
+%%PORTDOCS%%%%DATADIR%%/javax/media/opengl/glu/GLUtessellatorCallbackAdapter.html
+%%PORTDOCS%%%%DATADIR%%/javax/media/opengl/glu/package-frame.html
+%%PORTDOCS%%%%DATADIR%%/javax/media/opengl/glu/package-summary.html
+%%PORTDOCS%%%%DATADIR%%/javax/media/opengl/glu/package-tree.html
+%%PORTDOCS%%%%DATADIR%%/javax/media/opengl/package-frame.html
+%%PORTDOCS%%%%DATADIR%%/javax/media/opengl/package-summary.html
+%%PORTDOCS%%%%DATADIR%%/javax/media/opengl/package-tree.html
+%%PORTDOCS%%%%DATADIR%%/package-list
+%%PORTDOCS%%%%DATADIR%%/overview-frame.html
+%%PORTDOCS%%%%DATADIR%%/constant-values.html
+%%PORTDOCS%%%%DATADIR%%/serialized-form.html
+%%PORTDOCS%%%%DATADIR%%/resources/inherit.gif
+%%PORTDOCS%%%%DATADIR%%/overview-tree.html
+%%PORTDOCS%%%%DATADIR%%/index-all.html
+%%PORTDOCS%%%%DATADIR%%/deprecated-list.html
+%%PORTDOCS%%%%DATADIR%%/allclasses-frame.html
+%%PORTDOCS%%%%DATADIR%%/allclasses-noframe.html
+%%PORTDOCS%%%%DATADIR%%/index.html
+%%PORTDOCS%%%%DATADIR%%/overview-summary.html
+%%PORTDOCS%%%%DATADIR%%/help-doc.html
+%%PORTDOCS%%%%DATADIR%%/stylesheet.css
+@dirrm %%DATADIR%%/com/sun/opengl/util/j2d
+@dirrm %%DATADIR%%/com/sun/opengl/util/texture/spi
+@dirrm %%DATADIR%%/com/sun/opengl/util/texture
+@dirrm %%DATADIR%%/com/sun/opengl/util
+@dirrm %%DATADIR%%/com/sun/opengl
+@dirrm %%DATADIR%%/com/sun
+@dirrm %%DATADIR%%/com
+@dirrm %%DATADIR%%/javax/media/opengl/glu
+@dirrm %%DATADIR%%/javax/media/opengl
+@dirrm %%DATADIR%%/javax/media
+@dirrm %%DATADIR%%/javax
+@dirrm %%DATADIR%%/resources
+@dirrm %%DATADIR%%