<!DOCTYPE html PUBliC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link href="../../style.css" rel="stylesheet" type="text/css"/> <title>How to build JOGL</title> </head> <body> <div id="container"> <div id="header"> <div id="slogan">How to build JOGL</div> <div id="logo"><a href="http://jogamp.org/">How to build JOGL</a></div> </div> <div id="menu"> <ul> <li><a href="http://jogamp.org/">Home</a></li> <li><a href="../../gluegen/www/">Gluegen</a></li> <li><a href="../../joal/www/">JOAL</a></li> <li><a href="../../jocl/www/">JOCL</a></li> <li><a href="../../jogl/www/">JOGL</a></li> <li><a href="../../demos/www/">Demos</a></li> <li><a href="../../wiki/">Wiki</a></li> <li><a href="../../deployment/jogl-next/javadoc_public/">JavaDoc</a></li> </ul> </div> <div id="main" class="fill"> <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> <h2>Platform and Component Requirements</h2> <hr> <P> Here is a list of platforms and components, we were able to build JOGL on,<br> if not stated otherwise.<br> <ul> <li> <b>Java</b><br> One of the following desktop Java SDK's: <ul> <li> <a href="http://openjdk.java.net/">OpenJDK</a> </li> <li> <a href="http://icedtea.classpath.org/">IcedTea</a> </li> <li> <a href="http://java.sun.com/j2se/">Sun JDK 1.6.0 or later</a> </li> </ul> or you may try one of the following embedded Java SDK's (not yet tested): <ul> <li> <a href="http://mail.openjdk.java.net/pipermail/jdk6-dev/2009-April/000455.html">OpenJDK6 for embedded ARM</a> may use <a href="http://icedtea.classpath.org/wiki/ZeroSharkFaq">Zero/Shark</a></li> <li> <a href="http://java.sun.com/javase/embedded/">Sun JDK for Embedded Use</a></li> </ul> or even the JavaME SDK's (see notes): <ul> <li> <a href="https://phoneme.dev.java.net/">phoneME (tested with a proprietary VM build)</a><br> (tested with a proprietary VM build)</li> <li> <a href="http://jamvm.sourceforge.net/">JamVM (not yet tested)</a><br> (not yet tested)</li> <li> <a href="http://www.cacaovm.org/">CacaoVM (not yet tested)</a><br> (not yet tested)</li> </ul> </li> <li> <b><a href="http://ant.apache.org/">Ant</a></b> 1.8.0 or later</li> <li> <b><a href="http://www.kernel.org/pub/software/scm/git/docs/">Git</a></b> 1.6.0 or later<br> <ul> <li> <a href="http://www.kernel.org/pub/software/scm/git/">Source Code for GNU/Linux, MacOSX, ..</a></li> <li> <a href="http://code.google.com/p/msysgit/">Git on Windows</a>, <a href="http://code.google.com/p/msysgit/downloads/list">download</a> version <a href="http://code.google.com/p/msysgit/downloads/detail?name=Git-1.7.0.2-preview20100309.exe&can=2&q=">1.7.0</a> or later.</li> </ul></li> <li> <b>GNU Linux</b> x86, 32- and 64-bit<br> You may have to install a few developer packages ... <ul> <li> [k]<b>Ubuntu</b> 10.04 or later</li> <ul> <li>gcc</li> <li>libgl1-mesa-dev</li> <li>libglu1-mesa-dev</li> <li>libice-dev</li> <li>libsm-dev</li> <li>libx11-dev</li> <li>libxext-dev</li> <li>libxxf86vm-dev</li> <li>xorg-dev</li> <li>Optional: Your card vendor's proprietary driver</li> </ul></li> <li> <b>OpenSuSE</b> 10.2 or later </li> <ul> <li>gcc</li> <li>x11-devel</li> <li>mesa-devel</li> </ul></li> <li> <b>CentOS / Red Hat Enterprise Linux</b> 5.4 or later<br> <ul> <li>gcc</li> <li>mesa-libGL-devel</li> <li>libICE-devel</li> <li>libSM-devel</li> <li>libX11-devel</li> <li>libXau-devel</li> <li>libXdmcp-devel</li> <li>libXt-devel</li> <li>libXxf86vm-devel</li> <li>xorg-x11-proto-devel</li> <li>Optional: Your card vendor's proprietary driver</li> </ul></li> </ul> </li> <li> <b>OpenSolaris</b> SPARC and x86, 32- and 64-bit <ul> <li> <a href="http://opensolaris.org/">OpenSolaris 2009.06 or later</a></li> </ul> </li> <li> <b>MacOSX</b> Intel <ul> <li> <a href="http://www.apple.com/macosx/">Mac OS X</a> 10.3 (note: will not work with earlier releases) </li> <li> <a href="http://developer.apple.com/technologies/xcode.html">Xcode</a> for gcc, etc (included in OSX)</li> </ul> </li> <li> <b>Windows</b>/x86 (32-bit) <ul> <li> Windows XP or later </li> <li> <a href="http://www.mingw.org/">MinGW</a><br> Read <a href="http://www.mingw.org/wiki/Getting_Started">MinGW Getting Started</a>.<br> We used the download script <code>mingwdl.sh</code> shown at <a href="http://www.mingw.org/wiki/HOWTO_Install_the_MinGW_GCC_Compiler_Suite">HOWTO Install the MinGW GCC Compiler Suite</a>.<br></li> <li> Not supported: Microsoft Visual C++ 6.0 or later, but may work. Last successful try in 2008.</li> </ul> </li> <li> <b>Windows</b>/x86_64 (64-bit)<br> <ul> <li> Windows XP or later </li> <li> <a href="http://mingw-w64.sourceforge.net/">MinGW64</a><br> We used the build <code>mingw-w64-bin_x86_64-mingw_20100515_sezero.zip</code> available at <a href="http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/sezero_20100515/">MingW64 Personal Builds - sezero</a>.<br></li> <li> Not supported: Microsoft Visual C++, never tried.</li> </ul> </li> </li> </ul> <P> Additional platforms such as FreeBSD and HP/UX are handled by the build system, but are not officially supported. </P> <h2>Build Steps</h2> <hr> <P> Here are the steps that are required in order to build JOGL. </P> <P> <OL> <LI><B>Optain the source code</B> using git: <ul> <li><a href="http://github.com/sgothel/gluegen">Gluegen Dev GIT Repo</a></li> <li><a href="http://github.com/sgothel/jogl">JOGL Dev GIT Repo</a></li> </ul><br> It is crucial that you checkout the source code under a common root directory: <pre> /home/dude/projects/jogamp> git clone git://github.com/sgothel/gluegen.git gluegen /home/dude/projects/jogamp> git clone git://github.com/sgothel/jogl.git jogl </pre> Now you should have following directory structure: <pre> /home/dude/projects/jogamp /home/dude/projects/jogamp/gluegen /home/dude/projects/jogamp/jogl </pre></li> <LI> <B>Unset your CLASSPATH environment variable:</B> <br> The Ant build requires that the JOGL jars not be visible on the classpath. On Unix, type <code> unsetenv CLASSPATH </code> into a csh or tcsh shell, or <code> unset CLASSPATH </code> into a Bourne shell. On Windows, type <code> set CLASSPATH= </code> into a command prompt.</LI> <LI> <B>Optional</B> <I>Copy and edit <B>gluegen.properties</B>:</I> <br> To specify different basic options for components and compilers,<br> copy <b>gluegen/make/gluegen.properties</b> into your home directory (pointed to by the Java system property <b>user.home</b>). <br></LI> <LI> <B>Optional</B> <I>Copy and edit <B>jogl.properties</B>:</I> <br> To specify different basic options for the build,<br> copy <b>jogl/make/jogl.properties</b> into your home directory (pointed to by the Java system property <b>user.home</b>). <br> Edit the copy to change desired settings.</LI> <LI> <B>Build the source tree:</B> <br> Open a command shell in the "jogl/make" directory of the source tree and type "ant"</code>. <UL> <LI>An experimental binding to the high-level <a href="http://developer.nvidia.com/view.asp?PAGE=cg_main">Cg</a> language by NVidia corporation can be generated by specifying <code>-Djogl.cg=1</code> to ant; e.g. <code>ant -Djogl.cg=1</code>. The Cg binding has been tested on Windows, Linux, and Mac OS X.</LI> </UL></LI> <LI> <B>Test your build:</B> <br> Stay in your command shell in the "jogl/make" directory of the source tree and type "ant junit.run"</code>.</LI> <LI> <B>Build Javadoc:</B> <br> Stay in your command shell in the "jogl/make" directory of the source tree and type "ant javadoc". This will produce the end-user documentation for JOGL along with some auxiliary utility packages.</LI> </OL> Note that there are a lot of warnings produced by ANTLR about the C grammar and our modifications to some of the signatures of the productions; the C grammar warnings have been documented by the author of the grammar as having been investigated completely and harmless, and the warnings about our modifications are also harmless. <P> <h2> Common build problems </h2> <OL> <LI> <B>Your CLASSPATH environment variable appears to be set (some JOGL classes are currently visible to the build.)</B>, and $CLASSPATH isn't set. <DL> <DD> An older version of JOGL was installed into the extension directory of the JDK you're using to build the current JOGL. On Windows and Linux, delete any ANTLR jars from jre/lib/ext, and on Mac OS X, delete them from /Library/Java/Extensions. It is generally not a good idea to drop JOGL directly into the extensions directory, as this can interfere with upgrades via Java Web Start. </DL> <LI> <B>CharScanner; panic: ClassNotFoundException: com.sun.gluegen.cgram.CToken</B> <DL> <DD> This occurs because ANTLR was dropped into the Extensions directory of the JRE/JDK. On Windows and Linux, delete any ANTLR jars from jre/lib/ext, and on Mac OS X, delete them from /Library/Java/Extensions. Use the antlr.jar property in the build.xml to point to a JRE-external location of this jar file. </DL> </OL> <i>- Christopher Kline and Kenneth Russell, June 2003 (revised November 2006)</i><br> <i>- Sven Gothel, May 2010</i><br> </div> <div id="footer"> <div id="footer_left"> <span xmlns:dc="http://purl.org/dc/elements/1.1/" property="dc:title">JogAmp.org</span> by <a xmlns:cc="http://creativecommons.org/ns#" href="http://jogamp.org" property="cc:attributionName" rel="cc:attributionURL">http://jogamp.org</a> is licensed under a <br/> <a rel="license" href="http://creativecommons.org/licenses/by/3.0/">Creative Commons Attribution 3.0 License</a>. </div> </div> </div> </body> </html>