How to build the Jogl OpenGL binding for Java


Here are the steps that are required in order to build the Jogl OpenGL binding from a fresh copy of the source distribution:
  1. Install ANTLR:
    Download and unpack ANTLR 2.7.2 from http://www.antlr.org.
  2. Set your CLASSPATH environment variable:
    Add the ANTLR jar file to your classpath.
  3. Set the JAVA_HOME environment variable:
    Create an environment variable named JAVA_HOME and set it to point to the root of your Java SDK.
  4. Install GNU Make: To confirm that it is installed, run "make -v"; you should see some output that starts with "GNU Make version" and then a version number.
  5. Build the source tree:
    You can do this by opening a command shell in the "make" directory of the source tree and typing "make PLATFORM COMPILER_OPTIONS CG_OPTIONS". PLATFORM, COMPILER_OPTIONS and CG_OPTIONS are as follows:
  6. Add Jogl to your CLASSPATH:
    To be able to use Jogl, you must add the build process Java bytecode output directory (/build/classes) to your CLASSPATH environment variable.
  7. Add Jogl to your PATH:
    To be able to use Jogl, you must also add the build process JNI code library directory (/build/obj) to your PATH.
  8. Test if everything's working:
    To test if everything went well, you should build the "Gears.java" demo in the "/demos/gears" directory. Run "javac Gears.java" and then "java Gears"; you should see some spinning 3D gears appear in a window.
  9. Build Javadoc:
    "make doc" will produce the end-user documentation for Jogl along with some auxiliary utility packages. "make devdoc" will produce the developers' documentation, including that for the GlueGen tool. Appending "CG=1" to either of these commands will cause the javadoc for the Cg binding to be generated.
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.

- Christopher Kline and Kenneth Russell, June 2003