summaryrefslogtreecommitdiffstats
path: root/doc/HowToBuild.html
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2015-03-24 03:44:24 +0100
committerSven Gothel <[email protected]>2015-03-24 03:44:24 +0100
commit88d51db39f3b00df1462eb0a18c1825ae1e86485 (patch)
tree6ba949ff85c1ff48cedfd866eb0622cafc583f40 /doc/HowToBuild.html
parentb755b045fb7e3c8306f24dd645297992ab8db7f9 (diff)
Bug 1149 - Replacing PCPP w/ JCPP, allowing complete macro handling (Part-2: JCPP submodule, build, test and doc)
Diffstat (limited to 'doc/HowToBuild.html')
-rw-r--r--doc/HowToBuild.html269
1 files changed, 269 insertions, 0 deletions
diff --git a/doc/HowToBuild.html b/doc/HowToBuild.html
new file mode 100644
index 0000000..dcfe3ba
--- /dev/null
+++ b/doc/HowToBuild.html
@@ -0,0 +1,269 @@
+<!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 GlueGen</div>
+ <div id="logo"><a href="http://jogamp.org/">How to build GlueGen</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>
+ <li><a href="../../blog/">Blogs</a></li>
+ <li><a href="../../forum.html">Forums</a></li>
+ </ul>
+ </div>
+ <div id="main">
+ <div id="text" class="fill">
+
+ <h2>Platform and Component Requirements</h2>
+ <hr/>
+ Here is a list of platforms and components, we were able to build GlueGen on,<br/>
+ if not stated otherwise.<br/>
+
+ <ul>
+ <li> <b>Java</b><br/>
+ A Java 1.6 compliant SDK.
+ </li>
+ <li> <b><a href="http://ant.apache.org/">Ant</a></b> 1.9.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> Use your Unix distribution's version, if available, or</li>
+ <li> <a href="http://www.kernel.org/pub/software/scm/git/">Source Code for GNU/Linux, MacOSX, ..</a>, or</li>
+ <li> Git on Windows
+ <ul>
+ <li> <a href="https://cygwin.com">cygwin</a></li>
+ <li> <a href="http://code.google.com/p/msysgit/">msysgit</a></li>
+ </ul>
+ </li>
+ <li> <a href="http://code.google.com/p/git-osx-installer/">git-osx-installer</a> </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> <b>Debian</b> 5.00 or later
+ <ul>
+ <li>openjdk-7-jre</li>
+ <li>openjdk-7-jdk</li>
+ <li>ant</li>
+ <li>git</li>
+ <li>p7zip-full</li>
+ <li>gcc</li>
+ </ul>
+ One liner install command:
+ <pre>
+apt-get install openjdk-7-jre openjdk-7-jdk ant git-all p7zip-full gcc
+ </pre>
+ Optional: Add <i>kernel</i> build utilities:
+ <pre>
+apt-get install kernel-package build-essential
+ </pre>
+ Optional: Add <i>multiarch</i> i386 next to amd64
+ <ul>
+ <li><b>Debian</b> 7.00
+ <pre>
+dpkg --add-architecture i386
+apt-get update
+apt-get install ia32-libs ia32-libs-gtk gcc-multilib lib32gcc1 lib32gomp1 lib32itm1 lib32quadmath0 libc6-i386 ibc6-dev-i386 g++-multilib lib32stdc++6 openjdk-7-jre:i386 openjdk-7-jdk:i386
+ </pre></li>
+
+ <li><b>Debian</b> 8.00
+ <pre>
+dpkg --add-architecture i386
+apt-get update
+apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0 gcc-multilib lib32gcc1 lib32gomp1 lib32itm1 lib32quadmath0 libc6-i386 libc6-dev-i386 g++-multilib lib32stdc++6 openjdk-7-jre:i386 openjdk-7-jdk:i386
+ </pre></li>
+ </ul>
+ </li>
+ <li> <b>OpenSuSE</b> 10.2 or later
+ <ul>
+ <li>openjdk-7-jre</li>
+ <li>openjdk-7-jdk</li>
+ <li>ant</li>
+ <li>git</li>
+ <li>p7zip-full</li>
+ <li>gcc</li>
+ </ul>
+ </li>
+ <li> <b>CentOS / Red Hat Enterprise Linux</b> 5.4 or later<br/>
+ <ul>
+ <li>openjdk-7-jre</li>
+ <li>openjdk-7-jdk</li>
+ <li>ant</li>
+ <li>git</li>
+ <li>p7zip-full</li>
+ <li>gcc</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> git, see above </li>
+ <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>git, see above</li>
+ <li> <a href="http://mingw-w64.sourceforge.net/">MinGW64</a>
+ <ul>
+ <li> <a href="http://sourceforge.net/projects/mingwbuilds/files/mingw-builds-install/mingw-builds-install.exe/download">Installer</a>
+ <ul>
+ <li>mingw-build-install</li>
+ <li>version: 4.8.1</li>
+ <li>host: x32</li>
+ <li>threading: win32</li>
+ <li>exceptions: SJLJ</li>
+ <li>revision: 5</li>
+ </ul></li>
+ <li> or <a href="http://sourceforge.net/projects/mingwbuilds/files/host-windows/releases/">manual</a>
+ via <a href="http://sourceforge.net/projects/mingwbuilds/files/host-windows/releases/4.8.1/32-bit/threads-win32/sjlj/">7z archive file</a></li>
+ </ul></li>
+ </ul>
+ </li>
+ <li> <b>Windows</b>/x86_64 (64-bit)
+ <ul>
+ <li>Windows XP or later </li>
+ <li>git, see above</li>
+ <li> <a href="http://mingw-w64.sourceforge.net/">MinGW64</a>
+ <ul>
+ <li> <a href="http://sourceforge.net/projects/mingwbuilds/files/mingw-builds-install/mingw-builds-install.exe/download">Installer</a>
+ <ul>
+ <li>mingw-build-install</li>
+ <li>version: 4.8.1</li>
+ <li>host: x64</li>
+ <li>threading: win32</li>
+ <li>exceptions: SJLJ</li>
+ <li>revision: 5</li>
+ </ul></li>
+ <li> or <a href="http://sourceforge.net/projects/mingwbuilds/files/host-windows/releases/">manual</a>
+ via <a href="http://sourceforge.net/projects/mingwbuilds/files/host-windows/releases/4.8.1/64-bit/threads-win32/sjlj/">7z archive file</a></li>
+ </ul></li>
+ </ul>
+ </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>
+
+ <ol>
+ <li><b>Optain the source code</b> using git:
+ <ul>
+ <li><a href="http://jogamp.org/git/?p=gluegen.git">Gluegen 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 --recurse-submodules git://jogamp.org/srv/scm/gluegen.git gluegen
+ </pre>
+ Now you should have following directory structure:
+ <pre>
+ /home/dude/projects/jogamp
+ /home/dude/projects/jogamp/gluegen
+ </pre>
+ <p>
+ Note-1: The GlueGen source must be fetched using <i>-recurse-submodules</i>,
+ which imports <i>JCPP</i>, now used as the default C preprocessor.
+ </p>
+ </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>Build the source tree:</b> <br/>
+ Open a command shell in the "gluegen/make" directory of the source tree and type <code>"ant"</code>.
+ </li>
+
+ <li> <b>Test your build:</b> <br/> Stay in your command shell in the "gluegen/make" directory of the source tree and type <code>"ant junit.run"</code>.</li>
+
+ <li> <b>Build Javadoc:</b> <br/> Stay in your command shell in the "gluegen/make" directory of the source tree and type "<code>ant javadoc"</code>.
+ This will produce the end-user documentation for JOGL along with some auxiliary utility packages.
+ </li>
+ </ol>
+
+ Note that there might be a few 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.
+
+ <h2> Common build problems </h2>
+
+ <ol>
+
+ <li>
+ <b>Your CLASSPATH environment variable appears to be set (some GlueGen classes are currently visible to the build.)</b>, and $CLASSPATH isn't set.
+ An older version of GlueGen was installed into the extension directory of the JDK you're using to build the
+ current GlueGen. 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 GlueGen directly into the extensions directory,
+ as this can interfere with upgrades via Java Web Start.
+ </li>
+
+ <li>
+ <b>CharScanner; panic: ClassNotFoundException: com.sun.gluegen.cgram.CToken</b>
+
+ 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.
+ </li>
+
+ </ol>
+
+ <br/>
+ <p>
+ <i>- Christopher Kline and Kenneth Russell, June 2003 (revised November 2006)</i><br/>
+ <i>- Sven Gothel and Michael Bien, May 2010</i><br/>
+ <i>- Sven Gothel, March 2010 (Extracted version from JOGL)</i><br/>
+ </p>
+
+ </div>
+ </div>
+ <div id="footer">
+ <div id="footer_left">
+ <span>JogAmp.org</span>
+ by <a href="http://jogamp.org">http://jogamp.org</a>
+ is licensed under a <br/>
+ <a href="http://creativecommons.org/licenses/by/3.0/us/">Creative Commons Attribution 3.0 License</a>.
+ </div>
+ </div>
+ </div>
+ </body>
+</html>