summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xCHANGELOG.txt101
-rwxr-xr-xCOPYRIGHT.txt31
-rwxr-xr-xLICENSE.txt152
-rwxr-xr-xREADME.txt70
-rw-r--r--doxygen/doxygen-all-dev.cfg1260
-rw-r--r--doxygen/doxygen-all-pub.cfg1257
-rw-r--r--doxygen/doxygen-jogl-spec.cfg1254
-rwxr-xr-xetc/profile.jogl105
-rwxr-xr-xmake/142-packages/package-list135
-rwxr-xr-xmake/README-zip-bundles.txt45
-rw-r--r--make/build-gluegen.xml179
-rw-r--r--make/build-jogl.xml2374
-rw-r--r--make/build-nativewindow.xml1348
-rw-r--r--make/build-newt.xml1029
-rw-r--r--make/build-staticglgen.xml91
-rw-r--r--make/build.xml145
-rwxr-xr-xmake/config/intptr.cfg17
-rwxr-xr-xmake/config/jogl/cg-common-CustomJavaCode.java29
-rw-r--r--make/config/jogl/cg-common.cfg118
-rw-r--r--make/config/jogl/cgl-macosx.cfg41
-rwxr-xr-xmake/config/jogl/cglext.cfg44
-rwxr-xr-xmake/config/jogl/egl.cfg70
-rwxr-xr-xmake/config/jogl/eglext.cfg126
-rw-r--r--make/config/jogl/gl-common-extensions.cfg127
-rw-r--r--make/config/jogl/gl-common-gl2.cfg8
-rw-r--r--make/config/jogl/gl-common.cfg641
-rw-r--r--make/config/jogl/gl-desktop-tracker.cfg38
-rwxr-xr-xmake/config/jogl/gl-desktop.cfg67
-rwxr-xr-xmake/config/jogl/gl-es1.cfg88
-rwxr-xr-xmake/config/jogl/gl-es2.cfg72
-rw-r--r--make/config/jogl/gl-gl2.cfg70
-rw-r--r--make/config/jogl/gl-gl2es12.cfg74
-rw-r--r--make/config/jogl/gl-gl3.cfg51
-rwxr-xr-xmake/config/jogl/gl-headers.cfg41
-rw-r--r--make/config/jogl/gl-if-CustomJavaCode-gl.java12
-rw-r--r--make/config/jogl/gl-if-CustomJavaCode-gles2.java3
-rw-r--r--make/config/jogl/gl-if-gl-ignores.cfg523
-rwxr-xr-xmake/config/jogl/gl-if-gl.cfg40
-rwxr-xr-xmake/config/jogl/gl-if-gl2_es1.cfg96
-rwxr-xr-xmake/config/jogl/gl-if-gl2_es2.cfg47
-rw-r--r--make/config/jogl/gl-impl-CustomCCode-gl2.c24
-rw-r--r--make/config/jogl/gl-impl-CustomCCode-gl2es12.c24
-rw-r--r--make/config/jogl/gl-impl-CustomCCode-gl3.c24
-rw-r--r--make/config/jogl/gl-impl-CustomCCode-gles1.c25
-rw-r--r--make/config/jogl/gl-impl-CustomCCode-gles2.c25
-rw-r--r--make/config/jogl/gl-impl-CustomJavaCode-common.java16
-rw-r--r--make/config/jogl/gl-impl-CustomJavaCode-desktop.java74
-rw-r--r--make/config/jogl/gl-impl-CustomJavaCode-embedded.java37
-rw-r--r--make/config/jogl/gl-impl-CustomJavaCode-gl2.java474
-rw-r--r--make/config/jogl/gl-impl-CustomJavaCode-gl2_es2.java60
-rw-r--r--make/config/jogl/gl-impl-CustomJavaCode-gl2es12.java424
-rw-r--r--make/config/jogl/gl-impl-CustomJavaCode-gl3.java429
-rwxr-xr-xmake/config/jogl/gl-impl-CustomJavaCode-gles1.java355
-rwxr-xr-xmake/config/jogl/gl-impl-CustomJavaCode-gles2.java336
-rwxr-xr-xmake/config/jogl/gl-macosx-nsig.cfg2
-rwxr-xr-xmake/config/jogl/gl-win32-nsig.cfg2
-rwxr-xr-xmake/config/jogl/gl-x11-nsig.cfg2
-rw-r--r--make/config/jogl/gl3-desktop-tracker.cfg38
-rwxr-xr-xmake/config/jogl/gl3-desktop.cfg67
-rwxr-xr-xmake/config/jogl/gl3-headers.cfg29
-rwxr-xr-xmake/config/jogl/glu-CustomJavaCode-base.java1469
-rw-r--r--make/config/jogl/glu-CustomJavaCode-gl2.java562
-rwxr-xr-xmake/config/jogl/glu-CustomJavaCode-gl2es1.java254
-rwxr-xr-xmake/config/jogl/glu-base.cfg28
-rw-r--r--make/config/jogl/glu-common.cfg177
-rwxr-xr-xmake/config/jogl/glu-gl2.cfg80
-rwxr-xr-xmake/config/jogl/glu-gl2es1.cfg26
-rwxr-xr-xmake/config/jogl/glx-CustomCCode.c151
-rw-r--r--make/config/jogl/glx-CustomJavaCode.java46
-rw-r--r--make/config/jogl/glx-x11.cfg83
-rwxr-xr-xmake/config/jogl/glxext.cfg132
-rwxr-xr-xmake/config/jogl/nsig.cfg22
-rwxr-xr-xmake/config/jogl/wgl-CustomCCode.c48
-rw-r--r--make/config/jogl/wgl-win32.cfg44
-rw-r--r--make/config/jogl/wglext.cfg51
-rwxr-xr-xmake/config/nativewindow/jawt-CustomJavaCode.java27
-rwxr-xr-xmake/config/nativewindow/jawt-DrawingSurfaceInfo-CustomJavaCode.java38
-rw-r--r--make/config/nativewindow/jawt-macosx.cfg30
-rw-r--r--make/config/nativewindow/jawt-win32.cfg30
-rw-r--r--make/config/nativewindow/jawt-x11.cfg30
-rwxr-xr-xmake/config/nativewindow/x11-CustomCCode.c165
-rw-r--r--make/config/nativewindow/x11-CustomJavaCode.java26
-rw-r--r--make/config/nativewindow/x11-lib.cfg43
-rw-r--r--make/doc/jogl/spec-overview.html509
-rw-r--r--make/jogl.compiler.xml15
-rw-r--r--make/jogl.properties21
-rw-r--r--make/joglRIversion8
-rwxr-xr-xmake/jogl_wince6_vs9/gluegen-rt/gluegen-rt.vcproj1307
-rwxr-xr-xmake/jogl_wince6_vs9/jogl_es1/jogl_es1.vcproj1319
-rwxr-xr-xmake/jogl_wince6_vs9/jogl_es2/jogl_es2.vcproj1329
-rwxr-xr-xmake/jogl_wince6_vs9/jogl_wince6.sln202
-rwxr-xr-xmake/jogl_wince6_vs9/jogl_wince6.suobin0 -> 18944 bytes
-rwxr-xr-xmake/jogl_wince6_vs9/newt/newt.vcproj1331
-rw-r--r--make/joglversion8
-rwxr-xr-xmake/lib/wince/arm/nvap/libEGL.libbin0 -> 9314 bytes
-rwxr-xr-xmake/lib/wince/arm/nvap/libGLESv1_CM.libbin0 -> 32500 bytes
-rwxr-xr-xmake/lib/wince/arm/nvap/libGLESv2.libbin0 -> 30670 bytes
-rwxr-xr-xmake/lib/wince/arm/nvap/libKD.libbin0 -> 34346 bytes
-rwxr-xr-xmake/lib/wince/arm/nvap/libnvkdmain.libbin0 -> 3036 bytes
-rwxr-xr-xmake/lib/wince/arm/nvap/libnvomx.libbin0 -> 5962 bytes
-rw-r--r--make/lsGL2toGL3_commons.sh16
-rw-r--r--make/lsGLES2toGL3_commons.sh16
-rw-r--r--make/lsGLtoES1ES2_commons.sh16
-rw-r--r--make/lsGLtoES1_commons.sh17
-rw-r--r--make/lsGLtoES2_commons.sh16
-rw-r--r--make/lsGLtoGL3_commons.sh16
-rw-r--r--make/lstjars.sh105
-rw-r--r--make/make.jogl.all.linux-x86.sh16
-rw-r--r--make/make.jogl.all.linux-x86_64.sh14
-rw-r--r--make/make.jogl.all.macosx.sh9
-rw-r--r--make/make.jogl.all.win32.bat11
-rw-r--r--make/make.jogl.cdcfp.linux-x86.sh22
-rw-r--r--make/make.jogl.doc.all.x86.sh8
-rw-r--r--make/make.jogl.doc.all.x86_64.sh7
-rw-r--r--make/make.jogl.doc.x86_64.sh7
-rwxr-xr-xmake/native-taglet.properties355
-rw-r--r--make/nativewindow.compiler.xml15
-rw-r--r--make/nativewindowRIversion8
-rw-r--r--make/nativewindowversion8
-rw-r--r--make/newt.compiler.xml15
-rw-r--r--make/newtRIversion8
-rw-r--r--make/newtversion8
-rw-r--r--make/nwiRIversion8
-rwxr-xr-xmake/setvc9-jogl.bat9
-rw-r--r--make/stub_includes/cg/CG/cg.h542
-rw-r--r--make/stub_includes/cg/CG/cgGL.h378
-rw-r--r--make/stub_includes/cg/CG/cgGL_profiles.h64
-rw-r--r--make/stub_includes/cg/CG/cg_bindlocations.h339
-rw-r--r--make/stub_includes/cg/CG/cg_datatypes.h192
-rwxr-xr-xmake/stub_includes/cg/CG/cg_enums.h97
-rw-r--r--make/stub_includes/cg/CG/cg_errors.h352
-rw-r--r--make/stub_includes/cg/CG/cg_profiles.h97
-rw-r--r--make/stub_includes/common/stddef.h7
-rw-r--r--make/stub_includes/common/stdint.h17
-rwxr-xr-xmake/stub_includes/egl/EGL/egl.h307
-rwxr-xr-xmake/stub_includes/egl/EGL/eglext.h338
-rwxr-xr-xmake/stub_includes/egl/EGL/eglplatform.h72
-rwxr-xr-xmake/stub_includes/egl/KD/NV_extwindowprops.h32
-rwxr-xr-xmake/stub_includes/egl/KD/NV_multitouch.h70
-rwxr-xr-xmake/stub_includes/egl/KD/kd.h1014
-rwxr-xr-xmake/stub_includes/egl/KD/kdplatform.h83
-rwxr-xr-xmake/stub_includes/egl/window-system-ext.c7
-rwxr-xr-xmake/stub_includes/egl/window-system.c2
-rwxr-xr-xmake/stub_includes/jni/classfile_constants.h523
-rwxr-xr-xmake/stub_includes/jni/jawt.h278
-rwxr-xr-xmake/stub_includes/jni/jdwpTransport.h237
-rwxr-xr-xmake/stub_includes/jni/jni.h1944
-rwxr-xr-xmake/stub_includes/jni/jvmti.h2504
-rw-r--r--make/stub_includes/jni/macosx/AWTCocoaComponent.h15
-rw-r--r--make/stub_includes/jni/macosx/JDWP.h53
-rw-r--r--make/stub_includes/jni/macosx/JDWPCommands.h238
-rw-r--r--make/stub_includes/jni/macosx/jawt_md.h27
-rw-r--r--make/stub_includes/jni/macosx/jni_md.h23
-rw-r--r--make/stub_includes/jni/macosx/jvmdi.h1012
-rw-r--r--make/stub_includes/jni/macosx/jvmpi.h642
-rwxr-xr-xmake/stub_includes/jni/win32/jawt_md.h41
-rwxr-xr-xmake/stub_includes/jni/win32/jni_md.h19
-rw-r--r--make/stub_includes/jni/x11/jawt_md.h43
-rw-r--r--make/stub_includes/jni/x11/jni_md.h24
-rw-r--r--make/stub_includes/macosx/AppKit/NSView.h1
-rw-r--r--make/stub_includes/macosx/OpenGL/OpenGL.h101
-rwxr-xr-xmake/stub_includes/macosx/cglext.c1
-rw-r--r--make/stub_includes/macosx/jni.h78
-rw-r--r--make/stub_includes/macosx/jni_md.h15
-rw-r--r--make/stub_includes/macosx/window-system.c47
-rw-r--r--make/stub_includes/opengl/GL/cglext.h13
-rw-r--r--make/stub_includes/opengl/GL/gl.h1407
-rw-r--r--make/stub_includes/opengl/GL/glext.h8116
-rw-r--r--make/stub_includes/opengl/GL/glu.h408
-rw-r--r--make/stub_includes/opengl/GL/glx.h461
-rw-r--r--make/stub_includes/opengl/GL/glxext.h895
-rw-r--r--make/stub_includes/opengl/GL/wglext.h742
-rwxr-xr-xmake/stub_includes/opengl/GL3/gl3.h1774
-rw-r--r--make/stub_includes/opengl/GL3/gl3ext.h6
-rwxr-xr-xmake/stub_includes/opengl/GLES/gl.h801
-rwxr-xr-xmake/stub_includes/opengl/GLES/glext.h662
-rwxr-xr-xmake/stub_includes/opengl/GLES/glplatform.h74
-rwxr-xr-xmake/stub_includes/opengl/GLES/glu.h1
-rwxr-xr-xmake/stub_includes/opengl/GLES2/gl2.h687
-rwxr-xr-xmake/stub_includes/opengl/GLES2/gl2ext.h251
-rw-r--r--make/stub_includes/opengl/cg.c26
-rw-r--r--make/stub_includes/opengl/gl2.c7
-rw-r--r--make/stub_includes/opengl/gl3.c7
-rwxr-xr-xmake/stub_includes/opengl/gles1.c9
-rwxr-xr-xmake/stub_includes/opengl/gles2.c8
-rw-r--r--make/stub_includes/opengl/glext-64bit-types.h46
-rw-r--r--make/stub_includes/opengl/glu-impl.c3
-rw-r--r--make/stub_includes/opengl/glu.c2
-rw-r--r--make/stub_includes/opengl/macosx-window-system.h50
-rwxr-xr-xmake/stub_includes/openmax/NVOMX_ComponentBase.h342
-rwxr-xr-xmake/stub_includes/openmax/NVOMX_ComponentRegister.h76
-rwxr-xr-xmake/stub_includes/openmax/NVOMX_IndexExtensions.h397
-rwxr-xr-xmake/stub_includes/openmax/OMX_Audio.h1263
-rwxr-xr-xmake/stub_includes/openmax/OMX_Component.h567
-rwxr-xr-xmake/stub_includes/openmax/OMX_ContentPipe.h202
-rwxr-xr-xmake/stub_includes/openmax/OMX_Core.h1390
-rwxr-xr-xmake/stub_includes/openmax/OMX_IVCommon.h896
-rwxr-xr-xmake/stub_includes/openmax/OMX_Image.h318
-rwxr-xr-xmake/stub_includes/openmax/OMX_Index.h256
-rwxr-xr-xmake/stub_includes/openmax/OMX_Other.h325
-rwxr-xr-xmake/stub_includes/openmax/OMX_Types.h359
-rwxr-xr-xmake/stub_includes/openmax/OMX_Video.h1025
-rw-r--r--make/stub_includes/win32/jni.h78
-rw-r--r--make/stub_includes/win32/jni_md.h10
-rwxr-xr-xmake/stub_includes/win32/wglext.c13
-rw-r--r--make/stub_includes/win32/window-system.c2
-rw-r--r--make/stub_includes/win32/windows.h49
-rw-r--r--make/stub_includes/win32/wingdi.h216
-rw-r--r--make/stub_includes/x11/X11/Intrinsic.h1
-rw-r--r--make/stub_includes/x11/X11/X.h35
-rw-r--r--make/stub_includes/x11/X11/Xlib.h1
-rw-r--r--make/stub_includes/x11/X11/Xutil.h37
-rw-r--r--make/stub_includes/x11/glxext.c14
-rw-r--r--make/stub_includes/x11/jni.h78
-rw-r--r--make/stub_includes/x11/jni_md.h15
-rw-r--r--make/stub_includes/x11/window-lib.c62
-rw-r--r--make/stub_includes/x11/window-system.c14
-rw-r--r--make/validate-properties.xml52
-rwxr-xr-xsrc/jogl/classes/com/sun/javafx/audio/windows/waveout/Audio.java66
-rwxr-xr-xsrc/jogl/classes/com/sun/javafx/audio/windows/waveout/Mixer.java362
-rwxr-xr-xsrc/jogl/classes/com/sun/javafx/audio/windows/waveout/SoundBuffer.java124
-rwxr-xr-xsrc/jogl/classes/com/sun/javafx/audio/windows/waveout/TestSpatialization.java88
-rwxr-xr-xsrc/jogl/classes/com/sun/javafx/audio/windows/waveout/Track.java206
-rwxr-xr-xsrc/jogl/classes/com/sun/javafx/audio/windows/waveout/Vec3f.java212
-rw-r--r--src/jogl/classes/com/sun/opengl/cg/CgException.java67
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/DRIHack.java127
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/Debug.java93
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/ExtensionAvailabilityCache.java277
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/GLBufferSizeTracker.java188
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/GLBufferStateTracker.java173
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/GLContextImpl.java521
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/GLContextLock.java126
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/GLContextShareSet.java293
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/GLDrawableFactoryImpl.java261
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/GLDrawableHelper.java180
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/GLDrawableImpl.java156
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/GLPbufferImpl.java309
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/GLWorkerThread.java275
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/InternalBufferUtil.java.javame_cdc_fp131
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/InternalBufferUtil.java.javase195
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/NativeLibLoader.java192
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/ProjectFloat.java1057
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/SystemUtil.java.javame_cdc_fp10
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/SystemUtil.java.javase18
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/ThreadingImpl.java234
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/ThreadingPlugin.java62
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/awt/AWTThreadingPlugin.java129
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/awt/AWTUtil.java123
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/awt/Java2D.java570
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/awt/Java2DGLContext.java52
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/egl/EGLContext.java281
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/egl/EGLDrawable.java195
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/egl/EGLDrawableFactory.java117
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/egl/EGLDynamicLookupHelper.java249
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/egl/EGLES1DynamicLookupHelper.java73
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/egl/EGLES2DynamicLookupHelper.java73
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/egl/EGLExternalContext.java98
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/egl/EGLGraphicsConfiguration.java260
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/egl/EGLGraphicsConfigurationFactory.java214
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/egl/EGLOnscreenContext.java90
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/egl/EGLOnscreenDrawable.java90
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/egl/EGLPbufferContext.java62
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/egl/EGLPbufferDrawable.java124
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/gl2/ProjectDouble.java1041
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/gl2/Util.java244
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/gl2/fixme/GLObjectTracker.java835
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/GLUquadricImpl.java1212
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/glu/Glue.java114
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/error/Error.java100
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/glu/gl2/nurbs/GL2Backend.java49
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/glu/gl2/nurbs/GL2CurveEvaluator.java205
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/glu/gl2/nurbs/GL2SurfaceEvaluator.java217
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/glu/gl2/nurbs/GLUgl2nurbsImpl.java862
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/mipmap/BuildMipmap.java1598
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/mipmap/Extract.java56
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/mipmap/Extract1010102.java97
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/mipmap/Extract1555rev.java97
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/mipmap/Extract2101010rev.java97
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/mipmap/Extract233rev.java85
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/mipmap/Extract332.java84
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/mipmap/Extract4444.java96
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/mipmap/Extract4444rev.java97
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/mipmap/Extract5551.java97
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/mipmap/Extract565.java92
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/mipmap/Extract565rev.java92
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/mipmap/Extract8888.java97
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/mipmap/Extract8888rev.java97
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/mipmap/ExtractFloat.java74
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/mipmap/ExtractPrimitive.java56
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/mipmap/ExtractSByte.java69
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/mipmap/ExtractSInt.java76
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/mipmap/ExtractSShort.java76
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/mipmap/ExtractUByte.java70
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/mipmap/ExtractUInt.java76
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/mipmap/ExtractUShort.java76
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/mipmap/HalveImage.java1533
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/mipmap/Image.java1413
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/mipmap/Mipmap.java867
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/mipmap/PixelStorageModes.java426
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/mipmap/ScaleInternal.java2447
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/mipmap/Type_Widget.java224
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/glu/nurbs/Arc.java258
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/glu/nurbs/ArcSdirSorter.java63
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/glu/nurbs/ArcTdirSorter.java60
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/glu/nurbs/ArcTesselator.java90
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/glu/nurbs/Backend.java217
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/glu/nurbs/BezierArc.java44
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/glu/nurbs/Bin.java155
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/glu/nurbs/Breakpt.java59
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/glu/nurbs/CArrayOfArcs.java194
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/glu/nurbs/CArrayOfBreakpts.java130
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/glu/nurbs/CArrayOfFloats.java195
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/glu/nurbs/CArrayOfQuiltspecs.java160
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/glu/nurbs/Curve.java238
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/glu/nurbs/CurveEvaluator.java86
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/glu/nurbs/Curvelist.java121
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/glu/nurbs/DisplayList.java56
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/glu/nurbs/Flist.java130
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/glu/nurbs/Knotspec.java557
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/glu/nurbs/Knotvector.java179
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/glu/nurbs/Mapdesc.java442
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/glu/nurbs/Maplist.java122
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/glu/nurbs/NurbsConsts.java184
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/glu/nurbs/O_curve.java63
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/glu/nurbs/O_nurbscurve.java80
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/glu/nurbs/O_nurbssurface.java79
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/glu/nurbs/O_pwlcurve.java44
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/glu/nurbs/O_surface.java52
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/glu/nurbs/O_trim.java44
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/glu/nurbs/Patch.java54
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/glu/nurbs/Patchlist.java145
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/glu/nurbs/Property.java75
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/glu/nurbs/Pspec.java47
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/glu/nurbs/PwlArc.java71
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/glu/nurbs/Quilt.java282
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/glu/nurbs/Quiltspec.java85
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/glu/nurbs/README.txt59
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/glu/nurbs/Renderhints.java128
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/glu/nurbs/Splinespec.java204
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/glu/nurbs/Subdivider.java1167
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/glu/nurbs/SurfaceEvaluator.java111
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/glu/nurbs/TrimVertex.java56
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/registry/Registry.java79
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/tessellator/ActiveRegion.java69
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/tessellator/CachedVertex.java58
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/tessellator/Dict.java140
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/tessellator/DictNode.java59
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/tessellator/GLUface.java65
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/tessellator/GLUhalfEdge.java71
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/tessellator/GLUmesh.java60
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/tessellator/GLUtessellatorImpl.java646
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/tessellator/GLUvertex.java65
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/tessellator/Geom.java338
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/tessellator/Mesh.java734
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/tessellator/Normal.java288
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/tessellator/PriorityQ.java100
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/tessellator/PriorityQHeap.java262
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/tessellator/PriorityQSort.java278
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/tessellator/Render.java557
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/tessellator/Sweep.java1353
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/tessellator/TessMono.java241
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/glu/tessellator/TessState.java59
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXCGLContext.java396
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXCGLDrawable.java111
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXCGLDrawableFactory.java174
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXCGLGraphicsConfiguration.java57
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXCGLGraphicsConfigurationFactory.java84
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXExternalCGLContext.java124
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXOffscreenCGLContext.java64
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXOffscreenCGLDrawable.java60
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXOnscreenCGLContext.java130
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXOnscreenCGLDrawable.java100
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXPbufferCGLContext.java353
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXPbufferCGLDrawable.java237
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/macosx/cgl/awt/MacOSXAWTCGLDrawableFactory.java64
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/macosx/cgl/awt/MacOSXAWTCGLGraphicsConfigurationFactory.java111
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/macosx/cgl/awt/MacOSXJava2DCGLContext.java159
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsDummyWGLDrawable.java101
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsExternalWGLContext.java103
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsExternalWGLDrawable.java78
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsOffscreenWGLContext.java64
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsOffscreenWGLDrawable.java129
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsOnscreenWGLContext.java88
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsOnscreenWGLDrawable.java111
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsPbufferWGLContext.java155
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsPbufferWGLDrawable.java336
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsWGLContext.java392
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsWGLDrawable.java83
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsWGLDrawableFactory.java297
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsWGLGraphicsConfiguration.java443
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/windows/wgl/WindowsWGLGraphicsConfigurationFactory.java353
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/windows/wgl/awt/WindowsAWTWGLGraphicsConfigurationFactory.java114
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/x11/glx/GLXUtil.java103
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/x11/glx/X11ExternalGLXContext.java132
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/impl/x11/glx/X11ExternalGLXDrawable.java234
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/x11/glx/X11GLXContext.java439
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/x11/glx/X11GLXDrawable.java81
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/x11/glx/X11GLXDrawableFactory.java311
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/x11/glx/X11GLXGraphicsConfiguration.java442
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/x11/glx/X11GLXGraphicsConfigurationFactory.java296
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/x11/glx/X11OffscreenGLXContext.java85
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/x11/glx/X11OffscreenGLXDrawable.java142
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/x11/glx/X11OnscreenGLXContext.java99
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/x11/glx/X11OnscreenGLXDrawable.java83
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/x11/glx/X11PbufferGLXContext.java100
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/x11/glx/X11PbufferGLXDrawable.java152
-rw-r--r--src/jogl/classes/com/sun/opengl/impl/x11/glx/awt/X11AWTGLXGraphicsConfigurationFactory.java146
-rw-r--r--src/jogl/classes/com/sun/opengl/util/AWTAnimatorImpl.java163
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/Animator.java208
-rw-r--r--src/jogl/classes/com/sun/opengl/util/AnimatorImpl.java66
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/BufferUtil.java.javame_cdc_fp449
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/BufferUtil.java.javase499
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/FBObject.java259
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/FPSAnimator.java123
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/FileUtil.java89
-rw-r--r--src/jogl/classes/com/sun/opengl/util/FixedPoint.java61
-rw-r--r--src/jogl/classes/com/sun/opengl/util/GLArrayDataClient.java353
-rw-r--r--src/jogl/classes/com/sun/opengl/util/GLArrayDataEditable.java110
-rw-r--r--src/jogl/classes/com/sun/opengl/util/GLArrayDataServer.java209
-rw-r--r--src/jogl/classes/com/sun/opengl/util/GLArrayDataWrapper.java215
-rw-r--r--src/jogl/classes/com/sun/opengl/util/GLArrayHandler.java11
-rw-r--r--src/jogl/classes/com/sun/opengl/util/GLFixedArrayHandler.java65
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/Gamma.java107
-rw-r--r--src/jogl/classes/com/sun/opengl/util/ImmModeSink.java974
-rw-r--r--src/jogl/classes/com/sun/opengl/util/Locator.java137
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/PMVMatrix.java685
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/StreamUtil.java98
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/TGAWriter.java118
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/awt/ImageUtil.java127
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/awt/Overlay.java214
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/awt/Screenshot.java432
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/awt/TextRenderer.java1951
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/awt/TextureRenderer.java699
-rw-r--r--src/jogl/classes/com/sun/opengl/util/gl2/BitmapCharRec.java69
-rw-r--r--src/jogl/classes/com/sun/opengl/util/gl2/BitmapFontRec.java63
-rw-r--r--src/jogl/classes/com/sun/opengl/util/gl2/CoordRec.java56
-rw-r--r--src/jogl/classes/com/sun/opengl/util/gl2/GLUT.java1342
-rw-r--r--src/jogl/classes/com/sun/opengl/util/gl2/GLUTBitmap8x13.java2078
-rw-r--r--src/jogl/classes/com/sun/opengl/util/gl2/GLUTBitmap9x15.java2079
-rw-r--r--src/jogl/classes/com/sun/opengl/util/gl2/GLUTBitmapHelvetica10.java1798
-rw-r--r--src/jogl/classes/com/sun/opengl/util/gl2/GLUTBitmapHelvetica12.java1808
-rw-r--r--src/jogl/classes/com/sun/opengl/util/gl2/GLUTBitmapHelvetica18.java1917
-rw-r--r--src/jogl/classes/com/sun/opengl/util/gl2/GLUTBitmapTimesRoman10.java1797
-rw-r--r--src/jogl/classes/com/sun/opengl/util/gl2/GLUTBitmapTimesRoman24.java2080
-rw-r--r--src/jogl/classes/com/sun/opengl/util/gl2/GLUTStrokeMonoRoman.java2491
-rw-r--r--src/jogl/classes/com/sun/opengl/util/gl2/GLUTStrokeRoman.java2491
-rw-r--r--src/jogl/classes/com/sun/opengl/util/gl2/StrokeCharRec.java63
-rw-r--r--src/jogl/classes/com/sun/opengl/util/gl2/StrokeFontRec.java66
-rw-r--r--src/jogl/classes/com/sun/opengl/util/gl2/StrokeRec.java57
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/gl2/TileRenderer.java601
-rw-r--r--src/jogl/classes/com/sun/opengl/util/glsl/GLSLArrayHandler.java60
-rw-r--r--src/jogl/classes/com/sun/opengl/util/glsl/ShaderCode.java367
-rw-r--r--src/jogl/classes/com/sun/opengl/util/glsl/ShaderProgram.java212
-rw-r--r--src/jogl/classes/com/sun/opengl/util/glsl/ShaderState.java648
-rw-r--r--src/jogl/classes/com/sun/opengl/util/glsl/ShaderUtil.java398
-rw-r--r--src/jogl/classes/com/sun/opengl/util/glsl/fixedfunc/FixedFuncUtil.java81
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/glsl/fixedfunc/impl/FixedFuncHook.java331
-rw-r--r--src/jogl/classes/com/sun/opengl/util/glsl/fixedfunc/impl/FixedFuncPipeline.java554
-rw-r--r--src/jogl/classes/com/sun/opengl/util/glsl/fixedfunc/impl/shaders/FixedFuncColor.fp16
-rw-r--r--src/jogl/classes/com/sun/opengl/util/glsl/fixedfunc/impl/shaders/FixedFuncColor.vp22
-rw-r--r--src/jogl/classes/com/sun/opengl/util/glsl/fixedfunc/impl/shaders/FixedFuncColorLight.vp70
-rw-r--r--src/jogl/classes/com/sun/opengl/util/glsl/fixedfunc/impl/shaders/FixedFuncColorTexture.fp47
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/glsl/fixedfunc/impl/shaders/bin/nvidia/FixedFuncColor.bfpbin0 -> 1108 bytes
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/glsl/fixedfunc/impl/shaders/bin/nvidia/FixedFuncColor.bvpbin0 -> 2344 bytes
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/glsl/fixedfunc/impl/shaders/bin/nvidia/FixedFuncColorLight.bvpbin0 -> 8787 bytes
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/glsl/fixedfunc/impl/shaders/bin/nvidia/FixedFuncColorTexture.bfpbin0 -> 2392 bytes
-rw-r--r--src/jogl/classes/com/sun/opengl/util/glsl/fixedfunc/impl/shaders/es_precision.glsl14
-rw-r--r--src/jogl/classes/com/sun/opengl/util/glsl/fixedfunc/impl/shaders/mgl_attribute.glsl19
-rw-r--r--src/jogl/classes/com/sun/opengl/util/glsl/fixedfunc/impl/shaders/mgl_const.glsl10
-rw-r--r--src/jogl/classes/com/sun/opengl/util/glsl/fixedfunc/impl/shaders/mgl_lightdef.glsl26
-rw-r--r--src/jogl/classes/com/sun/opengl/util/glsl/fixedfunc/impl/shaders/mgl_settexcoord.vp35
-rw-r--r--src/jogl/classes/com/sun/opengl/util/glsl/fixedfunc/impl/shaders/mgl_uniform.glsl18
-rw-r--r--src/jogl/classes/com/sun/opengl/util/glsl/fixedfunc/impl/shaders/mgl_uniform_light.glsl15
-rw-r--r--src/jogl/classes/com/sun/opengl/util/glsl/fixedfunc/impl/shaders/mgl_varying.glsl12
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/glsl/fixedfunc/impl/shaders/scripts/nvidia-apx/glslc-ff.bat9
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/glsl/fixedfunc/impl/shaders/scripts/nvidia-apx/glslc.bat9
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/glsl/sdk/CompileShader.java184
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/glsl/sdk/CompileShaderNVidia.java53
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/packrect/BackingStoreManager.java99
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/packrect/Level.java275
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/packrect/LevelSet.java213
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/packrect/Rect.java170
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/packrect/RectVisitor.java47
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/packrect/RectanglePacker.java306
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/packrect/package.html7
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/texture/Texture.java1109
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/texture/TextureCoords.java79
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/texture/TextureData.java342
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/texture/TextureIO.java.javame_cdc_fp1232
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/texture/TextureIO.java.javase1234
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/texture/awt/AWTTextureData.java493
-rw-r--r--src/jogl/classes/com/sun/opengl/util/texture/awt/AWTTextureIO.java119
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/texture/spi/DDSImage.java.javame_cdc_fp890
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/texture/spi/DDSImage.java.javase919
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/texture/spi/LEDataInputStream.java223
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/texture/spi/LEDataOutputStream.java165
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/texture/spi/SGIImage.java670
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/texture/spi/TGAImage.java.javame_cdc_fp417
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/texture/spi/TGAImage.java.javase420
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/texture/spi/TextureProvider.java165
-rwxr-xr-xsrc/jogl/classes/com/sun/opengl/util/texture/spi/TextureWriter.java57
-rw-r--r--src/jogl/classes/com/sun/opengl/util/texture/spi/awt/IIOTextureProvider.java100
-rw-r--r--src/jogl/classes/com/sun/opengl/util/texture/spi/awt/IIOTextureWriter.java119
-rw-r--r--src/jogl/classes/com/sun/openmax/OMXEventListener.java14
-rw-r--r--src/jogl/classes/com/sun/openmax/OMXInstance.java509
-rw-r--r--src/jogl/classes/javax/media/opengl/DefaultGLCapabilitiesChooser.java239
-rw-r--r--src/jogl/classes/javax/media/opengl/GLArrayData.java114
-rw-r--r--src/jogl/classes/javax/media/opengl/GLAutoDrawable.java211
-rw-r--r--src/jogl/classes/javax/media/opengl/GLBase.java129
-rw-r--r--src/jogl/classes/javax/media/opengl/GLCapabilities.java329
-rw-r--r--src/jogl/classes/javax/media/opengl/GLCapabilitiesChooser.java55
-rw-r--r--src/jogl/classes/javax/media/opengl/GLContext.java261
-rw-r--r--src/jogl/classes/javax/media/opengl/GLDrawable.java160
-rw-r--r--src/jogl/classes/javax/media/opengl/GLDrawableFactory.java291
-rw-r--r--src/jogl/classes/javax/media/opengl/GLEventListener.java92
-rw-r--r--src/jogl/classes/javax/media/opengl/GLException.java68
-rw-r--r--src/jogl/classes/javax/media/opengl/GLPbuffer.java91
-rw-r--r--src/jogl/classes/javax/media/opengl/GLProfile.java836
-rw-r--r--src/jogl/classes/javax/media/opengl/GLUniformData.java156
-rwxr-xr-xsrc/jogl/classes/javax/media/opengl/Threading.java166
-rw-r--r--src/jogl/classes/javax/media/opengl/awt/AWTGLAutoDrawable.java52
-rw-r--r--src/jogl/classes/javax/media/opengl/awt/ComponentEvents.java75
-rw-r--r--src/jogl/classes/javax/media/opengl/awt/GLCanvas.java710
-rw-r--r--src/jogl/classes/javax/media/opengl/awt/GLJPanel.java1582
-rw-r--r--src/jogl/classes/javax/media/opengl/fixedfunc/GLLightingFunc.java49
-rw-r--r--src/jogl/classes/javax/media/opengl/fixedfunc/GLMatrixFunc.java76
-rw-r--r--src/jogl/classes/javax/media/opengl/fixedfunc/GLPointerFunc.java38
-rwxr-xr-xsrc/jogl/classes/javax/media/opengl/glu/GLUnurbs.java8
-rwxr-xr-xsrc/jogl/classes/javax/media/opengl/glu/GLUquadric.java33
-rwxr-xr-xsrc/jogl/classes/javax/media/opengl/glu/GLUtessellator.java66
-rwxr-xr-xsrc/jogl/classes/javax/media/opengl/glu/GLUtessellatorCallback.java356
-rwxr-xr-xsrc/jogl/classes/javax/media/opengl/glu/GLUtessellatorCallbackAdapter.java84
-rw-r--r--src/jogl/native/GLXGetProcAddressARB.c53
-rwxr-xr-xsrc/jogl/native/audio/Mixer.cpp199
-rw-r--r--src/jogl/native/macosx/ContextUpdater.h40
-rw-r--r--src/jogl/native/macosx/ContextUpdater.m83
-rw-r--r--src/jogl/native/macosx/MacOSXWindowSystemInterface.m702
-rw-r--r--src/jogl/native/openmax/com_sun_openmax_OMXInstance.c255
-rw-r--r--src/jogl/native/openmax/omx_tool.c1713
-rw-r--r--src/jogl/native/openmax/omx_tool.h165
-rw-r--r--src/nativewindow/classes/com/sun/nativewindow/impl/Debug.java93
-rw-r--r--src/nativewindow/classes/com/sun/nativewindow/impl/GraphicsConfigurationFactoryImpl.java43
-rw-r--r--src/nativewindow/classes/com/sun/nativewindow/impl/InternalBufferUtil.java124
-rw-r--r--src/nativewindow/classes/com/sun/nativewindow/impl/NWReflection.java149
-rw-r--r--src/nativewindow/classes/com/sun/nativewindow/impl/NativeLibLoaderBase.java138
-rw-r--r--src/nativewindow/classes/com/sun/nativewindow/impl/NativeWindowFactoryImpl.java114
-rw-r--r--src/nativewindow/classes/com/sun/nativewindow/impl/NullWindow.java131
-rw-r--r--src/nativewindow/classes/com/sun/nativewindow/impl/jawt/JAWTNativeLibLoader.java71
-rw-r--r--src/nativewindow/classes/com/sun/nativewindow/impl/jawt/JAWTUtil.java100
-rw-r--r--src/nativewindow/classes/com/sun/nativewindow/impl/jawt/JAWTWindow.java168
-rw-r--r--src/nativewindow/classes/com/sun/nativewindow/impl/jawt/JAWT_PlatformInfo.java47
-rw-r--r--src/nativewindow/classes/com/sun/nativewindow/impl/jawt/macosx/MacOSXJAWTWindow.java152
-rw-r--r--src/nativewindow/classes/com/sun/nativewindow/impl/jawt/windows/WindowsJAWTWindow.java170
-rw-r--r--src/nativewindow/classes/com/sun/nativewindow/impl/jawt/x11/X11JAWTWindow.java136
-rw-r--r--src/nativewindow/classes/com/sun/nativewindow/impl/jawt/x11/X11SunJDKReflection.java132
-rw-r--r--src/nativewindow/classes/com/sun/nativewindow/impl/x11/X11GraphicsConfigurationFactory.java105
-rw-r--r--src/nativewindow/classes/com/sun/nativewindow/impl/x11/X11NativeWindowFactory.java77
-rw-r--r--src/nativewindow/classes/com/sun/nativewindow/impl/x11/X11Util.java125
-rw-r--r--src/nativewindow/classes/com/sun/nativewindow/impl/x11/awt/X11AWTNativeWindowFactory.java87
-rw-r--r--src/nativewindow/classes/javax/media/nativewindow/AbstractGraphicsConfiguration.java77
-rw-r--r--src/nativewindow/classes/javax/media/nativewindow/AbstractGraphicsDevice.java58
-rw-r--r--src/nativewindow/classes/javax/media/nativewindow/AbstractGraphicsScreen.java55
-rw-r--r--src/nativewindow/classes/javax/media/nativewindow/Capabilities.java259
-rw-r--r--src/nativewindow/classes/javax/media/nativewindow/CapabilitiesChooser.java68
-rw-r--r--src/nativewindow/classes/javax/media/nativewindow/DefaultCapabilitiesChooser.java153
-rw-r--r--src/nativewindow/classes/javax/media/nativewindow/DefaultGraphicsConfiguration.java103
-rw-r--r--src/nativewindow/classes/javax/media/nativewindow/DefaultGraphicsDevice.java68
-rw-r--r--src/nativewindow/classes/javax/media/nativewindow/DefaultGraphicsScreen.java71
-rw-r--r--src/nativewindow/classes/javax/media/nativewindow/GraphicsConfigurationFactory.java208
-rw-r--r--src/nativewindow/classes/javax/media/nativewindow/NativeWindow.java176
-rw-r--r--src/nativewindow/classes/javax/media/nativewindow/NativeWindowException.java68
-rw-r--r--src/nativewindow/classes/javax/media/nativewindow/NativeWindowFactory.java352
-rw-r--r--src/nativewindow/classes/javax/media/nativewindow/ToolkitLock.java73
-rw-r--r--src/nativewindow/classes/javax/media/nativewindow/awt/AWTGraphicsConfiguration.java132
-rw-r--r--src/nativewindow/classes/javax/media/nativewindow/awt/AWTGraphicsDevice.java86
-rw-r--r--src/nativewindow/classes/javax/media/nativewindow/awt/AWTGraphicsScreen.java95
-rw-r--r--src/nativewindow/classes/javax/media/nativewindow/egl/EGLGraphicsDevice.java50
-rw-r--r--src/nativewindow/classes/javax/media/nativewindow/macosx/MacOSXGraphicsDevice.java50
-rw-r--r--src/nativewindow/classes/javax/media/nativewindow/package.html111
-rw-r--r--src/nativewindow/classes/javax/media/nativewindow/windows/WindowsGraphicsDevice.java50
-rw-r--r--src/nativewindow/classes/javax/media/nativewindow/x11/X11GraphicsConfiguration.java76
-rw-r--r--src/nativewindow/classes/javax/media/nativewindow/x11/X11GraphicsDevice.java55
-rw-r--r--src/nativewindow/classes/javax/media/nativewindow/x11/X11GraphicsScreen.java91
-rw-r--r--src/nativewindow/native/JAWT_DrawingSurfaceInfo.c65
-rw-r--r--src/nativewindow/native/x11/Xinerama.c316
-rw-r--r--src/nativewindow/native/x11/Xinerama.h76
-rw-r--r--src/nativewindow/native/x11/XineramaHelper.c126
-rw-r--r--src/nativewindow/native/x11/extutil.h222
-rw-r--r--src/nativewindow/native/x11/panoramiXext.h54
-rw-r--r--src/nativewindow/native/x11/panoramiXproto.h196
-rwxr-xr-xsrc/newt/classes/com/sun/javafx/newt/Display.java109
-rw-r--r--src/newt/classes/com/sun/javafx/newt/Event.java77
-rw-r--r--src/newt/classes/com/sun/javafx/newt/EventListener.java43
-rw-r--r--src/newt/classes/com/sun/javafx/newt/InputEvent.java97
-rw-r--r--src/newt/classes/com/sun/javafx/newt/KeyEvent.java738
-rw-r--r--src/newt/classes/com/sun/javafx/newt/KeyListener.java42
-rw-r--r--src/newt/classes/com/sun/javafx/newt/MouseEvent.java110
-rw-r--r--src/newt/classes/com/sun/javafx/newt/MouseListener.java47
-rwxr-xr-xsrc/newt/classes/com/sun/javafx/newt/NewtFactory.java140
-rwxr-xr-xsrc/newt/classes/com/sun/javafx/newt/Screen.java139
-rwxr-xr-xsrc/newt/classes/com/sun/javafx/newt/Window.java664
-rw-r--r--src/newt/classes/com/sun/javafx/newt/WindowEvent.java67
-rw-r--r--src/newt/classes/com/sun/javafx/newt/WindowListener.java42
-rw-r--r--src/newt/classes/com/sun/javafx/newt/awt/AWTCanvas.java264
-rw-r--r--src/newt/classes/com/sun/javafx/newt/awt/AWTDisplay.java54
-rw-r--r--src/newt/classes/com/sun/javafx/newt/awt/AWTScreen.java65
-rw-r--r--src/newt/classes/com/sun/javafx/newt/awt/AWTWindow.java437
-rw-r--r--src/newt/classes/com/sun/javafx/newt/impl/Debug.java93
-rw-r--r--src/newt/classes/com/sun/javafx/newt/impl/NativeLibLoader.java143
-rwxr-xr-xsrc/newt/classes/com/sun/javafx/newt/macosx/MacDisplay.java49
-rwxr-xr-xsrc/newt/classes/com/sun/javafx/newt/macosx/MacScreen.java50
-rwxr-xr-xsrc/newt/classes/com/sun/javafx/newt/macosx/MacWindow.java514
-rw-r--r--src/newt/classes/com/sun/javafx/newt/opengl/GLWindow.java652
-rwxr-xr-xsrc/newt/classes/com/sun/javafx/newt/opengl/kd/KDDisplay.java68
-rwxr-xr-xsrc/newt/classes/com/sun/javafx/newt/opengl/kd/KDScreen.java53
-rwxr-xr-xsrc/newt/classes/com/sun/javafx/newt/opengl/kd/KDWindow.java154
-rw-r--r--src/newt/classes/com/sun/javafx/newt/util/MainThread.java305
-rwxr-xr-xsrc/newt/classes/com/sun/javafx/newt/windows/WindowsDisplay.java49
-rwxr-xr-xsrc/newt/classes/com/sun/javafx/newt/windows/WindowsScreen.java57
-rwxr-xr-xsrc/newt/classes/com/sun/javafx/newt/windows/WindowsWindow.java286
-rwxr-xr-xsrc/newt/classes/com/sun/javafx/newt/x11/X11Display.java64
-rwxr-xr-xsrc/newt/classes/com/sun/javafx/newt/x11/X11Screen.java69
-rwxr-xr-xsrc/newt/classes/com/sun/javafx/newt/x11/X11Window.java178
-rw-r--r--src/newt/native/EventListener.h9
-rw-r--r--src/newt/native/InputEvent.h46
-rwxr-xr-xsrc/newt/native/KDWindow.c334
-rw-r--r--src/newt/native/KeyEvent.h200
-rw-r--r--src/newt/native/MacWindow.m430
-rw-r--r--src/newt/native/MouseEvent.h15
-rw-r--r--src/newt/native/NewtMacWindow.h69
-rw-r--r--src/newt/native/NewtMacWindow.m391
-rwxr-xr-xsrc/newt/native/WindowsWindow.c1197
-rwxr-xr-xsrc/newt/native/X11Window.c642
-rwxr-xr-xtest/Issue326Test1.java91
-rwxr-xr-xtest/Issue326Test2.java66
-rwxr-xr-xtest/Issue344Base.java107
-rwxr-xr-xtest/Issue344Test1.java10
-rwxr-xr-xtest/Issue344Test2.java10
-rwxr-xr-xtest/Issue344Test3.java10
-rwxr-xr-xtest/Issue344Test4.java10
640 files changed, 172999 insertions, 0 deletions
diff --git a/CHANGELOG.txt b/CHANGELOG.txt
new file mode 100755
index 0000000..1455bec
--- /dev/null
+++ b/CHANGELOG.txt
@@ -0,0 +1,101 @@
+Changes between JOGL 1.1.0 and 1.1.1:
+
+ - Fixed a bug in the checking of incoming buffers' sizes to
+ glTexImage1D, glTexImage2D, and glTexImage3D.
+
+Changes between JOGL 1.0.0 and 1.1.0:
+
+ - The glext.h and associated header files JOGL uses have been updated
+ to OpenGL 2.1 with NVidia's GeForce 8 series extensions. The new
+ functions are available as methods in the GL interface.
+
+ - The developer build bundles have been changed to zip archives, so
+ instead of having to download multiple jars, you can now just
+ download the zip archive for your particular platform. The new zip
+ archives are versioned with the build date.
+
+ - The source distribution now contains the generated sources like
+ GL.java, GLU.java, etc. for more convenient use in IDEs.
+
+ - The chosen GLCapabilities are now exposed from the GLDrawable via
+ GLDrawable.getChosenGLCapabilities(); this functionality works on
+ all platforms even in cases where the GLCapabilitiesChooser is not
+ supported, and attempts to provide correct answers so programs can
+ make decisions based on the results.
+
+ - The native code for the "DRI hack" (to support the open-source DRI
+ drivers on Linux and other X11 platforms) has been removed; JOGL
+ now uses the GlueGen NativeLibrary class for this purpose.
+ Reliability improvements have been made to the implementation of
+ this class; it has been confirmed as working again with ATI's
+ proprietary drivers on Linux and should also work better with
+ NVidia's drivers.
+
+ - The GlueGen runtime classes have been removed from jogl.jar. These
+ have been factored out into gluegen-rt.jar and are referenced by
+ both the JOGL and JOAL projects.
+
+ - Thanks to John Burkey some optimizations have been made to the
+ buffer object-related validity checks in glVertexPointer, etc. as
+ well as a buffer size query that was being made in the glMapBuffer
+ implementation. This improves performance for applications
+ performing a lot of VBO- or vertex array-based rendering, in
+ particular with the multithreaded OpenGL implementation on Mac OS
+ X.
+
+ - The JOGL applet launcher now supports deployment of applets which
+ use both OpenGL for 3D graphics via JOGL as well as OpenAL for
+ spatialized audio via JOAL. It now prompts the user on Windows
+ platforms to allow it to enable the -Dsun.java2d.noddraw=true
+ system property for best robustness. It has been updated for the
+ changes in the GlueGen runtime classes and native library
+ structure. Some bugs have been fixed, some of which were preventing
+ different JOGL-based applets from being deployed from the same
+ codebase. The documentation and on-line examples have been updated
+ as well.
+
+ - The TextureIO implementation has been changed to no longer copy the
+ data associated with BufferedImage TextureData objects. Instead,
+ the necessary vertical flip is now implemented by flipping the
+ texture coordinates vertically.
+
+ - An API for updating a sub-image of a Texture object from a
+ sub-portion of a TextureData object has been added.
+
+ - A GLContext.copy() operation has been added based on community
+ feedback.
+
+ - Three helper classes have been added to the com.sun.opengl.util.j2d
+ package to improve interoperability between JOGL and Java 2D:
+ TextureRenderer, Overlay and TextRenderer. The TextureRenderer
+ supports drawing into an OpenGL texture using Java 2D. The Overlay
+ class provides a convenient Java 2D-based overlay on top of an
+ arbitrary GLDrawable. The TextRenderer class supports drawing of
+ Java 2D text into an OpenGL context. Thanks to Chris Campbell of
+ the Java 2D team for collaboration and to the JOGL community for
+ extensive feedback and testing assistance.
+
+ - Various bug fixes and robustness improvements were made to the
+ GlueGen runtime, JOGL and GLU implementations.
+
+ - Fixes to the DDSImage class were contributed by the community: a
+ bug fix to mipmap handling and support for cubemap textures. Thanks
+ to java.net user bandures.
+
+ - TextureIO.setTexRectEnabled() and isTexRectEnabled() were added
+ based on feedback from Chris Campbell, in order to simplify the
+ writing of pixel shaders which have different samplers for
+ GL_TEXTURE_2D and GL_TEXTURE_RECTANGLE_ARB targets.
+
+ - Thanks to Erik Tollerud, the links to the OpenGL documentation in
+ the JOGL javadoc were revised to point to the new on-line man pages
+ in the OpenGL SDK.
+
+ - Support for automatic mipmap generation via GL_GENERATE_MIPMAP was
+ added to the TextureIO, TextureRenderer and TextRenderer classes.
+
+ - Windows/AMD64 binaries, including the JOGL Cg binding, are now
+ supplied.
+
+ - Worked around breakage of JOGL with 5.0u10; see Sun bug IDs 6504460
+ and 6333613.
diff --git a/COPYRIGHT.txt b/COPYRIGHT.txt
new file mode 100755
index 0000000..360d374
--- /dev/null
+++ b/COPYRIGHT.txt
@@ -0,0 +1,31 @@
+
+Copyright 2007 Sun Microsystems, Inc., 4150 Network
+Circle, Santa Clara, California 95054, U.S.A. All rights
+reserved.
+
+U.S. Government Rights - Commercial software. Government
+users are subject to the Sun Microsystems, Inc.
+standard license agreement and applicable provisions of
+the FAR and its supplements.
+
+Use is subject to license terms.
+
+This distribution may include materials developed by third
+parties.
+
+Sun, Sun Microsystems, the Sun logo and Java are trademarks
+or registered trademarks of Sun Microsystems, Inc. in the
+U.S. and other countries.
+
+OpenGL is a registered trademark of Silicon Graphics, Inc.
+
+This product is covered and controlled by U.S. Export
+Control laws and may be subject to the export or import
+laws in other countries. Nuclear, missile, chemical
+biological weapons or nuclear maritime end uses or end
+users, whether direct or indirect, are strictly prohibited.
+Export or reexport to countries subject to U.S. embargo or
+to entities identified on U.S. export exclusion lists,
+including, but not limited to, the denied persons and
+specially designated nationals lists is strictly prohibited.
+
diff --git a/LICENSE.txt b/LICENSE.txt
new file mode 100755
index 0000000..cd35e88
--- /dev/null
+++ b/LICENSE.txt
@@ -0,0 +1,152 @@
+JOGL is released under the BSD license. The full license terms follow:
+
+ Copyright (c) 2003-2007 Sun Microsystems, Inc. All Rights Reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are
+ met:
+
+ - Redistribution of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ - Redistribution in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ Neither the name of Sun Microsystems, Inc. or the names of
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+
+ This software is provided "AS IS," without a warranty of any kind. ALL
+ EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES,
+ INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
+ PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN
+ MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE FOR
+ ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
+ DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR
+ ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR
+ DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE
+ DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY,
+ ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF
+ SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+ You acknowledge that this software is not designed or intended for use
+ in the design, construction, operation or maintenance of any nuclear
+ facility.
+
+The JOGL source tree contains code ported from the OpenGL sample
+implementation by Silicon Graphics, Inc. This code is licensed under
+the SGI Free Software License B (Sun is redistributing the modified code
+under a slightly modified, alternative license, which is described two
+paragraphs below after "NOTE:"):
+
+ License Applicability. Except to the extent portions of this file are
+ made subject to an alternative license as permitted in the SGI Free
+ Software License B, Version 1.1 (the "License"), the contents of this
+ file are subject only to the provisions of the License. You may not use
+ this file except in compliance with the License. You may obtain a copy
+ of the License at Silicon Graphics, Inc., attn: Legal Services, 1600
+ Amphitheatre Parkway, Mountain View, CA 94043-1351, or at:
+
+ http://oss.sgi.com/projects/FreeB
+
+ Note that, as provided in the License, the Software is distributed on an
+ "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS
+ DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND
+ CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A
+ PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
+
+ NOTE: The Original Code (as defined below) has been licensed to Sun
+ Microsystems, Inc. ("Sun") under the SGI Free Software License B
+ (Version 1.1), shown above ("SGI License"). Pursuant to Section
+ 3.2(3) of the SGI License, Sun is distributing the Covered Code to
+ you under an alternative license ("Alternative License"). This
+ Alternative License includes all of the provisions of the SGI License
+ except that Section 2.2 and 11 are omitted. Any differences between
+ the Alternative License and the SGI License are offered solely by Sun
+ and not by SGI.
+
+ Original Code. The Original Code is: OpenGL Sample Implementation,
+ Version 1.2.1, released January 26, 2000, developed by Silicon Graphics,
+ Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc.
+ Copyright in any portions created by third parties is as indicated
+ elsewhere herein. All Rights Reserved.
+
+ Additional Notice Provisions: The application programming interfaces
+ established by SGI in conjunction with the Original Code are The
+ OpenGL(R) Graphics System: A Specification (Version 1.2.1), released
+ April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version
+ 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X
+ Window System(R) (Version 1.3), released October 19, 1998. This software
+ was created using the OpenGL(R) version 1.2.1 Sample Implementation
+ published by SGI, but has not been independently verified as being
+ compliant with the OpenGL(R) version 1.2.1 Specification.
+
+
+The JOGL source tree contains code from the LWJGL project which is
+similarly covered by the BSD license:
+
+ Copyright (c) 2002-2004 LWJGL Project
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are
+ met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ * Neither the name of 'LWJGL' nor the names of
+ its contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+The JOGL source tree also contains a Java port of Brian Paul's Tile
+Rendering library, used with permission of the author under the BSD
+license instead of the original LGPL:
+
+ Copyright (c) 1997-2005 Brian Paul. All Rights Reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are
+ met:
+
+ - Redistribution of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ - Redistribution in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ Neither the name of Brian Paul or the names of contributors may be
+ used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ This software is provided "AS IS," without a warranty of any
+ kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND
+ WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY
+ EXCLUDED. THE COPYRIGHT HOLDERS AND CONTRIBUTORS SHALL NOT BE
+ LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING,
+ MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO
+ EVENT WILL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY
+ LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL,
+ CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND
+ REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF OR
+ INABILITY TO USE THIS SOFTWARE, EVEN IF THE COPYRIGHT HOLDERS OR
+ CONTRIBUTORS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
diff --git a/README.txt b/README.txt
new file mode 100755
index 0000000..af17d6c
--- /dev/null
+++ b/README.txt
@@ -0,0 +1,70 @@
+Organization of the JOGL source tree
+------------------------------------
+
+doc/ Build and user documentation
+make/ Ant build scripts
+ Configuration files for glue code generation
+ Header files for glue code generation
+ See top of build.xml for brief invocation instructions
+src/ Java and native source code for JOGL
+ (Currently also contains source code for GlueGen tool; in
+ process of being split into its own project)
+www/ Web pages and older Java Web Start binaries for JOGL
+
+Acknowledgments
+---------------
+
+Sun Microsystems, Inc. gratefully acknowledges that the initial
+version of JOGL was authored and developed by Kenneth Bradley Russell
+and Christopher John Kline.
+
+Sun and the JOGL development team are grateful for the contributions
+of all of the individuals who have advanced the project. Please
+contact the project owners if your name is missing from this list.
+
+Gerard Ziemski contributed the original port of JOGL to Mac OS X.
+
+Rob Grzywinski and Artur Biesiadowski contributed the Ant build
+support. Alex Radeski contributed the cpptasks support in the build
+process.
+
+Pepijn Van Eeckhoudt and Nathan Parker Burg contributed the Java port
+of the GLU tessellator. Pepijn also contributed the initial version of
+the FPSAnimator utility class.
+
+User GKW on the javagaming.org forums contributed the substantial port
+of the GLU mipmap generation code to Java, as well as robustness fixes
+in the Windows implementation and other areas.
+
+The JSR-231 expert group as a whole provided valuable discussions and
+guidance in the design of the current APIs. In particular, Kevin
+Rushforth, Daniel Rice and Travis Bryson were instrumental in the
+design of the current APIs.
+
+Travis Bryson did extensive work on the GlueGen tool to make it
+conform to the desired API design. He also shepherded JSR-231 through
+the standardization process, doing extensive cross-validation of the
+APIs and implementation along the way, and authored JOGL's nightly
+build system.
+
+Lilian Chamontin contributed the JOGLAppletLauncher, opening new ways
+of deploying 3D over the web.
+
+Christopher Campbell collaborated closely with the JOGL development
+team to enable interoperability between Sun's OpenGL pipeline for
+Java2D and JOGL in Java SE 6, and also co-authored the TextureIO
+subsystem.
+
+The following individuals made significant contributions to various
+areas of the project:
+
+Alban Cousiniť
+Athomas Goldberg
+Yuri Vladimir Gushchin
+Gregory Pierce
+Carsten Weisse
+
+Sun and the JOGL development team are grateful for the support of the
+javagaming.org community, from where dozens, if not hundreds, of
+individuals have contributed discussions, bug reports, bug fixes, and
+other forms of support.
diff --git a/doxygen/doxygen-all-dev.cfg b/doxygen/doxygen-all-dev.cfg
new file mode 100644
index 0000000..2425ff4
--- /dev/null
+++ b/doxygen/doxygen-all-dev.cfg
@@ -0,0 +1,1260 @@
+# Doxyfile 1.5.0
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project
+#
+# All text after a hash (#) is considered a comment and will be ignored
+# The format is:
+# TAG = value [value, ...]
+# For lists items can also be appended using:
+# TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (" ")
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
+# by quotes) that should identify the project.
+
+PROJECT_NAME = "JOGL - Developer Documentation incl. Nativewindow & Newt"
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number.
+# This could be handy for archiving the generated documentation or
+# if some version control system is used.
+
+PROJECT_NUMBER = 2
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
+# base path where the generated documentation will be put.
+# If a relative path is entered, it will be relative to the location
+# where doxygen was started. If left blank the current directory will be used.
+
+OUTPUT_DIRECTORY = doc-jogl-dev
+
+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
+# 4096 sub-directories (in 2 levels) under the output directory of each output
+# format and will distribute the generated files over these directories.
+# Enabling this option can be useful when feeding doxygen a huge amount of
+# source files, where putting all generated files in the same directory would
+# otherwise cause performance problems for the file system.
+
+CREATE_SUBDIRS = YES
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# The default language is English, other supported languages are:
+# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
+# Croatian, Czech, Danish, Dutch, Finnish, French, German, Greek, Hungarian,
+# Italian, Japanese, Japanese-en (Japanese with English messages), Korean,
+# Korean-en, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Russian,
+# Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian.
+
+OUTPUT_LANGUAGE = English
+
+# This tag can be used to specify the encoding used in the generated output.
+# The encoding is not always determined by the language that is chosen,
+# but also whether or not the output is meant for Windows or non-Windows users.
+# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES
+# forces the Windows encoding (this is the default for the Windows binary),
+# whereas setting the tag to NO uses a Unix-style encoding (the default for
+# all platforms other than Windows).
+
+USE_WINDOWS_ENCODING = NO
+
+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
+# include brief member descriptions after the members that are listed in
+# the file and class documentation (similar to JavaDoc).
+# Set to NO to disable this.
+
+BRIEF_MEMBER_DESC = YES
+
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
+# the brief description of a member or function before the detailed description.
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# brief descriptions will be completely suppressed.
+
+REPEAT_BRIEF = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator
+# that is used to form the text in various listings. Each string
+# in this list, if found as the leading text of the brief description, will be
+# stripped from the text and the result after processing the whole list, is
+# used as the annotated text. Otherwise, the brief description is used as-is.
+# If left blank, the following values are used ("$name" is automatically
+# replaced with the name of the entity): "The $name class" "The $name widget"
+# "The $name file" "is" "provides" "specifies" "contains"
+# "represents" "a" "an" "the"
+
+ABBREVIATE_BRIEF =
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# Doxygen will generate a detailed section even if there is only a brief
+# description.
+
+ALWAYS_DETAILED_SEC = NO
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
+# inherited members of a class in the documentation of that class as if those
+# members were ordinary class members. Constructors, destructors and assignment
+# operators of the base classes will not be shown.
+
+INLINE_INHERITED_MEMB = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
+# path before files name in the file list and in the header files. If set
+# to NO the shortest path that makes the file name unique will be used.
+
+FULL_PATH_NAMES = YES
+
+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
+# can be used to strip a user-defined part of the path. Stripping is
+# only done if one of the specified strings matches the left-hand part of
+# the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which doxygen is run is used as the
+# path to strip.
+
+STRIP_FROM_PATH = /usr/local/projects/SUN/JOGL2 /export/usr/local/projects/SUN/JOGL2
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
+# the path mentioned in the documentation of a class, which tells
+# the reader which header file to include in order to use a class.
+# If left blank only the name of the header file containing the class
+# definition is used. Otherwise one should specify the include paths that
+# are normally passed to the compiler using the -I flag.
+
+STRIP_FROM_INC_PATH = /usr/local/projects/SUN/JOGL2 /export/usr/local/projects/SUN/JOGL2
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
+# (but less readable) file names. This can be useful is your file systems
+# doesn't support long names like on DOS, Mac, or CD-ROM.
+
+SHORT_NAMES = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
+# will interpret the first line (until the first dot) of a JavaDoc-style
+# comment as the brief description. If set to NO, the JavaDoc
+# comments will behave just like the Qt-style comments (thus requiring an
+# explicit @brief command for a brief description.
+
+JAVADOC_AUTOBRIEF = YES
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
+# treat a multi-line C++ special comment block (i.e. a block of //! or ///
+# comments) as a brief description. This used to be the default behaviour.
+# The new default is to treat a multi-line C++ comment block as a detailed
+# description. Set this tag to YES if you prefer the old behaviour instead.
+
+MULTILINE_CPP_IS_BRIEF = YES
+
+# If the DETAILS_AT_TOP tag is set to YES then Doxygen
+# will output the detailed description near the top, like JavaDoc.
+# If set to NO, the detailed description appears after the member
+# documentation.
+
+DETAILS_AT_TOP = NO
+
+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
+# member inherits the documentation from any documented member that it
+# re-implements.
+
+INHERIT_DOCS = YES
+
+# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
+# a new page for each member. If set to NO, the documentation of a member will
+# be part of the file/class/namespace that contains it.
+
+SEPARATE_MEMBER_PAGES = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab.
+# Doxygen uses this value to replace tabs by spaces in code fragments.
+
+TAB_SIZE = 4
+
+# This tag can be used to specify a number of aliases that acts
+# as commands in the documentation. An alias has the form "name=value".
+# For example adding "sideeffect=\par Side Effects:\n" will allow you to
+# put the command \sideeffect (or @sideeffect) in the documentation, which
+# will result in a user-defined paragraph with heading "Side Effects:".
+# You can put \n's in the value part of an alias to insert newlines.
+
+ALIASES =
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
+# sources only. Doxygen will then generate output that is more tailored for C.
+# For instance, some of the names that are used will be different. The list
+# of all members will be omitted, etc.
+
+OPTIMIZE_OUTPUT_FOR_C = NO
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
+# sources only. Doxygen will then generate output that is more tailored for Java.
+# For instance, namespaces will be presented as packages, qualified scopes
+# will look different, etc.
+
+OPTIMIZE_OUTPUT_JAVA = YES
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to
+# include (a tag file for) the STL sources as input, then you should
+# set this tag to YES in order to let doxygen match functions declarations and
+# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
+# func(std::string) {}). This also make the inheritance and collaboration
+# diagrams that involve STL classes more complete and accurate.
+
+BUILTIN_STL_SUPPORT = NO
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES, then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
+# all members of a group must be documented explicitly.
+
+DISTRIBUTE_GROUP_DOC = NO
+
+# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
+# the same type (for instance a group of public functions) to be put as a
+# subgroup of that type (e.g. under the Public Functions section). Set it to
+# NO to prevent subgrouping. Alternatively, this can be done per class using
+# the \nosubgrouping command.
+
+SUBGROUPING = YES
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
+# documentation are documented, even if no documentation was available.
+# Private class members and static file members will be hidden unless
+# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
+
+EXTRACT_ALL = YES
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
+# will be included in the documentation.
+
+EXTRACT_PRIVATE = YES
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file
+# will be included in the documentation.
+
+EXTRACT_STATIC = YES
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
+# defined locally in source files will be included in the documentation.
+# If set to NO only classes defined in header files are included.
+
+EXTRACT_LOCAL_CLASSES = YES
+
+# This flag is only useful for Objective-C code. When set to YES local
+# methods, which are defined in the implementation section but not in
+# the interface are included in the documentation.
+# If set to NO (the default) only methods in the interface are included.
+
+EXTRACT_LOCAL_METHODS = YES
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
+# undocumented members of documented classes, files or namespaces.
+# If set to NO (the default) these members will be included in the
+# various overviews, but no documentation section is generated.
+# This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_MEMBERS = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy.
+# If set to NO (the default) these classes will be included in the various
+# overviews. This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_CLASSES = NO
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
+# friend (class|struct|union) declarations.
+# If set to NO (the default) these declarations will be included in the
+# documentation.
+
+HIDE_FRIEND_COMPOUNDS = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
+# documentation blocks found inside the body of a function.
+# If set to NO (the default) these blocks will be appended to the
+# function's detailed documentation block.
+
+HIDE_IN_BODY_DOCS = NO
+
+# The INTERNAL_DOCS tag determines if documentation
+# that is typed after a \internal command is included. If the tag is set
+# to NO (the default) then the documentation will be excluded.
+# Set it to YES to include the internal documentation.
+
+INTERNAL_DOCS = YES
+
+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
+# file names in lower-case letters. If set to YES upper-case letters are also
+# allowed. This is useful if you have classes or files whose names only differ
+# in case and if your file system supports case sensitive file names. Windows
+# and Mac users are advised to set this option to NO.
+
+CASE_SENSE_NAMES = YES
+
+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
+# will show members with their full class and namespace scopes in the
+# documentation. If set to YES the scope will be hidden.
+
+HIDE_SCOPE_NAMES = NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
+# will put a list of the files that are included by a file in the documentation
+# of that file.
+
+SHOW_INCLUDE_FILES = YES
+
+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
+# is inserted in the documentation for inline members.
+
+INLINE_INFO = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
+# will sort the (detailed) documentation of file and class members
+# alphabetically by member name. If set to NO the members will appear in
+# declaration order.
+
+SORT_MEMBER_DOCS = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
+# brief documentation of file, namespace and class members alphabetically
+# by member name. If set to NO (the default) the members will appear in
+# declaration order.
+
+SORT_BRIEF_DOCS = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
+# sorted by fully-qualified names, including namespaces. If set to
+# NO (the default), the class list will be sorted only by class name,
+# not including the namespace part.
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the
+# alphabetical list.
+
+SORT_BY_SCOPE_NAME = NO
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or
+# disable (NO) the todo list. This list is created by putting \todo
+# commands in the documentation.
+
+GENERATE_TODOLIST = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or
+# disable (NO) the test list. This list is created by putting \test
+# commands in the documentation.
+
+GENERATE_TESTLIST = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or
+# disable (NO) the bug list. This list is created by putting \bug
+# commands in the documentation.
+
+GENERATE_BUGLIST = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
+# disable (NO) the deprecated list. This list is created by putting
+# \deprecated commands in the documentation.
+
+GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional
+# documentation sections, marked by \if sectionname ... \endif.
+
+ENABLED_SECTIONS =
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
+# the initial value of a variable or define consists of for it to appear in
+# the documentation. If the initializer consists of more lines than specified
+# here it will be hidden. Use a value of 0 to hide initializers completely.
+# The appearance of the initializer of individual variables and defines in the
+# documentation can be controlled using \showinitializer or \hideinitializer
+# command in the documentation regardless of this setting.
+
+MAX_INITIALIZER_LINES = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
+# at the bottom of the documentation of classes and structs. If set to YES the
+# list will mention the files that were used to generate the documentation.
+
+SHOW_USED_FILES = YES
+
+# If the sources in your project are distributed over multiple directories
+# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
+# in the documentation. The default is NO.
+
+SHOW_DIRECTORIES = YES
+
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# doxygen should invoke to get the current version for each file (typically from the
+# version control system). Doxygen will invoke the program by executing (via
+# popen()) the command <command> <input-file>, where <command> is the value of
+# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
+# provided by doxygen. Whatever the program writes to standard output
+# is used as the file version. See the manual for examples.
+
+FILE_VERSION_FILTER =
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated
+# by doxygen. Possible values are YES and NO. If left blank NO is used.
+
+QUIET = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated by doxygen. Possible values are YES and NO. If left blank
+# NO is used.
+
+WARNINGS = YES
+
+# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
+# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
+# automatically be disabled.
+
+WARN_IF_UNDOCUMENTED = YES
+
+# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
+# potential errors in the documentation, such as not documenting some
+# parameters in a documented function, or documenting parameters that
+# don't exist or using markup commands wrongly.
+
+WARN_IF_DOC_ERROR = YES
+
+# This WARN_NO_PARAMDOC option can be abled to get warnings for
+# functions that are documented, but have no documentation for their parameters
+# or return value. If set to NO (the default) doxygen will only warn about
+# wrong or incomplete parameter documentation, but not about the absence of
+# documentation.
+
+WARN_NO_PARAMDOC = NO
+
+# The WARN_FORMAT tag determines the format of the warning messages that
+# doxygen can produce. The string should contain the $file, $line, and $text
+# tags, which will be replaced by the file and line number from which the
+# warning originated and the warning text. Optionally the format may contain
+# $version, which will be replaced by the version of the file (if it could
+# be obtained via FILE_VERSION_FILTER)
+
+WARN_FORMAT = "$file:$line: $text"
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning
+# and error messages should be written. If left blank the output is written
+# to stderr.
+
+WARN_LOGFILE =
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag can be used to specify the files and/or directories that contain
+# documented source files. You may enter file names like "myfile.cpp" or
+# directories like "/usr/src/myproject". Separate the files or directories
+# with spaces.
+
+INPUT = ../src/jogl/classes
+INPUT = ../src/nativewindow/classes
+INPUT = ../src/newt/classes
+INPUT += ../build/jogl/gensrc/classes
+INPUT += ../build/nativewindow/gensrc/classes
+INPUT += ../build/newt/gensrc/classes
+INPUT += ../../gluegen/src/java/com/sun/gluegen/runtime
+
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank the following patterns are tested:
+# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx
+# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py
+
+FILE_PATTERNS =
+
+# The RECURSIVE tag can be used to turn specify whether or not subdirectories
+# should be searched for input files as well. Possible values are YES and NO.
+# If left blank NO is used.
+
+RECURSIVE = YES
+
+# The EXCLUDE tag can be used to specify files and/or directories that should
+# excluded from the INPUT source files. This way you can easily exclude a
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+
+EXCLUDE =
+
+# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
+# directories that are symbolic links (a Unix filesystem feature) are excluded
+# from the input.
+
+EXCLUDE_SYMLINKS = NO
+
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories. Note that the wildcards are matched
+# against the file with absolute path, so to exclude all test directories
+# for example use the pattern */test/*
+
+EXCLUDE_PATTERNS = */SCCS/* s.* p.*
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or
+# directories that contain example code fragments that are included (see
+# the \include command).
+
+#EXAMPLE_PATH = ../../jogl-demos/src
+EXAMPLE_PATH =
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank all files are included.
+
+EXAMPLE_PATTERNS =
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+# searched for input files to be used with the \include or \dontinclude
+# commands irrespective of the value of the RECURSIVE tag.
+# Possible values are YES and NO. If left blank NO is used.
+
+EXAMPLE_RECURSIVE = YES
+
+# The IMAGE_PATH tag can be used to specify one or more files or
+# directories that contain image that are included in the documentation (see
+# the \image command).
+
+IMAGE_PATH =
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program
+# by executing (via popen()) the command <filter> <input-file>, where <filter>
+# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
+# input file. Doxygen will then use the output that the filter program writes
+# to standard output. If FILTER_PATTERNS is specified, this tag will be
+# ignored.
+
+INPUT_FILTER =
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+# basis. Doxygen will compare the file name with each pattern and apply the
+# filter if there is a match. The filters are a list of the form:
+# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
+# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER
+# is applied to all files.
+
+FILTER_PATTERNS =
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+# INPUT_FILTER) will be used to filter the input files when producing source
+# files to browse (i.e. when SOURCE_BROWSER is set to YES).
+
+FILTER_SOURCE_FILES = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will
+# be generated. Documented entities will be cross-referenced with these sources.
+# Note: To get rid of all source code in the generated output, make sure also
+# VERBATIM_HEADERS is set to NO.
+
+SOURCE_BROWSER = YES
+
+# Setting the INLINE_SOURCES tag to YES will include the body
+# of functions and classes directly in the documentation.
+
+INLINE_SOURCES = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
+# doxygen to hide any special comment blocks from generated source code
+# fragments. Normal C and C++ comments will always remain visible.
+
+STRIP_CODE_COMMENTS = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES (the default)
+# then for each documented function all documented
+# functions referencing it will be listed.
+
+REFERENCED_BY_RELATION = YES
+
+# If the REFERENCES_RELATION tag is set to YES (the default)
+# then for each documented function all documented entities
+# called/used by that function will be listed.
+
+REFERENCES_RELATION = YES
+
+# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
+# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
+# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
+# link to the source code. Otherwise they will link to the documentstion.
+
+REFERENCES_LINK_SOURCE = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code
+# will point to the HTML generated by the htags(1) tool instead of doxygen
+# built-in source browser. The htags tool is part of GNU's global source
+# tagging system (see http://www.gnu.org/software/global/global.html). You
+# will need version 4.8.6 or higher.
+
+USE_HTAGS = NO
+
+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
+# will generate a verbatim copy of the header file for each class for
+# which an include is specified. Set to NO to disable this.
+
+VERBATIM_HEADERS = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
+# of all compounds will be generated. Enable this if the project
+# contains a lot of classes, structs, unions or interfaces.
+
+ALPHABETICAL_INDEX = YES
+
+# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
+# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
+# in which this list will be split (can be a number in the range [1..20])
+
+COLS_IN_ALPHA_INDEX = 5
+
+# In case all classes in a project start with a common prefix, all
+# classes will be put under the same header in the alphabetical index.
+# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
+# should be ignored while generating the index headers.
+
+IGNORE_PREFIX =
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
+# generate HTML output.
+
+GENERATE_HTML = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `html' will be used as the default path.
+
+HTML_OUTPUT = html
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
+# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
+# doxygen will generate files with .html extension.
+
+HTML_FILE_EXTENSION = .html
+
+# The HTML_HEADER tag can be used to specify a personal HTML header for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard header.
+
+HTML_HEADER =
+
+# The HTML_FOOTER tag can be used to specify a personal HTML footer for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard footer.
+
+HTML_FOOTER =
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
+# style sheet that is used by each HTML page. It can be used to
+# fine-tune the look of the HTML output. If the tag is left blank doxygen
+# will generate a default style sheet. Note that doxygen will try to copy
+# the style sheet file to the HTML output directory, so don't put your own
+# stylesheet in the HTML output directory as well, or it will be erased!
+
+HTML_STYLESHEET =
+
+# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
+# files or namespaces will be aligned in HTML using tables. If set to
+# NO a bullet list will be used.
+
+HTML_ALIGN_MEMBERS = YES
+
+# If the GENERATE_HTMLHELP tag is set to YES, additional index files
+# will be generated that can be used as input for tools like the
+# Microsoft HTML help workshop to generate a compressed HTML help file (.chm)
+# of the generated HTML documentation.
+
+GENERATE_HTMLHELP = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
+# be used to specify the file name of the resulting .chm file. You
+# can add a path in front of the file if the result should not be
+# written to the html output directory.
+
+CHM_FILE =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
+# be used to specify the location (absolute path including file name) of
+# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
+# the HTML help compiler on the generated index.hhp.
+
+HHC_LOCATION =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
+# controls if a separate .chi index file is generated (YES) or that
+# it should be included in the master .chm file (NO).
+
+GENERATE_CHI = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
+# controls whether a binary table of contents is generated (YES) or a
+# normal table of contents (NO) in the .chm file.
+
+BINARY_TOC = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members
+# to the contents of the HTML help documentation and to the tree view.
+
+TOC_EXPAND = NO
+
+# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
+# top of each HTML page. The value NO (the default) enables the index and
+# the value YES disables it.
+
+DISABLE_INDEX = NO
+
+# This tag can be used to set the number of enum values (range [1..20])
+# that doxygen will group on one line in the generated HTML documentation.
+
+ENUM_VALUES_PER_LINE = 4
+
+# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
+# generated containing a tree-like index structure (just like the one that
+# is generated for HTML Help). For this to work a browser that supports
+# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+,
+# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are
+# probably better off using the HTML help feature.
+
+GENERATE_TREEVIEW = YES
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
+# used to set the initial width (in pixels) of the frame in which the tree
+# is shown.
+
+TREEVIEW_WIDTH = 250
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
+# generate Latex output.
+
+GENERATE_LATEX = NO
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `latex' will be used as the default path.
+
+LATEX_OUTPUT = latex
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
+# invoked. If left blank `latex' will be used as the default command name.
+
+LATEX_CMD_NAME = latex
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
+# generate index for LaTeX. If left blank `makeindex' will be used as the
+# default command name.
+
+MAKEINDEX_CMD_NAME = makeindex
+
+# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
+# LaTeX documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_LATEX = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used
+# by the printer. Possible values are: a4, a4wide, letter, legal and
+# executive. If left blank a4wide will be used.
+
+PAPER_TYPE = a4wide
+
+# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
+# packages that should be included in the LaTeX output.
+
+EXTRA_PACKAGES =
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
+# the generated latex document. The header should contain everything until
+# the first chapter. If it is left blank doxygen will generate a
+# standard header. Notice: only use this tag if you know what you are doing!
+
+LATEX_HEADER =
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
+# is prepared for conversion to pdf (using ps2pdf). The pdf file will
+# contain links (just like the HTML output) instead of page references
+# This makes the output suitable for online browsing using a pdf viewer.
+
+PDF_HYPERLINKS = NO
+
+# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
+# plain latex in the generated Makefile. Set this option to YES to get a
+# higher quality PDF documentation.
+
+USE_PDFLATEX = NO
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
+# command to the generated LaTeX files. This will instruct LaTeX to keep
+# running if errors occur, instead of asking the user for help.
+# This option is also used when generating formulas in HTML.
+
+LATEX_BATCHMODE = NO
+
+# If LATEX_HIDE_INDICES is set to YES then doxygen will not
+# include the index chapters (such as File Index, Compound Index, etc.)
+# in the output.
+
+LATEX_HIDE_INDICES = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
+# The RTF output is optimized for Word 97 and may not look very pretty with
+# other RTF readers or editors.
+
+GENERATE_RTF = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `rtf' will be used as the default path.
+
+RTF_OUTPUT = rtf
+
+# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
+# RTF documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_RTF = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
+# will contain hyperlink fields. The RTF file will
+# contain links (just like the HTML output) instead of page references.
+# This makes the output suitable for online browsing using WORD or other
+# programs which support those fields.
+# Note: wordpad (write) and others do not support links.
+
+RTF_HYPERLINKS = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's
+# config file, i.e. a series of assignments. You only have to provide
+# replacements, missing definitions are set to their default value.
+
+RTF_STYLESHEET_FILE =
+
+# Set optional variables used in the generation of an rtf document.
+# Syntax is similar to doxygen's config file.
+
+RTF_EXTENSIONS_FILE =
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
+# generate man pages
+
+GENERATE_MAN = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `man' will be used as the default path.
+
+MAN_OUTPUT = man
+
+# The MAN_EXTENSION tag determines the extension that is added to
+# the generated man pages (default is the subroutine's section .3)
+
+MAN_EXTENSION = .3
+
+# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
+# then it will generate one additional man file for each entity
+# documented in the real man page(s). These additional files
+# only source the real man page, but without them the man command
+# would be unable to find the correct page. The default is NO.
+
+MAN_LINKS = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES Doxygen will
+# generate an XML file that captures the structure of
+# the code including all documentation.
+
+GENERATE_XML = NO
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `xml' will be used as the default path.
+
+XML_OUTPUT = xml
+
+# The XML_SCHEMA tag can be used to specify an XML schema,
+# which can be used by a validating XML parser to check the
+# syntax of the XML files.
+
+XML_SCHEMA =
+
+# The XML_DTD tag can be used to specify an XML DTD,
+# which can be used by a validating XML parser to check the
+# syntax of the XML files.
+
+XML_DTD =
+
+# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
+# dump the program listings (including syntax highlighting
+# and cross-referencing information) to the XML output. Note that
+# enabling this will significantly increase the size of the XML output.
+
+XML_PROGRAMLISTING = YES
+
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
+# generate an AutoGen Definitions (see autogen.sf.net) file
+# that captures the structure of the code including all
+# documentation. Note that this feature is still experimental
+# and incomplete at the moment.
+
+GENERATE_AUTOGEN_DEF = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_PERLMOD tag is set to YES Doxygen will
+# generate a Perl module file that captures the structure of
+# the code including all documentation. Note that this
+# feature is still experimental and incomplete at the
+# moment.
+
+GENERATE_PERLMOD = NO
+
+# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
+# the necessary Makefile rules, Perl scripts and LaTeX code to be able
+# to generate PDF and DVI output from the Perl module output.
+
+PERLMOD_LATEX = NO
+
+# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
+# nicely formatted so it can be parsed by a human reader. This is useful
+# if you want to understand what is going on. On the other hand, if this
+# tag is set to NO the size of the Perl module output will be much smaller
+# and Perl will parse it just the same.
+
+PERLMOD_PRETTY = YES
+
+# The names of the make variables in the generated doxyrules.make file
+# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
+# This is useful so different doxyrules.make files included by the same
+# Makefile don't overwrite each other's variables.
+
+PERLMOD_MAKEVAR_PREFIX =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
+# evaluate all C-preprocessor directives found in the sources and include
+# files.
+
+ENABLE_PREPROCESSING = NO
+
+# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
+# names in the source code. If set to NO (the default) only conditional
+# compilation will be performed. Macro expansion can be done in a controlled
+# way by setting EXPAND_ONLY_PREDEF to YES.
+
+MACRO_EXPANSION = NO
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
+# then the macro expansion is limited to the macros specified with the
+# PREDEFINED and EXPAND_AS_DEFINED tags.
+
+EXPAND_ONLY_PREDEF = NO
+
+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
+# in the INCLUDE_PATH (see below) will be search if a #include is found.
+
+SEARCH_INCLUDES = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that
+# contain include files that are not input files but should be processed by
+# the preprocessor.
+INCLUDE_PATH =
+
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
+# patterns (like *.h and *.hpp) to filter out the header-files in the
+# directories. If left blank, the patterns specified with FILE_PATTERNS will
+# be used.
+
+INCLUDE_FILE_PATTERNS =
+
+# The PREDEFINED tag can be used to specify one or more macro names that
+# are defined before the preprocessor is started (similar to the -D option of
+# gcc). The argument of the tag is a list of macros of the form: name
+# or name=definition (no spaces). If the definition and the = are
+# omitted =1 is assumed. To prevent a macro definition from being
+# undefined via #undef or recursively expanded use the := operator
+# instead of the = operator.
+
+PREDEFINED =
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
+# this tag can be used to specify a list of macro names that should be expanded.
+# The macro definition that is found in the sources will be used.
+# Use the PREDEFINED tag if you want to use a different macro definition.
+
+EXPAND_AS_DEFINED =
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
+# doxygen's preprocessor will remove all function-like macros that are alone
+# on a line, have an all uppercase name, and do not end with a semicolon. Such
+# function macros are typically used for boiler-plate code, and will confuse
+# the parser if not removed.
+
+SKIP_FUNCTION_MACROS = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references
+#---------------------------------------------------------------------------
+
+# The TAGFILES option can be used to specify one or more tagfiles.
+# Optionally an initial location of the external documentation
+# can be added for each tagfile. The format of a tag file without
+# this location is as follows:
+# TAGFILES = file1 file2 ...
+# Adding location for the tag files is done as follows:
+# TAGFILES = file1=loc1 "file2 = loc2" ...
+# where "loc1" and "loc2" can be relative or absolute paths or
+# URLs. If a location is present for each tag, the installdox tool
+# does not have to be run to correct the links.
+# Note that each tag file must have a unique name
+# (where the name does NOT include the path)
+# If a tag file is not located in the directory in which doxygen
+# is run, you must also specify the path to the tagfile here.
+
+TAGFILES =
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create
+# a tag file that is based on the input files it reads.
+
+GENERATE_TAGFILE =
+
+# If the ALLEXTERNALS tag is set to YES all external classes will be listed
+# in the class index. If set to NO only the inherited external classes
+# will be listed.
+
+ALLEXTERNALS = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
+# in the modules index. If set to NO, only the current project's groups will
+# be listed.
+
+EXTERNAL_GROUPS = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script
+# interpreter (i.e. the result of `which perl').
+
+PERL_PATH = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
+# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
+# or super classes. Setting the tag to NO turns the diagrams off. Note that
+# this option is superseded by the HAVE_DOT option below. This is only a
+# fallback. It is recommended to install and use dot, since it yields more
+# powerful graphs.
+
+CLASS_DIAGRAMS = YES
+
+# If set to YES, the inheritance and collaboration graphs will hide
+# inheritance and usage relations if the target is undocumented
+# or is not a class.
+
+HIDE_UNDOC_RELATIONS = NO
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz, a graph visualization
+# toolkit from AT&T and Lucent Bell Labs. The other options in this section
+# have no effect if this option is set to NO (the default)
+
+HAVE_DOT = YES
+
+# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect inheritance relations. Setting this tag to YES will force the
+# the CLASS_DIAGRAMS tag to NO.
+
+CLASS_GRAPH = YES
+
+# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect implementation dependencies (inheritance, containment, and
+# class references variables) of the class with other documented classes.
+
+COLLABORATION_GRAPH = YES
+
+# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for groups, showing the direct groups dependencies
+
+GROUP_GRAPHS = YES
+
+# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
+# collaboration diagrams in a style similar to the OMG's Unified Modeling
+# Language.
+
+UML_LOOK = YES
+
+# If set to YES, the inheritance and collaboration graphs will show the
+# relations between templates and their instances.
+
+TEMPLATE_RELATIONS = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
+# tags are set to YES then doxygen will generate a graph for each documented
+# file showing the direct and indirect include dependencies of the file with
+# other documented files.:w
+
+
+INCLUDE_GRAPH = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
+# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
+# documented header file showing the documented files that directly or
+# indirectly include this file.
+
+INCLUDED_BY_GRAPH = YES
+
+# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will
+# generate a call dependency graph for every global function or class method.
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable call graphs for selected
+# functions only using the \callgraph command.
+
+CALL_GRAPH = YES
+
+# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then doxygen will
+# generate a caller dependency graph for every global function or class method.
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable caller graphs for selected
+# functions only using the \callergraph command.
+
+CALLER_GRAPH = YES
+
+# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
+# will graphical hierarchy of all classes instead of a textual one.
+
+GRAPHICAL_HIERARCHY = YES
+
+# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
+# then doxygen will show the dependencies a directory has on other directories
+# in a graphical way. The dependency relations are determined by the #include
+# relations between the files in the directories.
+
+DIRECTORY_GRAPH = YES
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+# generated by dot. Possible values are png, jpg, or gif
+# If left blank png will be used.
+
+DOT_IMAGE_FORMAT = png
+
+# The tag DOT_PATH can be used to specify the path where the dot tool can be
+# found. If left blank, it is assumed the dot tool can be found in the path.
+
+DOT_PATH =
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that
+# contain dot files that are included in the documentation (see the
+# \dotfile command).
+
+DOTFILE_DIRS =
+
+# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width
+# (in pixels) of the graphs generated by dot. If a graph becomes larger than
+# this value, doxygen will try to truncate the graph, so that it fits within
+# the specified constraint. Beware that most browsers cannot cope with very
+# large images.
+
+MAX_DOT_GRAPH_WIDTH = 1024
+
+# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height
+# (in pixels) of the graphs generated by dot. If a graph becomes larger than
+# this value, doxygen will try to truncate the graph, so that it fits within
+# the specified constraint. Beware that most browsers cannot cope with very
+# large images.
+
+MAX_DOT_GRAPH_HEIGHT = 1024
+
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
+# graphs generated by dot. A depth value of 3 means that only nodes reachable
+# from the root by following a path via at most 3 edges will be shown. Nodes
+# that lay further from the root node will be omitted. Note that setting this
+# option to 1 or 2 may greatly reduce the computation time needed for large
+# code bases. Also note that a graph may be further truncated if the graph's
+# image dimensions are not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH
+# and MAX_DOT_GRAPH_HEIGHT). If 0 is used for the depth value (the default),
+# the graph is not depth-constrained.
+
+MAX_DOT_GRAPH_DEPTH = 0
+
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
+# background. This is disabled by default, which results in a white background.
+# Warning: Depending on the platform used, enabling this option may lead to
+# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
+# read).
+
+DOT_TRANSPARENT = NO
+
+# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
+# files in one run (i.e. multiple -o and -T options on the command line). This
+# makes dot run faster, but since only newer versions of dot (>1.8.10)
+# support this, this feature is disabled by default.
+
+DOT_MULTI_TARGETS = YES
+
+# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
+# generate a legend page explaining the meaning of the various boxes and
+# arrows in the dot generated graphs.
+
+GENERATE_LEGEND = YES
+
+# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
+# remove the intermediate dot files that are used to generate
+# the various graphs.
+
+DOT_CLEANUP = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to the search engine
+#---------------------------------------------------------------------------
+
+# The SEARCHENGINE tag specifies whether or not a search engine should be
+# used. If set to NO the values of all tags below this one will be ignored.
+
+SEARCHENGINE = NO
diff --git a/doxygen/doxygen-all-pub.cfg b/doxygen/doxygen-all-pub.cfg
new file mode 100644
index 0000000..cd8dfb6
--- /dev/null
+++ b/doxygen/doxygen-all-pub.cfg
@@ -0,0 +1,1257 @@
+# Doxyfile 1.5.0
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project
+#
+# All text after a hash (#) is considered a comment and will be ignored
+# The format is:
+# TAG = value [value, ...]
+# For lists items can also be appended using:
+# TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (" ")
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
+# by quotes) that should identify the project.
+
+PROJECT_NAME = "JOGL - Public Documentation incl. Nativewindow & Newt"
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number.
+# This could be handy for archiving the generated documentation or
+# if some version control system is used.
+
+PROJECT_NUMBER = 2
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
+# base path where the generated documentation will be put.
+# If a relative path is entered, it will be relative to the location
+# where doxygen was started. If left blank the current directory will be used.
+
+OUTPUT_DIRECTORY = doc-jogl-pub
+
+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
+# 4096 sub-directories (in 2 levels) under the output directory of each output
+# format and will distribute the generated files over these directories.
+# Enabling this option can be useful when feeding doxygen a huge amount of
+# source files, where putting all generated files in the same directory would
+# otherwise cause performance problems for the file system.
+
+CREATE_SUBDIRS = YES
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# The default language is English, other supported languages are:
+# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
+# Croatian, Czech, Danish, Dutch, Finnish, French, German, Greek, Hungarian,
+# Italian, Japanese, Japanese-en (Japanese with English messages), Korean,
+# Korean-en, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Russian,
+# Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian.
+
+OUTPUT_LANGUAGE = English
+
+# This tag can be used to specify the encoding used in the generated output.
+# The encoding is not always determined by the language that is chosen,
+# but also whether or not the output is meant for Windows or non-Windows users.
+# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES
+# forces the Windows encoding (this is the default for the Windows binary),
+# whereas setting the tag to NO uses a Unix-style encoding (the default for
+# all platforms other than Windows).
+
+USE_WINDOWS_ENCODING = NO
+
+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
+# include brief member descriptions after the members that are listed in
+# the file and class documentation (similar to JavaDoc).
+# Set to NO to disable this.
+
+BRIEF_MEMBER_DESC = YES
+
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
+# the brief description of a member or function before the detailed description.
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# brief descriptions will be completely suppressed.
+
+REPEAT_BRIEF = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator
+# that is used to form the text in various listings. Each string
+# in this list, if found as the leading text of the brief description, will be
+# stripped from the text and the result after processing the whole list, is
+# used as the annotated text. Otherwise, the brief description is used as-is.
+# If left blank, the following values are used ("$name" is automatically
+# replaced with the name of the entity): "The $name class" "The $name widget"
+# "The $name file" "is" "provides" "specifies" "contains"
+# "represents" "a" "an" "the"
+
+ABBREVIATE_BRIEF =
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# Doxygen will generate a detailed section even if there is only a brief
+# description.
+
+ALWAYS_DETAILED_SEC = NO
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
+# inherited members of a class in the documentation of that class as if those
+# members were ordinary class members. Constructors, destructors and assignment
+# operators of the base classes will not be shown.
+
+INLINE_INHERITED_MEMB = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
+# path before files name in the file list and in the header files. If set
+# to NO the shortest path that makes the file name unique will be used.
+
+FULL_PATH_NAMES = YES
+
+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
+# can be used to strip a user-defined part of the path. Stripping is
+# only done if one of the specified strings matches the left-hand part of
+# the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which doxygen is run is used as the
+# path to strip.
+
+STRIP_FROM_PATH = /usr/local/projects/SUN/JOGL2 /export/usr/local/projects/SUN/JOGL2
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
+# the path mentioned in the documentation of a class, which tells
+# the reader which header file to include in order to use a class.
+# If left blank only the name of the header file containing the class
+# definition is used. Otherwise one should specify the include paths that
+# are normally passed to the compiler using the -I flag.
+
+STRIP_FROM_INC_PATH = /usr/local/projects/SUN/JOGL2 /export/usr/local/projects/SUN/JOGL2
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
+# (but less readable) file names. This can be useful is your file systems
+# doesn't support long names like on DOS, Mac, or CD-ROM.
+
+SHORT_NAMES = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
+# will interpret the first line (until the first dot) of a JavaDoc-style
+# comment as the brief description. If set to NO, the JavaDoc
+# comments will behave just like the Qt-style comments (thus requiring an
+# explicit @brief command for a brief description.
+
+JAVADOC_AUTOBRIEF = YES
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
+# treat a multi-line C++ special comment block (i.e. a block of //! or ///
+# comments) as a brief description. This used to be the default behaviour.
+# The new default is to treat a multi-line C++ comment block as a detailed
+# description. Set this tag to YES if you prefer the old behaviour instead.
+
+MULTILINE_CPP_IS_BRIEF = YES
+
+# If the DETAILS_AT_TOP tag is set to YES then Doxygen
+# will output the detailed description near the top, like JavaDoc.
+# If set to NO, the detailed description appears after the member
+# documentation.
+
+DETAILS_AT_TOP = NO
+
+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
+# member inherits the documentation from any documented member that it
+# re-implements.
+
+INHERIT_DOCS = YES
+
+# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
+# a new page for each member. If set to NO, the documentation of a member will
+# be part of the file/class/namespace that contains it.
+
+SEPARATE_MEMBER_PAGES = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab.
+# Doxygen uses this value to replace tabs by spaces in code fragments.
+
+TAB_SIZE = 4
+
+# This tag can be used to specify a number of aliases that acts
+# as commands in the documentation. An alias has the form "name=value".
+# For example adding "sideeffect=\par Side Effects:\n" will allow you to
+# put the command \sideeffect (or @sideeffect) in the documentation, which
+# will result in a user-defined paragraph with heading "Side Effects:".
+# You can put \n's in the value part of an alias to insert newlines.
+
+ALIASES =
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
+# sources only. Doxygen will then generate output that is more tailored for C.
+# For instance, some of the names that are used will be different. The list
+# of all members will be omitted, etc.
+
+OPTIMIZE_OUTPUT_FOR_C = NO
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
+# sources only. Doxygen will then generate output that is more tailored for Java.
+# For instance, namespaces will be presented as packages, qualified scopes
+# will look different, etc.
+
+OPTIMIZE_OUTPUT_JAVA = YES
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to
+# include (a tag file for) the STL sources as input, then you should
+# set this tag to YES in order to let doxygen match functions declarations and
+# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
+# func(std::string) {}). This also make the inheritance and collaboration
+# diagrams that involve STL classes more complete and accurate.
+
+BUILTIN_STL_SUPPORT = NO
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES, then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
+# all members of a group must be documented explicitly.
+
+DISTRIBUTE_GROUP_DOC = NO
+
+# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
+# the same type (for instance a group of public functions) to be put as a
+# subgroup of that type (e.g. under the Public Functions section). Set it to
+# NO to prevent subgrouping. Alternatively, this can be done per class using
+# the \nosubgrouping command.
+
+SUBGROUPING = YES
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
+# documentation are documented, even if no documentation was available.
+# Private class members and static file members will be hidden unless
+# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
+
+EXTRACT_ALL = YES
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
+# will be included in the documentation.
+
+EXTRACT_PRIVATE = YES
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file
+# will be included in the documentation.
+
+EXTRACT_STATIC = YES
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
+# defined locally in source files will be included in the documentation.
+# If set to NO only classes defined in header files are included.
+
+EXTRACT_LOCAL_CLASSES = YES
+
+# This flag is only useful for Objective-C code. When set to YES local
+# methods, which are defined in the implementation section but not in
+# the interface are included in the documentation.
+# If set to NO (the default) only methods in the interface are included.
+
+EXTRACT_LOCAL_METHODS = YES
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
+# undocumented members of documented classes, files or namespaces.
+# If set to NO (the default) these members will be included in the
+# various overviews, but no documentation section is generated.
+# This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_MEMBERS = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy.
+# If set to NO (the default) these classes will be included in the various
+# overviews. This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_CLASSES = NO
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
+# friend (class|struct|union) declarations.
+# If set to NO (the default) these declarations will be included in the
+# documentation.
+
+HIDE_FRIEND_COMPOUNDS = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
+# documentation blocks found inside the body of a function.
+# If set to NO (the default) these blocks will be appended to the
+# function's detailed documentation block.
+
+HIDE_IN_BODY_DOCS = NO
+
+# The INTERNAL_DOCS tag determines if documentation
+# that is typed after a \internal command is included. If the tag is set
+# to NO (the default) then the documentation will be excluded.
+# Set it to YES to include the internal documentation.
+
+INTERNAL_DOCS = YES
+
+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
+# file names in lower-case letters. If set to YES upper-case letters are also
+# allowed. This is useful if you have classes or files whose names only differ
+# in case and if your file system supports case sensitive file names. Windows
+# and Mac users are advised to set this option to NO.
+
+CASE_SENSE_NAMES = YES
+
+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
+# will show members with their full class and namespace scopes in the
+# documentation. If set to YES the scope will be hidden.
+
+HIDE_SCOPE_NAMES = NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
+# will put a list of the files that are included by a file in the documentation
+# of that file.
+
+SHOW_INCLUDE_FILES = YES
+
+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
+# is inserted in the documentation for inline members.
+
+INLINE_INFO = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
+# will sort the (detailed) documentation of file and class members
+# alphabetically by member name. If set to NO the members will appear in
+# declaration order.
+
+SORT_MEMBER_DOCS = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
+# brief documentation of file, namespace and class members alphabetically
+# by member name. If set to NO (the default) the members will appear in
+# declaration order.
+
+SORT_BRIEF_DOCS = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
+# sorted by fully-qualified names, including namespaces. If set to
+# NO (the default), the class list will be sorted only by class name,
+# not including the namespace part.
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the
+# alphabetical list.
+
+SORT_BY_SCOPE_NAME = NO
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or
+# disable (NO) the todo list. This list is created by putting \todo
+# commands in the documentation.
+
+GENERATE_TODOLIST = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or
+# disable (NO) the test list. This list is created by putting \test
+# commands in the documentation.
+
+GENERATE_TESTLIST = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or
+# disable (NO) the bug list. This list is created by putting \bug
+# commands in the documentation.
+
+GENERATE_BUGLIST = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
+# disable (NO) the deprecated list. This list is created by putting
+# \deprecated commands in the documentation.
+
+GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional
+# documentation sections, marked by \if sectionname ... \endif.
+
+ENABLED_SECTIONS =
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
+# the initial value of a variable or define consists of for it to appear in
+# the documentation. If the initializer consists of more lines than specified
+# here it will be hidden. Use a value of 0 to hide initializers completely.
+# The appearance of the initializer of individual variables and defines in the
+# documentation can be controlled using \showinitializer or \hideinitializer
+# command in the documentation regardless of this setting.
+
+MAX_INITIALIZER_LINES = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
+# at the bottom of the documentation of classes and structs. If set to YES the
+# list will mention the files that were used to generate the documentation.
+
+SHOW_USED_FILES = YES
+
+# If the sources in your project are distributed over multiple directories
+# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
+# in the documentation. The default is NO.
+
+SHOW_DIRECTORIES = YES
+
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# doxygen should invoke to get the current version for each file (typically from the
+# version control system). Doxygen will invoke the program by executing (via
+# popen()) the command <command> <input-file>, where <command> is the value of
+# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
+# provided by doxygen. Whatever the program writes to standard output
+# is used as the file version. See the manual for examples.
+
+FILE_VERSION_FILTER =
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated
+# by doxygen. Possible values are YES and NO. If left blank NO is used.
+
+QUIET = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated by doxygen. Possible values are YES and NO. If left blank
+# NO is used.
+
+WARNINGS = YES
+
+# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
+# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
+# automatically be disabled.
+
+WARN_IF_UNDOCUMENTED = YES
+
+# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
+# potential errors in the documentation, such as not documenting some
+# parameters in a documented function, or documenting parameters that
+# don't exist or using markup commands wrongly.
+
+WARN_IF_DOC_ERROR = YES
+
+# This WARN_NO_PARAMDOC option can be abled to get warnings for
+# functions that are documented, but have no documentation for their parameters
+# or return value. If set to NO (the default) doxygen will only warn about
+# wrong or incomplete parameter documentation, but not about the absence of
+# documentation.
+
+WARN_NO_PARAMDOC = NO
+
+# The WARN_FORMAT tag determines the format of the warning messages that
+# doxygen can produce. The string should contain the $file, $line, and $text
+# tags, which will be replaced by the file and line number from which the
+# warning originated and the warning text. Optionally the format may contain
+# $version, which will be replaced by the version of the file (if it could
+# be obtained via FILE_VERSION_FILTER)
+
+WARN_FORMAT = "$file:$line: $text"
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning
+# and error messages should be written. If left blank the output is written
+# to stderr.
+
+WARN_LOGFILE =
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag can be used to specify the files and/or directories that contain
+# documented source files. You may enter file names like "myfile.cpp" or
+# directories like "/usr/src/myproject". Separate the files or directories
+# with spaces.
+
+INPUT = ../src/jogl/classes/javax
+INPUT += ../build/jogl/gensrc/classes/javax
+INPUT += ../src/jogl/classes/com/sun/opengl/util
+INPUT += ../src/newt/classes/com/sun/javafx/newt
+
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank the following patterns are tested:
+# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx
+# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py
+
+FILE_PATTERNS =
+
+# The RECURSIVE tag can be used to turn specify whether or not subdirectories
+# should be searched for input files as well. Possible values are YES and NO.
+# If left blank NO is used.
+
+RECURSIVE = YES
+
+# The EXCLUDE tag can be used to specify files and/or directories that should
+# excluded from the INPUT source files. This way you can easily exclude a
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+
+EXCLUDE =
+
+# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
+# directories that are symbolic links (a Unix filesystem feature) are excluded
+# from the input.
+
+EXCLUDE_SYMLINKS = NO
+
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories. Note that the wildcards are matched
+# against the file with absolute path, so to exclude all test directories
+# for example use the pattern */test/*
+
+EXCLUDE_PATTERNS = */SCCS/* s.* p.*
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or
+# directories that contain example code fragments that are included (see
+# the \include command).
+
+#EXAMPLE_PATH = ../../jogl-demos/src
+EXAMPLE_PATH =
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank all files are included.
+
+EXAMPLE_PATTERNS =
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+# searched for input files to be used with the \include or \dontinclude
+# commands irrespective of the value of the RECURSIVE tag.
+# Possible values are YES and NO. If left blank NO is used.
+
+EXAMPLE_RECURSIVE = YES
+
+# The IMAGE_PATH tag can be used to specify one or more files or
+# directories that contain image that are included in the documentation (see
+# the \image command).
+
+IMAGE_PATH =
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program
+# by executing (via popen()) the command <filter> <input-file>, where <filter>
+# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
+# input file. Doxygen will then use the output that the filter program writes
+# to standard output. If FILTER_PATTERNS is specified, this tag will be
+# ignored.
+
+INPUT_FILTER =
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+# basis. Doxygen will compare the file name with each pattern and apply the
+# filter if there is a match. The filters are a list of the form:
+# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
+# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER
+# is applied to all files.
+
+FILTER_PATTERNS =
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+# INPUT_FILTER) will be used to filter the input files when producing source
+# files to browse (i.e. when SOURCE_BROWSER is set to YES).
+
+FILTER_SOURCE_FILES = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will
+# be generated. Documented entities will be cross-referenced with these sources.
+# Note: To get rid of all source code in the generated output, make sure also
+# VERBATIM_HEADERS is set to NO.
+
+SOURCE_BROWSER = YES
+
+# Setting the INLINE_SOURCES tag to YES will include the body
+# of functions and classes directly in the documentation.
+
+INLINE_SOURCES = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
+# doxygen to hide any special comment blocks from generated source code
+# fragments. Normal C and C++ comments will always remain visible.
+
+STRIP_CODE_COMMENTS = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES (the default)
+# then for each documented function all documented
+# functions referencing it will be listed.
+
+REFERENCED_BY_RELATION = YES
+
+# If the REFERENCES_RELATION tag is set to YES (the default)
+# then for each documented function all documented entities
+# called/used by that function will be listed.
+
+REFERENCES_RELATION = YES
+
+# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
+# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
+# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
+# link to the source code. Otherwise they will link to the documentstion.
+
+REFERENCES_LINK_SOURCE = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code
+# will point to the HTML generated by the htags(1) tool instead of doxygen
+# built-in source browser. The htags tool is part of GNU's global source
+# tagging system (see http://www.gnu.org/software/global/global.html). You
+# will need version 4.8.6 or higher.
+
+USE_HTAGS = NO
+
+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
+# will generate a verbatim copy of the header file for each class for
+# which an include is specified. Set to NO to disable this.
+
+VERBATIM_HEADERS = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
+# of all compounds will be generated. Enable this if the project
+# contains a lot of classes, structs, unions or interfaces.
+
+ALPHABETICAL_INDEX = YES
+
+# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
+# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
+# in which this list will be split (can be a number in the range [1..20])
+
+COLS_IN_ALPHA_INDEX = 5
+
+# In case all classes in a project start with a common prefix, all
+# classes will be put under the same header in the alphabetical index.
+# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
+# should be ignored while generating the index headers.
+
+IGNORE_PREFIX =
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
+# generate HTML output.
+
+GENERATE_HTML = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `html' will be used as the default path.
+
+HTML_OUTPUT = html
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
+# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
+# doxygen will generate files with .html extension.
+
+HTML_FILE_EXTENSION = .html
+
+# The HTML_HEADER tag can be used to specify a personal HTML header for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard header.
+
+HTML_HEADER =
+
+# The HTML_FOOTER tag can be used to specify a personal HTML footer for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard footer.
+
+HTML_FOOTER =
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
+# style sheet that is used by each HTML page. It can be used to
+# fine-tune the look of the HTML output. If the tag is left blank doxygen
+# will generate a default style sheet. Note that doxygen will try to copy
+# the style sheet file to the HTML output directory, so don't put your own
+# stylesheet in the HTML output directory as well, or it will be erased!
+
+HTML_STYLESHEET =
+
+# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
+# files or namespaces will be aligned in HTML using tables. If set to
+# NO a bullet list will be used.
+
+HTML_ALIGN_MEMBERS = YES
+
+# If the GENERATE_HTMLHELP tag is set to YES, additional index files
+# will be generated that can be used as input for tools like the
+# Microsoft HTML help workshop to generate a compressed HTML help file (.chm)
+# of the generated HTML documentation.
+
+GENERATE_HTMLHELP = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
+# be used to specify the file name of the resulting .chm file. You
+# can add a path in front of the file if the result should not be
+# written to the html output directory.
+
+CHM_FILE =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
+# be used to specify the location (absolute path including file name) of
+# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
+# the HTML help compiler on the generated index.hhp.
+
+HHC_LOCATION =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
+# controls if a separate .chi index file is generated (YES) or that
+# it should be included in the master .chm file (NO).
+
+GENERATE_CHI = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
+# controls whether a binary table of contents is generated (YES) or a
+# normal table of contents (NO) in the .chm file.
+
+BINARY_TOC = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members
+# to the contents of the HTML help documentation and to the tree view.
+
+TOC_EXPAND = NO
+
+# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
+# top of each HTML page. The value NO (the default) enables the index and
+# the value YES disables it.
+
+DISABLE_INDEX = NO
+
+# This tag can be used to set the number of enum values (range [1..20])
+# that doxygen will group on one line in the generated HTML documentation.
+
+ENUM_VALUES_PER_LINE = 4
+
+# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
+# generated containing a tree-like index structure (just like the one that
+# is generated for HTML Help). For this to work a browser that supports
+# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+,
+# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are
+# probably better off using the HTML help feature.
+
+GENERATE_TREEVIEW = YES
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
+# used to set the initial width (in pixels) of the frame in which the tree
+# is shown.
+
+TREEVIEW_WIDTH = 250
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
+# generate Latex output.
+
+GENERATE_LATEX = NO
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `latex' will be used as the default path.
+
+LATEX_OUTPUT = latex
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
+# invoked. If left blank `latex' will be used as the default command name.
+
+LATEX_CMD_NAME = latex
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
+# generate index for LaTeX. If left blank `makeindex' will be used as the
+# default command name.
+
+MAKEINDEX_CMD_NAME = makeindex
+
+# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
+# LaTeX documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_LATEX = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used
+# by the printer. Possible values are: a4, a4wide, letter, legal and
+# executive. If left blank a4wide will be used.
+
+PAPER_TYPE = a4wide
+
+# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
+# packages that should be included in the LaTeX output.
+
+EXTRA_PACKAGES =
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
+# the generated latex document. The header should contain everything until
+# the first chapter. If it is left blank doxygen will generate a
+# standard header. Notice: only use this tag if you know what you are doing!
+
+LATEX_HEADER =
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
+# is prepared for conversion to pdf (using ps2pdf). The pdf file will
+# contain links (just like the HTML output) instead of page references
+# This makes the output suitable for online browsing using a pdf viewer.
+
+PDF_HYPERLINKS = NO
+
+# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
+# plain latex in the generated Makefile. Set this option to YES to get a
+# higher quality PDF documentation.
+
+USE_PDFLATEX = NO
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
+# command to the generated LaTeX files. This will instruct LaTeX to keep
+# running if errors occur, instead of asking the user for help.
+# This option is also used when generating formulas in HTML.
+
+LATEX_BATCHMODE = NO
+
+# If LATEX_HIDE_INDICES is set to YES then doxygen will not
+# include the index chapters (such as File Index, Compound Index, etc.)
+# in the output.
+
+LATEX_HIDE_INDICES = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
+# The RTF output is optimized for Word 97 and may not look very pretty with
+# other RTF readers or editors.
+
+GENERATE_RTF = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `rtf' will be used as the default path.
+
+RTF_OUTPUT = rtf
+
+# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
+# RTF documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_RTF = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
+# will contain hyperlink fields. The RTF file will
+# contain links (just like the HTML output) instead of page references.
+# This makes the output suitable for online browsing using WORD or other
+# programs which support those fields.
+# Note: wordpad (write) and others do not support links.
+
+RTF_HYPERLINKS = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's
+# config file, i.e. a series of assignments. You only have to provide
+# replacements, missing definitions are set to their default value.
+
+RTF_STYLESHEET_FILE =
+
+# Set optional variables used in the generation of an rtf document.
+# Syntax is similar to doxygen's config file.
+
+RTF_EXTENSIONS_FILE =
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
+# generate man pages
+
+GENERATE_MAN = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `man' will be used as the default path.
+
+MAN_OUTPUT = man
+
+# The MAN_EXTENSION tag determines the extension that is added to
+# the generated man pages (default is the subroutine's section .3)
+
+MAN_EXTENSION = .3
+
+# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
+# then it will generate one additional man file for each entity
+# documented in the real man page(s). These additional files
+# only source the real man page, but without them the man command
+# would be unable to find the correct page. The default is NO.
+
+MAN_LINKS = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES Doxygen will
+# generate an XML file that captures the structure of
+# the code including all documentation.
+
+GENERATE_XML = NO
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `xml' will be used as the default path.
+
+XML_OUTPUT = xml
+
+# The XML_SCHEMA tag can be used to specify an XML schema,
+# which can be used by a validating XML parser to check the
+# syntax of the XML files.
+
+XML_SCHEMA =
+
+# The XML_DTD tag can be used to specify an XML DTD,
+# which can be used by a validating XML parser to check the
+# syntax of the XML files.
+
+XML_DTD =
+
+# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
+# dump the program listings (including syntax highlighting
+# and cross-referencing information) to the XML output. Note that
+# enabling this will significantly increase the size of the XML output.
+
+XML_PROGRAMLISTING = YES
+
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
+# generate an AutoGen Definitions (see autogen.sf.net) file
+# that captures the structure of the code including all
+# documentation. Note that this feature is still experimental
+# and incomplete at the moment.
+
+GENERATE_AUTOGEN_DEF = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_PERLMOD tag is set to YES Doxygen will
+# generate a Perl module file that captures the structure of
+# the code including all documentation. Note that this
+# feature is still experimental and incomplete at the
+# moment.
+
+GENERATE_PERLMOD = NO
+
+# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
+# the necessary Makefile rules, Perl scripts and LaTeX code to be able
+# to generate PDF and DVI output from the Perl module output.
+
+PERLMOD_LATEX = NO
+
+# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
+# nicely formatted so it can be parsed by a human reader. This is useful
+# if you want to understand what is going on. On the other hand, if this
+# tag is set to NO the size of the Perl module output will be much smaller
+# and Perl will parse it just the same.
+
+PERLMOD_PRETTY = YES
+
+# The names of the make variables in the generated doxyrules.make file
+# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
+# This is useful so different doxyrules.make files included by the same
+# Makefile don't overwrite each other's variables.
+
+PERLMOD_MAKEVAR_PREFIX =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
+# evaluate all C-preprocessor directives found in the sources and include
+# files.
+
+ENABLE_PREPROCESSING = NO
+
+# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
+# names in the source code. If set to NO (the default) only conditional
+# compilation will be performed. Macro expansion can be done in a controlled
+# way by setting EXPAND_ONLY_PREDEF to YES.
+
+MACRO_EXPANSION = NO
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
+# then the macro expansion is limited to the macros specified with the
+# PREDEFINED and EXPAND_AS_DEFINED tags.
+
+EXPAND_ONLY_PREDEF = NO
+
+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
+# in the INCLUDE_PATH (see below) will be search if a #include is found.
+
+SEARCH_INCLUDES = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that
+# contain include files that are not input files but should be processed by
+# the preprocessor.
+INCLUDE_PATH =
+
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
+# patterns (like *.h and *.hpp) to filter out the header-files in the
+# directories. If left blank, the patterns specified with FILE_PATTERNS will
+# be used.
+
+INCLUDE_FILE_PATTERNS =
+
+# The PREDEFINED tag can be used to specify one or more macro names that
+# are defined before the preprocessor is started (similar to the -D option of
+# gcc). The argument of the tag is a list of macros of the form: name
+# or name=definition (no spaces). If the definition and the = are
+# omitted =1 is assumed. To prevent a macro definition from being
+# undefined via #undef or recursively expanded use the := operator
+# instead of the = operator.
+
+PREDEFINED =
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
+# this tag can be used to specify a list of macro names that should be expanded.
+# The macro definition that is found in the sources will be used.
+# Use the PREDEFINED tag if you want to use a different macro definition.
+
+EXPAND_AS_DEFINED =
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
+# doxygen's preprocessor will remove all function-like macros that are alone
+# on a line, have an all uppercase name, and do not end with a semicolon. Such
+# function macros are typically used for boiler-plate code, and will confuse
+# the parser if not removed.
+
+SKIP_FUNCTION_MACROS = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references
+#---------------------------------------------------------------------------
+
+# The TAGFILES option can be used to specify one or more tagfiles.
+# Optionally an initial location of the external documentation
+# can be added for each tagfile. The format of a tag file without
+# this location is as follows:
+# TAGFILES = file1 file2 ...
+# Adding location for the tag files is done as follows:
+# TAGFILES = file1=loc1 "file2 = loc2" ...
+# where "loc1" and "loc2" can be relative or absolute paths or
+# URLs. If a location is present for each tag, the installdox tool
+# does not have to be run to correct the links.
+# Note that each tag file must have a unique name
+# (where the name does NOT include the path)
+# If a tag file is not located in the directory in which doxygen
+# is run, you must also specify the path to the tagfile here.
+
+TAGFILES =
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create
+# a tag file that is based on the input files it reads.
+
+GENERATE_TAGFILE =
+
+# If the ALLEXTERNALS tag is set to YES all external classes will be listed
+# in the class index. If set to NO only the inherited external classes
+# will be listed.
+
+ALLEXTERNALS = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
+# in the modules index. If set to NO, only the current project's groups will
+# be listed.
+
+EXTERNAL_GROUPS = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script
+# interpreter (i.e. the result of `which perl').
+
+PERL_PATH = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
+# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
+# or super classes. Setting the tag to NO turns the diagrams off. Note that
+# this option is superseded by the HAVE_DOT option below. This is only a
+# fallback. It is recommended to install and use dot, since it yields more
+# powerful graphs.
+
+CLASS_DIAGRAMS = YES
+
+# If set to YES, the inheritance and collaboration graphs will hide
+# inheritance and usage relations if the target is undocumented
+# or is not a class.
+
+HIDE_UNDOC_RELATIONS = NO
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz, a graph visualization
+# toolkit from AT&T and Lucent Bell Labs. The other options in this section
+# have no effect if this option is set to NO (the default)
+
+HAVE_DOT = YES
+
+# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect inheritance relations. Setting this tag to YES will force the
+# the CLASS_DIAGRAMS tag to NO.
+
+CLASS_GRAPH = YES
+
+# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect implementation dependencies (inheritance, containment, and
+# class references variables) of the class with other documented classes.
+
+COLLABORATION_GRAPH = YES
+
+# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for groups, showing the direct groups dependencies
+
+GROUP_GRAPHS = YES
+
+# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
+# collaboration diagrams in a style similar to the OMG's Unified Modeling
+# Language.
+
+UML_LOOK = YES
+
+# If set to YES, the inheritance and collaboration graphs will show the
+# relations between templates and their instances.
+
+TEMPLATE_RELATIONS = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
+# tags are set to YES then doxygen will generate a graph for each documented
+# file showing the direct and indirect include dependencies of the file with
+# other documented files.:w
+
+
+INCLUDE_GRAPH = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
+# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
+# documented header file showing the documented files that directly or
+# indirectly include this file.
+
+INCLUDED_BY_GRAPH = YES
+
+# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will
+# generate a call dependency graph for every global function or class method.
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable call graphs for selected
+# functions only using the \callgraph command.
+
+CALL_GRAPH = YES
+
+# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then doxygen will
+# generate a caller dependency graph for every global function or class method.
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable caller graphs for selected
+# functions only using the \callergraph command.
+
+CALLER_GRAPH = YES
+
+# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
+# will graphical hierarchy of all classes instead of a textual one.
+
+GRAPHICAL_HIERARCHY = YES
+
+# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
+# then doxygen will show the dependencies a directory has on other directories
+# in a graphical way. The dependency relations are determined by the #include
+# relations between the files in the directories.
+
+DIRECTORY_GRAPH = YES
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+# generated by dot. Possible values are png, jpg, or gif
+# If left blank png will be used.
+
+DOT_IMAGE_FORMAT = png
+
+# The tag DOT_PATH can be used to specify the path where the dot tool can be
+# found. If left blank, it is assumed the dot tool can be found in the path.
+
+DOT_PATH =
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that
+# contain dot files that are included in the documentation (see the
+# \dotfile command).
+
+DOTFILE_DIRS =
+
+# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width
+# (in pixels) of the graphs generated by dot. If a graph becomes larger than
+# this value, doxygen will try to truncate the graph, so that it fits within
+# the specified constraint. Beware that most browsers cannot cope with very
+# large images.
+
+MAX_DOT_GRAPH_WIDTH = 1024
+
+# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height
+# (in pixels) of the graphs generated by dot. If a graph becomes larger than
+# this value, doxygen will try to truncate the graph, so that it fits within
+# the specified constraint. Beware that most browsers cannot cope with very
+# large images.
+
+MAX_DOT_GRAPH_HEIGHT = 1024
+
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
+# graphs generated by dot. A depth value of 3 means that only nodes reachable
+# from the root by following a path via at most 3 edges will be shown. Nodes
+# that lay further from the root node will be omitted. Note that setting this
+# option to 1 or 2 may greatly reduce the computation time needed for large
+# code bases. Also note that a graph may be further truncated if the graph's
+# image dimensions are not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH
+# and MAX_DOT_GRAPH_HEIGHT). If 0 is used for the depth value (the default),
+# the graph is not depth-constrained.
+
+MAX_DOT_GRAPH_DEPTH = 0
+
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
+# background. This is disabled by default, which results in a white background.
+# Warning: Depending on the platform used, enabling this option may lead to
+# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
+# read).
+
+DOT_TRANSPARENT = NO
+
+# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
+# files in one run (i.e. multiple -o and -T options on the command line). This
+# makes dot run faster, but since only newer versions of dot (>1.8.10)
+# support this, this feature is disabled by default.
+
+DOT_MULTI_TARGETS = YES
+
+# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
+# generate a legend page explaining the meaning of the various boxes and
+# arrows in the dot generated graphs.
+
+GENERATE_LEGEND = YES
+
+# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
+# remove the intermediate dot files that are used to generate
+# the various graphs.
+
+DOT_CLEANUP = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to the search engine
+#---------------------------------------------------------------------------
+
+# The SEARCHENGINE tag specifies whether or not a search engine should be
+# used. If set to NO the values of all tags below this one will be ignored.
+
+SEARCHENGINE = NO
diff --git a/doxygen/doxygen-jogl-spec.cfg b/doxygen/doxygen-jogl-spec.cfg
new file mode 100644
index 0000000..d0b4162
--- /dev/null
+++ b/doxygen/doxygen-jogl-spec.cfg
@@ -0,0 +1,1254 @@
+# Doxyfile 1.5.0
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project
+#
+# All text after a hash (#) is considered a comment and will be ignored
+# The format is:
+# TAG = value [value, ...]
+# For lists items can also be appended using:
+# TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (" ")
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
+# by quotes) that should identify the project.
+
+PROJECT_NAME = "JOGL - Specification"
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number.
+# This could be handy for archiving the generated documentation or
+# if some version control system is used.
+
+PROJECT_NUMBER = 2
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
+# base path where the generated documentation will be put.
+# If a relative path is entered, it will be relative to the location
+# where doxygen was started. If left blank the current directory will be used.
+
+OUTPUT_DIRECTORY = doc-jogl-spec
+
+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
+# 4096 sub-directories (in 2 levels) under the output directory of each output
+# format and will distribute the generated files over these directories.
+# Enabling this option can be useful when feeding doxygen a huge amount of
+# source files, where putting all generated files in the same directory would
+# otherwise cause performance problems for the file system.
+
+CREATE_SUBDIRS = YES
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# The default language is English, other supported languages are:
+# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
+# Croatian, Czech, Danish, Dutch, Finnish, French, German, Greek, Hungarian,
+# Italian, Japanese, Japanese-en (Japanese with English messages), Korean,
+# Korean-en, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Russian,
+# Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian.
+
+OUTPUT_LANGUAGE = English
+
+# This tag can be used to specify the encoding used in the generated output.
+# The encoding is not always determined by the language that is chosen,
+# but also whether or not the output is meant for Windows or non-Windows users.
+# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES
+# forces the Windows encoding (this is the default for the Windows binary),
+# whereas setting the tag to NO uses a Unix-style encoding (the default for
+# all platforms other than Windows).
+
+USE_WINDOWS_ENCODING = NO
+
+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
+# include brief member descriptions after the members that are listed in
+# the file and class documentation (similar to JavaDoc).
+# Set to NO to disable this.
+
+BRIEF_MEMBER_DESC = YES
+
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
+# the brief description of a member or function before the detailed description.
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# brief descriptions will be completely suppressed.
+
+REPEAT_BRIEF = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator
+# that is used to form the text in various listings. Each string
+# in this list, if found as the leading text of the brief description, will be
+# stripped from the text and the result after processing the whole list, is
+# used as the annotated text. Otherwise, the brief description is used as-is.
+# If left blank, the following values are used ("$name" is automatically
+# replaced with the name of the entity): "The $name class" "The $name widget"
+# "The $name file" "is" "provides" "specifies" "contains"
+# "represents" "a" "an" "the"
+
+ABBREVIATE_BRIEF =
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# Doxygen will generate a detailed section even if there is only a brief
+# description.
+
+ALWAYS_DETAILED_SEC = NO
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
+# inherited members of a class in the documentation of that class as if those
+# members were ordinary class members. Constructors, destructors and assignment
+# operators of the base classes will not be shown.
+
+INLINE_INHERITED_MEMB = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
+# path before files name in the file list and in the header files. If set
+# to NO the shortest path that makes the file name unique will be used.
+
+FULL_PATH_NAMES = YES
+
+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
+# can be used to strip a user-defined part of the path. Stripping is
+# only done if one of the specified strings matches the left-hand part of
+# the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which doxygen is run is used as the
+# path to strip.
+
+STRIP_FROM_PATH = /usr/local/projects/SUN/JOGL2 /export/usr/local/projects/SUN/JOGL2
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
+# the path mentioned in the documentation of a class, which tells
+# the reader which header file to include in order to use a class.
+# If left blank only the name of the header file containing the class
+# definition is used. Otherwise one should specify the include paths that
+# are normally passed to the compiler using the -I flag.
+
+STRIP_FROM_INC_PATH = /usr/local/projects/SUN/JOGL2 /export/usr/local/projects/SUN/JOGL2
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
+# (but less readable) file names. This can be useful is your file systems
+# doesn't support long names like on DOS, Mac, or CD-ROM.
+
+SHORT_NAMES = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
+# will interpret the first line (until the first dot) of a JavaDoc-style
+# comment as the brief description. If set to NO, the JavaDoc
+# comments will behave just like the Qt-style comments (thus requiring an
+# explicit @brief command for a brief description.
+
+JAVADOC_AUTOBRIEF = YES
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
+# treat a multi-line C++ special comment block (i.e. a block of //! or ///
+# comments) as a brief description. This used to be the default behaviour.
+# The new default is to treat a multi-line C++ comment block as a detailed
+# description. Set this tag to YES if you prefer the old behaviour instead.
+
+MULTILINE_CPP_IS_BRIEF = YES
+
+# If the DETAILS_AT_TOP tag is set to YES then Doxygen
+# will output the detailed description near the top, like JavaDoc.
+# If set to NO, the detailed description appears after the member
+# documentation.
+
+DETAILS_AT_TOP = NO
+
+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
+# member inherits the documentation from any documented member that it
+# re-implements.
+
+INHERIT_DOCS = YES
+
+# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
+# a new page for each member. If set to NO, the documentation of a member will
+# be part of the file/class/namespace that contains it.
+
+SEPARATE_MEMBER_PAGES = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab.
+# Doxygen uses this value to replace tabs by spaces in code fragments.
+
+TAB_SIZE = 4
+
+# This tag can be used to specify a number of aliases that acts
+# as commands in the documentation. An alias has the form "name=value".
+# For example adding "sideeffect=\par Side Effects:\n" will allow you to
+# put the command \sideeffect (or @sideeffect) in the documentation, which
+# will result in a user-defined paragraph with heading "Side Effects:".
+# You can put \n's in the value part of an alias to insert newlines.
+
+ALIASES =
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
+# sources only. Doxygen will then generate output that is more tailored for C.
+# For instance, some of the names that are used will be different. The list
+# of all members will be omitted, etc.
+
+OPTIMIZE_OUTPUT_FOR_C = NO
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
+# sources only. Doxygen will then generate output that is more tailored for Java.
+# For instance, namespaces will be presented as packages, qualified scopes
+# will look different, etc.
+
+OPTIMIZE_OUTPUT_JAVA = YES
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to
+# include (a tag file for) the STL sources as input, then you should
+# set this tag to YES in order to let doxygen match functions declarations and
+# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
+# func(std::string) {}). This also make the inheritance and collaboration
+# diagrams that involve STL classes more complete and accurate.
+
+BUILTIN_STL_SUPPORT = NO
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES, then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
+# all members of a group must be documented explicitly.
+
+DISTRIBUTE_GROUP_DOC = NO
+
+# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
+# the same type (for instance a group of public functions) to be put as a
+# subgroup of that type (e.g. under the Public Functions section). Set it to
+# NO to prevent subgrouping. Alternatively, this can be done per class using
+# the \nosubgrouping command.
+
+SUBGROUPING = YES
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
+# documentation are documented, even if no documentation was available.
+# Private class members and static file members will be hidden unless
+# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
+
+EXTRACT_ALL = YES
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
+# will be included in the documentation.
+
+EXTRACT_PRIVATE = NO
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file
+# will be included in the documentation.
+
+EXTRACT_STATIC = YES
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
+# defined locally in source files will be included in the documentation.
+# If set to NO only classes defined in header files are included.
+
+EXTRACT_LOCAL_CLASSES = YES
+
+# This flag is only useful for Objective-C code. When set to YES local
+# methods, which are defined in the implementation section but not in
+# the interface are included in the documentation.
+# If set to NO (the default) only methods in the interface are included.
+
+EXTRACT_LOCAL_METHODS = YES
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
+# undocumented members of documented classes, files or namespaces.
+# If set to NO (the default) these members will be included in the
+# various overviews, but no documentation section is generated.
+# This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_MEMBERS = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy.
+# If set to NO (the default) these classes will be included in the various
+# overviews. This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_CLASSES = NO
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
+# friend (class|struct|union) declarations.
+# If set to NO (the default) these declarations will be included in the
+# documentation.
+
+HIDE_FRIEND_COMPOUNDS = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
+# documentation blocks found inside the body of a function.
+# If set to NO (the default) these blocks will be appended to the
+# function's detailed documentation block.
+
+HIDE_IN_BODY_DOCS = NO
+
+# The INTERNAL_DOCS tag determines if documentation
+# that is typed after a \internal command is included. If the tag is set
+# to NO (the default) then the documentation will be excluded.
+# Set it to YES to include the internal documentation.
+
+INTERNAL_DOCS = YES
+
+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
+# file names in lower-case letters. If set to YES upper-case letters are also
+# allowed. This is useful if you have classes or files whose names only differ
+# in case and if your file system supports case sensitive file names. Windows
+# and Mac users are advised to set this option to NO.
+
+CASE_SENSE_NAMES = YES
+
+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
+# will show members with their full class and namespace scopes in the
+# documentation. If set to YES the scope will be hidden.
+
+HIDE_SCOPE_NAMES = NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
+# will put a list of the files that are included by a file in the documentation
+# of that file.
+
+SHOW_INCLUDE_FILES = YES
+
+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
+# is inserted in the documentation for inline members.
+
+INLINE_INFO = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
+# will sort the (detailed) documentation of file and class members
+# alphabetically by member name. If set to NO the members will appear in
+# declaration order.
+
+SORT_MEMBER_DOCS = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
+# brief documentation of file, namespace and class members alphabetically
+# by member name. If set to NO (the default) the members will appear in
+# declaration order.
+
+SORT_BRIEF_DOCS = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
+# sorted by fully-qualified names, including namespaces. If set to
+# NO (the default), the class list will be sorted only by class name,
+# not including the namespace part.
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the
+# alphabetical list.
+
+SORT_BY_SCOPE_NAME = NO
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or
+# disable (NO) the todo list. This list is created by putting \todo
+# commands in the documentation.
+
+GENERATE_TODOLIST = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or
+# disable (NO) the test list. This list is created by putting \test
+# commands in the documentation.
+
+GENERATE_TESTLIST = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or
+# disable (NO) the bug list. This list is created by putting \bug
+# commands in the documentation.
+
+GENERATE_BUGLIST = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
+# disable (NO) the deprecated list. This list is created by putting
+# \deprecated commands in the documentation.
+
+GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional
+# documentation sections, marked by \if sectionname ... \endif.
+
+ENABLED_SECTIONS =
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
+# the initial value of a variable or define consists of for it to appear in
+# the documentation. If the initializer consists of more lines than specified
+# here it will be hidden. Use a value of 0 to hide initializers completely.
+# The appearance of the initializer of individual variables and defines in the
+# documentation can be controlled using \showinitializer or \hideinitializer
+# command in the documentation regardless of this setting.
+
+MAX_INITIALIZER_LINES = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
+# at the bottom of the documentation of classes and structs. If set to YES the
+# list will mention the files that were used to generate the documentation.
+
+SHOW_USED_FILES = YES
+
+# If the sources in your project are distributed over multiple directories
+# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
+# in the documentation. The default is NO.
+
+SHOW_DIRECTORIES = YES
+
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# doxygen should invoke to get the current version for each file (typically from the
+# version control system). Doxygen will invoke the program by executing (via
+# popen()) the command <command> <input-file>, where <command> is the value of
+# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
+# provided by doxygen. Whatever the program writes to standard output
+# is used as the file version. See the manual for examples.
+
+FILE_VERSION_FILTER =
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated
+# by doxygen. Possible values are YES and NO. If left blank NO is used.
+
+QUIET = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated by doxygen. Possible values are YES and NO. If left blank
+# NO is used.
+
+WARNINGS = YES
+
+# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
+# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
+# automatically be disabled.
+
+WARN_IF_UNDOCUMENTED = YES
+
+# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
+# potential errors in the documentation, such as not documenting some
+# parameters in a documented function, or documenting parameters that
+# don't exist or using markup commands wrongly.
+
+WARN_IF_DOC_ERROR = YES
+
+# This WARN_NO_PARAMDOC option can be abled to get warnings for
+# functions that are documented, but have no documentation for their parameters
+# or return value. If set to NO (the default) doxygen will only warn about
+# wrong or incomplete parameter documentation, but not about the absence of
+# documentation.
+
+WARN_NO_PARAMDOC = NO
+
+# The WARN_FORMAT tag determines the format of the warning messages that
+# doxygen can produce. The string should contain the $file, $line, and $text
+# tags, which will be replaced by the file and line number from which the
+# warning originated and the warning text. Optionally the format may contain
+# $version, which will be replaced by the version of the file (if it could
+# be obtained via FILE_VERSION_FILTER)
+
+WARN_FORMAT = "$file:$line: $text"
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning
+# and error messages should be written. If left blank the output is written
+# to stderr.
+
+WARN_LOGFILE =
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag can be used to specify the files and/or directories that contain
+# documented source files. You may enter file names like "myfile.cpp" or
+# directories like "/usr/src/myproject". Separate the files or directories
+# with spaces.
+
+INPUT = ../src/jogl/classes/javax
+INPUT += ../build/jogl/gensrc/classes/javax
+
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank the following patterns are tested:
+# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx
+# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py
+
+FILE_PATTERNS =
+
+# The RECURSIVE tag can be used to turn specify whether or not subdirectories
+# should be searched for input files as well. Possible values are YES and NO.
+# If left blank NO is used.
+
+RECURSIVE = YES
+
+# The EXCLUDE tag can be used to specify files and/or directories that should
+# excluded from the INPUT source files. This way you can easily exclude a
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+
+EXCLUDE =
+
+# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
+# directories that are symbolic links (a Unix filesystem feature) are excluded
+# from the input.
+
+EXCLUDE_SYMLINKS = NO
+
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories. Note that the wildcards are matched
+# against the file with absolute path, so to exclude all test directories
+# for example use the pattern */test/*
+
+EXCLUDE_PATTERNS = */SCCS/* s.* p.*
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or
+# directories that contain example code fragments that are included (see
+# the \include command).
+
+#EXAMPLE_PATH = ../../jogl-demos/src
+EXAMPLE_PATH =
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank all files are included.
+
+EXAMPLE_PATTERNS =
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+# searched for input files to be used with the \include or \dontinclude
+# commands irrespective of the value of the RECURSIVE tag.
+# Possible values are YES and NO. If left blank NO is used.
+
+EXAMPLE_RECURSIVE = YES
+
+# The IMAGE_PATH tag can be used to specify one or more files or
+# directories that contain image that are included in the documentation (see
+# the \image command).
+
+IMAGE_PATH =
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program
+# by executing (via popen()) the command <filter> <input-file>, where <filter>
+# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
+# input file. Doxygen will then use the output that the filter program writes
+# to standard output. If FILTER_PATTERNS is specified, this tag will be
+# ignored.
+
+INPUT_FILTER =
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+# basis. Doxygen will compare the file name with each pattern and apply the
+# filter if there is a match. The filters are a list of the form:
+# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
+# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER
+# is applied to all files.
+
+FILTER_PATTERNS =
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+# INPUT_FILTER) will be used to filter the input files when producing source
+# files to browse (i.e. when SOURCE_BROWSER is set to YES).
+
+FILTER_SOURCE_FILES = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will
+# be generated. Documented entities will be cross-referenced with these sources.
+# Note: To get rid of all source code in the generated output, make sure also
+# VERBATIM_HEADERS is set to NO.
+
+SOURCE_BROWSER = YES
+
+# Setting the INLINE_SOURCES tag to YES will include the body
+# of functions and classes directly in the documentation.
+
+INLINE_SOURCES = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
+# doxygen to hide any special comment blocks from generated source code
+# fragments. Normal C and C++ comments will always remain visible.
+
+STRIP_CODE_COMMENTS = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES (the default)
+# then for each documented function all documented
+# functions referencing it will be listed.
+
+REFERENCED_BY_RELATION = YES
+
+# If the REFERENCES_RELATION tag is set to YES (the default)
+# then for each documented function all documented entities
+# called/used by that function will be listed.
+
+REFERENCES_RELATION = YES
+
+# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
+# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
+# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
+# link to the source code. Otherwise they will link to the documentstion.
+
+REFERENCES_LINK_SOURCE = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code
+# will point to the HTML generated by the htags(1) tool instead of doxygen
+# built-in source browser. The htags tool is part of GNU's global source
+# tagging system (see http://www.gnu.org/software/global/global.html). You
+# will need version 4.8.6 or higher.
+
+USE_HTAGS = NO
+
+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
+# will generate a verbatim copy of the header file for each class for
+# which an include is specified. Set to NO to disable this.
+
+VERBATIM_HEADERS = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
+# of all compounds will be generated. Enable this if the project
+# contains a lot of classes, structs, unions or interfaces.
+
+ALPHABETICAL_INDEX = YES
+
+# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
+# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
+# in which this list will be split (can be a number in the range [1..20])
+
+COLS_IN_ALPHA_INDEX = 5
+
+# In case all classes in a project start with a common prefix, all
+# classes will be put under the same header in the alphabetical index.
+# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
+# should be ignored while generating the index headers.
+
+IGNORE_PREFIX =
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
+# generate HTML output.
+
+GENERATE_HTML = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `html' will be used as the default path.
+
+HTML_OUTPUT = html
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
+# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
+# doxygen will generate files with .html extension.
+
+HTML_FILE_EXTENSION = .html
+
+# The HTML_HEADER tag can be used to specify a personal HTML header for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard header.
+
+HTML_HEADER =
+
+# The HTML_FOOTER tag can be used to specify a personal HTML footer for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard footer.
+
+HTML_FOOTER =
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
+# style sheet that is used by each HTML page. It can be used to
+# fine-tune the look of the HTML output. If the tag is left blank doxygen
+# will generate a default style sheet. Note that doxygen will try to copy
+# the style sheet file to the HTML output directory, so don't put your own
+# stylesheet in the HTML output directory as well, or it will be erased!
+
+HTML_STYLESHEET =
+
+# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
+# files or namespaces will be aligned in HTML using tables. If set to
+# NO a bullet list will be used.
+
+HTML_ALIGN_MEMBERS = YES
+
+# If the GENERATE_HTMLHELP tag is set to YES, additional index files
+# will be generated that can be used as input for tools like the
+# Microsoft HTML help workshop to generate a compressed HTML help file (.chm)
+# of the generated HTML documentation.
+
+GENERATE_HTMLHELP = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
+# be used to specify the file name of the resulting .chm file. You
+# can add a path in front of the file if the result should not be
+# written to the html output directory.
+
+CHM_FILE =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
+# be used to specify the location (absolute path including file name) of
+# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
+# the HTML help compiler on the generated index.hhp.
+
+HHC_LOCATION =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
+# controls if a separate .chi index file is generated (YES) or that
+# it should be included in the master .chm file (NO).
+
+GENERATE_CHI = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
+# controls whether a binary table of contents is generated (YES) or a
+# normal table of contents (NO) in the .chm file.
+
+BINARY_TOC = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members
+# to the contents of the HTML help documentation and to the tree view.
+
+TOC_EXPAND = NO
+
+# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
+# top of each HTML page. The value NO (the default) enables the index and
+# the value YES disables it.
+
+DISABLE_INDEX = NO
+
+# This tag can be used to set the number of enum values (range [1..20])
+# that doxygen will group on one line in the generated HTML documentation.
+
+ENUM_VALUES_PER_LINE = 4
+
+# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
+# generated containing a tree-like index structure (just like the one that
+# is generated for HTML Help). For this to work a browser that supports
+# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+,
+# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are
+# probably better off using the HTML help feature.
+
+GENERATE_TREEVIEW = YES
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
+# used to set the initial width (in pixels) of the frame in which the tree
+# is shown.
+
+TREEVIEW_WIDTH = 250
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
+# generate Latex output.
+
+GENERATE_LATEX = NO
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `latex' will be used as the default path.
+
+LATEX_OUTPUT = latex
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
+# invoked. If left blank `latex' will be used as the default command name.
+
+LATEX_CMD_NAME = latex
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
+# generate index for LaTeX. If left blank `makeindex' will be used as the
+# default command name.
+
+MAKEINDEX_CMD_NAME = makeindex
+
+# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
+# LaTeX documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_LATEX = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used
+# by the printer. Possible values are: a4, a4wide, letter, legal and
+# executive. If left blank a4wide will be used.
+
+PAPER_TYPE = a4wide
+
+# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
+# packages that should be included in the LaTeX output.
+
+EXTRA_PACKAGES =
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
+# the generated latex document. The header should contain everything until
+# the first chapter. If it is left blank doxygen will generate a
+# standard header. Notice: only use this tag if you know what you are doing!
+
+LATEX_HEADER =
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
+# is prepared for conversion to pdf (using ps2pdf). The pdf file will
+# contain links (just like the HTML output) instead of page references
+# This makes the output suitable for online browsing using a pdf viewer.
+
+PDF_HYPERLINKS = NO
+
+# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
+# plain latex in the generated Makefile. Set this option to YES to get a
+# higher quality PDF documentation.
+
+USE_PDFLATEX = NO
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
+# command to the generated LaTeX files. This will instruct LaTeX to keep
+# running if errors occur, instead of asking the user for help.
+# This option is also used when generating formulas in HTML.
+
+LATEX_BATCHMODE = NO
+
+# If LATEX_HIDE_INDICES is set to YES then doxygen will not
+# include the index chapters (such as File Index, Compound Index, etc.)
+# in the output.
+
+LATEX_HIDE_INDICES = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
+# The RTF output is optimized for Word 97 and may not look very pretty with
+# other RTF readers or editors.
+
+GENERATE_RTF = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `rtf' will be used as the default path.
+
+RTF_OUTPUT = rtf
+
+# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
+# RTF documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_RTF = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
+# will contain hyperlink fields. The RTF file will
+# contain links (just like the HTML output) instead of page references.
+# This makes the output suitable for online browsing using WORD or other
+# programs which support those fields.
+# Note: wordpad (write) and others do not support links.
+
+RTF_HYPERLINKS = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's
+# config file, i.e. a series of assignments. You only have to provide
+# replacements, missing definitions are set to their default value.
+
+RTF_STYLESHEET_FILE =
+
+# Set optional variables used in the generation of an rtf document.
+# Syntax is similar to doxygen's config file.
+
+RTF_EXTENSIONS_FILE =
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
+# generate man pages
+
+GENERATE_MAN = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `man' will be used as the default path.
+
+MAN_OUTPUT = man
+
+# The MAN_EXTENSION tag determines the extension that is added to
+# the generated man pages (default is the subroutine's section .3)
+
+MAN_EXTENSION = .3
+
+# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
+# then it will generate one additional man file for each entity
+# documented in the real man page(s). These additional files
+# only source the real man page, but without them the man command
+# would be unable to find the correct page. The default is NO.
+
+MAN_LINKS = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES Doxygen will
+# generate an XML file that captures the structure of
+# the code including all documentation.
+
+GENERATE_XML = NO
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `xml' will be used as the default path.
+
+XML_OUTPUT = xml
+
+# The XML_SCHEMA tag can be used to specify an XML schema,
+# which can be used by a validating XML parser to check the
+# syntax of the XML files.
+
+XML_SCHEMA =
+
+# The XML_DTD tag can be used to specify an XML DTD,
+# which can be used by a validating XML parser to check the
+# syntax of the XML files.
+
+XML_DTD =
+
+# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
+# dump the program listings (including syntax highlighting
+# and cross-referencing information) to the XML output. Note that
+# enabling this will significantly increase the size of the XML output.
+
+XML_PROGRAMLISTING = YES
+
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
+# generate an AutoGen Definitions (see autogen.sf.net) file
+# that captures the structure of the code including all
+# documentation. Note that this feature is still experimental
+# and incomplete at the moment.
+
+GENERATE_AUTOGEN_DEF = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_PERLMOD tag is set to YES Doxygen will
+# generate a Perl module file that captures the structure of
+# the code including all documentation. Note that this
+# feature is still experimental and incomplete at the
+# moment.
+
+GENERATE_PERLMOD = NO
+
+# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
+# the necessary Makefile rules, Perl scripts and LaTeX code to be able
+# to generate PDF and DVI output from the Perl module output.
+
+PERLMOD_LATEX = NO
+
+# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
+# nicely formatted so it can be parsed by a human reader. This is useful
+# if you want to understand what is going on. On the other hand, if this
+# tag is set to NO the size of the Perl module output will be much smaller
+# and Perl will parse it just the same.
+
+PERLMOD_PRETTY = YES
+
+# The names of the make variables in the generated doxyrules.make file
+# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
+# This is useful so different doxyrules.make files included by the same
+# Makefile don't overwrite each other's variables.
+
+PERLMOD_MAKEVAR_PREFIX =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
+# evaluate all C-preprocessor directives found in the sources and include
+# files.
+
+ENABLE_PREPROCESSING = NO
+
+# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
+# names in the source code. If set to NO (the default) only conditional
+# compilation will be performed. Macro expansion can be done in a controlled
+# way by setting EXPAND_ONLY_PREDEF to YES.
+
+MACRO_EXPANSION = NO
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
+# then the macro expansion is limited to the macros specified with the
+# PREDEFINED and EXPAND_AS_DEFINED tags.
+
+EXPAND_ONLY_PREDEF = NO
+
+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
+# in the INCLUDE_PATH (see below) will be search if a #include is found.
+
+SEARCH_INCLUDES = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that
+# contain include files that are not input files but should be processed by
+# the preprocessor.
+INCLUDE_PATH =
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
+# patterns (like *.h and *.hpp) to filter out the header-files in the
+# directories. If left blank, the patterns specified with FILE_PATTERNS will
+# be used.
+
+INCLUDE_FILE_PATTERNS =
+
+# The PREDEFINED tag can be used to specify one or more macro names that
+# are defined before the preprocessor is started (similar to the -D option of
+# gcc). The argument of the tag is a list of macros of the form: name
+# or name=definition (no spaces). If the definition and the = are
+# omitted =1 is assumed. To prevent a macro definition from being
+# undefined via #undef or recursively expanded use the := operator
+# instead of the = operator.
+
+PREDEFINED =
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
+# this tag can be used to specify a list of macro names that should be expanded.
+# The macro definition that is found in the sources will be used.
+# Use the PREDEFINED tag if you want to use a different macro definition.
+
+EXPAND_AS_DEFINED =
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
+# doxygen's preprocessor will remove all function-like macros that are alone
+# on a line, have an all uppercase name, and do not end with a semicolon. Such
+# function macros are typically used for boiler-plate code, and will confuse
+# the parser if not removed.
+
+SKIP_FUNCTION_MACROS = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references
+#---------------------------------------------------------------------------
+
+# The TAGFILES option can be used to specify one or more tagfiles.
+# Optionally an initial location of the external documentation
+# can be added for each tagfile. The format of a tag file without
+# this location is as follows:
+# TAGFILES = file1 file2 ...
+# Adding location for the tag files is done as follows:
+# TAGFILES = file1=loc1 "file2 = loc2" ...
+# where "loc1" and "loc2" can be relative or absolute paths or
+# URLs. If a location is present for each tag, the installdox tool
+# does not have to be run to correct the links.
+# Note that each tag file must have a unique name
+# (where the name does NOT include the path)
+# If a tag file is not located in the directory in which doxygen
+# is run, you must also specify the path to the tagfile here.
+
+TAGFILES =
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create
+# a tag file that is based on the input files it reads.
+
+GENERATE_TAGFILE =
+
+# If the ALLEXTERNALS tag is set to YES all external classes will be listed
+# in the class index. If set to NO only the inherited external classes
+# will be listed.
+
+ALLEXTERNALS = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
+# in the modules index. If set to NO, only the current project's groups will
+# be listed.
+
+EXTERNAL_GROUPS = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script
+# interpreter (i.e. the result of `which perl').
+
+PERL_PATH = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
+# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
+# or super classes. Setting the tag to NO turns the diagrams off. Note that
+# this option is superseded by the HAVE_DOT option below. This is only a
+# fallback. It is recommended to install and use dot, since it yields more
+# powerful graphs.
+
+CLASS_DIAGRAMS = YES
+
+# If set to YES, the inheritance and collaboration graphs will hide
+# inheritance and usage relations if the target is undocumented
+# or is not a class.
+
+HIDE_UNDOC_RELATIONS = NO
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz, a graph visualization
+# toolkit from AT&T and Lucent Bell Labs. The other options in this section
+# have no effect if this option is set to NO (the default)
+
+HAVE_DOT = YES
+
+# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect inheritance relations. Setting this tag to YES will force the
+# the CLASS_DIAGRAMS tag to NO.
+
+CLASS_GRAPH = YES
+
+# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect implementation dependencies (inheritance, containment, and
+# class references variables) of the class with other documented classes.
+
+COLLABORATION_GRAPH = YES
+
+# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for groups, showing the direct groups dependencies
+
+GROUP_GRAPHS = YES
+
+# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
+# collaboration diagrams in a style similar to the OMG's Unified Modeling
+# Language.
+
+UML_LOOK = YES
+
+# If set to YES, the inheritance and collaboration graphs will show the
+# relations between templates and their instances.
+
+TEMPLATE_RELATIONS = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
+# tags are set to YES then doxygen will generate a graph for each documented
+# file showing the direct and indirect include dependencies of the file with
+# other documented files.:w
+
+
+INCLUDE_GRAPH = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
+# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
+# documented header file showing the documented files that directly or
+# indirectly include this file.
+
+INCLUDED_BY_GRAPH = YES
+
+# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will
+# generate a call dependency graph for every global function or class method.
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable call graphs for selected
+# functions only using the \callgraph command.
+
+CALL_GRAPH = YES
+
+# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then doxygen will
+# generate a caller dependency graph for every global function or class method.
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable caller graphs for selected
+# functions only using the \callergraph command.
+
+CALLER_GRAPH = YES
+
+# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
+# will graphical hierarchy of all classes instead of a textual one.
+
+GRAPHICAL_HIERARCHY = YES
+
+# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
+# then doxygen will show the dependencies a directory has on other directories
+# in a graphical way. The dependency relations are determined by the #include
+# relations between the files in the directories.
+
+DIRECTORY_GRAPH = YES
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+# generated by dot. Possible values are png, jpg, or gif
+# If left blank png will be used.
+
+DOT_IMAGE_FORMAT = png
+
+# The tag DOT_PATH can be used to specify the path where the dot tool can be
+# found. If left blank, it is assumed the dot tool can be found in the path.
+
+DOT_PATH =
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that
+# contain dot files that are included in the documentation (see the
+# \dotfile command).
+
+DOTFILE_DIRS =
+
+# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width
+# (in pixels) of the graphs generated by dot. If a graph becomes larger than
+# this value, doxygen will try to truncate the graph, so that it fits within
+# the specified constraint. Beware that most browsers cannot cope with very
+# large images.
+
+MAX_DOT_GRAPH_WIDTH = 1024
+
+# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height
+# (in pixels) of the graphs generated by dot. If a graph becomes larger than
+# this value, doxygen will try to truncate the graph, so that it fits within
+# the specified constraint. Beware that most browsers cannot cope with very
+# large images.
+
+MAX_DOT_GRAPH_HEIGHT = 1024
+
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
+# graphs generated by dot. A depth value of 3 means that only nodes reachable
+# from the root by following a path via at most 3 edges will be shown. Nodes
+# that lay further from the root node will be omitted. Note that setting this
+# option to 1 or 2 may greatly reduce the computation time needed for large
+# code bases. Also note that a graph may be further truncated if the graph's
+# image dimensions are not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH
+# and MAX_DOT_GRAPH_HEIGHT). If 0 is used for the depth value (the default),
+# the graph is not depth-constrained.
+
+MAX_DOT_GRAPH_DEPTH = 0
+
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
+# background. This is disabled by default, which results in a white background.
+# Warning: Depending on the platform used, enabling this option may lead to
+# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
+# read).
+
+DOT_TRANSPARENT = NO
+
+# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
+# files in one run (i.e. multiple -o and -T options on the command line). This
+# makes dot run faster, but since only newer versions of dot (>1.8.10)
+# support this, this feature is disabled by default.
+
+DOT_MULTI_TARGETS = YES
+
+# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
+# generate a legend page explaining the meaning of the various boxes and
+# arrows in the dot generated graphs.
+
+GENERATE_LEGEND = YES
+
+# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
+# remove the intermediate dot files that are used to generate
+# the various graphs.
+
+DOT_CLEANUP = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to the search engine
+#---------------------------------------------------------------------------
+
+# The SEARCHENGINE tag specifies whether or not a search engine should be
+# used. If set to NO the values of all tags below this one will be ignored.
+
+SEARCHENGINE = NO
diff --git a/etc/profile.jogl b/etc/profile.jogl
new file mode 100755
index 0000000..517e39b
--- /dev/null
+++ b/etc/profile.jogl
@@ -0,0 +1,105 @@
+#! /bin/sh
+
+function concat_jogl_list()
+{
+ ITEMDIR=$1
+ shift
+ for j in $ITEMDIR/nativewindow $ITEMDIR/jogl $ITEMDIR/newt ; do
+ for i in $* ; do
+ if [ -e $j/$i ] ; then
+ if [ -z "$JOGL_LIST" ] ; then
+ JOGL_LIST=$j/$i
+ else
+ JOGL_LIST=$JOGL_LIST:$j/$i
+ fi
+ fi
+ done
+ done
+ echo $JOGL_LIST
+}
+
+uname -a | grep -i LINUX && OSS=x11
+uname -a | grep -i Darwin && OSS=osx
+
+JOGL_AWT="jogl.awt.jar jogl.util.awt.jar newt.awt.jar nativewindow.awt.jar"
+
+JOGL_CORE="nativewindow.core.jar jogl.core.jar newt.core.jar newt.ogl.jar jogl.util.jar"
+
+JOGL_JAR_ALL="$JOGL_CORE jogl.gles1.jar jogl.gles1.dbg.jar jogl.gles2.jar jogl.gles2.dbg.jar jogl.egl.jar jogl.gl2es12.$OSS.jar jogl.gl2es12.dbg.jar jogl.gl2.$OSS.jar jogl.gl2.dbg.jar jogl.util.gl2.jar jogl.glu.tess.jar jogl.glu.mipmap.jar jogl.glu.gl2.jar jogl.util.gl2.jar jogl.util.fixedfuncemu.jar $JOGL_AWT"
+JOGL_LIB_ALL="libjogl_gl2.so libjogl_es1.so libjogl_es2.so libnewt.so libjogl_awt.so"
+
+JOGL_JAR_ES1_MIN="$JOGL_CORE jogl.gles1.jar jogl.egl.jar"
+JOGL_JAR_ES1_MAX="$JOGL_CORE jogl.gles1.jar jogl.gles1.dbg.jar jogl.egl.jar jogl.glu.tess.jar jogl.glu.mipmap.jar $JOGL_AWT"
+JOGL_LIB_ES1_MIN="libjogl_es1.so libnewt.so"
+JOGL_LIB_ES1_MAX="libjogl_es1.so libnewt.so libjogl_awt.so libnativewindow_x11.so libnativewindow_awt.so"
+
+JOGL_JAR_ES2_MIN="$JOGL_CORE jogl.gles2.jar jogl.egl.jar jogl.util.fixedfuncemu.jar"
+JOGL_JAR_ES2_MAX="$JOGL_CORE jogl.gles2.jar jogl.egl.jar jogl.util.fixedfuncemu.jar jogl.glu.tess.jar $JOGL_AWT"
+JOGL_LIB_ES2_MIN="libjogl_es2.so libnewt.so"
+JOGL_LIB_ES2_MAX="libjogl_es2.so libnewt.so libjogl_awt.so libnativewindow_x11.so libnativewindow_awt.so"
+
+JOGL_JAR_GL2ES12_MIN="$JOGL_CORE jogl.gl2es12.$OSS.jar jogl.util.fixedfuncemu.jar"
+JOGL_JAR_GL2ES12_MAX="$JOGL_CORE jogl.gl2es12.$OSS.jar jogl.util.fixedfuncemu.jar jogl.gl2es12.dbg.jar jogl.glu.tess.jar jogl.glu.mipmap.jar $JOGL_AWT"
+JOGL_LIB_GL2ES12_MIN="libjogl_gl2es12.so libnewt.so libnativewindow_x11.so libnativewindow_awt.so"
+JOGL_LIB_GL2ES12_MAX="libjogl_gl2es12.so libnewt.so libnativewindow_x11.so libnativewindow_awt.so"
+
+JOGL_JAR_GL2_MIN="$JOGL_CORE jogl.gl2.$OSS.jar"
+JOGL_JAR_GL2_MAX="$JOGL_CORE jogl.gl2.$OSS.jar jogl.gl2.dbg.jar jogl.glu.tess.jar jogl.glu.mipmap.jar jogl.glu.gl2.jar jogl.util.gl2.jar $JOGL_AWT"
+JOGL_LIB_GL2_MIN="libjogl_gl2.so libnewt.so libnativewindow_x11.so libnativewindow_awt.so"
+JOGL_LIB_GL2_MAX="libjogl_gl2.so libnewt.so libnativewindow_x11.so libnativewindow_awt.so"
+
+export JOGL_JAR_ALL JOGL_JAR_ES1_MIN JOGL_JAR_ES1_MAX JOGL_JAR_ES2_MIN JOGL_JAR_ES2_MAX JOGL_JAR_GL2ES12_MIN JOGL_JAR_GL2ES12_MAX JOGL_JAR_GL2_MIN JOGL_JAR_GL2_MAX
+export JOGL_LIB_ALL JOGL_LIB_ES1_MIN JOGL_LIB_ES1_MAX JOGL_LIB_ES2_MIN JOGL_LIB_ES2_MAX JOGL_LIB_GL2ES12_MIN JOGL_LIB_GL2ES12_MAX JOGL_LIB_GL2_MIN JOGL_LIB_GL2_MAX
+
+JOGL_JAR_DIR=""
+if [ ! -z "$1" ] ; then
+ JOGL_JAR_DIR="$1"
+ shift
+fi
+export JOGL_JAR_DIR
+
+JOGL_LIB_DIR=$JOGL_JAR_DIR/nativewindow/obj:$JOGL_JAR_DIR/jogl/obj:$JOGL_JAR_DIR/newt/obj
+export JOGL_LIB_DIR
+
+if [ ! -z "$1" ] ; then
+ case "$1" in
+ JOGL_ALL)
+ JOGL_CLASSPATH=$(concat_jogl_list $JOGL_JAR_DIR $JOGL_JAR_ALL)
+ ;;
+ JOGL_ES1_MIN)
+ JOGL_CLASSPATH=$(concat_jogl_list $JOGL_JAR_DIR $JOGL_JAR_ES1_MIN)
+ JOGL_VBO_BUG=true ; export JOGL_VBO_BUG # ES emulation has buggy VBO impl.
+ ;;
+ JOGL_ES1_MAX)
+ JOGL_CLASSPATH=$(concat_jogl_list $JOGL_JAR_DIR $JOGL_JAR_ES1_MAX)
+ JOGL_VBO_BUG=true ; export JOGL_VBO_BUG # ES emulation has buggy VBO impl.
+ ;;
+ JOGL_ES2_MIN)
+ JOGL_CLASSPATH=$(concat_jogl_list $JOGL_JAR_DIR $JOGL_JAR_ES2_MIN)
+ JOGL_VBO_BUG=true ; export JOGL_VBO_BUG # ES emulation has buggy VBO impl.
+ ;;
+ JOGL_ES2_MAX)
+ JOGL_CLASSPATH=$(concat_jogl_list $JOGL_JAR_DIR $JOGL_JAR_ES2_MAX)
+ JOGL_VBO_BUG=true ; export JOGL_VBO_BUG # ES emulation has buggy VBO impl.
+ ;;
+ JOGL_GL2ES12_MIN)
+ JOGL_CLASSPATH=$(concat_jogl_list $JOGL_JAR_DIR $JOGL_JAR_GL2ES12_MIN)
+ ;;
+ JOGL_GL2ES12_MAX)
+ JOGL_CLASSPATH=$(concat_jogl_list $JOGL_JAR_DIR $JOGL_JAR_GL2ES12_MAX)
+ ;;
+ JOGL_GL2_MIN)
+ JOGL_CLASSPATH=$(concat_jogl_list $JOGL_JAR_DIR $JOGL_JAR_GL2_MIN)
+ ;;
+ JOGL_GL2_MAX)
+ JOGL_CLASSPATH=$(concat_jogl_list $JOGL_JAR_DIR $JOGL_JAR_GL2_MAX)
+ ;;
+ esac
+
+ export JOGL_CLASSPATH
+fi
+
+if [ -z "$JOGL_CLASSPATH" ] ; then
+ echo "Usage: $0 <jogl-jar-dir> <jogl-lib-dir> {JOGL_ALL|JOGL_ES1_MIN|JOGL_ES1_MAX|JOGL_ES2_MIN|JOGL_ES2_MAX|JOGL_GL2ES12_MIN|JOGL_GL2ES12_MAX|JOGL_GL2_MIN|JOGL_GL2_MAX}"
+fi
+
diff --git a/make/142-packages/package-list b/make/142-packages/package-list
new file mode 100755
index 0000000..fecd4d4
--- /dev/null
+++ b/make/142-packages/package-list
@@ -0,0 +1,135 @@
+java.applet
+java.awt
+java.awt.color
+java.awt.datatransfer
+java.awt.dnd
+java.awt.event
+java.awt.font
+java.awt.geom
+java.awt.im
+java.awt.im.spi
+java.awt.image
+java.awt.image.renderable
+java.awt.print
+java.beans
+java.beans.beancontext
+java.io
+java.lang
+java.lang.ref
+java.lang.reflect
+java.math
+java.net
+java.nio
+java.nio.channels
+java.nio.channels.spi
+java.nio.charset
+java.nio.charset.spi
+java.rmi
+java.rmi.activation
+java.rmi.dgc
+java.rmi.registry
+java.rmi.server
+java.security
+java.security.acl
+java.security.cert
+java.security.interfaces
+java.security.spec
+java.sql
+java.text
+java.util
+java.util.jar
+java.util.logging
+java.util.prefs
+java.util.regex
+java.util.zip
+javax.accessibility
+javax.crypto
+javax.crypto.interfaces
+javax.crypto.spec
+javax.imageio
+javax.imageio.event
+javax.imageio.metadata
+javax.imageio.plugins.jpeg
+javax.imageio.spi
+javax.imageio.stream
+javax.naming
+javax.naming.directory
+javax.naming.event
+javax.naming.ldap
+javax.naming.spi
+javax.net
+javax.net.ssl
+javax.print
+javax.print.attribute
+javax.print.attribute.standard
+javax.print.event
+javax.rmi
+javax.rmi.CORBA
+javax.security.auth
+javax.security.auth.callback
+javax.security.auth.kerberos
+javax.security.auth.login
+javax.security.auth.spi
+javax.security.auth.x500
+javax.security.cert
+javax.sound.midi
+javax.sound.midi.spi
+javax.sound.sampled
+javax.sound.sampled.spi
+javax.sql
+javax.swing
+javax.swing.border
+javax.swing.colorchooser
+javax.swing.event
+javax.swing.filechooser
+javax.swing.plaf
+javax.swing.plaf.basic
+javax.swing.plaf.metal
+javax.swing.plaf.multi
+javax.swing.table
+javax.swing.text
+javax.swing.text.html
+javax.swing.text.html.parser
+javax.swing.text.rtf
+javax.swing.tree
+javax.swing.undo
+javax.transaction
+javax.transaction.xa
+javax.xml.parsers
+javax.xml.transform
+javax.xml.transform.dom
+javax.xml.transform.sax
+javax.xml.transform.stream
+org.ietf.jgss
+org.omg.CORBA
+org.omg.CORBA.DynAnyPackage
+org.omg.CORBA.ORBPackage
+org.omg.CORBA.TypeCodePackage
+org.omg.CORBA.portable
+org.omg.CORBA_2_3
+org.omg.CORBA_2_3.portable
+org.omg.CosNaming
+org.omg.CosNaming.NamingContextExtPackage
+org.omg.CosNaming.NamingContextPackage
+org.omg.Dynamic
+org.omg.DynamicAny
+org.omg.DynamicAny.DynAnyFactoryPackage
+org.omg.DynamicAny.DynAnyPackage
+org.omg.IOP
+org.omg.IOP.CodecFactoryPackage
+org.omg.IOP.CodecPackage
+org.omg.Messaging
+org.omg.PortableInterceptor
+org.omg.PortableInterceptor.ORBInitInfoPackage
+org.omg.PortableServer
+org.omg.PortableServer.CurrentPackage
+org.omg.PortableServer.POAManagerPackage
+org.omg.PortableServer.POAPackage
+org.omg.PortableServer.ServantLocatorPackage
+org.omg.PortableServer.portable
+org.omg.SendingContext
+org.omg.stub.java.rmi
+org.w3c.dom
+org.xml.sax
+org.xml.sax.ext
+org.xml.sax.helpers
diff --git a/make/README-zip-bundles.txt b/make/README-zip-bundles.txt
new file mode 100755
index 0000000..2e58999
--- /dev/null
+++ b/make/README-zip-bundles.txt
@@ -0,0 +1,45 @@
+
+Java (TM) Binding for the OpenGL (r) API, version @VERSION@
+-------------------------------------------------------
+
+This software is licensed by Sun Microsystems, as specified
+in the LICENSE-JOGL-@VERSION@.txt file. You must use this software
+in accordance with the terms under which the code is licensed.
+
+
+
+Instructions for unzipping Java Binding for the OpenGL API, version @VERSION@
+--------------------------------------------------------------------
+
+After downloading and unzipping the zip file containing the
+JOGL release for your target platform, you will see the
+following files in the top directory:
+
+ COPYRIGHT.txt
+ LICENSE-JOGL-@VERSION@.txt
+ Userguide.html
+ README.txt README file (you are reading it now)
+
+and the following subdirectory:
+
+ lib contains JOGL implementation
+
+All of the JOGL implementation files (jar files and native
+libraries) are in the lib subdirectory. For instructions on
+how to use these implementation files to build or run a JOGL
+program see the enclosed JOGL user guide (Userguide.html).
+
+
+
+Project source code and getting assistance
+------------------------------------------
+
+JOGL source code and project information can be found at:
+
+ https://jogl.dev.java.net/
+
+
+Numerous answers to common questions can be found on the JOGL
+forum:
+
+ http://www.javagaming.org/forums/index.php?board=25.0
diff --git a/make/build-gluegen.xml b/make/build-gluegen.xml
new file mode 100644
index 0000000..992599c
--- /dev/null
+++ b/make/build-gluegen.xml
@@ -0,0 +1,179 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ - Ant build for JOGL's GlueGen and corresponding ANT task. This build
+ - should not be called directly. It is invoked from the main "build.xml"
+ - file and relies on the properties set therein.
+ -
+ - The optional.jar that contains the optional ANT tasks must be in the ANT
+ - classpath (typically the ant/lib directory).
+ -
+ - This build has been tested with ANT 1.5.3 and JOGL 1.1.1.1.
+ -
+ - Public targets:
+ - all: clean and build GlueGen and GlueGen Ant task
+ - clean: clean all built
+ -->
+<project name="JOGL.GlueGen" default="all">
+ <!-- ================================================================== -->
+ <!--
+ - Declare all paths and user defined variables.
+ -->
+ <target name="declare" description="Declare properties">
+
+ <!-- Create the classpath for ANTLR. This requires the user-defined
+ - "antlr.jar" property. -->
+ <path id="antlr.classpath">
+ <pathelement location="${antlr.jar}" />
+ </path>
+
+ <!-- The location of the GlueGen source and the C grammar files. -->
+ <property name="gluegen" value="${src.java}/com/sun/gluegen" />
+ <property name="c.grammar" value="${gluegen}/cgram" />
+
+ <!-- The resulting location of the generated Java files from the
+ - C grammar via ANTLR. -->
+ <property name="gluegen.build" value="${src.generated.java}/com/sun/gluegen" />
+ <property name="generated.java.from.grammar" value="${gluegen.build}/cgram" />
+
+ </target>
+
+ <!-- ================================================================== -->
+ <!--
+ - Build GlueGen.
+ -->
+ <target name="build.gluegen" depends="declare">
+
+ <!-- Because ANTLR looks for importVocab files in the current
+ working directory, it likes to have all of its files,
+ including supergrammars, in one place, so copy all of the
+ grammars to the output directory up front so we don't put
+ temporary files into the source tree -->
+ <mkdir dir="${generated.java.from.grammar}" />
+ <copy todir="${generated.java.from.grammar}">
+ <fileset dir="${c.grammar}">
+ <include name="*.g" />
+ </fileset>
+ </copy>
+
+ <!-- Generate the Java files from the C grammar using ANTLR. -->
+ <antcall target="generate.c.grammar">
+ <param name="output.dir" value="${generated.java.from.grammar}" />
+ <param name="target" value="StdCParser.g" />
+ </antcall>
+ <antcall target="generate.c.grammar.glib">
+ <param name="output.dir" value="${generated.java.from.grammar}" />
+ <param name="target" value="GnuCParser.g" />
+ <param name="glib" value="StdCParser.g" />
+ </antcall>
+ <antcall target="generate.c.grammar">
+ <param name="output.dir" value="${generated.java.from.grammar}" />
+ <param name="target" value="GnuCTreeParser.g" />
+ </antcall>
+ <antcall target="generate.c.grammar.glib">
+ <param name="output.dir" value="${generated.java.from.grammar}" />
+ <param name="target" value="GnuCEmitter.g" />
+ <param name="glib" value="GnuCTreeParser.g" />
+ </antcall>
+ <antcall target="generate.c.grammar.glib">
+ <param name="output.dir" value="${generated.java.from.grammar}" />
+ <param name="target" value="HeaderParser.g" />
+ <param name="glib" value="GnuCTreeParser.g" />
+ </antcall>
+
+ <!-- Ensure that the output classes directory exists. -->
+ <mkdir dir="${classes}" />
+
+ <!-- Build GlueGen using the generated Java files along with the
+ - original source.
+ - NOTE: GlueGenTask is NOT built at this time. It is done in
+ - a separate task. -->
+ <javac destdir="${classes}" includes="**/gluegen/**" excludes="**/GlueGenTask.java"
+ source="1.4" debug="true" debuglevel="source,lines">
+ <src path="${src.java}" />
+ <src path="${src.generated.java}" />
+ <classpath refid="antlr.classpath" />
+ </javac>
+
+ <!-- Inform the user that GlueGen has been successfully built. -->
+ <echo message="" />
+ <echo message="GlueGen has been built successfully." />
+ </target>
+
+ <!--
+ - Using ANTLR generate the specified Java files.
+ -
+ - @param target the grammar file to process
+ - @param output.dir the directory to write the generated files to. If
+ - the directory does not exist, it will be created.
+ -->
+ <target name="generate.c.grammar" depends="declare">
+ <!-- Generate the Java files -->
+ <antlr target="${output.dir}/${target}" outputdirectory="${output.dir}">
+ <classpath refid="antlr.classpath" />
+ </antlr>
+ </target>
+
+ <!--
+ - Using ANTLR generate the specified Java files with an overridden
+ - grammar file.
+ -
+ - @param target the grammar file to process
+ - @param glib the overridding grammar file
+ - @param output.dir the directory to write the generated files to. If
+ - the directory does not exist, it will be created.
+ -->
+ <target name="generate.c.grammar.glib" depends="declare">
+ <!-- Generate the Java files -->
+ <antlr target="${output.dir}/${target}" glib="${output.dir}/${glib}" outputdirectory="${output.dir}">
+ <classpath refid="antlr.classpath" />
+ </antlr>
+ </target>
+
+ <!-- ================================================================== -->
+ <!--
+ - Build the GlueGen ANT task.
+ -->
+ <target name="build.gluegen.task" depends="declare">
+ <!-- Ensure that the output classes directory exists. -->
+ <mkdir dir="${classes}" />
+
+ <!-- Build the GlueGen ANT task.
+ - NOTE: ONLY the GlueGenTask is built at this time. GlueGen
+ - itself is built in a separate task. -->
+ <javac destdir="${classes}" includes="**/GlueGenTask.java" source="1.4" debug="true" debuglevel="source,lines">
+ <src path="${src.java}" />
+ <classpath refid="antlr.classpath" />
+ </javac>
+
+ <!-- Inform the user that the GlueGen ANT task has been successfully
+ built. -->
+ <echo message="" />
+ <echo message="GlueGen ANT task has been built successfully." />
+ </target>
+
+ <!-- ================================================================== -->
+ <!--
+ - Clean up all that is built.
+ - NOTE: this is a bit heavy-handed as it may delete more than just
+ - what is built with this build.
+ -->
+ <target name="clean" depends="declare">
+ <delete includeEmptyDirs="true" quiet="true">
+ <fileset dir="${src.generated.java}" />
+ <fileset dir="${classes}" />
+ </delete>
+ </target>
+
+ <!-- ================================================================== -->
+ <!--
+ - Build GlueGen and the GlueGen ANT task.
+ -->
+ <target name="all" depends="declare">
+ <!-- Build GlueGen -->
+ <antcall target="build.gluegen" />
+
+ <!-- Build the GlueGen ANT task -->
+ <antcall target="build.gluegen.task" />
+ </target>
+
+</project>
diff --git a/make/build-jogl.xml b/make/build-jogl.xml
new file mode 100644
index 0000000..e4d1daa
--- /dev/null
+++ b/make/build-jogl.xml
@@ -0,0 +1,2374 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ - Ant build for JOGL. This build has been tested with ANT 1.7.0. The
+ - optional.jar that contains the optional ANT tasks must be in the ANT
+ - classpath (typically the ant/lib directory).
+ -
+ - A clean download of JOGL is required for this build.
+ -
+ - This build has no dependence on environment variables; the needed
+ - ones (e.g. java.home, ANT_HOME) are all set by the Ant wrapper shell
+ - script, by the virtual machine, or elsewhere. However, on all platforms,
+ - the C compiler and linker should be in the path. All other paths that
+ - need to be set are in host.properties.
+ -
+ - NOTE: because the GlueGen config files have their own relative paths
+ - which cannot be overridden by GlueGen, GlueGen MUST be run from
+ - the "make" directory. This also means that this build-jogl.xml MUST
+ - be run from the "make" directory.
+ -
+ - Public targets:
+ - all: (default; autodetects OS and chooses C compiler from jogl.properties)
+ - clean: clean all built
+ - javadoc: create the standard developer Javadoc (recommended)
+ - (Note: should build all first - may be dependence in the future)
+ - javadoc.spec: create the standard developer Javadoc but exclude com.sun.* classes
+ - javadoc.dev.all: create the internal developer Javadoc. This includes the
+ - Java and C file generators. Note that it is only supported
+ - to create the Javadoc for the platform on which you are
+ - currently running.
+ -
+ - Note: on Windows the "win32.c.compiler" property in jogl.properties
+ - is required to select the appropriate C compiler. See the example
+ - jogl.properties in this directory for valid values. On Mac OS X
+ - universal binaries may also be built by setting the "macosxfat"
+ - property in jogl.properties; again see the example file in this
+ - directory.
+ -
+ - Optional properties:
+ - -Djogl.cg=1 when combined with the build or javadoc targets will cause
+ - the experimental binding to NVidia's Cg language to be built.
+ -
+ - Thanks to Rob Grzywinski and Artur Biesiadowski for the bulk of the
+ - ANT build, including the GlueGen and StaticGLInfo tasks, the building of
+ - the Java generated sources, the first and second phase Java compiles, and
+ - the building of the jar file. Thanks to Alex Radeski for the bulk of the
+ - port to the ant-contrib CPPTask framework. Thanks to Athomas Goldberg for
+ - the original OS detection code.
+ -
+ - Some environment defs affecting compilation
+
+ setup.cdcfp - Using the CDC Java runtime library
+ - no DoubleBuffer
+ - no LongBuffer
+
+ This will set
+ -> setup.noAWT
+ -> setup.nogl2
+ -> setup.nogl3
+
+ - Internal settings, may not be necessary to set them manually,
+ since all JAR archives are orthogonal.
+ setup.noes1
+ setup.noes2
+ setup.nogl2
+ setup.nogl3
+ setup.noAWT
+ setup.noutil - no com.sun.opengl.util.*
+ setup.noX11WindowsMacOsX, which implies:
+ setup.noX11
+ setup.noWindows
+ setup.noMacOsX
+ -->
+<project name="JOGL" basedir="." default="all">
+
+ <!-- This is the version of JOGL you are building -->
+ <property name="base_version" value="1.2.0-rc1"/>
+
+ <!-- Uncomment this property definition to cause a full release build to be done -->
+ <!-- without needing to specify the RI target on the command line -->
+ <property name="RImanifestfile" value="joglRIversion" />
+
+ <!-- Pull in GlueGen cpptasks build file -->
+ <property name="gluegen.root" value="../../gluegen" />
+ <import file="${gluegen.root}/make/gluegen-cpptasks.xml" />
+
+ <available file="${user.home}/jogl.compiler.xml" property="jogl.compiler.present"/>
+ <import file="${user.home}/jogl.compiler.xml" optional="true" />
+
+ <!-- ================================================================== -->
+ <!--
+ - Base initialization and detection of operating system.
+ -->
+ <target name="base.init">
+
+ <condition property="setup.noes">
+ <and>
+ <isset property="setup.noes1"/>
+ <isset property="setup.noes2"/>
+ </and>
+ </condition>
+
+ <condition property="setup.nogl3">
+ <isset property="setup.cdcfp"/>
+ </condition>
+ <condition property="setup.nogl2">
+ <isset property="setup.cdcfp"/>
+ </condition>
+ <condition property="setup.noAWT">
+ <isset property="setup.cdcfp"/>
+ </condition>
+ <condition property="isCDCFP">
+ <isset property="setup.cdcfp"/>
+ </condition>
+ <condition property="javac.bootclasspath.jar"
+ value="../../gluegen/make/lib/cdc_fp.jar">
+ <isset property="setup.cdcfp"/>
+ </condition>
+ <echo message="setup.cdcfp: ${setup.cdcfp}" />
+ <echo message="setup.noAWT: ${setup.noAWT}" />
+ <echo message="javac.bootclasspath.jar: ${javac.bootclasspath.jar}" />
+ <echo message="setup.noes : ${setup.noes}" />
+ <echo message="setup.noes1: ${setup.noes1}" />
+ <echo message="setup.noes2: ${setup.noes2}" />
+ <echo message="setup.nogl2: ${setup.nogl2}" />
+ <echo message="setup.nogl3: ${setup.nogl3}" />
+
+ <condition property="setup.noX11WindowsMacOsX">
+ <and>
+ <isset property="setup.noX11"/>
+ <isset property="setup.noWindows"/>
+ <isset property="setup.noMacOsX"/>
+ </and>
+ </condition>
+
+ <condition property="setup.noX11">
+ <isset property="setup.noX11WindowsMacOsX"/>
+ </condition>
+
+ <condition property="setup.noWindows">
+ <isset property="setup.noX11WindowsMacOsX" />
+ </condition>
+
+ <condition property="setup.noMacOsX">
+ <isset property="setup.noX11WindowsMacOsX" />
+ </condition>
+
+ <echo message="setup.noX11WindowsMacOsX: ${setup.noX11WindowsMacOsX}" />
+ <echo message="setup.noX11: ${setup.noX11}" />
+ <echo message="setup.noWindows: ${setup.noWindows}" />
+ <echo message="setup.noMacOsX: ${setup.noMacOsX}" />
+
+ <!-- partitioning -->
+
+ <property name="java.part.egl"
+ value="com/sun/opengl/impl/egl/*"/>
+
+ <property name="java.part.glutess"
+ value="com/sun/opengl/impl/glu/tessellator/**"/>
+
+ <property name="java.part.glumipmap"
+ value="com/sun/opengl/impl/glu/mipmap/**"/>
+
+ <property name="java.part.glugl2"
+ value="com/sun/opengl/impl/glu/gl2/**, com/sun/opengl/impl/glu/nurbs/**, com/sun/opengl/impl/glu/registry/**, javax/media/opengl/glu/gl2/**"/>
+ <property name="java.part.openmax"
+ value="com/sun/openmax/**"/>
+
+ <property name="java.part.sdk"
+ value="javax/media/opengl/sdk/**"/>
+
+ <property name="java.part.gl2es12.x11"
+ value="com/sun/opengl/impl/gl2es12/**, com/sun/opengl/impl/x11/glx/*"/>
+
+ <property name="java.part.gl2es12.win"
+ value="com/sun/opengl/impl/gl2es12/**, com/sun/opengl/impl/windows/wgl/*"/>
+
+ <property name="java.part.gl2es12.osx"
+ value="com/sun/opengl/impl/gl2es12/**, com/sun/opengl/impl/macosx/cgl/*"/>
+
+ <property name="java.part.gl2es12.dbg"
+ value="javax/media/opengl/TraceGL2ES12.*, javax/media/opengl/DebugGL2ES12.*"/>
+
+ <property name="java.part.gl3"
+ value="com/sun/opengl/impl/**/gl3/**"/>
+
+ <property name="java.part.gl2.x11"
+ value="com/sun/opengl/impl/**/gl2/**, ${java.part.gl3}, com/sun/opengl/impl/x11/glx/*"/>
+
+ <property name="java.part.gl2.win"
+ value="com/sun/opengl/impl/**/gl2/**, ${java.part.gl3}, com/sun/opengl/impl/windows/wgl/*"/>
+
+ <property name="java.part.gl2.osx"
+ value="com/sun/opengl/impl/**/gl2/**, ${java.part.gl3}, com/sun/opengl/impl/macosx/cgl/*"/>
+
+ <property name="java.part.gl2.dbg"
+ value="javax/media/opengl/TraceGL2.*, javax/media/opengl/DebugGL2.*, javax/media/opengl/TraceGL3.*, javax/media/opengl/DebugGL3.*,"/>
+
+ <property name="java.part.es1"
+ value="javax/media/opengl/**/es1/**, com/sun/opengl/**/es1/**"/>
+
+ <property name="java.part.es1.dbg"
+ value="javax/media/opengl/TraceGLES1.*, javax/media/opengl/DebugGLES1.*"/>
+
+ <property name="java.part.es2"
+ value="javax/media/opengl/**/es2/**, com/sun/opengl/**/es2/**"/>
+
+ <property name="java.part.es2.dbg"
+ value="javax/media/opengl/TraceGLES2.*, javax/media/opengl/DebugGLES2.*"/>
+
+ <property name="java.part.awt"
+ value="javax/media/opengl/awt/**, com/sun/opengl/impl/**/awt/**"/>
+
+ <property name="java.part.util"
+ value="com/sun/opengl/util/*, com/sun/opengl/util/texture/**, com/sun/opengl/util/packrect/**"/>
+
+ <property name="java.part.util.awt"
+ value="com/sun/opengl/util/**/awt/**"/>
+
+ <property name="java.part.util.gl2"
+ value="com/sun/opengl/util/**/gl2/**"/>
+
+ <property name="java.part.util.glsl"
+ value="com/sun/opengl/util/glsl/*, com/sun/opengl/util/glsl/fixedfunc/*, com/sun/opengl/util/glsl/sdk/*"/>
+
+ <property name="java.part.util.fixedfuncemu"
+ value="com/sun/opengl/util/glsl/fixedfunc/impl/**"/>
+
+ <property name="java.part.util.fixedfuncemu.shadercode"
+ value="com/sun/opengl/util/glsl/fixedfunc/impl/shaders/*, com/sun/opengl/util/glsl/fixedfunc/impl/shaders/bin/**"/>
+
+ <!-- condition excludes -->
+
+ <condition property="java.excludes.egl"
+ value="${java.part.egl}">
+ <and>
+ <isset property="setup.noes1"/>
+ <isset property="setup.noes2"/>
+ </and>
+ </condition>
+
+ <condition property="java.excludes.gl3"
+ value="${java.part.gl3}">
+ <isset property="setup.nogl3"/>
+ </condition>
+
+ <condition property="java.excludes.gl2"
+ value="${java.part.gl2es12.x11}, ${java.part.gl2es12.win}, ${java.part.gl2es12.osx}, ${java.part.gl2es12.dbg}, ${java.part.gl2.x11}, ${java.part.gl2.win}, ${java.part.gl2.osx}, ${java.part.gl2.dbg}, ${java.part.util.gl2}, ${java.part.glugl2}">
+ <isset property="setup.nogl2"/>
+ </condition>
+
+ <condition property="java.excludes.es1"
+ value="${java.part.es1}, ${java.part.es1.dbg}">
+ <isset property="setup.noes1"/>
+ </condition>
+
+ <condition property="java.excludes.es2"
+ value="${java.part.es2}, ${java.part.es2.dbg}">
+ <isset property="setup.noes2"/>
+ </condition>
+
+ <condition property="java.excludes.awt"
+ value="${java.part.awt}, ${java.part.util.awt}">
+ <isset property="setup.noAWT"/>
+ </condition>
+
+ <condition property="java.excludes.util"
+ value="${java.part.util} ${java.part.util.awt} ${java.part.util.gl2}">
+ <isset property="setup.noutil"/>
+ </condition>
+
+ <condition property="java.excludes.x11"
+ value="${java.part.x11}">
+ <isset property="setup.noX11"/>
+ </condition>
+
+ <condition property="java.excludes.win"
+ value="${java.part.win}">
+ <isset property="setup.noWindows"/>
+ </condition>
+
+ <condition property="java.excludes.macosx"
+ value="${java.part.macosx}">
+ <isset property="setup.noMacOsX"/>
+ </condition>
+
+ <condition property="java.excludes.cdcfp"
+ value="com/sun/opengl/util/AWTAnimatorImpl*, com/sun/opengl/util/TGAWriter*, com/sun/opengl/util/texture/spi/awt/**">
+ <isset property="setup.cdcfp"/>
+ </condition>
+
+ <property name="java.excludes.javadoc.packagenames"
+ value="com.sun.opengl.impl.gl2.fixme.*,com.sun.javafx.audio.windows.waveout.TestSpatialization"/>
+
+ <property name="java.excludes.fixme"
+ value="com/sun/opengl/impl/gl2/fixme/** com/sun/javafx/audio/windows/waveout/TestSpatialization.java" />
+
+ <property name="java.excludes.all" value="${java.excludes.fixme} ${java.excludes.egl}, ${java.excludes.gl2}, ${java.excludes.gl3}, ${java.excludes.es1}, ${java.excludes.es2}, ${java.excludes.awt}, ${java.excludes.glugl2}, ${java.excludes.util}, ${java.excludes.x11}, ${java.excludes.win}, ${java.excludes.macosx}, ${java.excludes.cdcfp}" />
+ <echo message="java.excludes.all: ${java.excludes.all}" />
+
+
+ <!-- Set the project root directory to be up one directory. -->
+ <property name="project.root" value=".." />
+
+ <!-- Set the configuration and build files to this directory. -->
+ <property name="make" value="." />
+ </target>
+
+ <target name="base.init.sourcelevel.1">
+ <property name="jogl.sourcelevel" value="1.4" />
+ </target>
+
+ <!--target name="base.init.sourcelevel.2" if="gluegen.nsig">
+ <property name="jogl.sourcelevel" value="1.5" />
+ </target-->
+
+ <!-- ================================================================== -->
+ <!--
+ - Load user properties which override build defaults.
+ -->
+ <target name="load.user.properties" depends="base.init,base.init.sourcelevel.1" unless="user.properties.file">
+ <!-- Load the user specified properties file that defines various host
+ - specific paths. The user will be notified if this is does not
+ - exist. -->
+ <property name="user.properties.file" value="${user.home}/jogl.properties" />
+ <property file="${user.properties.file}" />
+ <echo message="Loaded ${user.properties.file}." />
+ <property file="${user.home}/gluegen.properties" />
+ <echo message="Loaded ${user.home}/gluegen.properties." />
+ <fail message="antlr.jar was not specified in jogl.properties or gluegen.properties. Please see README.txt for instructions" unless="antlr.jar"/>
+ <echo message="antlr.jar=${antlr.jar}" />
+ </target>
+
+ <!-- ================================================================== -->
+ <!--
+ - Declare all paths and user defined variables.
+ -->
+ <target name="declare.common" description="Declare properties" depends="load.user.properties">
+ <!-- The location and name of the configuration ANT file that will
+ - validate to ensure that all user-define variables are set. -->
+ <property name="validate.user.properties" value="${make}/validate-properties.xml" />
+
+ <!-- NOTE: the value of the debug and optimise attributes will not be overridden if already set externally -->
+ <property name="javacdebug" value="true" />
+ <property name="javacdebuglevel" value="source,lines" />
+ <!-- property name="javac.memorymax" value="128m" /--> <!-- I ran out of memory with these .. linux x86_64 6u14 -->
+ <property name="javac.memorymax" value="512m" />
+
+ <!-- Names of directories relative to the project root.
+ Some of these are used in FileMappers later for dependence information
+ and need exact string matching, which is why they use file.separator
+ instead of "/". -->
+ <condition property="rootrel.build" value="build">
+ <not>
+ <isset property="rootrel.build"/>
+ </not>
+ </condition>
+ <property name="rootrel.build.jogl" value="${rootrel.build}/jogl" />
+ <property name="rootrel.src.java" value="src/jogl/classes" />
+ <property name="rootrel.src.c" value="src/jogl/native" />
+ <property name="rootrel.src.c.openmax" value="src/jogl/native/openmax" />
+
+ <property name="rootrel.src.generated" value="${rootrel.build.jogl}/gensrc" />
+ <property name="rootrel.generated.c.jogl" value="${rootrel.src.generated}/native/jogl" />
+ <property name="rootrel.generated.c.cg" value="${rootrel.src.generated}/native/jogl_cg" />
+ <property name="rootrel.obj" value="${rootrel.build.jogl}/obj" />
+ <property name="rootrel.obj.jogl" value="${rootrel.obj}/jogl" />
+ <property name="rootrel.obj.cg" value="${rootrel.obj}/jogl_cg" />
+
+ <!-- GlueGen properties. -->
+ <!-- NOTE that these require a checked-out GlueGen workspace as a -->
+ <!-- sibling of the JOGL workspace. -->
+ <property name="gluegen.make.dir" value="../../gluegen/make" />
+ <property name="gluegen.build.xml" value="${gluegen.make.dir}/build.xml" />
+ <property name="gluegen.jar" value="../../gluegen/${rootrel.build}/gluegen.jar" />
+ <property name="gluegen-rt.jar" value="../../gluegen/${rootrel.build}/gluegen-rt.jar" />
+ <property name="nativewindow.all.jar" value="../${rootrel.build}/nativewindow/nativewindow.all.jar" />
+
+ <!-- The source directories. -->
+ <property name="src.java" value="${project.root}/${rootrel.src.java}" />
+ <property name="src.c" value="${project.root}/${rootrel.src.c}" />
+ <property name="build" value="${project.root}/${rootrel.build.jogl}" />
+ <property name="tempdir" value="${project.root}/build-temp" />
+
+ <!-- The generated source directories. -->
+ <property name="src.generated" value="${build}/gensrc" />
+ <property name="src.generated.java" value="${src.generated}/classes" />
+ <property name="src.generated.java.cg" value="${src.generated}/classes/com/sun/opengl/cg" />
+ <property name="src.generated.c" value="${src.generated}/native/jogl" />
+ <property name="src.generated.c.openmax" value="${src.generated}/native/openmax" />
+ <property name="src.generated.c.cg" value="${src.generated}/native/jogl_cg" />
+
+ <!-- The compiler output directories. -->
+ <property name="classes" value="${build}/classes" />
+ <property name="obj" value="${project.root}/${rootrel.obj}" />
+ <property name="obj.jogl" value="${project.root}/${rootrel.obj.jogl}" />
+ <property name="obj.cg" value="${project.root}/${rootrel.obj.cg}" />
+
+ <!-- The GL headers from which Java files are generated -->
+ <property name="config" value="${make}/config/jogl" />
+ <property name="stub.includes" value="${make}/stub_includes" />
+ <property name="stub.includes.dir" value="stub_includes" /> <!-- NOTE: this MUST be relative for FileSet -->
+ <property name="stub.includes.opengl" value="${stub.includes}/opengl" />
+ <property name="stub.includes.common" value="${stub.includes}/common" />
+ <dirset id="stub.includes.fileset.all.gl2" dir=".">
+ <include name="${stub.includes.dir}/opengl/**" />
+ <include name="${stub.includes.dir}/macosx/**" />
+ <include name="${stub.includes.dir}/win32/**" />
+ <include name="${stub.includes.dir}/x11/**" />
+ <include name="${stub.includes.dir}/common/**" />
+ <include name="${stub.includes.dir}/jni/**" />
+ </dirset>
+ <fileset id="stub.includes.dependencies.fileset.1" dir="${stub.includes.dir}">
+ <include name="opengl/**" />
+ <include name="macosx/**" />
+ <include name="win32/**" />
+ <include name="x11/**" />
+ <include name="common/**" />
+ <include name="jni/**" />
+ </fileset>
+ <fileset id="stub.includes.dependencies.fileset.2" file="${gluegen.jar}" />
+ <fileset id="stub.includes.dependencies.fileset.3" dir="${config}">
+ <include name="*.cfg" />
+ <include name="gl*.java" />
+ <include name="*.c" />
+ <exclude name="cg-common.cfg" />
+ </fileset>
+ <dirset id="stub.includes.cg.fileset.all" dir=".">
+ <include name="${stub.includes.dir}/opengl/**" />
+ <include name="${stub.includes.dir}/cg/**" />
+ <include name="${stub.includes.dir}/macosx/**" />
+ <include name="${stub.includes.dir}/win32/**" />
+ <include name="${stub.includes.dir}/x11/**" />
+ <include name="${stub.includes.dir}/common/**" />
+ </dirset>
+ <fileset id="stub.includes.cg.dependencies.fileset" dir=".">
+ <include name="${stub.includes.dir}/cg/**" />
+ <include name="${config}/cg-common.cfg" />
+ <include name="${config}/cg-common-CustomJavaCode.java" />
+ </fileset>
+
+ <!-- Create the classpath that includes GlueGen and
+ - ANTLR. This requires the user-defined "antlr.jar"
+ - property. -->
+ <path id="gluegen.classpath">
+ <pathelement location="${gluegen.jar}" />
+ <pathelement location="${antlr.jar}" />
+ </path>
+
+ <path id="nativewindow_gluegen.classpath">
+ <pathelement location="${nativewindow.all.jar}" />
+ <pathelement location="${gluegen-rt.jar}" />
+ </path>
+
+ <!-- Create the classpath that includes GlueGen and
+ - the current classes for building the composable pipelines.
+ -->
+ <path id="pipeline.classpath">
+ <pathelement location="${gluegen.jar}" />
+ <pathelement location="${classes}" />
+ </path>
+
+ <!-- The resulting jogl.jar. -->
+ <property name="jogl.core.jar" value="${build}/jogl.core.jar" />
+ <property name="jogl.gles1.jar" value="${build}/jogl.gles1.jar" />
+ <property name="jogl.gles1.dbg.jar" value="${build}/jogl.gles1.dbg.jar" />
+ <property name="jogl.gles2.jar" value="${build}/jogl.gles2.jar" />
+ <property name="jogl.gles2.dbg.jar" value="${build}/jogl.gles2.dbg.jar" />
+ <property name="jogl.egl.jar" value="${build}/jogl.egl.jar" />
+ <property name="jogl.glutess.jar" value="${build}/jogl.glu.tess.jar" />
+ <property name="jogl.glumipmap.jar" value="${build}/jogl.glu.mipmap.jar" />
+ <property name="jogl.glugl2.jar" value="${build}/jogl.glu.gl2.jar" />
+ <property name="jogl.gl2es12.x11.jar" value="${build}/jogl.gl2es12.x11.jar" />
+ <property name="jogl.gl2es12.win.jar" value="${build}/jogl.gl2es12.win.jar" />
+ <property name="jogl.gl2es12.osx.jar" value="${build}/jogl.gl2es12.osx.jar" />
+ <property name="jogl.gl2es12.dbg.jar" value="${build}/jogl.gl2es12.dbg.jar" />
+ <property name="jogl.gl2.x11.jar" value="${build}/jogl.gl2.x11.jar" />
+ <property name="jogl.gl2.win.jar" value="${build}/jogl.gl2.win.jar" />
+ <property name="jogl.gl2.osx.jar" value="${build}/jogl.gl2.osx.jar" />
+ <property name="jogl.gl2.dbg.jar" value="${build}/jogl.gl2.dbg.jar" />
+ <property name="jogl.awt.jar" value="${build}/jogl.awt.jar" />
+ <property name="jogl.util.jar" value="${build}/jogl.util.jar" />
+ <property name="jogl.util.gl2.jar" value="${build}/jogl.util.gl2.jar" />
+ <property name="jogl.util.awt.jar" value="${build}/jogl.util.awt.jar" />
+ <property name="jogl.util.fixedfuncemu.jar" value="${build}/jogl.util.fixedfuncemu.jar" />
+ <property name="jogl.sdk.jar" value="${build}/jogl.sdk.jar" />
+ <property name="jogl.all.jar" value="${build}/jogl.all.jar" />
+
+ <!-- The javadoc dirs. -->
+ <property name="javadoc" value="${project.root}/javadoc_jogl_public" />
+ <property name="javadoc.spec" value="${project.root}/javadoc_jogl_spec" />
+ <property name="javadoc.dev" value="${project.root}/javadoc_jogl_dev" />
+ <property name="javadoc.link" value="http://java.sun.com/j2se/1.4.2/docs/api/" />
+ <property name="javadoc.windowtitle" value="JOGL API -- JSR-231 ${base_version} Specification" />
+ <property name="javadoc.overview" value="doc/jogl/spec-overview.html" />
+ <property name="javadoc.spec.packagenames" value="javax.media.opengl.*" />
+
+ <property name="javadoc.packagenames" value="${javadoc.spec.packagenames},com.sun.opengl.util.*" />
+
+ <property name="javadoc.dev.packagenames" value="${javadoc.packagenames},com.sun.opengl.impl.*,com.sun.gluegen,com.sun.gluegen.runtime" />
+ <property name="javadoc.bottom" value="Copyright 2005 Sun Microsystems, Inc. All rights reserved. Use is subject to &lt;a href=&quot;http://jcp.org/en/jsr/detail?id=231&quot;&gt;license terms&lt;/a&gt;." />
+ </target>
+
+ <target name="declare.gl.gles1" unless="setup.noes1">
+ <property name="gles1.headers" value="${stub.includes.dir}/opengl/GLES/*.h" /> <!-- NOTE: this MUST be relative for FileSet --> <!-- CHECK: this may need to be pruned for each platform -->
+ </target>
+
+ <target name="declare.gl.gles2" unless="setup.noes2">
+ <property name="gles2.headers" value="${stub.includes.dir}/opengl/GLES2/*.h" /> <!-- NOTE: this MUST be relative for FileSet --> <!-- CHECK: this may need to be pruned for each platform -->
+ </target>
+
+ <target name="declare.gl.gles" unless="setup.noes" depends="declare.gl.gles1, declare.gl.gles2">
+ <!-- Prepare to build the EGL interface -->
+ <property name="window.es.cfg" value="${config}/egl.cfg" />
+ <property name="window.es.ext.cfg" value="${config}/eglext.cfg" />
+ <property name="window.es.system" value="egl"/>
+ </target>
+
+ <target name="declare.gl.gl2" unless="setup.nogl2">
+ <property name="gl2.headers" value="${stub.includes.dir}/opengl/GL/*.h" /> <!-- NOTE: this MUST be relative for FileSet --> <!-- CHECK: this may need to be pruned for each platform -->
+ </target>
+
+ <!-- Declarations that have to come after both the common setup and the GLES tests -->
+ <target name="declare.common.2">
+ </target>
+
+ <!-- ================================================================== -->
+ <!--
+ - Initialize all parameters required for the build and create any
+ - required directories.
+ -->
+ <target name="init" depends="declare.common, declare.gl.gles, declare.gl.gl2, declare.common.2">
+ <!-- Call the external config validator script to make sure the config is ok and consistent -->
+ <ant antfile="${validate.user.properties}" inheritall="true"/>
+
+ <!-- Create the required output directories. -->
+ <mkdir dir="${src.generated.java}" />
+ <mkdir dir="${src.generated.c}" />
+ <mkdir dir="${src.generated.c}/MacOSX" />
+ <mkdir dir="${src.generated.c}/Windows" />
+ <mkdir dir="${src.generated.c}/X11" />
+ <mkdir dir="${src.generated.c.openmax}" />
+ <mkdir dir="${classes}" />
+ <mkdir dir="${obj}" />
+ <mkdir dir="${obj.jogl}" />
+ <mkdir dir="${obj.cg}" />
+ </target>
+
+ <!-- ================================================================== -->
+ <!-- GlueGen and BuildStaticGLInfo creation, task setup and Java file generation -->
+ <!--
+ - Build GlueGen
+ -->
+ <target name="build.gluegen" depends="init">
+ <!-- Run the GlueGen build to ensure that the GlueGen ANT task
+ - has been built. -->
+ <!-- FIXME: remove passing down of antlr.jar when gluegen.properties is on all
+ nightly build machines -->
+ <ant antfile="${gluegen.build.xml}" dir="${gluegen.make.dir}" target="all" inheritAll="false">
+ <propertyset>
+ <propertyref name="antlr.jar" />
+ <!--propertyref name="gluegen.nsig" /-->
+ <propertyref name="isCDCFP" />
+ </propertyset>
+ </ant>
+ </target>
+
+ <!--
+ - Check to see whether we need to rebuild the generated sources.
+ -->
+ <target name="java.generate.check">
+ <!-- Blow away all target files if any dependencies are violated
+ (the uptodate task doesn't allow arbitrary source and target filesets but should) -->
+ <!--
+ <dependset>
+ <srcfileset refid="stub.includes.dependencies.fileset.1" />
+ <srcfileset refid="stub.includes.dependencies.fileset.2" />
+ <srcfileset refid="stub.includes.dependencies.fileset.3" />
+ <targetfileset dir="${src.generated}">
+ <include name="**/*.java" />
+ <include name="**/*.c" />
+ </targetfileset>
+ </dependset>
+ -->
+
+ <!-- Now check for the presence of one well-known file -->
+ <uptodate property="java.generate.skip.es1"
+ targetfile="${src.generated.java}/javax/media/opengl/GLES1.java">
+ <srcfiles refid="stub.includes.dependencies.fileset.1" />
+ <srcfiles refid="stub.includes.dependencies.fileset.2" />
+ <srcfiles refid="stub.includes.dependencies.fileset.3" />
+ </uptodate>
+ <uptodate property="java.generate.skip.es2"
+ targetfile="${src.generated.java}/javax/media/opengl/GLES2.java">
+ <srcfiles refid="stub.includes.dependencies.fileset.1" />
+ <srcfiles refid="stub.includes.dependencies.fileset.2" />
+ <srcfiles refid="stub.includes.dependencies.fileset.3" />
+ </uptodate>
+ <uptodate property="java.generate.skip.gl2"
+ targetfile="${src.generated.java}/javax/media/opengl/GL2.java">
+ <srcfiles refid="stub.includes.dependencies.fileset.1" />
+ <srcfiles refid="stub.includes.dependencies.fileset.2" />
+ <srcfiles refid="stub.includes.dependencies.fileset.3" />
+ </uptodate>
+ <uptodate property="java.generate.skip.glu"
+ targetfile="${src.generated.java}/javax/media/opengl/glu/GLU.java">
+ <srcfiles refid="stub.includes.dependencies.fileset.1" />
+ <srcfiles refid="stub.includes.dependencies.fileset.2" />
+ <srcfiles refid="stub.includes.dependencies.fileset.3" />
+ </uptodate>
+
+ <condition property="java.generate.skip">
+ <and>
+ <isset property="java.generate.skip.es1"/>
+ <isset property="java.generate.skip.es2"/>
+ <!--isset property="java.generate.skip.gl2"/-->
+ <isset property="java.generate.skip.glu"/>
+ </and>
+ </condition>
+
+ <!--property name="java.generate.skip" value="true"/-->
+ </target>
+
+ <target name="java.generate.cleantemp">
+ <delete includeEmptyDirs="true" quiet="true">
+ <fileset dir="${tempdir}/gensrc" />
+ </delete>
+ </target>
+
+ <target name="java.generate.copy2temp">
+ <copy todir="${tempdir}">
+ <fileset dir="../${rootrel.build.jogl}"
+ includes="gensrc/classes/**" />
+ </copy>
+ </target>
+
+ <target name="java.generate.gl_if">
+ <echo message="Generating GL interface" />
+ <antcall target="java.generate.copy2temp" inheritRefs="true" />
+ <gluegen src="${stub.includes.opengl}/gles2.c"
+ outputRootDir="../${rootrel.build.jogl}"
+ config="${config}/gl-if-gl.cfg"
+ includeRefid="stub.includes.fileset.all.gl2"
+ emitter="com.sun.gluegen.opengl.GLEmitter">
+ <classpath refid="gluegen.classpath" />
+ </gluegen>
+ </target>
+
+ <target name="java.generate.gl2_es1_if">
+ <echo message="Generating GL2_ES1 interface" />
+ <antcall target="java.generate.copy2temp" inheritRefs="true" />
+ <gluegen src="${stub.includes.opengl}/gles1.c"
+ outputRootDir="../${rootrel.build.jogl}"
+ config="${config}/gl-if-gl2_es1.cfg"
+ includeRefid="stub.includes.fileset.all.gl2"
+ emitter="com.sun.gluegen.opengl.GLEmitter">
+ <classpath refid="gluegen.classpath" />
+ </gluegen>
+ </target>
+
+ <target name="java.generate.gl2_es2_if">
+ <echo message="Generating GL2_ES2 interface" />
+ <antcall target="java.generate.copy2temp" inheritRefs="true" />
+ <gluegen src="${stub.includes.opengl}/gles2.c"
+ outputRootDir="../${rootrel.build.jogl}"
+ config="${config}/gl-if-gl2_es2.cfg"
+ includeRefid="stub.includes.fileset.all.gl2"
+ emitter="com.sun.gluegen.opengl.GLEmitter">
+ <classpath refid="gluegen.classpath" />
+ </gluegen>
+ </target>
+
+ <target name="java.generate.gl2">
+ <echo message="Generating GL2 interface and implementation" />
+ <antcall target="java.generate.copy2temp" inheritRefs="true" />
+ <gluegen src="${stub.includes.opengl}/gl2.c"
+ outputRootDir="../${rootrel.build.jogl}"
+ config="${config}/gl-gl2.cfg"
+ includeRefid="stub.includes.fileset.all.gl2"
+ emitter="com.sun.gluegen.opengl.GLEmitter">
+ <classpath refid="gluegen.classpath" />
+ </gluegen>
+ </target>
+
+ <target name="java.generate.gl3">
+ <echo message="Generating GL3 interface and implementation" />
+ <antcall target="java.generate.copy2temp" inheritRefs="true" />
+ <gluegen src="${stub.includes.opengl}/gl3.c"
+ outputRootDir="../${rootrel.build.jogl}"
+ config="${config}/gl-gl3.cfg"
+ includeRefid="stub.includes.fileset.all.gl2"
+ emitter="com.sun.gluegen.opengl.GLEmitter">
+ <classpath refid="gluegen.classpath" />
+ </gluegen>
+ </target>
+
+ <target name="java.generate.gl2es12">
+ <echo message="Generating GL2ES12 interface and implementation" />
+ <antcall target="java.generate.copy2temp" inheritRefs="true" />
+ <gluegen src="${stub.includes.opengl}/gl2.c"
+ outputRootDir="../${rootrel.build.jogl}"
+ config="${config}/gl-gl2es12.cfg"
+ includeRefid="stub.includes.fileset.all.gl2"
+ emitter="com.sun.gluegen.opengl.GLEmitter">
+ <classpath refid="gluegen.classpath" />
+ </gluegen>
+ </target>
+
+ <target name="java.generate.gles1">
+ <echo message="Generating GLES1 interface and implementation" />
+ <antcall target="java.generate.copy2temp" inheritRefs="true" />
+ <gluegen src="${stub.includes.opengl}/gles1.c"
+ outputRootDir="../${rootrel.build.jogl}"
+ config="${config}/gl-es1.cfg"
+ includeRefid="stub.includes.fileset.all.gl2"
+ emitter="com.sun.gluegen.opengl.GLEmitter">
+ <classpath refid="gluegen.classpath" />
+ </gluegen>
+ </target>
+
+ <target name="java.generate.gles2">
+ <echo message="Generating GLES2 interface and implementation" />
+ <antcall target="java.generate.copy2temp" inheritRefs="true" />
+ <gluegen src="${stub.includes.opengl}/gles2.c"
+ outputRootDir="../${rootrel.build.jogl}"
+ config="${config}/gl-es2.cfg"
+ includeRefid="stub.includes.fileset.all.gl2"
+ emitter="com.sun.gluegen.opengl.GLEmitter">
+ <classpath refid="gluegen.classpath" />
+ </gluegen>
+ </target>
+
+ <target name="java.generate.gl.all" depends="java.generate.gl_if, java.generate.gl2_es1_if, java.generate.gl2_es2_if, java.generate.gl2, java.generate.gl3, java.generate.gl2es12, java.generate.gles1, java.generate.gles2"/>
+
+ <!-- target name="java.generate.gl.nsig" if="gluegen.nsig">
+ <echo message="Generating GL interface and implementation" />
+ <gluegen src="${gl.c}"
+ config="${gl.cfg.nsig}"
+ includeRefid="stub.includes.fileset.all.gl2"
+ emitter="com.sun.gluegen.nativesig.NativeSignatureEmitter">
+ <classpath refid="gluegen.classpath" />
+ </gluegen>
+ </target> -->
+
+ <target name="java.generate.glu.base">
+ <echo message="Generating GLU class" />
+ <antcall target="java.generate.copy2temp" inheritRefs="true" />
+ <gluegen src="${stub.includes.opengl}/glu.c"
+ outputRootDir="../${rootrel.build.jogl}"
+ config="${config}/glu-base.cfg"
+ includeRefid="stub.includes.fileset.all.gl2"
+ emitter="com.sun.gluegen.opengl.GLEmitter">
+ <classpath refid="gluegen.classpath" />
+ </gluegen>
+ </target>
+
+ <target name="java.generate.glu.GL2ES1">
+ <echo message="Generating GLU class" />
+ <antcall target="java.generate.copy2temp" inheritRefs="true" />
+ <gluegen src="${stub.includes.opengl}/glu.c"
+ outputRootDir="../${rootrel.build.jogl}"
+ config="${config}/glu-gl2es1.cfg"
+ includeRefid="stub.includes.fileset.all.gl2"
+ emitter="com.sun.gluegen.opengl.GLEmitter">
+ <classpath refid="gluegen.classpath" />
+ </gluegen>
+ </target>
+
+ <target name="java.generate.glu.GL2" unless="setup.nogl2">
+ <echo message="Generating GLU class" />
+ <antcall target="java.generate.copy2temp" inheritRefs="true" />
+ <gluegen src="${stub.includes.opengl}/glu.c"
+ outputRootDir="../${rootrel.build.jogl}"
+ config="${config}/glu-gl2.cfg"
+ includeRefid="stub.includes.fileset.all.gl2"
+ emitter="com.sun.gluegen.opengl.GLEmitter">
+ <classpath refid="gluegen.classpath" />
+ </gluegen>
+ </target>
+
+ <target name="java.generate.platform.glext" unless="setup.nogl2">
+ <echo message="Generating platform-specific OpenGL extension class" />
+ <antcall target="java.generate.copy2temp" inheritRefs="true" />
+ <gluegen src="${glext.platform.header}"
+ outputRootDir="../${rootrel.build.jogl}"
+ config="${glext.platform.cfg}"
+ includeRefid="stub.includes.fileset.all.gl2"
+ emitter="com.sun.gluegen.opengl.GLEmitter">
+ <classpath refid="gluegen.classpath" />
+ </gluegen>
+ </target>
+
+ <target name="java.generate.window.system.es" if="window.es.cfg" unless="setup.noes">
+ <echo message="Generating EGL implementation class" />
+ <antcall target="java.generate.copy2temp" inheritRefs="true" />
+ <dirset id="stub.includes.fileset.platform" dir="." includes="${stub.includes.dir}/${window.es.system}/** ${stub.includes.dir}/common/**" />
+ <gluegen src="${stub.includes.dir}/${window.es.system}/window-system.c"
+ outputRootDir="../${rootrel.build.jogl}"
+ config="${window.es.cfg}"
+ includeRefid="stub.includes.fileset.platform"
+ emitter="com.sun.gluegen.opengl.GLEmitter">
+ <classpath refid="gluegen.classpath" />
+ </gluegen>
+ </target>
+
+ <target name="java.generate.window.system.es.ext" if="window.es.ext.cfg" unless="setup.noes">
+ <echo message="Generating EGLExt implementation class" />
+ <antcall target="java.generate.copy2temp" inheritRefs="true" />
+ <dirset id="stub.includes.fileset.platform" dir="." includes="${stub.includes.dir}/${window.es.system}/** ${stub.includes.dir}/common/**" />
+ <gluegen src="${stub.includes.dir}/${window.es.system}/window-system-ext.c"
+ outputRootDir="../${rootrel.build.jogl}"
+ config="${window.es.ext.cfg}"
+ includeRefid="stub.includes.fileset.platform"
+ emitter="com.sun.gluegen.opengl.GLEmitter">
+ <classpath refid="gluegen.classpath" />
+ </gluegen>
+ </target>
+
+ <target name="java.generate.window.system.os" if="window.os.cfg" unless="setup.nogl2">
+ <echo message="Generating WGL/GLX/CGL/EGL implementation class" />
+ <antcall target="java.generate.copy2temp" inheritRefs="true" />
+ <gluegen src="${stub.includes.dir}/${window.os.system}/window-system.c"
+ outputRootDir="../${rootrel.build.jogl}"
+ config="${window.os.cfg}"
+ includeRefid="stub.includes.fileset.platform"
+ emitter="com.sun.gluegen.opengl.GLEmitter">
+ <classpath refid="gluegen.classpath" />
+ </gluegen>
+ </target>
+
+ <target name="java.generate.SystemUtil.javame_cdc_fp" if="setup.cdcfp">
+ <copy file="../src/jogl/classes/com/sun/opengl/impl/SystemUtil.java.javame_cdc_fp" tofile="../${rootrel.build.jogl}/gensrc/classes/com/sun/opengl/impl/SystemUtil.java" />
+ </target>
+
+ <target name="java.generate.SystemUtil.javase" unless="setup.cdcfp">
+ <copy file="../src/jogl/classes/com/sun/opengl/impl/SystemUtil.java.javase" tofile="../${rootrel.build.jogl}/gensrc/classes/com/sun/opengl/impl/SystemUtil.java" />
+ </target>
+
+ <!-- Generate the SystemUtil class for this particular profile -->
+ <target name="java.generate.SystemUtil" depends="java.generate.SystemUtil.javase, java.generate.SystemUtil.javame_cdc_fp" />
+
+ <target name="java.generate.BufferUtil.javame_cdc_fp" if="setup.cdcfp">
+ <copy file="../src/jogl/classes/com/sun/opengl/util/BufferUtil.java.javame_cdc_fp" tofile="../${rootrel.build.jogl}/gensrc/classes/com/sun/opengl/util/BufferUtil.java" />
+ <copy file="../src/jogl/classes/com/sun/opengl/impl/InternalBufferUtil.java.javame_cdc_fp" tofile="../${rootrel.build.jogl}/gensrc/classes/com/sun/opengl/impl/InternalBufferUtil.java" />
+ </target>
+
+ <target name="java.generate.BufferUtil.javase" unless="setup.cdcfp">
+ <copy file="../src/jogl/classes/com/sun/opengl/util/BufferUtil.java.javase" tofile="../${rootrel.build.jogl}/gensrc/classes/com/sun/opengl/util/BufferUtil.java" />
+ <copy file="../src/jogl/classes/com/sun/opengl/impl/InternalBufferUtil.java.javase" tofile="../${rootrel.build.jogl}/gensrc/classes/com/sun/opengl/impl/InternalBufferUtil.java" />
+ </target>
+
+ <!-- Generate the BufferUtil classes for this particular profile -->
+ <target name="java.generate.BufferUtil" depends="java.generate.BufferUtil.javase, java.generate.BufferUtil.javame_cdc_fp" />
+
+ <target name="java.generate.TextureIO.javame_cdc_fp" if="setup.cdcfp">
+ <copy file="../src/jogl/classes/com/sun/opengl/util/texture/TextureIO.java.javame_cdc_fp" tofile="../${rootrel.build.jogl}/gensrc/classes/com/sun/opengl/util/texture/TextureIO.java" />
+ <copy file="../src/jogl/classes/com/sun/opengl/util/texture/spi/DDSImage.java.javame_cdc_fp" tofile="../${rootrel.build.jogl}/gensrc/classes/com/sun/opengl/util/texture/spi/DDSImage.java" />
+ <copy file="../src/jogl/classes/com/sun/opengl/util/texture/spi/TGAImage.java.javame_cdc_fp" tofile="../${rootrel.build.jogl}/gensrc/classes/com/sun/opengl/util/texture/spi/TGAImage.java" />
+ </target>
+
+ <target name="java.generate.TextureIO.javase" unless="setup.cdcfp">
+ <!-- For debugging -->
+<!--
+ <copy file="../src/jogl/classes/com/sun/opengl/util/texture/TextureIO.java.javame_cdc_fp" tofile="../${rootrel.build.jogl}/gensrc/classes/com/sun/opengl/util/texture/TextureIO.java" />
+ <copy file="../src/jogl/classes/com/sun/opengl/util/texture/spi/DDSImage.java.javame_cdc_fp" tofile="../${rootrel.build.jogl}/gensrc/classes/com/sun/opengl/util/texture/spi/DDSImage.java" />
+ <copy file="../src/jogl/classes/com/sun/opengl/util/texture/spi/TGAImage.java.javame_cdc_fp" tofile="../${rootrel.build.jogl}/gensrc/classes/com/sun/opengl/util/texture/spi/TGAImage.java" />
+-->
+
+ <copy file="../src/jogl/classes/com/sun/opengl/util/texture/TextureIO.java.javase" tofile="../${rootrel.build.jogl}/gensrc/classes/com/sun/opengl/util/texture/TextureIO.java" />
+ <copy file="../src/jogl/classes/com/sun/opengl/util/texture/spi/DDSImage.java.javase" tofile="../${rootrel.build.jogl}/gensrc/classes/com/sun/opengl/util/texture/spi/DDSImage.java" />
+ <copy file="../src/jogl/classes/com/sun/opengl/util/texture/spi/TGAImage.java.javase" tofile="../${rootrel.build.jogl}/gensrc/classes/com/sun/opengl/util/texture/spi/TGAImage.java" />
+
+ </target>
+
+ <!-- Generate the TextureIO classes for this particular profile -->
+ <target name="java.generate.TextureIO" depends="java.generate.TextureIO.javase, java.generate.TextureIO.javame_cdc_fp" />
+
+ <target name="java.generate.gl.platforms" >
+ <dirset id="stub.includes.fileset.platform" dir="." includes="${stub.includes.dir}/${window.os.system}/** ${stub.includes.dir}/${window.es.system}/** ${stub.includes.dir}/common/** ${stub.includes.dir}/opengl/**" />
+
+ <antcall target="java.generate.window.system.os" inheritRefs="true" />
+ <antcall target="java.generate.platform.glext" inheritRefs="true" />
+ </target>
+
+ <!--
+ - Setup the generating ANT tasks and use it to generate the Java files
+ - from the C GL headers. This involves setting the taskdef and creating
+ - the classpath reference id then running the task on each header.
+ -->
+ <target name="java.generate" depends="build.gluegen, java.generate.SystemUtil, java.generate.BufferUtil, java.generate.TextureIO, java.generate.check" unless="java.generate.skip">
+
+ <!-- Add the GlueGen and BuildStaticGLInfo tasks to ANT -->
+ <taskdef name="gluegen" classname="com.sun.gluegen.ant.GlueGenTask"
+ classpathref="gluegen.classpath" />
+ <taskdef name="staticglgen" classname="com.sun.gluegen.ant.StaticGLGenTask"
+ classpathref="gluegen.classpath" />
+
+ <!-- Use the GlueGen and BuildStaticGLInfo tasks to generate the
+ - Java files -->
+
+ <echo message="Generating GL interface and implementation" />
+ <antcall target="java.generate.gl.all" inheritRefs="true" />
+ <!--antcall target="java.generate.gl.nsig" inheritRefs="true" /-->
+
+ <antcall target="java.generate.window.system.es" inheritRefs="true" />
+ <antcall target="java.generate.window.system.es.ext" inheritRefs="true" />
+
+ <echo message="Generating platform-specifics: X11" />
+ <antcall target="java.generate.gl.platforms" inheritRefs="true">
+ <param name="window.os.system" value="x11"/>
+ <param name="window.os.cfg" value="${config}/glx-x11.cfg" />
+ <param name="glext.platform.cfg" value="${config}/glxext.cfg" />
+ <param name="glext.platform.header" value="${stub.includes.dir}/x11/glxext.c" />
+ </antcall>
+
+ <echo message="Generating platform-specifics: Win32" />
+ <antcall target="java.generate.gl.platforms" inheritRefs="true">
+ <param name="window.os.system" value="win32"/>
+ <param name="window.os.cfg" value="${config}/wgl-win32.cfg" />
+ <param name="glext.platform.cfg" value="${config}/wglext.cfg" />
+ <param name="glext.platform.header" value="${stub.includes.dir}/win32/wglext.c" />
+ </antcall>
+
+ <echo message="Generating platform-specifics: MaxOsX" />
+ <antcall target="java.generate.gl.platforms" inheritRefs="true">
+ <param name="window.os.system" value="macosx"/>
+ <param name="window.os.cfg" value="${config}/cgl-macosx.cfg" />
+ <param name="glext.platform.cfg" value="${config}/cglext.cfg" />
+ <param name="glext.platform.header" value="${stub.includes.dir}/macosx/cglext.c" />
+ </antcall>
+
+ <!-- Generate GLU class -->
+ <antcall target="java.generate.glu.base" inheritrefs="true" />
+ <antcall target="java.generate.glu.GL2ES1" inheritrefs="true" />
+ <antcall target="java.generate.glu.GL2" inheritrefs="true" />
+
+ <!-- Inform the user that the generators have successfully created
+ - the necessary Java files -->
+ <echo message="" />
+ <echo message="GlueGen and BuildStaticGLInfo have successfully generated files." />
+
+ </target>
+
+ <target name="java.generate.cg.check">
+ <!-- Blow away all target files if any dependencies are violated
+ (the uptodate task doesn't allow arbitrary source and target filesets but should) -->
+ <dependset>
+ <srcfileset refid="stub.includes.cg.dependencies.fileset" />
+ <targetfileset dir=".">
+ <include name="${src.generated.java.cg}/**/*.java" />
+ <include name="${src.generated.c.cg}/**/*.c" />
+ </targetfileset>
+ </dependset>
+
+ <!-- Now check for the presence of one well-known file -->
+ <uptodate property="java.generate.cg.skip">
+ <srcfiles refid="stub.includes.cg.dependencies.fileset" />
+ <mapper type="merge" to="${src.generated.java}/com/sun/opengl/cg/CgGL.java" />
+ </uptodate>
+ </target>
+
+ <!--
+ - Setup the generating ANT tasks and use it to generate the Java files
+ - from the C GL headers. This involves setting the taskdef and creating
+ - the classpath reference id then running the task on each header.
+ -->
+ <target name="java.generate.cg" depends="java.generate.cg.check" if="jogl.cg" unless="java.generate.cg.skip">
+ <!-- Add the GlueGen and BuildStaticGLInfo tasks to ANT -->
+ <taskdef name="gluegen" classname="com.sun.gluegen.ant.GlueGenTask"
+ classpathref="gluegen.classpath" />
+ <taskdef name="staticglgen" classname="com.sun.gluegen.ant.StaticGLGenTask"
+ classpathref="gluegen.classpath" />
+
+ <!-- Generate CgGL interface class -->
+ <gluegen src="${stub.includes.opengl}/cg.c"
+ outputRootDir="../${rootrel.build.jogl}"
+ config="${config}/cg-common.cfg"
+ includeRefid="stub.includes.cg.fileset.all"
+ emitter="com.sun.gluegen.JavaEmitter">
+ <classpath refid="gluegen.classpath" />
+ </gluegen>
+ </target>
+
+ <!-- ================================================================== -->
+ <!--
+ - Build and dependency rules for the composable pipeline
+ -->
+ <target name="java.generate.composable.pipeline.check.es1" unless="setup.noes1">
+ <!-- Blow away the DebugGL*.java and TraceGL*.java sources if GL*.class has changed
+ (the uptodate element doesn't support arbitrary source and destination files) -->
+ <dependset>
+ <srcfilelist dir="${classes}/javax/media/opengl" files="GLES1.class" />
+ <targetfileset dir="${src.generated.java}/javax/media/opengl"
+ includes="DebugGLES1.java,TraceGLES1.java" />
+ </dependset>
+
+ <!-- Now choose one of the two to test to see if we have to regenerate -->
+ <uptodate property="java.generate.composable.pipeline.skip.es1"
+ srcfile="${classes}/javax/media/opengl/GLES1.class"
+ targetfile="${src.generated.java}/javax/media/opengl/DebugGLES1.java" />
+
+ </target>
+
+ <target name="java.generate.composable.pipeline.check.es2" unless="setup.noes2">
+ <!-- Blow away the DebugGL*.java and TraceGL*.java sources if GL*.class has changed
+ (the uptodate element doesn't support arbitrary source and destination files) -->
+ <dependset>
+ <srcfilelist dir="${classes}/javax/media/opengl" files="GLES2.class" />
+ <targetfileset dir="${src.generated.java}/javax/media/opengl"
+ includes="DebugGLES2.java,TraceGLES2.java" />
+ </dependset>
+
+ <!-- Now choose one of the two to test to see if we have to regenerate -->
+ <uptodate property="java.generate.composable.pipeline.skip.es2"
+ srcfile="${classes}/javax/media/opengl/GLES2.class"
+ targetfile="${src.generated.java}/javax/media/opengl/DebugGLES2.java" />
+
+ </target>
+
+ <target name="java.generate.composable.pipeline.check.gl2es12" unless="setup.nogl2">
+ <!-- Blow away the DebugGL*.java and TraceGL*.java sources if GL*.class has changed
+ (the uptodate element doesn't support arbitrary source and destination files) -->
+ <dependset>
+ <srcfilelist dir="${classes}/javax/media/opengl" files="GL2ES12.class" />
+ <targetfileset dir="${src.generated.java}/javax/media/opengl"
+ includes="DebugGL2ES12.java,TraceGL2ES12.java" />
+ </dependset>
+
+ <!-- Now choose one of the two to test to see if we have to regenerate -->
+ <uptodate property="java.generate.composable.pipeline.skip.gl2es12"
+ srcfile="${classes}/javax/media/opengl/GL2ES12.class"
+ targetfile="${src.generated.java}/javax/media/opengl/DebugGL2ES12.java" />
+ </target>
+
+ <target name="java.generate.composable.pipeline.check.gl2" unless="setup.nogl2">
+ <!-- Blow away the DebugGL*.java and TraceGL*.java sources if GL*.class has changed
+ (the uptodate element doesn't support arbitrary source and destination files) -->
+ <dependset>
+ <srcfilelist dir="${classes}/javax/media/opengl" files="GL2.class" />
+ <targetfileset dir="${src.generated.java}/javax/media/opengl"
+ includes="DebugGL2.java,TraceGL2.java" />
+ </dependset>
+
+ <!-- Now choose one of the two to test to see if we have to regenerate -->
+ <uptodate property="java.generate.composable.pipeline.skip.gl2"
+ srcfile="${classes}/javax/media/opengl/GL2.class"
+ targetfile="${src.generated.java}/javax/media/opengl/DebugGL2.java" />
+ </target>
+
+ <target name="java.generate.composable.pipeline.check.gl3" unless="setup.nogl3">
+ <!-- Blow away the DebugGL*.java and TraceGL*.java sources if GL*.class has changed
+ (the uptodate element doesn't support arbitrary source and destination files) -->
+ <dependset>
+ <srcfilelist dir="${classes}/javax/media/opengl" files="GL3.class" />
+ <targetfileset dir="${src.generated.java}/javax/media/opengl"
+ includes="DebugGL3.java,TraceGL3.java" />
+ </dependset>
+
+ <!-- Now choose one of the two to test to see if we have to regenerate -->
+ <uptodate property="java.generate.composable.pipeline.skip.gl3"
+ srcfile="${classes}/javax/media/opengl/GL3.class"
+ targetfile="${src.generated.java}/javax/media/opengl/DebugGL3.java" />
+ </target>
+
+ <target name="java.generate.composable.pipeline.es1" depends="java.generate.composable.pipeline.check.es1" unless="java.generate.composable.pipeline.skip.es1">
+ <java classname="com.sun.gluegen.opengl.BuildComposablePipeline" fork="yes" failonerror="true">
+ <arg value="javax.media.opengl.GLES1" />
+ <arg value="${src.generated.java}/javax/media/opengl" />
+ <classpath refid="pipeline.classpath" />
+ </java>
+ </target>
+
+ <target name="java.generate.composable.pipeline.es2" depends="java.generate.composable.pipeline.check.es2" unless="java.generate.composable.pipeline.skip.es2">
+ <java classname="com.sun.gluegen.opengl.BuildComposablePipeline" fork="yes" failonerror="true">
+ <arg value="javax.media.opengl.GLES2" />
+ <arg value="${src.generated.java}/javax/media/opengl" />
+ <classpath refid="pipeline.classpath" />
+ </java>
+ </target>
+
+ <target name="java.generate.composable.pipeline.gl2es12" depends="java.generate.composable.pipeline.check.gl2es12" unless="java.generate.composable.pipeline.skip.gl2es12">
+ <java classname="com.sun.gluegen.opengl.BuildComposablePipeline" fork="yes" failonerror="true">
+ <arg value="javax.media.opengl.GL2ES12" />
+ <arg value="${src.generated.java}/javax/media/opengl" />
+ <classpath refid="pipeline.classpath" />
+ </java>
+ </target>
+
+ <target name="java.generate.composable.pipeline.gl2" depends="java.generate.composable.pipeline.check.gl2" unless="java.generate.composable.pipeline.skip.gl2">
+ <java classname="com.sun.gluegen.opengl.BuildComposablePipeline" fork="yes" failonerror="true">
+ <arg value="javax.media.opengl.GL2" />
+ <arg value="${src.generated.java}/javax/media/opengl" />
+ <classpath refid="pipeline.classpath" />
+ </java>
+ </target>
+
+ <target name="java.generate.composable.pipeline.gl3" depends="java.generate.composable.pipeline.check.gl3" unless="java.generate.composable.pipeline.skip.gl3">
+ <java classname="com.sun.gluegen.opengl.BuildComposablePipeline" fork="yes" failonerror="true">
+ <arg value="javax.media.opengl.GL3" />
+ <arg value="${src.generated.java}/javax/media/opengl" />
+ <classpath refid="pipeline.classpath" />
+ </java>
+ </target>
+
+ <target name="java.generate.composable.pipeline.check">
+ <condition property="java.generate.composable.pipeline.skip.es1">
+ <isset property="setup.noes1"/>
+ </condition>
+ <condition property="java.generate.composable.pipeline.skip.es2">
+ <isset property="setup.noes2"/>
+ </condition>
+ <condition property="java.generate.composable.pipeline.skip.gl2">
+ <isset property="setup.nogl2"/>
+ </condition>
+ <condition property="java.generate.composable.pipeline.skip.gl3">
+ <isset property="setup.nogl3"/>
+ </condition>
+ </target>
+ <target name="java.generate.composable.pipeline" depends="java.generate.composable.pipeline.check, java.generate.composable.pipeline.es1, java.generate.composable.pipeline.es2, java.generate.composable.pipeline.gl2, java.generate.composable.pipeline.gl3">
+ </target>
+
+ <target name="java.generate.composable.pipeline.custom.check.glfixfunc">
+ <!-- Blow away the DebugGL*.java and TraceGL*.java sources if GL*.class has changed
+ (the uptodate element doesn't support arbitrary source and destination files) -->
+ <dependset>
+ <srcfilelist dir="${classes}/com/sun/opengl/util/glsl/fixedfunc" files="FixedFuncHook.class" />
+ <srcfilelist dir="${classes}/javax/media/opengl" files="GL2ES1.class" />
+ <srcfilelist dir="${classes}/javax/media/opengl" files="GL2ES2.class" />
+ <targetfileset dir="${src.generated.java}/com/sun/opengl/util/glsl/fixedfunc/impl"
+ includes="FixedFuncImpl.java" />
+ </dependset>
+
+ <!-- Now choose one of the two to test to see if we have to regenerate -->
+ <uptodate property="java.generate.composable.pipeline.custom.skip.glfixfunc"
+ srcfile="${classes}/javax/media/opengl/GL2ES1.class"
+ targetfile="${src.generated.java}/com/sun/opengl/util/glsl/fixedfunc/impl/FixedFuncImpl.java" />
+ </target>
+ <target name="java.generate.composable.pipeline.custom.glfixfunc" depends="java.generate.composable.pipeline.custom.check.glfixfunc" unless="java.generate.composable.pipeline.custom.skip.glfixfunc">
+ <java classname="com.sun.gluegen.opengl.BuildComposablePipeline" fork="yes" failonerror="true">
+ <arg value="javax.media.opengl.GL2ES1" />
+ <arg value="${src.generated.java}/com/sun/opengl/util/glsl/fixedfunc/impl" />
+ <arg value="com.sun.opengl.util.glsl.fixedfunc.impl.FixedFuncImpl" />
+ <arg value="com.sun.opengl.util.glsl.fixedfunc.impl.FixedFuncHook" />
+ <arg value="javax.media.opengl.GL2ES2" />
+ <arg value="prolog_xor_downstream" />
+ <classpath refid="pipeline.classpath" />
+ </java>
+ </target>
+ <target name="java.generate.composable.pipeline.custom" depends="init, build.gluegen, java.generate.composable.pipeline.check, java.generate.composable.pipeline.custom.glfixfunc">
+ </target>
+
+ <!-- ================================================================== -->
+ <!--
+ - Compile the original and generated source. The composable pipelines
+ - will be generated.
+ -->
+ <target name="java.compile.firstpass" depends="java.generate,java.generate.cg">
+ <antcall target="java.generate.cleantemp" inheritRefs="true" />
+
+ <!-- Perform the first pass Java compile. -->
+ <javac destdir="${classes}"
+ includes="javax/media/opengl/fixedfunc/** javax/media/opengl/GLDrawableFactory.java javax/media/opengl/GLDrawable.java javax/media/opengl/GLContext.java javax/media/opengl/GL.java javax/media/opengl/GL2ES1.java javax/media/opengl/GL2ES2.java javax/media/opengl/GL2.java javax/media/opengl/GLES1.java javax/media/opengl/GLES2.java javax/media/opengl/GL3.java"
+ fork="yes"
+ memoryMaximumSize="${javac.memorymax}"
+ source="1.4" debug="${javacdebug}" debuglevel="${javacdebuglevel}">
+ <classpath refid="nativewindow_gluegen.classpath"/>
+ <src path="${src.java}" />
+ <src path="${src.generated.java}" />
+ </javac>
+ </target>
+
+ <target name="java.compile.secondpass.1" if="javac.bootclasspath.jar">
+ <!-- Perform the second pass Java compile; everything except portion of fixed function emulation depending on generated code. -->
+ <javac destdir="${classes}"
+ excludes="com/sun/opengl/util/glsl/fixedfunc/FixedFuncUtil.java,${java.excludes.all}"
+ source="${jogl.sourcelevel}"
+ bootclasspath="${javac.bootclasspath.jar}"
+ fork="yes"
+ memoryMaximumSize="${javac.memorymax}"
+ debug="${javacdebug}" debuglevel="${javacdebuglevel}">
+ <classpath refid="nativewindow_gluegen.classpath"/>
+ <src path="${src.java}" />
+ <src path="${src.generated.java}" />
+ </javac>
+ </target>
+
+ <target name="java.compile.secondpass.2" unless="javac.bootclasspath.jar">
+ <!-- Perform the second pass Java compile; everything except portion of fixed function emulation depending on generated code. -->
+ <javac destdir="${classes}"
+ excludes="com/sun/opengl/util/glsl/fixedfunc/FixedFuncUtil.java,${java.excludes.all}"
+ source="${jogl.sourcelevel}"
+ fork="yes"
+ memoryMaximumSize="${javac.memorymax}"
+ debug="${javacdebug}" debuglevel="${javacdebuglevel}">
+ <classpath refid="nativewindow_gluegen.classpath"/>
+ <src path="${src.java}" />
+ <src path="${src.generated.java}" />
+ </javac>
+ </target>
+
+ <target name="java.compile.secondpass" depends="java.generate.composable.pipeline,java.compile.secondpass.1,java.compile.secondpass.2" />
+
+ <target name="java.compile.thirdpass.1" if="javac.bootclasspath.jar">
+ <!-- Perform the third pass Java compile; everything including fixed function emulation. -->
+ <javac destdir="${classes}"
+ excludes="${java.excludes.all}"
+ source="${jogl.sourcelevel}"
+ bootclasspath="${javac.bootclasspath.jar}"
+ fork="yes"
+ memoryMaximumSize="${javac.memorymax}"
+ debug="${javacdebug}" debuglevel="${javacdebuglevel}">
+ <classpath refid="nativewindow_gluegen.classpath"/>
+ <src path="${src.java}" />
+ <src path="${src.generated.java}" />
+ </javac>
+ </target>
+
+ <target name="java.compile.thirdpass.2" unless="javac.bootclasspath.jar">
+ <!-- Perform the third pass Java compile; everything including fixed function emulation. -->
+ <javac destdir="${classes}"
+ excludes="${java.excludes.all}"
+ source="${jogl.sourcelevel}"
+ fork="yes"
+ memoryMaximumSize="${javac.memorymax}"
+ debug="${javacdebug}" debuglevel="${javacdebuglevel}">
+ <classpath refid="nativewindow_gluegen.classpath"/>
+ <src path="${src.java}" />
+ <src path="${src.generated.java}" />
+ </javac>
+ </target>
+
+ <target name="java.compile.thirdpass" depends="java.generate.composable.pipeline.custom,java.compile.thirdpass.1,java.compile.thirdpass.2" />
+
+ <target name="java.compile" depends="java.compile.firstpass,java.compile.secondpass,java.compile.thirdpass" />
+
+ <!-- ================================================================== -->
+ <!--
+ - Compile the native C code for JOGL (and optionally the Cg binding).
+ -->
+
+ <target name="c.configure.1" depends="gluegen.cpptasks.detect.os,gluegen.cpptasks.setup.compiler" unless="jogl.compiler.present">
+ <!-- compiler configuration -->
+ <!-- Note that we can use the base setups in the gluegen-cpptasks for most of these -->
+
+ <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" />
+ </compiler>
+
+ <!-- linker configuration -->
+
+ <linker id="linker.cfg.linux.jogl.x11" extends="linker.cfg.linux">
+ <syslibset dir="/usr/X11R6/lib" libs="X11"/>
+ <syslibset dir="/usr/X11R6/lib" libs="Xxf86vm" />
+ </linker>
+
+ <linker id="linker.cfg.linux.jogl.gl2" extends="linker.cfg.linux.jogl.x11">
+ <syslibset dir="/usr/X11R6/lib" libs="GL"/>
+ <syslibset dir="${x11.cg.lib}" libs="Cg, CgGL" if="c.compiler.use-cglib"/>
+ </linker>
+
+ <linker id="linker.cfg.linux.amd64.jogl.x11" extends="linker.cfg.linux.amd64">
+ <syslibset dir="/usr/X11R6/lib64" libs="X11"/>
+ <syslibset dir="/usr/X11R6/lib64" libs="Xxf86vm" />
+ </linker>
+
+ <linker id="linker.cfg.linux.amd64.jogl.gl2" extends="linker.cfg.linux.amd64.jogl.x11">
+ <syslibset dir="/usr/X11R6/lib64" libs="GL"/>
+ <syslibset dir="${x11.cg.lib}" libs="Cg, CgGL" if="c.compiler.use-cglib"/>
+ </linker>
+
+ <linker id="linker.cfg.solaris.jogl.x11" extends="linker.cfg.solaris">
+ <syslibset libs="X11"/>
+ </linker>
+
+ <linker id="linker.cfg.solaris.jogl.gl2" extends="linker.cfg.solaris">
+ <syslibset libs="GL"/>
+ <syslibset dir="${x11.cg.lib}" libs="Cg, CgGL" if="c.compiler.use-cglib"/>
+ </linker>
+
+ <linker id="linker.cfg.solaris.sparcv9.jogl.gl2" extends="linker.cfg.solaris.sparcv9">
+ <linkerarg value="-xarch=v9a" />
+ <syslibset dir="/usr/openwin/lib/sparcv9" libs="GL"/>
+ <syslibset dir="/usr/lib/sparcv9" libs="X11"/>
+ </linker>
+
+ <linker id="linker.cfg.solaris.amd64.jogl.gl2" extends="linker.cfg.solaris.amd64">
+ <linkerarg value="-xarch=amd64" />
+ <syslibset dir="/usr/lib/amd64" libs="GL"/>
+ <syslibset dir="/usr/lib/amd64" libs="X11"/>
+ </linker>
+
+ <linker id="linker.cfg.win32.mingw.jogl" extends="linker.cfg.win32.mingw">
+ <linkerarg value="-Wl,--kill-at" /> <!-- remove @ from function names -->
+ <syslibset libs="opengl32, glu32, gdi32, kernel32"/>
+ <syslibset dir="${windows.cg.lib}" libs="cg, cgGL" if="c.compiler.use-cglib"/>
+ </linker>
+
+ <linker id="linker.cfg.win32.msvc.jogl" extends="linker.cfg.win32.msvc">
+ <syslibset libs="opengl32, gdi32, user32, kernel32" />
+ <syslibset dir="${windows.cg.lib}" libs="cg, cgGL" if="c.compiler.use-cglib"/>
+ <!-- This is temporary -->
+ <syslibset libs="winmm" />
+ </linker>
+
+ <linker id="linker.cfg.macosx.jogl" extends="linker.cfg.macosx">
+ <linkerarg value="-framework" />
+ <linkerarg value="Cocoa" />
+ <linkerarg value="-framework" />
+ <linkerarg value="OpenGL" />
+ <linkerarg value="-framework" if="c.compiler.use-cglib" />
+ <linkerarg value="Cg" if="c.compiler.use-cglib" />
+ </linker>
+
+ <linker id="linker.cfg.hpux.jogl" extends="linker.cfg.hpux">
+ <syslibset dir="/opt/graphics/OpenGL/lib" libs="GL, GLU"/>
+ <syslibset dir="/usr/lib" libs="X11"/>
+ </linker>
+ </target>
+
+ <target name="c.configure.win32.vc" if="isVCFamily">
+ <echo message="Win32.VC" />
+ <property name="compiler.cfg.id" value="compiler.cfg.win32.msvc" />
+ <property name="linker.cfg.id.core" value="linker.cfg.win32.msvc" />
+ <property name="linker.cfg.id.oswin" value="linker.cfg.win32.msvc.jogl" />
+ <property name="linker.cfg.id.gl2" value="linker.cfg.win32.msvc.jogl" />
+ </target>
+
+ <target name="c.configure.win32.mingw" if="isMingW">
+ <echo message="Win32.MingW" />
+ <property name="compiler.cfg.id" value="compiler.cfg.win32.mingw" />
+ <property name="linker.cfg.id.core" value="linker.cfg.win32.mingw" />
+ <property name="linker.cfg.id.oswin" value="linker.cfg.win32.mingw.jogl" />
+ <property name="linker.cfg.id.gl2" value="linker.cfg.win32.mingw.jogl" />
+ </target>
+
+ <target name="c.configure.linux.x86" if="isLinuxX86">
+ <echo message="Linux.x86" />
+ <property name="compiler.cfg.id" value="compiler.cfg.linux" />
+ <property name="linker.cfg.id.core" value="linker.cfg.linux" />
+ <property name="linker.cfg.id.oswin" value="linker.cfg.linux.jogl.x11" />
+ <property name="linker.cfg.id.gl2" value="linker.cfg.linux.jogl.gl2" />
+ </target>
+
+ <target name="c.configure.linux.amd64" if="isLinuxAMD64">
+ <echo message="Linux.AMD64" />
+ <property name="compiler.cfg.id" value="compiler.cfg.linux.amd64" />
+ <property name="linker.cfg.id.core" value="linker.cfg.linux.amd64" />
+ <property name="linker.cfg.id.oswin" value="linker.cfg.linux.amd64.jogl.x11" />
+ <property name="linker.cfg.id.gl2" value="linker.cfg.linux.amd64.jogl.gl2" />
+ </target>
+
+ <target name="c.configure.linux.ia64" if="isLinuxIA64">
+ <echo message="Linux.IA64" />
+ <property name="compiler.cfg.id" value="compiler.cfg.linux" />
+ <property name="linker.cfg.id.core" value="linker.cfg.linux" />
+ <property name="linker.cfg.id.oswin" value="linker.cfg.linux.jogl.x11" />
+ <property name="linker.cfg.id.gl2" value="linker.cfg.linux.jogl.gl2" />
+ </target>
+
+ <target name="c.configure.linux" depends="c.configure.linux.x86,c.configure.linux.amd64,c.configure.linux.ia64,c.configure.x11" if="isLinux" />
+
+ <target name="c.configure.solaris32" depends="c.configure.x11" if="isSolaris32Bit">
+ <echo message="Solaris" />
+ <property name="compiler.cfg.id" value="compiler.cfg.solaris" />
+ <property name="linker.cfg.id.core" value="linker.cfg.solaris" />
+ <property name="linker.cfg.id.oswin" value="linker.cfg.solaris.jogl.x11" />
+ <property name="linker.cfg.id.gl2" value="linker.cfg.solaris.jogl.gl2" />
+ </target>
+
+
+ <target name="c.configure.solaris.sparcv9" depends="c.configure.x11" if="isSolarisSparcv9">
+ <echo message="SolarisSparcv9" />
+ <property name="compiler.cfg.id" value="compiler.cfg.solaris.sparcv9" />
+ <property name="linker.cfg.id.core" value="linker.cfg.solaris.sparcv9" />
+ <property name="linker.cfg.id.oswin" value="linker.cfg.solaris.sparcv9.jogl.x11" />
+ <property name="linker.cfg.id.gl2" value="linker.cfg.solaris.sparcv9.jogl.gl2" />
+ </target>
+
+
+ <target name="c.configure.solaris.amd64" depends="c.configure.x11" if="isSolarisAMD64">
+ <echo message="SolarisAMD64" />
+ <property name="compiler.cfg.id" value="compiler.cfg.solaris.amd64" />
+ <property name="linker.cfg.id.core" value="linker.cfg.solaris.amd64" />
+ <property name="linker.cfg.id.oswin" value="linker.cfg.solaris.amd64.jogl.x11" />
+ <property name="linker.cfg.id.gl2" value="linker.cfg.solaris.amd64.jogl.gl2" />
+ </target>
+
+ <target name="c.configure.freebsd" depends="c.configure.x11" if="isFreeBSD">
+ <echo message="FreeBSD" />
+ <property name="compiler.cfg.id" value="compiler.cfg.freebsd.jogl" />
+ <property name="linker.cfg.id.core" value="linker.cfg.linux" />
+ <property name="linker.cfg.id.oswin" value="linker.cfg.linux.jogl.x11" />
+ <property name="linker.cfg.id.gl2" value="linker.cfg.linux.jogl.gl2" />
+ </target>
+
+ <target name="c.configure.hpux" depends="c.configure.x11" if="isHPUX">
+ <echo message="HP-UX" />
+ <property name="compiler.cfg.id" value="compiler.cfg.hpux" />
+ <property name="linker.cfg.id.core" value="linker.cfg.hpux" />
+ <property name="linker.cfg.id.oswin" value="linker.cfg.hpux.jogl.x11" />
+ <property name="linker.cfg.id.gl2" value="linker.cfg.hpux.jogl.gl2" />
+ </target>
+
+ <target name="c.configure.win32" depends="c.configure.win32.vc,c.configure.win32.mingw" if="isWindows" />
+
+ <target name="c.configure.x11" if="isX11" />
+
+ <target name="c.configure.macosx" if="isOSX">
+ <property name="compiler.cfg.id" value="compiler.cfg.macosx" />
+ <property name="linker.cfg.id.core" value="linker.cfg.macosx" />
+ <property name="linker.cfg.id.oswin" value="linker.cfg.macosx.jogl" />
+ <property name="linker.cfg.id.gl2" value="linker.cfg.macosx.jogl" />
+ </target>
+
+ <target name="c.configure.2" depends="c.configure.win32,c.configure.linux,c.configure.solaris32,c.configure.solaris.sparcv9,c.configure.solaris.amd64,c.configure.macosx,c.configure.freebsd,c.configure.hpux" />
+
+ <target name="c.configure" depends="c.configure.1,c.configure.2" />
+
+ <target name="rename.mingw.dll" if="isMingW">
+ <move file="${src}" tofile="${dest}" />
+ </target>
+
+ <target name="rename.dylib" if="isOSX">
+ <move file="${src}" tofile="${dest}" />
+ </target>
+
+ <macrodef name="c.build">
+ <attribute name="c.compiler.src.files" />
+ <attribute name="compiler.cfg.id" />
+ <attribute name="linker.cfg.id" />
+ <attribute name="output.lib.name" />
+ <attribute name="c.compiler.use-jawt" default="false"/>
+ <sequential>
+ <echo message="Output lib name = @{output.lib.name}" />
+
+ <!-- NOTE: the value of the debug and optimise attributes will not be overridden if already set externally -->
+ <property name="c.compiler.debug" value="false" />
+ <!-- Optimise flags one of { none, size, speed, minimal, full, aggressive, extreme, unsafe } -->
+ <property name="c.compiler.optimise" value="none" />
+
+ <condition property="c.compiler.use-debug"><istrue value="${c.compiler.debug}"/></condition>
+
+ <patternset id="c.src.files.jogl.gl2">
+ <include name="${rootrel.src.c}/macosx/MacOSXWindowSystemInterface.m" if="isOSX"/>
+ <include name="${rootrel.src.c}/macosx/ContextUpdater.m" if="isOSX"/>
+ <include name="${rootrel.src.c}/GLXGetProcAddressARB.c" if="isX11"/>
+ <!-- FIXME: the Mixer should be moved to another library -->
+ <!--include name="${rootrel.src.c}/Mixer.cpp" if="isWindows"/-->
+ <include name="${rootrel.src.c.openmax}/omx_tool.c" if="useOpenMAX"/>
+ <include name="${rootrel.src.c.openmax}/com_sun_openmax_OMXInstance.c" if="useOpenMAX"/>
+
+ <include name="${rootrel.generated.c.jogl}/gl2/GL2Impl_JNI.c"/>
+ <include name="${rootrel.generated.c.jogl}/gl3/GL3Impl_JNI.c"/>
+ <!--include name="${rootrel.generated.c.jogl}/GLU_JNI.c"/ EMPTY -->
+ <include name="${rootrel.generated.c.jogl}/gl2/GLUgl2_JNI.c"/>
+ <include name="${rootrel.generated.c.jogl}/X11/GLX*.c" if="isX11"/>
+ <include name="${rootrel.generated.c.jogl}/MacOSX/CGL*.c" if="isOSX"/>
+ <include name="${rootrel.generated.c.jogl}/Windows/WGL*.c" if="isWindows"/>
+ </patternset>
+
+ <patternset id="c.src.files.jogl.gl2es12">
+ <include name="${rootrel.src.c}/macosx/MacOSXWindowSystemInterface.m" if="isOSX"/>
+ <include name="${rootrel.src.c}/macosx/ContextUpdater.m" if="isOSX"/>
+ <include name="${rootrel.src.c}/GLXGetProcAddressARB.c" if="isX11"/>
+ <!-- FIXME: the Mixer should be moved to another library -->
+ <!--include name="${rootrel.src.c}/Mixer.cpp" if="isWindows"/-->
+ <include name="${rootrel.src.c.openmax}/omx_tool.c" if="useOpenMAX"/>
+ <include name="${rootrel.src.c.openmax}/com_sun_openmax_OMXInstance.c" if="useOpenMAX"/>
+
+ <include name="${rootrel.generated.c.jogl}/gl2es12/GL2ES12Impl_JNI.c"/>
+ <!--include name="${rootrel.generated.c.jogl}/GLU_JNI.c"/ EMPTY -->
+ <!--include name="${rootrel.generated.c.jogl}/gl2es12/GLUgl2es12_JNI.c"/ SKIPPED -->
+ <include name="${rootrel.generated.c.jogl}/X11/GLX*.c" if="isX11"/>
+ <include name="${rootrel.generated.c.jogl}/MacOSX/CGL*.c" if="isOSX"/>
+ <include name="${rootrel.generated.c.jogl}/Windows/WGL*.c" if="isWindows"/>
+ </patternset>
+
+ <patternset id="c.src.files.jogl.es2">
+ <include name="${rootrel.src.c}/GLXGetProcAddressARB.c" if="isX11"/>
+ <include name="${rootrel.src.c.openmax}/omx_tool.c" if="useOpenMAX"/>
+ <include name="${rootrel.src.c.openmax}/com_sun_openmax_OMXInstance.c" if="useOpenMAX"/>
+
+ <include name="${rootrel.generated.c.jogl}/egl/EGL_JNI.c"/>
+ <include name="${rootrel.generated.c.jogl}/egl/EGLExtImpl_JNI.c"/>
+ <include name="${rootrel.generated.c.jogl}/es2/GLES2Impl_JNI.c"/>
+ </patternset>
+
+ <patternset id="c.src.files.jogl.es1">
+ <include name="${rootrel.src.c}/GLXGetProcAddressARB.c" if="isX11"/>
+ <include name="${rootrel.src.c.openmax}/omx_tool.c" if="useOpenMAX"/>
+ <include name="${rootrel.src.c.openmax}/com_sun_openmax_OMXInstance.c" if="useOpenMAX"/>
+
+ <include name="${rootrel.generated.c.jogl}/egl/EGL_JNI.c"/>
+ <include name="${rootrel.generated.c.jogl}/egl/EGLExtImpl_JNI.c"/>
+ <include name="${rootrel.generated.c.jogl}/es1/GLES1Impl_JNI.c"/>
+ <!--include name="${rootrel.generated.c.jogl}/GLU_JNI.c"/ EMPTY -->
+ <!--include name="${rootrel.generated.c.jogl}/es1/GLUes1_JNI.c" EMPTY /-->
+ </patternset>
+
+ <patternset id="c.src.files.cg">
+ <include name="${rootrel.generated.c.cg}/*.c"/>
+ </patternset>
+
+ <echo message="Compiling @{output.lib.name}" />
+
+ <cc outtype="shared"
+ objdir="${obj.jogl}"
+ outfile="${obj}/@{output.lib.name}"
+ optimize="${c.compiler.optimise}"
+ debug="${c.compiler.debug}"
+ multithreaded="true"
+ exceptions="false"
+ rtti="false">
+
+ <!-- TODO: versioninfo companyname="java.net"
+ legalcopyright="Copyright"
+ productname="JOGL"
+ productversion="x.y.z"
+ description="Description"
+ fileversion="x.y.z"
+ filecomments="File Comment" /-->
+
+ <fileset dir="${project.root}"><patternset refid="@{c.compiler.src.files}"/></fileset>
+
+ <compiler extends="@{compiler.cfg.id}" >
+ <sysincludepath path="${java.includes.dir}"/>
+ <sysincludepath path="${java.includes.dir.platform}"/>
+ <includepath path="stub_includes/opengl"/>
+ <includepath path="stub_includes/egl"/>
+ <includepath path="stub_includes/openmax" if="useOpenMAX"/>
+ <includepath path="stub_includes/cg" if="c.compiler.use-cglib"/>
+
+ <!-- This is for the generated headers for handwritten C code -->
+ <includepath path="${src.generated.c}" />
+ <includepath path="${src.generated.c}/X11" if="isX11"/>
+ <includepath path="${src.generated.c}/MacOSX" if="isOSX"/>
+ <includepath path="${src.generated.c}/Windows" if="isWindows"/>
+ <includepath path="${src.generated.c.openmax}" if="useOpenMAX"/>
+
+ <!-- This must come last to not override real include paths -->
+ <!-- includepath path="stub_includes/macosx" if="isOSX" / -->
+ </compiler>
+
+ <linker extends="@{linker.cfg.id}">
+ <syslibset dir="${java.lib.dir.platform}" libs="jawt" if="@{output.lib.name}.useLibJAWT"/>
+ <syslibset dir="${java.lib.dir.platform}/server" libs="jvm" if="@{output.lib.name}.useLibJVM"/>
+ </linker>
+ </cc>
+
+ <!-- FIXME: this is a hack; the cpptask should have an option to change the
+ suffix or at least understand the override from dylib to jnilib -->
+ <antcall target="rename.dylib" inheritRefs="true">
+ <param name="src" value="${build}/obj/lib@{output.lib.name}.dylib" />
+ <param name="dest" value="${build}/obj/lib@{output.lib.name}.jnilib" />
+ </antcall>
+
+ <!-- FIXME: this is a hack; the cpptask should have an option to change the
+ suffix or at least understand the override from dylib to jnilib -->
+ <antcall target="rename.mingw.dll" inheritRefs="true">
+ <param name="src" value="${build}/obj/lib@{output.lib.name}.so" />
+ <param name="dest" value="${build}/obj/@{output.lib.name}.dll" />
+ </antcall>
+ </sequential>
+ </macrodef>
+
+ <target name="c.build.jogl.prepare">
+ <!-- Generate the waveout Mixer header -->
+ <!-- FIXME: this is temporary until we move this to another workspace -->
+ <javah destdir="../${rootrel.build.jogl}/gensrc/native/jogl" classpath="${jogl.all.jar}" class="com.sun.javafx.audio.windows.waveout.Mixer" />
+ <javah destdir="../${rootrel.build.jogl}/gensrc/native/openmax" classpath="${jogl.all.jar}" class="com.sun.openmax.OMXInstance" />
+ </target>
+
+ <target name="c.build.jogl.gl2" unless="setup.nogl2">
+ <c.build c.compiler.src.files="c.src.files.jogl.gl2"
+ output.lib.name="jogl_gl2"
+ compiler.cfg.id="${compiler.cfg.id}"
+ linker.cfg.id="${linker.cfg.id.gl2}"/>
+ </target>
+
+ <target name="c.build.jogl.gl2es12" unless="setup.nogl2">
+ <c.build c.compiler.src.files="c.src.files.jogl.gl2es12"
+ output.lib.name="jogl_gl2es12"
+ compiler.cfg.id="${compiler.cfg.id}"
+ linker.cfg.id="${linker.cfg.id.gl2}"/>
+ </target>
+
+ <target name="c.build.jogl.es2" unless="setup.noes1">
+ <c.build c.compiler.src.files="c.src.files.jogl.es2"
+ output.lib.name="jogl_es2"
+ compiler.cfg.id="${compiler.cfg.id}"
+ linker.cfg.id="${linker.cfg.id.base}"/>
+ </target>
+
+ <target name="c.build.jogl.es1" unless="setup.noes2">
+ <c.build c.compiler.src.files="c.src.files.jogl.es1"
+ output.lib.name="jogl_es1"
+ compiler.cfg.id="${compiler.cfg.id}"
+ linker.cfg.id="${linker.cfg.id.base}"/>
+ </target>
+
+ <target name="c.build.jogl.cg" if="jogl.cg">
+ <c.build c.compiler.src.files="c.src.files.cg"
+ output.lib.name="jogl_cg"
+ compiler.cfg.id="${compiler.cfg.id}"
+ linker.cfg.id="${linker.cfg.id.gl2}"/>
+ </target>
+
+ <target name="c.manifest.cg" if="jogl.cg">
+ <msvc.manifest objdir="${obj}" dllname="jogl_cg" />
+ </target>
+
+ <target name="c.manifest" if="isVC8Family">
+ <!-- exec mt, the Microsoft Manifest Tool, to include DLL manifests in order to resolve the location of msvcr80.dll -->
+ <msvc.manifest objdir="${obj}" dllname="jogl_es1" />
+ <msvc.manifest objdir="${obj}" dllname="jogl_es2" />
+ <msvc.manifest objdir="${obj}" dllname="jogl_gl2" />
+ <msvc.manifest objdir="${obj}" dllname="jogl_gl2es12" />
+ <antcall target="c.manifest.cg" inheritRefs="true" />
+ </target>
+
+ <target name="c.build.jogl" depends="c.configure,c.build.jogl.prepare,c.build.jogl.gl2es12,c.build.jogl.gl2,c.build.jogl.es2,c.build.jogl.es1,c.build.jogl.cg">
+ <antcall target="c.manifest" inheritRefs="true" />
+ </target>
+
+ <!-- ================================================================== -->
+ <!--
+ - Build the jogl.jar files.
+ -->
+ <target name="jar" depends="java.compile,cond-if-RImanifest,cond-else-RImanifest"/>
+
+ <target name="check-RIcond">
+ <condition property="RIcond-is-true">
+ <isset property="RImanifestfile"/>
+ </condition>
+ </target>
+
+ <target name="cond-if-RImanifest" depends="check-RIcond" if="RIcond-is-true">
+ <copy file="joglRIversion"
+ tofile="tempversion"
+ overwrite="true">
+ <filterset>
+ <filter token="VERSION" value="${base_version}-pre-${timestamp}"/>
+ <filter token="BASEVERSION" value="${base_version}"/>
+ </filterset>
+ </copy>
+
+ <jar manifest="tempversion" destfile="${jogl.core.jar}">
+ <fileset dir="${classes}"
+ includes="javax/media/opengl/**, com/sun/gluegen/runtime/**, com/sun/opengl/**"
+ excludes="${java.excludes.fixme} ${java.part.egl}, ${java.part.sdk}, ${java.part.openmax}, ${java.part.gl2es12.x11}, ${java.part.gl2es12.win}, ${java.part.gl2es12.osx}, ${java.part.gl2es12.dbg}, ${java.part.gl2.x11}, ${java.part.gl2.win}, ${java.part.gl2.osx}, ${java.part.gl2.dbg}, ${java.part.es1}, ${java.part.es1.dbg}, ${java.part.es2}, ${java.part.es2.dbg}, ${java.part.awt}, ${java.part.glutess}, ${java.part.glumipmap}, ${java.part.glugl2}, ${java.part.util} ${java.part.util.awt} ${java.part.util.gl2} ${java.part.util.glsl} ${java.part.util.fixedfuncemu}"/>
+ </jar>
+ <jar manifest="tempversion" destfile="${jogl.gles1.jar}">
+ <fileset dir="${classes}"
+ includes="${java.part.es1}"
+ excludes="${java.part.es1.dbg}"/>
+ </jar>
+ <jar manifest="tempversion" destfile="${jogl.gles1.dbg.jar}">
+ <fileset dir="${classes}"
+ includes="${java.part.es1.dbg}"/>
+ </jar>
+ <jar manifest="tempversion" destfile="${jogl.gles2.jar}">
+ <fileset dir="${classes}"
+ includes="${java.part.es2}, ${java.part.openmax}"
+ excludes="${java.part.es2.dbg}"/>
+ </jar>
+ <jar manifest="tempversion" destfile="${jogl.gles2.dbg.jar}">
+ <fileset dir="${classes}"
+ includes="${java.part.es2.dbg}"/>
+ </jar>
+ <jar manifest="tempversion" destfile="${jogl.egl.jar}">
+ <fileset dir="${classes}"
+ includes="${java.part.egl}"
+ excludes="${java.part.awt}"/>
+ </jar>
+ <jar manifest="tempversion" destfile="${jogl.gl2es12.x11.jar}">
+ <fileset dir="${classes}"
+ includes="${java.part.gl2es12.x11}, ${java.part.openmax}"
+ excludes="${java.part.gl2es12.dbg}, ${java.part.glugl2}"/>
+ </jar>
+ <jar manifest="tempversion" destfile="${jogl.gl2es12.win.jar}">
+ <fileset dir="${classes}"
+ includes="${java.part.gl2es12.win}, ${java.part.openmax}"
+ excludes="${java.part.gl2es12.dbg}, ${java.part.glugl2}"/>
+ </jar>
+ <jar manifest="tempversion" destfile="${jogl.gl2es12.osx.jar}">
+ <fileset dir="${classes}"
+ includes="${java.part.gl2es12.osx}, ${java.part.openmax}"
+ excludes="${java.part.gl2es12.dbg}, ${java.part.glugl2}"/>
+ </jar>
+ <jar manifest="tempversion" destfile="${jogl.gl2es12.dbg.jar}">
+ <fileset dir="${classes}"
+ includes="${java.part.gl2es12.dbg}"/>
+ </jar>
+ <jar manifest="tempversion" destfile="${jogl.gl2.x11.jar}">
+ <fileset dir="${classes}"
+ includes="${java.part.gl2.x11}, ${java.part.gl3}, ${java.part.openmax}"
+ excludes="${java.part.gl2.dbg}, ${java.part.glugl2}"/>
+ </jar>
+ <jar manifest="tempversion" destfile="${jogl.gl2.win.jar}">
+ <fileset dir="${classes}"
+ includes="${java.part.gl2.win}, $${java.part.gl3}, {java.part.openmax}"
+ excludes="${java.part.gl2.dbg}, ${java.part.glugl2}"/>
+ </jar>
+ <jar manifest="tempversion" destfile="${jogl.gl2.osx.jar}">
+ <fileset dir="${classes}"
+ includes="${java.part.gl2.osx}, $${java.part.gl3}, {java.part.openmax}"
+ excludes="${java.part.gl2.dbg}, ${java.part.glugl2}"/>
+ </jar>
+ <jar manifest="tempversion" destfile="${jogl.gl2.dbg.jar}">
+ <fileset dir="${classes}"
+ includes="${java.part.gl2.dbg}"/>
+ </jar>
+ <jar manifest="tempversion" destfile="${jogl.sdk.jar}">
+ <fileset dir="${classes}"
+ includes="${java.part.sdk}"/>
+ </jar>
+ <jar manifest="tempversion" destfile="${jogl.glutess.jar}">
+ <fileset dir="${classes}"
+ includes="${java.part.glutess}"/>
+ </jar>
+ <jar manifest="tempversion" destfile="${jogl.glumipmap.jar}">
+ <fileset dir="${classes}"
+ includes="${java.part.glumipmap}"/>
+ </jar>
+ <jar manifest="tempversion" destfile="${jogl.glugl2.jar}">
+ <fileset dir="${classes}"
+ includes="${java.part.glugl2}"/>
+ </jar>
+ <jar manifest="tempversion" destfile="${jogl.awt.jar}">
+ <fileset dir="${classes}"
+ includes="${java.part.awt}" />
+ </jar>
+ <jar manifest="tempversion" destfile="${jogl.util.jar}">
+ <fileset dir="${classes}"
+ includes="${java.part.util}, ${java.part.util.glsl}"
+ excludes="${java.part.util.awt}, ${java.part.util.gl2}, ${java.part.gl3}, ${java.part.util.fixedfuncemu}"/>
+ </jar>
+ <jar manifest="tempversion" destfile="${jogl.util.gl2.jar}">
+ <fileset dir="${classes}"
+ includes="${java.part.util.gl2}"
+ excludes="com/sun/opengl/**/awt/**"/>
+ </jar>
+ <jar manifest="tempversion" destfile="${jogl.util.awt.jar}">
+ <fileset dir="${classes}"
+ includes="${java.part.util.awt}"/>
+ </jar>
+ <jar manifest="tempversion" destfile="${jogl.util.fixedfuncemu.jar}">
+ <fileset dir="${classes}"
+ includes="${java.part.util.fixedfuncemu}"/>
+ <fileset dir="${src.java}"
+ includes="${java.part.util.fixedfuncemu.shadercode}"/>
+ </jar>
+ <jar manifest="tempversion" destfile="${jogl.all.jar}">
+ <fileset dir="${classes}">
+ <include name="javax/media/opengl/**" />
+ <include name="com/sun/gluegen/runtime/**" />
+ <include name="com/sun/opengl/**" />
+ <include name="${java.part.openmax}" />
+ <!-- FIXME: this is temporary until we move these classes to another workspace -->
+ <include name="com/sun/javafx/**" />
+ </fileset>
+ <fileset dir="${src.java}"
+ includes="${java.part.util.fixedfunc.shaders}"/>
+ </jar>
+ <delete file="tempversion"/>
+ </target>
+
+
+ <target name="cond-else-RImanifest" depends="check-RIcond" unless="RIcond-is-true">
+ <tstamp>
+ <format property="timestamp" pattern="yyyyMMdd-HH:mm:ss"/>
+ </tstamp>
+ <copy file="joglversion"
+ tofile="tempversion"
+ overwrite="true">
+ <filterset>
+ <filter token="VERSION" value="${base_version}-pre-${timestamp}"/>
+ <filter token="BASEVERSION" value="${base_version}"/>
+ </filterset>
+ </copy>
+ <jar manifest="tempversion" destfile="${jogl.jar}">
+ <fileset dir="${classes}">
+ <include name="javax/media/opengl/**" />
+ <include name="com/sun/gluegen/runtime/**" />
+ <include name="com/sun/opengl/**" />
+ <include name="com/sun/javafx/**" />
+ </fileset>
+ </jar>
+ <delete file="tempversion"/>
+ </target>
+
+ <!-- ================================================================== -->
+ <!--
+ - Build the Javadocs for the sources.
+ - NOTE: these are not entirely correct as the javadocs targets depend
+ - on the platform specific build targets. To circumvent any
+ - errors, ensure that the source is built first.
+ -->
+ <target name="javadoc.nocg" depends="load.user.properties,init" unless="jogl.cg">
+ <!-- Build the general public Javadoc -->
+ <javadoc packagenames="${javadoc.packagenames}"
+ excludepackagenames="${java.excludes.javadoc.packagenames}"
+ sourcepath="${src.java};${src.generated.java}"
+ destdir="${javadoc}" windowtitle="${javadoc.windowtitle}"
+ overview="${javadoc.overview}"
+ source="1.4"
+ linkoffline="${javadoc.link} 142-packages"
+ bottom="${javadoc.bottom}" >
+ <classpath refid="nativewindow_gluegen.classpath"/>
+ <taglet name="net.highteq.nativetaglet.NativeTaglet" path="${gluegen.jar}" />
+ </javadoc>
+ </target>
+
+ <!-- Same as above but with Cg directories added -->
+ <target name="javadoc.cg" depends="load.user.properties,init" if="jogl.cg">
+ <!-- Build the general public Javadoc with CG -->
+ <javadoc packagenames="${javadoc.packagenames},com.sun.opengl.cg"
+ excludepackagenames="${java.excludes.javadoc.packagenames}"
+ sourcepath="${src.java};${src.generated.java}"
+ destdir="${javadoc}" windowtitle="${javadoc.windowtitle}"
+ overview="${javadoc.overview}"
+ source="1.4"
+ linkoffline="${javadoc.link} 142-packages"
+ bottom="${javadoc.bottom}" >
+ <classpath refid="nativewindow_gluegen.classpath"/>
+ <taglet name="net.highteq.nativetaglet.NativeTaglet" path="${gluegen.jar}" />
+ </javadoc>
+ </target>
+
+ <target name="javadoc" depends="javadoc.nocg,javadoc.cg" />
+
+ <target name="javadoc.spec.nocg" depends="load.user.properties,init" unless="jogl.cg">
+ <!-- Build the specification Javadoc -->
+ <javadoc packagenames="${javadoc.spec.packagenames}"
+ excludepackagenames="${java.excludes.javadoc.packagenames}"
+ sourcepath="${src.java};${src.generated.java}"
+ destdir="${javadoc.spec}" windowtitle="${javadoc.windowtitle}"
+ overview="${javadoc.overview}"
+ source="1.4"
+ linkoffline="${javadoc.link} 142-packages"
+ bottom="${javadoc.bottom}" >
+ <classpath refid="nativewindow_gluegen.classpath"/>
+ <taglet name="net.highteq.nativetaglet.NativeTaglet" path="${gluegen.jar}" />
+ </javadoc>
+ </target>
+
+ <!-- Same as above since Cg directories are not part of spec -->
+ <target name="javadoc.spec.cg" depends="load.user.properties,init" if="jogl.cg">
+ <!-- Build the specification Javadoc with CG -->
+ <javadoc packagenames="${javadoc.spec.packagenames}"
+ excludepackagenames="${java.excludes.javadoc.packagenames}"
+ sourcepath="${src.java};${src.generated.java}"
+ destdir="${javadoc.spec}" windowtitle="${javadoc.windowtitle}"
+ overview="${javadoc.overview}"
+ source="1.4"
+ linkoffline="${javadoc.link} 142-packages"
+ bottom="${javadoc.bottom}" >
+ <classpath refid="nativewindow_gluegen.classpath"/>
+ <taglet name="net.highteq.nativetaglet.NativeTaglet" path="${gluegen.jar}" />
+ </javadoc>
+ </target>
+
+ <target name="javadoc.spec" depends="javadoc.spec.nocg,javadoc.spec.cg" />
+
+ <target name="javadoc.dev.nocg" unless="jogl.cg">
+ <!-- Build the internal developer Javadoc -->
+ <javadoc packagenames="${javadoc.dev.packagenames}"
+ excludepackagenames="${java.excludes.javadoc.packagenames}"
+ sourcepath="${src.java};${src.generated.java}"
+ destdir="${javadoc.dev}" windowtitle="${javadoc.windowtitle}"
+ overview="${javadoc.overview}"
+ source="1.4"
+ linkoffline="${javadoc.link} 142-packages"
+ bottom="${javadoc.bottom}" >
+ <classpath refid="nativewindow_gluegen.classpath"/>
+ <taglet name="net.highteq.nativetaglet.NativeTaglet" path="${gluegen.jar}" />
+ </javadoc>
+ </target>
+
+ <!-- Same as above but with Cg directories added -->
+ <target name="javadoc.dev.cg" if="jogl.cg">
+ <!-- Build the internal developer Javadoc -->
+ <javadoc packagenames="${javadoc.dev.packagenames},com.sun.opengl.cg"
+ excludepackagenames="${java.excludes.javadoc.packagenames}"
+ sourcepath="${src.java};${src.generated.java}"
+ destdir="${javadoc.dev}" windowtitle="${javadoc.windowtitle}"
+ overview="${javadoc.overview}"
+ source="1.4"
+ linkoffline="${javadoc.link} 142-packages"
+ bottom="${javadoc.bottom}" >
+ <classpath refid="nativewindow_gluegen.classpath"/>
+ <taglet name="net.highteq.nativetaglet.NativeTaglet" path="${gluegen.jar}" />
+ </javadoc>
+ </target>
+
+ <target name="javadoc.dev.all" depends="load.user.properties,init,javadoc.dev.nocg,javadoc.dev.cg" />
+
+ <target name="all.doc" description="Build JOGL docs" depends="init,javadoc,javadoc.spec,javadoc.dev.all" />
+
+ <!-- ================================================================== -->
+ <!--
+ - Build the platform-independent distribution out of jars built for
+ - Windows, Linux and Mac OS X; the Java sources for Jogl can't be
+ - fully cross-compiled at this time. To run this target, you need to
+ - specify the property jogl.dist.dir as a System property (i.e.,
+ - "ant -Djogl.dist.dir=../dist dist"); directories named jogl-linux,
+ - jogl-win, and jogl-macosx need to be inside that directory and each
+ - of those directories needs to contain both the jogl.jar for that
+ - platform as well as the native code (libjogl.so, jogl.dll, or
+ - libjogl.jnilib). Also builds jars containing the native code for
+ - Windows, Linux, Mac OS X, Solaris/SPARC and Solaris/x86.
+ -->
+ <target name="dist.dir.check" unless="jogl.dist.dir">
+ <fail>
+
+ ******************************************************************
+ ** To build the Jogl distribution out of the platform-specific **
+ ** component jars and native code, the property jogl.dist.dir **
+ ** needs to be specified on the command line. Please read the **
+ ** comments associated with the "dist" target in the build.xml. **
+ ******************************************************************
+ </fail>
+ </target>
+
+ <target name="dist.check.windows" if="jogl.dist.dir">
+ <condition property="windows.complete">
+ <and>
+ <available file="${jogl.dist.dir}/jogl-win/jogl.jar" />
+ <available file="${jogl.dist.dir}/jogl-win/32/jogl.dll" />
+ <available file="${jogl.dist.dir}/jogl-win/32/jogl_awt.dll" />
+ <available file="${jogl.dist.dir}/jogl-win/32/jogl_cg.dll" />
+ <available file="${jogl.dist.dir}/jogl-win/32/gluegen-rt.dll" />
+ <available file="${jogl.dist.dir}/jogl-win/32/gluegen-rt-natives-windows-i586.jar" />
+ </and>
+ </condition>
+ <fail unless="windows.complete">
+ ******************************************************************
+ ** Files are missing from the Windows build. This will cause **
+ ** the distribution to be incomplete. Please check the status **
+ ** of the Windows build and try again. **
+ ******************************************************************
+ </fail>
+ </target>
+
+ <target name="dist.check.windows-amd64" if="jogl.dist.dir">
+ <condition property="windows-amd64.complete">
+ <and>
+ <available file="${jogl.dist.dir}/jogl-win/64/jogl.dll" />
+ <available file="${jogl.dist.dir}/jogl-win/64/jogl_awt.dll" />
+ <available file="${jogl.dist.dir}/jogl-win/64/jogl_cg.dll" />
+ <available file="${jogl.dist.dir}/jogl-win/64/gluegen-rt.dll" />
+ <available file="${jogl.dist.dir}/jogl-win/64/gluegen-rt-natives-windows-amd64.jar" />
+ </and>
+ </condition>
+ <fail unless="windows-amd64.complete">
+ *********************************************************************
+ ** Files are missing from the Windows/AMD64 build. This will cause **
+ ** the distribution to be incomplete. Please check the status **
+ ** of the Windows/AMD64 build and try again. **
+ *********************************************************************
+ </fail>
+ </target>
+
+ <target name="dist.check.linux" if="jogl.dist.dir">
+ <condition property="linux.complete">
+ <and>
+ <available file="${jogl.dist.dir}/jogl-linux/jogl.jar" />
+ <available file="${jogl.dist.dir}/jogl-linux/32/libjogl.so" />
+ <available file="${jogl.dist.dir}/jogl-linux/32/libjogl_awt.so" />
+ <available file="${jogl.dist.dir}/jogl-linux/32/libjogl_cg.so" />
+ <available file="${jogl.dist.dir}/jogl-linux/32/libgluegen-rt.so" />
+ <available file="${jogl.dist.dir}/jogl-linux/32/gluegen-rt-natives-linux-i586.jar" />
+ <!-- Assume we also copy over these generated files in the Linux 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-linux/DebugGL2.java" />
+ <available file="${jogl.dist.dir}/jogl-linux/TraceGL2.java" />
+ <available file="${jogl.dist.dir}/jogl-linux/GL.java" />
+ <available file="${jogl.dist.dir}/jogl-linux/GLU.java" />
+ </and>
+ </condition>
+ <fail unless="linux.complete">
+ ******************************************************************
+ ** Files are missing from the Linux build. This will cause **
+ ** the distribution to be incomplete. Please check the status **
+ ** of the Linux build and try again. **
+ ******************************************************************
+ </fail>
+ </target>
+
+ <target name="dist.check.linux-amd64" if="jogl.dist.dir">
+ <condition property="linux-amd64.complete">
+ <and>
+ <available file="${jogl.dist.dir}/jogl-linux/64/libjogl.so" />
+ <available file="${jogl.dist.dir}/jogl-linux/64/libjogl_awt.so" />
+ <available file="${jogl.dist.dir}/jogl-linux/64/libjogl_cg.so" />
+ <available file="${jogl.dist.dir}/jogl-linux/64/libgluegen-rt.so" />
+ <available file="${jogl.dist.dir}/jogl-linux/64/gluegen-rt-natives-linux-amd64.jar" />
+ </and>
+ </condition>
+ <fail unless="linux-amd64.complete">
+ *******************************************************************
+ ** Files are missing from the Linux/AMD64 build. This will cause **
+ ** the distribution to be incomplete. Please check the status **
+ ** of the Linux/AMD64 build and try again. **
+ *******************************************************************
+ </fail>
+ </target>
+
+ <target name="dist.check.macosx" if="jogl.dist.dir">
+ <condition property="macosx.complete">
+ <and>
+ <available file="${jogl.dist.dir}/jogl-macosx/jogl.jar" />
+ <available file="${jogl.dist.dir}/jogl-macosx/ppc/libjogl.jnilib" />
+ <available file="${jogl.dist.dir}/jogl-macosx/ppc/libjogl_awt.jnilib" />
+ <available file="${jogl.dist.dir}/jogl-macosx/ppc/libjogl_cg.jnilib" />
+ <available file="${jogl.dist.dir}/jogl-macosx/ppc/libgluegen-rt.jnilib" />
+ <available file="${jogl.dist.dir}/jogl-macosx/ppc/gluegen-rt-natives-macosx-ppc.jar" />
+ </and>
+ </condition>
+ <fail unless="macosx.complete">
+ ******************************************************************
+ ** Files are missing from the Mac OS X build. This will cause **
+ ** the distribution to be incomplete. Please check the status **
+ ** of the Mac OS X build and try again. **
+ ******************************************************************
+ </fail>
+ </target>
+
+
+ <target name="dist.check.macosxfat" if="jogl.dist.dir">
+ <condition property="macosxfat.complete">
+ <and>
+ <available file="${jogl.dist.dir}/jogl-macosx/jogl.jar" />
+ <available file="${jogl.dist.dir}/jogl-macosx/fat/libjogl.jnilib" />
+ <available file="${jogl.dist.dir}/jogl-macosx/fat/libjogl_awt.jnilib" />
+ <available file="${jogl.dist.dir}/jogl-macosx/fat/libjogl_cg.jnilib" />
+ <available file="${jogl.dist.dir}/jogl-macosx/fat/libgluegen-rt.jnilib" />
+ <available file="${jogl.dist.dir}/jogl-macosx/fat/gluegen-rt-natives-macosx-universal.jar" />
+ </and>
+ </condition>
+ <fail unless="macosxfat.complete">
+ ******************************************************************
+ ** Files are missing from the Mac OS X build. This will cause **
+ ** the distribution to be incomplete. Please check the status **
+ ** of the Mac OS X build and try again. **
+ ******************************************************************
+ </fail>
+ </target>
+
+
+
+ <target name="dist.check.solsparc" if="jogl.dist.dir">
+ <condition property="solsparc.complete">
+ <and>
+ <available file="${jogl.dist.dir}/jogl-solsparc/jogl.jar" />
+ <available file="${jogl.dist.dir}/jogl-solsparc/32/libjogl.so" />
+ <available file="${jogl.dist.dir}/jogl-solsparc/32/libjogl_awt.so" />
+ <available file="${jogl.dist.dir}/jogl-solsparc/32/libgluegen-rt.so" />
+ <available file="${jogl.dist.dir}/jogl-solsparc/32/gluegen-rt-natives-solaris-sparc.jar" />
+ </and>
+ </condition>
+ <fail unless="solsparc.complete">
+ ******************************************************************
+ ** Files are missing from the Solaris/SPARC build. This will **
+ ** cause the distribution to be incomplete. Please check the **
+ ** status of the Solaris/SPARC build and try again. **
+ ******************************************************************
+ </fail>
+ </target>
+
+ <target name="dist.check.solsparcv9" if="jogl.dist.dir">
+ <condition property="solsparcv9.complete">
+ <and>
+ <available file="${jogl.dist.dir}/jogl-solsparc/jogl.jar" />
+ <available file="${jogl.dist.dir}/jogl-solsparc/64/libjogl.so" />
+ <available file="${jogl.dist.dir}/jogl-solsparc/64/libjogl_awt.so" />
+ <available file="${jogl.dist.dir}/jogl-solsparc/64/libgluegen-rt.so" />
+ <available file="${jogl.dist.dir}/jogl-solsparc/64/gluegen-rt-natives-solaris-sparcv9.jar" />
+ </and>
+ </condition>
+ <fail unless="solsparcv9.complete">
+ ******************************************************************
+ ** Files are missing from the Solaris/SPARCv9 build. This will **
+ ** cause the distribution to be incomplete. Please check the **
+ ** status of the Solaris/SPARCv9 build and try again. **
+ ******************************************************************
+ </fail>
+ </target>
+
+ <target name="dist.check.solx86" if="jogl.dist.dir">
+ <condition property="solx86.complete">
+ <and>
+ <available file="${jogl.dist.dir}/jogl-solx86/jogl.jar" />
+ <available file="${jogl.dist.dir}/jogl-solx86/32/libjogl.so" />
+ <available file="${jogl.dist.dir}/jogl-solx86/32/libjogl_awt.so" />
+ <available file="${jogl.dist.dir}/jogl-solx86/32/libjogl_cg.so" />
+ <available file="${jogl.dist.dir}/jogl-solx86/32/libgluegen-rt.so" />
+ <available file="${jogl.dist.dir}/jogl-solx86/32/gluegen-rt-natives-solaris-i586.jar" />
+ </and>
+ </condition>
+ <fail unless="solx86.complete">
+ ******************************************************************
+ ** Files are missing from the Solaris/x86 build. This will **
+ ** cause the distribution to be incomplete. Please check the **
+ ** status of the Solaris/x86 build and try again. **
+ ******************************************************************
+ </fail>
+ </target>
+
+ <target name="dist.check.solamd64" if="jogl.dist.dir">
+ <condition property="solamd64.complete">
+ <and>
+ <available file="${jogl.dist.dir}/jogl-solx86/64/libjogl.so" />
+ <available file="${jogl.dist.dir}/jogl-solx86/64/libjogl_awt.so" />
+ <available file="${jogl.dist.dir}/jogl-solx86/64/libgluegen-rt.so" />
+ <available file="${jogl.dist.dir}/jogl-solx86/64/gluegen-rt-natives-solaris-amd64.jar" />
+ </and>
+ </condition>
+ <fail unless="solamd64.complete">
+ ******************************************************************
+ ** Files are missing from the Solaris/x86/64 (amd64) build. This *
+ ** will cause the distribution **
+ ** to be incomplete. Please check the **
+ ** status of the Solaris/x86 (amd64) build and try again. **
+ ******************************************************************
+ </fail>
+ </target>
+
+ <!-- Helper task for dist target below -->
+ <!-- Required parameters: -->
+ <!-- zip.os.arch = the os/arch combination for this zip file (i.e., "windows-i586") -->
+ <!-- zip.src.so.dir = the directory containing the .so's / .dll's / .jnilib's for this platform-->
+ <target name="dist.build.zip">
+ <property name="jogl.tmp.version" value="jogl-${tmp.version}-${zip.os.arch}" />
+ <!-- Create all needed directories -->
+ <delete dir="${jogl.dist.dir}/tmp" failonerror="false" />
+ <mkdir dir="${jogl.dist.dir}/tmp/${jogl.tmp.version}/lib" />
+ <!-- Copy in files -->
+ <copy todir="${jogl.dist.dir}/tmp/${jogl.tmp.version}/lib">
+ <fileset dir="${zip.src.so.dir}" includes="*${zip.so.suffix}" />
+ </copy>
+ <copy file="${jogl.dist.dir}/jogl.jar" todir="${jogl.dist.dir}/tmp/${jogl.tmp.version}/lib" />
+ <copy file="${jogl.dist.dir}/gluegen-rt.jar" todir="${jogl.dist.dir}/tmp/${jogl.tmp.version}/lib" />
+ <copy file="../CHANGELOG.txt" todir="${jogl.dist.dir}/tmp/${jogl.tmp.version}" />
+ <copy file="../COPYRIGHT.txt" todir="${jogl.dist.dir}/tmp/${jogl.tmp.version}" />
+ <copy file="../LICENSE.txt" tofile="${jogl.dist.dir}/tmp/${jogl.tmp.version}/LICENSE-JOGL-${tmp.version}.txt" />
+ <copy file="README-zip-bundles.txt"
+ tofile="${jogl.dist.dir}/tmp/${jogl.tmp.version}/README.txt"
+ overwrite="true">
+ <filterset>
+ <filter token="VERSION" value="${tmp.version}"/>
+ </filterset>
+ </copy>
+ <copy file="../doc/userguide/index.html" tofile="${jogl.dist.dir}/tmp/${jogl.tmp.version}/Userguide.html" />
+ <!-- zip it up -->
+ <zip destfile="${jogl.dist.dir}/${jogl.tmp.version}.zip"
+ basedir="${jogl.dist.dir}/tmp"
+ includes="${jogl.tmp.version}/**" />
+ </target>
+
+ <target name="setup-version-RI" if="RImanifestfile">
+ <property name="tmp.version" value="${base_version}" />
+ </target>
+
+ <target name="setup-version-non-RI" unless="RImanifestfile">
+ <tstamp>
+ <format property="timestamp" pattern="yyyyMMdd"/>
+ </tstamp>
+ <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">
+ <delete>
+ <fileset dir="${jogl.dist.dir}" includes="*.jar" />
+ </delete>
+ <delete>
+ <fileset dir="${jogl.dist.dir}" includes="*.zip" />
+ </delete>
+ <delete dir="${jogl.dist.dir}/tmp" failonerror="false" />
+ <delete dir="${jogl.dist.dir}/META-INF" failonerror="false" />
+ <!-- Extract manifest from one of the jars to re-use it in the dist jar -->
+ <unjar src="${jogl.dist.dir}/jogl-win/jogl.jar" dest="${jogl.dist.dir}" >
+ <patternset>
+ <include name="META-INF/MANIFEST.MF" />
+ </patternset>
+ </unjar>
+ <!-- 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" />
+ </jar>
+ <!-- Apply Pack200 repacking to allow later compression by that mechanism -->
+ <apply executable="pack200" verbose="true" >
+ <arg value="--repack" />
+ <fileset file="${jogl.dist.dir}/jogl.jar" />
+ </apply>
+ <jar destfile="${jogl.dist.dir}/jogl-natives-windows-i586.jar"
+ basedir="${jogl.dist.dir}/jogl-win/32"
+ includes="jogl.dll,jogl_awt.dll,jogl_cg.dll" />
+ <jar destfile="${jogl.dist.dir}/jogl-natives-windows-amd64.jar"
+ basedir="${jogl.dist.dir}/jogl-win/64"
+ includes="jogl.dll,jogl_awt.dll,jogl_cg.dll" />
+ <jar destfile="${jogl.dist.dir}/jogl-natives-linux-i586.jar"
+ basedir="${jogl.dist.dir}/jogl-linux/32"
+ includes="libjogl.so,libjogl_awt.so,libjogl_cg.so" />
+ <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-macosx-ppc.jar"
+ basedir="${jogl.dist.dir}/jogl-macosx/ppc"
+ includes="libjogl.jnilib,libjogl_awt.jnilib,libjogl_cg.jnilib" />
+ <jar destfile="${jogl.dist.dir}/jogl-natives-macosx-universal.jar"
+ basedir="${jogl.dist.dir}/jogl-macosx/fat"
+ includes="libjogl.jnilib,libjogl_awt.jnilib,libjogl_cg.jnilib" />
+ <jar destfile="${jogl.dist.dir}/jogl-natives-solaris-sparc.jar"
+ basedir="${jogl.dist.dir}/jogl-solsparc/32"
+ includes="libjogl.so,libjogl_awt.so" />
+ <jar destfile="${jogl.dist.dir}/jogl-natives-solaris-sparcv9.jar"
+ basedir="${jogl.dist.dir}/jogl-solsparc/64"
+ includes="libjogl.so,libjogl_awt.so" />
+ <jar destfile="${jogl.dist.dir}/jogl-natives-solaris-i586.jar"
+ basedir="${jogl.dist.dir}/jogl-solx86/32"
+ includes="libjogl.so,libjogl_awt.so,libjogl_cg.so" />
+ <jar destfile="${jogl.dist.dir}/jogl-natives-solaris-amd64.jar"
+ basedir="${jogl.dist.dir}/jogl-solx86/64"
+ includes="libjogl.so,libjogl_awt.so" />
+ <!-- Copy gluegen-rt.jar from Linux build (arbitrary; this jar is platform-independent) -->
+ <copy file="${jogl.dist.dir}/jogl-linux/gluegen-rt.jar" todir="${jogl.dist.dir}" />
+ <!-- Copy gluegen-rt native jars out of platform-specific subdirectories -->
+ <copy todir="${jogl.dist.dir}">
+ <fileset dir="${jogl.dist.dir}/jogl-win/32" includes="gluegen-natives-*.jar" />
+ </copy>
+ <copy todir="${jogl.dist.dir}">
+ <fileset dir="${jogl.dist.dir}/jogl-win/64" includes="gluegen-natives-*.jar" />
+ </copy>
+ <copy todir="${jogl.dist.dir}">
+ <fileset dir="${jogl.dist.dir}/jogl-linux/32" includes="gluegen-natives-*.jar" />
+ </copy>
+ <copy todir="${jogl.dist.dir}">
+ <fileset dir="${jogl.dist.dir}/jogl-linux/64" 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}">
+ <fileset dir="${jogl.dist.dir}/jogl-macosx/fat" includes="gluegen-natives-*.jar" />
+ </copy>
+ <copy todir="${jogl.dist.dir}">
+ <fileset dir="${jogl.dist.dir}/jogl-solsparc/32" includes="gluegen-natives-*.jar" />
+ </copy>
+ <copy todir="${jogl.dist.dir}">
+ <fileset dir="${jogl.dist.dir}/jogl-solsparc/64" includes="gluegen-natives-*.jar" />
+ </copy>
+ <copy todir="${jogl.dist.dir}">
+ <fileset dir="${jogl.dist.dir}/jogl-solx86/32" includes="gluegen-natives-*.jar" />
+ </copy>
+ <copy todir="${jogl.dist.dir}">
+ <fileset dir="${jogl.dist.dir}/jogl-solx86/64" includes="gluegen-natives-*.jar" />
+ </copy>
+
+ <!-- Build a source archive as well -->
+ <!-- First copy the generated files out of the Linux build results into the appropriate -->
+ <!-- directory of this source tree (so that they'll be blown away properly with an -->
+ <!-- "ant clean") -->
+ <mkdir dir="../${rootrel.build.jogl}/gensrc/classes/javax/media/opengl/glu" />
+ <copy file="${jogl.dist.dir}/jogl-linux/DebugGL2.java" todir="../${rootrel.build.jogl}/gensrc/classes/javax/media/opengl" />
+ <copy file="${jogl.dist.dir}/jogl-linux/TraceGL2.java" todir="../${rootrel.build.jogl}/gensrc/classes/javax/media/opengl" />
+ <copy file="${jogl.dist.dir}/jogl-linux/GL.java" todir="../${rootrel.build.jogl}/gensrc/classes/javax/media/opengl" />
+ <copy file="${jogl.dist.dir}/jogl-linux/GLU.java" todir="../${rootrel.build.jogl}/gensrc/classes/javax/media/opengl/glu" />
+ <copy file="${jogl.dist.dir}/jogl-linux/GLUquadric.java" todir="../${rootrel.build.jogl}/gensrc/classes/javax/media/opengl/glu" />
+ <zip destfile="${jogl.dist.dir}/jogl-${tmp.version}-src.zip"
+ basedir="../.."
+ includes="gluegen/LICENSE.txt,gluegen/doc/**,gluegen/make/**,gluegen/src/**,jogl/*.txt,jogl/${rootrel.build.jogl}/gensrc/classes/javax/media/opengl/**,jogl/doc/**,jogl/make/**,jogl/src/jogl/**"
+ excludes="**/*.class,**/*~"
+ />
+ <!-- Create zip archives suitable for developers -->
+ <!-- Unfortunately, we have to replicate the os/arch name combinations from
+ gluegen-cpptasks.xml. The reason for this is that we can't generate these
+ zip archives on the platform where the builds run; we have to run the dist
+ target in order to get the platform-independent jogl.jar. -->
+ <antcall target="dist.build.zip" inheritAll="true">
+ <param name="zip.os.arch" value="linux-i586" />
+ <param name="zip.so.suffix" value=".so" />
+ <param name="zip.src.so.dir" value="${jogl.dist.dir}/jogl-linux/32" />
+ </antcall>
+ <antcall target="dist.build.zip" inheritAll="true">
+ <param name="zip.os.arch" value="linux-amd64" />
+ <param name="zip.so.suffix" value=".so" />
+ <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="macosx-ppc" />
+ <param name="zip.so.suffix" value=".jnilib" />
+ <param name="zip.src.so.dir" value="${jogl.dist.dir}/jogl-macosx/ppc" />
+ </antcall>
+ <antcall target="dist.build.zip" inheritAll="true">
+ <param name="zip.os.arch" value="macosx-universal" />
+ <param name="zip.so.suffix" value=".jnilib" />
+ <param name="zip.src.so.dir" value="${jogl.dist.dir}/jogl-macosx/fat" />
+ </antcall>
+ <antcall target="dist.build.zip" inheritAll="true">
+ <param name="zip.os.arch" value="solaris-i586" />
+ <param name="zip.so.suffix" value=".so" />
+ <param name="zip.src.so.dir" value="${jogl.dist.dir}/jogl-solx86/32" />
+ </antcall>
+ <antcall target="dist.build.zip" inheritAll="true">
+ <param name="zip.os.arch" value="solaris-amd64" />
+ <param name="zip.so.suffix" value=".so" />
+ <param name="zip.src.so.dir" value="${jogl.dist.dir}/jogl-solx86/64" />
+ </antcall>
+ <antcall target="dist.build.zip" inheritAll="true">
+ <param name="zip.os.arch" value="solaris-sparc" />
+ <param name="zip.so.suffix" value=".so" />
+ <param name="zip.src.so.dir" value="${jogl.dist.dir}/jogl-solsparc/32" />
+ </antcall>
+ <antcall target="dist.build.zip" inheritAll="true">
+ <param name="zip.os.arch" value="solaris-sparcv9" />
+ <param name="zip.so.suffix" value=".so" />
+ <param name="zip.src.so.dir" value="${jogl.dist.dir}/jogl-solsparc/64" />
+ </antcall>
+ <antcall target="dist.build.zip" inheritAll="true">
+ <param name="zip.os.arch" value="windows-i586" />
+ <param name="zip.so.suffix" value=".dll" />
+ <param name="zip.src.so.dir" value="${jogl.dist.dir}/jogl-win/32" />
+ </antcall>
+ <antcall target="dist.build.zip" inheritAll="true">
+ <param name="zip.os.arch" value="windows-amd64" />
+ <param name="zip.so.suffix" value=".dll" />
+ <param name="zip.src.so.dir" value="${jogl.dist.dir}/jogl-win/64" />
+ </antcall>
+ <!-- Create one last zip archive by hand, this one containing all of the -->
+ <!-- Java Web Start jar files (for easier redistribution) -->
+ <zip destfile="${jogl.dist.dir}/jogl-${tmp.version}-webstart.zip"
+ basedir="${jogl.dist.dir}"
+ includes="*.jar" />
+ <!-- Create a version.txt file indicating which version we just built -->
+ <echo message="${tmp.version}" file="${jogl.dist.dir}/version.txt" />
+ </target>
+
+ <!-- ================================================================== -->
+ <!--
+ - Clean up all that is built.
+ -->
+ <target name="clean" description="Remove all build products" depends="declare.common">
+ <delete includeEmptyDirs="true" quiet="true">
+ <fileset dir="${tempdir}" />
+ <fileset dir="${build}" />
+ <fileset dir="${javadoc}" />
+ <fileset dir="${javadoc.spec}" />
+ <fileset dir="${javadoc.dev}" />
+ </delete>
+ </target>
+
+ <!-- ================================================================== -->
+ <!--
+ - Build everything.
+ -->
+ <target name="all" description="Build JOGL JAR file(s) and native libraries." depends="load.user.properties,init,jar,c.build.jogl" />
+
+ <!-- ================================================================== -->
+ <!--
+ - Build everything and use Sun's Implementation tag in the manifest to
+ - indicate this is the Reference Implementation.
+ -->
+ <target name="RI">
+ <!-- Set property for using the RI manifest file so jogl.jar is versioned
+ - properly
+ -->
+ <property name="RImanifestfile" value="joglRIversion" />
+ <antcall target="all" inheritRefs="true" />
+ </target>
+</project>
diff --git a/make/build-nativewindow.xml b/make/build-nativewindow.xml
new file mode 100644
index 0000000..4963821
--- /dev/null
+++ b/make/build-nativewindow.xml
@@ -0,0 +1,1348 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ - Ant build for the NativeWindow package. This build has been tested with ANT 1.7.0. The
+ - optional.jar that contains the optional ANT tasks must be in the ANT
+ - classpath (typically the ant/lib directory).
+ -
+ - A clean download of the NativeWindow sources is required for this build.
+ -
+ - This build has no dependence on environment variables; the needed
+ - ones (e.g. java.home, ANT_HOME) are all set by the Ant wrapper shell
+ - script, by the virtual machine, or elsewhere. However, on all platforms,
+ - the C compiler and linker should be in the path. All other paths that
+ - need to be set are in host.properties.
+ -
+ - NOTE: because the GlueGen config files have their own relative paths
+ - which cannot be overridden by GlueGen, GlueGen MUST be run from
+ - the "make" directory. This also means that this build.xml MUST
+ - be run from the "make" directory.
+ -
+ - Public targets:
+ - all: (default; autodetects OS and chooses C compiler from gluegen.properties)
+ - clean: clean all built
+ - javadoc: create the standard developer Javadoc (recommended)
+ - (Note: should build all first - may be dependence in the future)
+ - javadoc.spec: create the standard developer Javadoc but exclude com.sun.* classes
+ - javadoc.dev: create the internal developer Javadoc. This includes the
+ - Java and C file generators. Note that it is only supported
+ - to create the Javadoc for the platform on which you are
+ - currently running.
+ -
+ - Note: on Windows the "win32.c.compiler" property in gluegen.properties
+ - is required to select the appropriate C compiler. See the example
+ - gluegen.properties in the gluegen workspace for valid values. On Mac OS X
+ - universal binaries may also be built by setting the "macosxfat"
+ - property in gluegen.properties; again see the example file in this
+ - directory.
+ -
+ - Thanks to Rob Grzywinski and Artur Biesiadowski for the bulk of the
+ - ANT build, including the GlueGen and StaticGLInfo tasks, the building of
+ - the Java generated sources, the first and second phase Java compiles, and
+ - the building of the jar file. Thanks to Alex Radeski for the bulk of the
+ - port to the ant-contrib CPPTask framework. Thanks to Athomas Goldberg for
+ - the original OS detection code.
+ -
+ - Some environment defs affecting compilation
+
+ setup.cdcfp - Using the CDC Java runtime library
+ - no DoubleBuffer
+ - no LongBuffer
+
+ This will set
+ -> setup.noAWT
+
+ - Internal settings, may not be necessary to set them manually,
+ since all JAR archives are orthogonal.
+ setup.noAWT
+ setup.noX11WindowsMacOsX, which implies:
+ setup.noX11
+ setup.noWindows
+ setup.noMacOsX
+ -->
+<project name="NativeWindow" basedir="." default="all">
+
+ <!-- This is the version of JOGL you are building -->
+ <property name="base_version" value="1.0.0-rc1"/>
+
+ <!-- Uncomment this property definition to cause a full release build to be done -->
+ <!-- without needing to specify the RI target on the command line -->
+ <property name="RImanifestfile" value="nativewindowRIversion" />
+
+ <!-- Pull in GlueGen cpptasks build file -->
+ <property name="gluegen.root" value="../../gluegen" />
+ <import file="${gluegen.root}/make/gluegen-cpptasks.xml" />
+
+ <available file="${user.home}/nativewindow.compiler.xml" property="nwi.compiler.present"/>
+ <import file="${user.home}/nativewindow.compiler.xml" optional="true" />
+
+ <!-- ================================================================== -->
+ <!--
+ - Base initialization and detection of operating system.
+ -->
+ <target name="base.init">
+
+ <condition property="setup.noAWT">
+ <isset property="setup.cdcfp"/>
+ </condition>
+ <condition property="isCDCFP">
+ <isset property="setup.cdcfp"/>
+ </condition>
+ <condition property="javac.bootclasspath.jar"
+ value="../../gluegen/make/lib/cdc_fp.jar">
+ <isset property="setup.cdcfp"/>
+ </condition>
+ <echo message="setup.cdcfp: ${setup.cdcfp}" />
+ <echo message="setup.noAWT: ${setup.noAWT}" />
+ <echo message="javac.bootclasspath.jar: ${javac.bootclasspath.jar}" />
+
+ <condition property="setup.noX11WindowsMacOsX">
+ <and>
+ <isset property="setup.noX11"/>
+ <isset property="setup.noWindows"/>
+ <isset property="setup.noMacOsX"/>
+ </and>
+ </condition>
+
+ <condition property="setup.noX11">
+ <isset property="setup.noX11WindowsMacOsX"/>
+ </condition>
+
+ <condition property="setup.noWindows">
+ <isset property="setup.noX11WindowsMacOsX" />
+ </condition>
+
+ <condition property="setup.noMacOsX">
+ <isset property="setup.noX11WindowsMacOsX" />
+ </condition>
+
+ <echo message="setup.noX11WindowsMacOsX: ${setup.noX11WindowsMacOsX}" />
+ <echo message="setup.noX11: ${setup.noX11}" />
+ <echo message="setup.noWindows: ${setup.noWindows}" />
+ <echo message="setup.noMacOsX: ${setup.noMacOsX}" />
+
+ <!-- partitioning -->
+
+ <property name="java.part.core"
+ value="javax/media/nativewindow/*, javax/media/nativewindow/egl/*, javax/media/nativewindow/x11/*, javax/media/nativewindow/macosx/*, javax/media/nativewindow/windows/*, com/sun/nativewindow/impl/*, com/sun/nativewindow/impl/x11/*"/>
+
+ <!-- property name="java.part.win"
+ value="com/sun/nativewindow/impl/win/**"/ NOTHING TO DO HERE -->
+
+ <!-- property name="java.part.macosx"
+ value="com/sun/nativewindow/impl/macosx/**"/ NOTHING TO DO HERE -->
+
+ <property name="java.part.awt"
+ value="javax/media/nativewindow/awt/*, com/sun/nativewindow/impl/jawt/**, com/sun/nativewindow/impl/**/awt/**"/>
+
+ <!-- condition excludes -->
+
+ <condition property="java.excludes.awt"
+ value="${java.part.awt}">
+ <isset property="setup.noAWT"/>
+ </condition>
+
+ <condition property="java.excludes.win"
+ value="${java.part.win}">
+ <isset property="setup.noWindows"/>
+ </condition>
+
+ <condition property="java.excludes.macosx"
+ value="${java.part.macosx}">
+ <isset property="setup.noMacOsX"/>
+ </condition>
+
+ <condition property="java.excludes.cdcfp"
+ value="">
+ <isset property="setup.cdcfp"/>
+ </condition>
+
+ <property name="java.excludes.all" value="${java.excludes.awt}, ${java.excludes.win}, ${java.excludes.macosx}, ${java.excludes.cdcfp}" />
+ <echo message="java.excludes.all: ${java.excludes.all}" />
+
+
+ <!-- Set the project root directory to be up one directory. -->
+ <property name="project.root" value=".." />
+
+ <!-- Set the configuration and build files to this directory. -->
+ <property name="make" value="." />
+ </target>
+
+ <target name="base.init.sourcelevel.1">
+ <property name="nativewindow.sourcelevel" value="1.4" />
+ </target>
+
+ <!--target name="base.init.sourcelevel.2" if="gluegen.nsig">
+ <property name="nativewindow.sourcelevel" value="1.5" />
+ </target-->
+
+ <!-- ================================================================== -->
+ <!--
+ - Load user properties which override build defaults.
+ -->
+ <target name="load.user.properties" depends="base.init,base.init.sourcelevel.1" unless="user.properties.file">
+ <!-- Load the user specified properties file that defines various host
+ - specific paths. The user will be notified if this is does not
+ - exist. -->
+ <property name="user.properties.file" value="${user.home}/nativewindow.properties" />
+ <property file="${user.properties.file}" />
+ <echo message="Loaded ${user.properties.file}." />
+ <property file="${user.home}/gluegen.properties" />
+ <echo message="Loaded ${user.home}/gluegen.properties." />
+ <fail message="antlr.jar was not specified in nativewindow.properties or gluegen.properties. Please see README.txt for instructions" unless="antlr.jar"/>
+ <echo message="antlr.jar=${antlr.jar}" />
+ </target>
+
+ <!-- ================================================================== -->
+ <!--
+ - Declare all paths and user defined variables.
+ -->
+ <target name="declare.common" description="Declare properties" depends="load.user.properties">
+ <!-- The location and name of the configuration ANT file that will
+ - validate to ensure that all user-define variables are set. -->
+ <property name="validate.user.properties" value="${make}/validate-properties.xml" />
+
+ <!-- NOTE: the value of the debug and optimise attributes will not be overridden if already set externally -->
+ <property name="javacdebug" value="true" />
+ <property name="javacdebuglevel" value="source,lines" />
+
+ <!-- Names of directories relative to the project root.
+ Some of these are used in FileMappers later for dependence information
+ and need exact string matching, which is why they use file.separator
+ instead of "/". -->
+ <condition property="rootrel.build" value="build">
+ <not>
+ <isset property="rootrel.build"/>
+ </not>
+ </condition>
+ <property name="rootrel.build.nativewindow" value="${rootrel.build}/nativewindow" />
+ <property name="rootrel.src" value="src/nativewindow" />
+ <property name="rootrel.src.java" value="${rootrel.src}/classes" />
+ <property name="rootrel.src.c" value="${rootrel.src}/native" />
+
+ <property name="rootrel.src.generated" value="${rootrel.build.nativewindow}/gensrc" />
+ <property name="rootrel.generated.c" value="${rootrel.src.generated}/native" />
+ <property name="rootrel.obj" value="${rootrel.build.nativewindow}/obj" />
+
+ <!-- GlueGen properties. -->
+ <!-- NOTE that these require a checked-out GlueGen workspace as a -->
+ <!-- sibling of the NativeWindow workspace. -->
+ <property name="gluegen.make.dir" value="../../gluegen/make" />
+ <property name="gluegen.build.xml" value="${gluegen.make.dir}/build.xml" />
+ <property name="gluegen.jar" value="../../gluegen/${rootrel.build}/gluegen.jar" />
+ <property name="gluegen-rt.jar" value="../../gluegen/${rootrel.build}/gluegen-rt.jar" />
+
+ <!-- The source directories. -->
+ <property name="src.java" value="${project.root}/${rootrel.src.java}" />
+ <property name="src.c" value="${project.root}/${rootrel.src.c}" />
+ <property name="build" value="${project.root}/${rootrel.build.nativewindow}" />
+
+ <!-- The generated source directories. -->
+ <property name="src.generated" value="${build}/gensrc" />
+ <property name="src.generated.java" value="${src.generated}/classes" />
+ <property name="src.generated.c" value="${src.generated}/native" />
+
+ <!-- The compiler output directories. -->
+ <property name="classes" value="${build}/classes" />
+ <property name="obj" value="${project.root}/${rootrel.obj}" />
+
+ <!-- The headers from which Java files are generated -->
+ <property name="config" value="${make}/config/nativewindow" />
+ <property name="stub.includes" value="${make}/stub_includes" />
+ <property name="stub.includes.dir" value="stub_includes" /> <!-- NOTE: this MUST be relative for FileSet -->
+ <property name="stub.includes.common" value="${stub.includes}/common" />
+ <dirset id="stub.includes.fileset.all" dir=".">
+ <include name="${stub.includes.dir}/macosx/**" />
+ <include name="${stub.includes.dir}/win32/**" />
+ <include name="${stub.includes.dir}/x11/**" />
+ <include name="${stub.includes.dir}/common/**" />
+ <include name="${stub.includes.dir}/jni/**" />
+ </dirset>
+ <fileset id="stub.includes.dependencies.fileset.1" dir="${stub.includes.dir}">
+ <include name="macosx/**" />
+ <include name="win32/**" />
+ <include name="x11/**" />
+ <include name="common/**" />
+ <include name="jni/**" />
+ </fileset>
+ <fileset id="stub.includes.dependencies.fileset.2" file="${gluegen.jar}" />
+ <fileset id="stub.includes.dependencies.fileset.3" dir="${config}">
+ <include name="*.cfg" />
+ <include name="*.java" />
+ <include name="*.c" />
+ </fileset>
+
+ <!-- Create the classpath that includes GlueGen and
+ - ANTLR. This requires the user-defined "antlr.jar"
+ - property. -->
+ <path id="gluegen.classpath">
+ <pathelement location="${gluegen.jar}" />
+ <pathelement location="${antlr.jar}" />
+ </path>
+
+ <!-- The resulting nativewindow.jar. -->
+ <property name="nativewindow.core.jar" value="${build}/nativewindow.core.jar" />
+ <property name="nativewindow.awt.jar" value="${build}/nativewindow.awt.jar" />
+ <property name="nativewindow.all.jar" value="${build}/nativewindow.all.jar" />
+
+ <!-- The javadoc dirs. -->
+ <property name="javadoc" value="${project.root}/javadoc_nativewindow_public" />
+ <property name="javadoc.spec" value="${project.root}/javadoc_nativewindow_spec" />
+ <property name="javadoc.dev" value="${project.root}/javadoc_nativewindow_dev" />
+ <property name="javadoc.link" value="http://java.sun.com/j2se/1.4.2/docs/api/" />
+ <property name="javadoc.windowtitle" value="Native Windowing Interface (NativeWindow) API -- ${base_version} Specification" />
+ <property name="javadoc.overview" value="../src/nativewindow/classes/javax/media/nativewindow/package.html" />
+ <property name="javadoc.spec.packagenames" value="javax.media.nativewindow.*" />
+
+ <property name="javadoc.packagenames" value="${javadoc.spec.packagenames}" />
+
+ <property name="javadoc.dev.packagenames" value="${javadoc.packagenames},com.sun.nativewindow.impl.*,com.sun.gluegen,com.sun.gluegen.runtime" />
+ <property name="javadoc.bottom" value="Copyright 2005 Sun Microsystems, Inc. All rights reserved. Use is subject to &lt;a href=&quot;http://jcp.org/en/jsr/detail?id=231&quot;&gt;license terms&lt;/a&gt;." />
+ </target>
+
+ <!-- ================================================================== -->
+ <!--
+ - Initialize all parameters required for the build and create any
+ - required directories.
+ -->
+ <target name="init" depends="declare.common">
+ <!-- Call the external config validator script to make sure the config is ok and consistent -->
+ <ant antfile="${validate.user.properties}" inheritall="true"/>
+
+ <!-- Create the required output directories. -->
+ <mkdir dir="${src.generated.java}" />
+ <mkdir dir="${src.generated.c}" />
+ <mkdir dir="${src.generated.c}/MacOSX" />
+ <mkdir dir="${src.generated.c}/Windows" />
+ <mkdir dir="${src.generated.c}/X11" />
+ <mkdir dir="${classes}" />
+ <mkdir dir="${obj}" />
+ </target>
+
+ <!-- ================================================================== -->
+ <!-- GlueGen and BuildStaticGLInfo creation, task setup and Java file generation -->
+ <!--
+ - Build GlueGen
+ -->
+ <target name="build.gluegen" depends="init">
+ <!-- Run the GlueGen build to ensure that the GlueGen ANT task
+ - has been built. -->
+ <!-- FIXME: remove passing down of antlr.jar when gluegen.properties is on all
+ nightly build machines -->
+ <ant antfile="${gluegen.build.xml}" dir="${gluegen.make.dir}" target="all" inheritAll="false">
+ <propertyset>
+ <propertyref name="antlr.jar" />
+ <!--propertyref name="gluegen.nsig" /-->
+ <propertyref name="isCDCFP" />
+ </propertyset>
+ </ant>
+ </target>
+
+ <!--
+ - Check to see whether we need to rebuild the generated sources.
+ -->
+ <target name="java.generate.check">
+ <!-- Blow away all target files if any dependencies are violated
+ (the uptodate task doesn't allow arbitrary source and target filesets but should) -->
+ <!--
+ <dependset>
+ <srcfileset refid="stub.includes.dependencies.fileset.1" />
+ <srcfileset refid="stub.includes.dependencies.fileset.2" />
+ <srcfileset refid="stub.includes.dependencies.fileset.3" />
+ <targetfileset dir="${src.generated}">
+ <include name="**/*.java" />
+ <include name="**/*.c" />
+ </targetfileset>
+ </dependset>
+ -->
+
+ <!-- Now check for the presence of one well-known file -->
+ <uptodate property="java.generate.skip.x11windowlib"
+ targetfile="${src.generated.java}/com/sun/nativewindow/impl/x11/X11Lib.java">
+ <srcfiles refid="stub.includes.dependencies.fileset.1" />
+ <srcfiles refid="stub.includes.dependencies.fileset.2" />
+ <srcfiles refid="stub.includes.dependencies.fileset.3" />
+ </uptodate>
+ <uptodate property="java.generate.skip.jawt"
+ targetfile="${src.generated.java}/com/sun/nativewindow/impl/jawt/JAWT.java">
+ <srcfiles refid="stub.includes.dependencies.fileset.1" />
+ <srcfiles refid="stub.includes.dependencies.fileset.2" />
+ <srcfiles refid="stub.includes.dependencies.fileset.3" />
+ </uptodate>
+
+ <condition property="java.generate.skip">
+ <and>
+ <isset property="java.generate.skip.x11windowlib"/>
+ <isset property="java.generate.skip.jawt"/>
+ </and>
+ </condition>
+
+ <!--property name="java.generate.skip" value="true"/-->
+ </target>
+
+ <target name="java.generate.windowlib" if="windowlib.os.cfg">
+ <echo message="Generating Windowing Lib implementation class" />
+ <gluegen src="${stub.includes.dir}/${window.os.system}/window-lib.c"
+ outputRootDir="../${rootrel.build.nativewindow}"
+ config="${windowlib.os.cfg}"
+ includeRefid="stub.includes.fileset.platform"
+ emitter="com.sun.gluegen.JavaEmitter">
+ <classpath refid="gluegen.classpath" />
+ </gluegen>
+ </target>
+
+ <target name="java.generate.jawt" unless="setup.noAWT">
+ <!-- NOTE: the "literalInclude" in this GlueGen call is simply to
+ - get around the fact that neither FileSet nor DirSet can
+ - handle different drives in an effective manner. -->
+ <echo message="Generating JAWT interface class" />
+ <echo message="java.home.dir=${java.home.dir}" />
+ <gluegen src="${jawt.platform.header}"
+ outputRootDir="../${rootrel.build.nativewindow}"
+ config="${jawt.cfg}"
+ literalInclude="${stub.includes.dir}/jni"
+ includeRefid="stub.includes.fileset.platform"
+ emitter="com.sun.gluegen.JavaEmitter">
+ <classpath refid="gluegen.classpath" />
+ </gluegen>
+ </target>
+
+ <target name="java.generate.platforms" >
+ <echo message="Generating platform-specifics: os: ${window.os.system}, cfgs: ${windowlib.os.cfg}, ${jawt.cfg}" />
+ <dirset id="stub.includes.fileset.platform" dir="." includes="${stub.includes.dir}/${window.os.system}/** ${stub.includes.dir}/common/**" />
+ <antcall target="java.generate.windowlib" inheritRefs="true" />
+ <antcall target="java.generate.jawt" inheritRefs="true" />
+ </target>
+
+ <!--
+ - Setup the generating ANT tasks and use it to generate the Java files
+ - from the C GL headers. This involves setting the taskdef and creating
+ - the classpath reference id then running the task on each header.
+ -->
+ <target name="java.generate" depends="build.gluegen, java.generate.check" unless="java.generate.skip">
+
+ <!-- Add the GlueGen and BuildStaticGLInfo tasks to ANT -->
+ <taskdef name="gluegen" classname="com.sun.gluegen.ant.GlueGenTask"
+ classpathref="gluegen.classpath" />
+ <taskdef name="staticglgen" classname="com.sun.gluegen.ant.StaticGLGenTask"
+ classpathref="gluegen.classpath" />
+
+ <!-- Use the GlueGen and BuildStaticGLInfo tasks to generate the
+ - Java files -->
+
+ <echo message="Generating platform-specifics: X11" />
+ <antcall target="java.generate.platforms" inheritRefs="true">
+ <param name="window.os.system" value="x11"/>
+ <param name="windowlib.os.cfg" value="${config}/x11-lib.cfg" />
+ <param name="jawt.cfg" value="${config}/jawt-x11.cfg" />
+ <param name="jawt.platform.header" value="${stub.includes.dir}/jni/x11/jawt_md.h" />
+ </antcall>
+
+ <echo message="Generating platform-specifics: Win32" />
+ <antcall target="java.generate.platforms" inheritRefs="true">
+ <param name="window.os.system" value="win32"/>
+ <param name="jawt.cfg" value="${config}/jawt-win32.cfg" />
+ <param name="jawt.platform.header" value="${stub.includes.dir}/jni/win32/jawt_md.h" />
+ </antcall>
+
+ <echo message="Generating platform-specifics: MaxOsX" />
+ <antcall target="java.generate.platforms" inheritRefs="true">
+ <param name="window.os.system" value="macosx"/>
+ <param name="jawt.cfg" value="${config}/jawt-macosx.cfg" />
+ <param name="jawt.platform.header" value="${stub.includes.dir}/jni/macosx/jawt_md.h" />
+ </antcall>
+
+ <!-- Inform the user that the generators have successfully created
+ - the necessary Java files -->
+ <echo message="" />
+ <echo message="GlueGen and BuildStaticGLInfo have successfully generated files." />
+
+ </target>
+
+ <!-- ================================================================== -->
+ <!--
+ - Compile the original and generated source. The composable pipelines
+ - will be generated.
+ -->
+ <target name="java.compile.1" depends="java.generate" if="javac.bootclasspath.jar">
+ <!-- Perform the first pass Java compile; everything -->
+ <javac destdir="${classes}"
+ excludes="${java.excludes.all}"
+ source="${nativewindow.sourcelevel}"
+ classpath="${gluegen-rt.jar}"
+ bootclasspath="${javac.bootclasspath.jar}"
+ fork="yes"
+ memoryMaximumSize="128m"
+ debug="${javacdebug}" debuglevel="${javacdebuglevel}">
+ <src path="${src.java}" />
+ <src path="${src.generated.java}" />
+ </javac>
+ </target>
+
+ <target name="java.compile.2" depends="java.generate" unless="javac.bootclasspath.jar">
+ <!-- Perform the second pass Java compile; everything. -->
+ <javac destdir="${classes}"
+ excludes="${java.excludes.all}"
+ source="${nativewindow.sourcelevel}"
+ classpath="${gluegen-rt.jar}"
+ fork="yes"
+ memoryMaximumSize="128m"
+ debug="${javacdebug}" debuglevel="${javacdebuglevel}">
+ <src path="${src.java}" />
+ <src path="${src.generated.java}" />
+ </javac>
+ </target>
+
+ <target name="java.compile" depends="java.compile.1,java.compile.2" />
+
+ <!-- ================================================================== -->
+ <!--
+ - Compile the native C code for JOGL (and optionally the Cg binding).
+ -->
+
+ <target name="c.configure.1" depends="gluegen.cpptasks.detect.os,gluegen.cpptasks.setup.compiler" unless="nativewindow.compiler.present">
+ <!-- compiler configuration -->
+ <!-- Note that we can use the base setups in the gluegen-cpptasks for most of these -->
+
+ <compiler id="compiler.cfg.freebsd.nativewindow" extends="compiler.cfg.freebsd">
+ <!-- Need to force X11R6 headers on to include path after stub_includes -->
+ <includepath path="/usr/X11R6/include" />
+ </compiler>
+
+ <!-- linker configuration -->
+
+ <linker id="linker.cfg.linux.nativewindow.x11" extends="linker.cfg.linux">
+ <syslibset dir="/usr/X11R6/lib" libs="X11"/>
+ <syslibset dir="/usr/X11R6/lib" libs="Xxf86vm" />
+ </linker>
+
+ <linker id="linker.cfg.linux.amd64.nativewindow.x11" extends="linker.cfg.linux.amd64">
+ <syslibset dir="/usr/X11R6/lib64" libs="X11"/>
+ <syslibset dir="/usr/X11R6/lib64" libs="Xxf86vm" />
+ </linker>
+
+ <linker id="linker.cfg.solaris.nativewindow.x11" extends="linker.cfg.solaris">
+ <syslibset libs="X11"/>
+ </linker>
+
+ <linker id="linker.cfg.win32.mingw.nativewindow" extends="linker.cfg.win32.mingw">
+ <linkerarg value="-Wl,--kill-at" /> <!-- remove @ from function names -->
+ <syslibset libs="gdi32, kernel32"/>
+ </linker>
+
+ <linker id="linker.cfg.win32.msvc.nativewindow" extends="linker.cfg.win32.msvc">
+ <syslibset libs="gdi32, user32, kernel32" />
+ </linker>
+
+ <linker id="linker.cfg.macosx.nativewindow" extends="linker.cfg.macosx">
+ <linkerarg value="-framework" />
+ <linkerarg value="Cocoa" />
+ </linker>
+
+ <linker id="linker.cfg.hpux.nativewindow" extends="linker.cfg.hpux">
+ <syslibset dir="/usr/lib" libs="X11"/>
+ </linker>
+ </target>
+
+ <target name="c.configure.win32.vc" if="isVCFamily">
+ <echo message="Win32.VC" />
+ <property name="compiler.cfg.id" value="compiler.cfg.win32.msvc" />
+ <property name="linker.cfg.id.core" value="linker.cfg.win32.msvc" />
+ <property name="linker.cfg.id.oswin" value="linker.cfg.win32.msvc.nativewindow" />
+ </target>
+
+ <target name="c.configure.win32.mingw" if="isMingW">
+ <echo message="Win32.MingW" />
+ <property name="compiler.cfg.id" value="compiler.cfg.win32.mingw" />
+ <property name="linker.cfg.id.core" value="linker.cfg.win32.mingw" />
+ <property name="linker.cfg.id.oswin" value="linker.cfg.win32.mingw.nativewindow" />
+ </target>
+
+ <target name="c.configure.linux.x86" if="isLinuxX86">
+ <echo message="Linux.x86" />
+ <property name="compiler.cfg.id" value="compiler.cfg.linux" />
+ <property name="linker.cfg.id.core" value="linker.cfg.linux" />
+ <property name="linker.cfg.id.oswin" value="linker.cfg.linux.nativewindow.x11" />
+ </target>
+
+ <target name="c.configure.linux.amd64" if="isLinuxAMD64">
+ <echo message="Linux.AMD64" />
+ <property name="compiler.cfg.id" value="compiler.cfg.linux.amd64" />
+ <property name="linker.cfg.id.core" value="linker.cfg.linux.amd64" />
+ <property name="linker.cfg.id.oswin" value="linker.cfg.linux.amd64.nativewindow.x11" />
+ </target>
+
+ <target name="c.configure.linux.ia64" if="isLinuxIA64">
+ <echo message="Linux.IA64" />
+ <property name="compiler.cfg.id" value="compiler.cfg.linux" />
+ <property name="linker.cfg.id.core" value="linker.cfg.linux" />
+ <property name="linker.cfg.id.oswin" value="linker.cfg.linux.nativewindow.x11" />
+ </target>
+
+ <target name="c.configure.linux" depends="c.configure.linux.x86,c.configure.linux.amd64,c.configure.linux.ia64,c.configure.x11" if="isLinux" />
+
+ <target name="c.configure.solaris32" depends="c.configure.x11" if="isSolaris32Bit">
+ <echo message="Solaris" />
+ <property name="compiler.cfg.id" value="compiler.cfg.solaris" />
+ <property name="linker.cfg.id.core" value="linker.cfg.solaris" />
+ <property name="linker.cfg.id.oswin" value="linker.cfg.solaris.nativewindow.x11" />
+ </target>
+
+
+ <target name="c.configure.solaris.sparcv9" depends="c.configure.x11" if="isSolarisSparcv9">
+ <echo message="SolarisSparcv9" />
+ <property name="compiler.cfg.id" value="compiler.cfg.solaris.sparcv9" />
+ <property name="linker.cfg.id.core" value="linker.cfg.solaris.sparcv9" />
+ <property name="linker.cfg.id.oswin" value="linker.cfg.solaris.sparcv9.nativewindow.x11" />
+ </target>
+
+
+ <target name="c.configure.solaris.amd64" depends="c.configure.x11" if="isSolarisAMD64">
+ <echo message="SolarisAMD64" />
+ <property name="compiler.cfg.id" value="compiler.cfg.solaris.amd64" />
+ <property name="linker.cfg.id.core" value="linker.cfg.solaris.amd64" />
+ <property name="linker.cfg.id.oswin" value="linker.cfg.solaris.amd64.nativewindow.x11" />
+ </target>
+
+ <target name="c.configure.freebsd" depends="c.configure.x11" if="isFreeBSD">
+ <echo message="FreeBSD" />
+ <property name="compiler.cfg.id" value="compiler.cfg.freebsd.nativewindow" />
+ <property name="linker.cfg.id.core" value="linker.cfg.linux" />
+ <property name="linker.cfg.id.oswin" value="linker.cfg.linux.nativewindow.x11" />
+ </target>
+
+ <target name="c.configure.hpux" depends="c.configure.x11" if="isHPUX">
+ <echo message="HP-UX" />
+ <property name="compiler.cfg.id" value="compiler.cfg.hpux" />
+ <property name="linker.cfg.id.core" value="linker.cfg.hpux" />
+ <property name="linker.cfg.id.oswin" value="linker.cfg.hpux.nativewindow.x11" />
+ </target>
+
+ <target name="c.configure.win32" depends="c.configure.win32.vc,c.configure.win32.mingw" if="isWindows" />
+
+ <target name="c.configure.x11" if="isX11" />
+
+ <target name="c.configure.macosx" if="isOSX">
+ <property name="compiler.cfg.id" value="compiler.cfg.macosx" />
+ <property name="linker.cfg.id.core" value="linker.cfg.macosx" />
+ <property name="linker.cfg.id.oswin" value="linker.cfg.macosx.nativewindow" />
+ </target>
+
+ <target name="c.configure.2" depends="c.configure.win32,c.configure.linux,c.configure.solaris32,c.configure.solaris.sparcv9,c.configure.solaris.amd64,c.configure.macosx,c.configure.freebsd,c.configure.hpux" />
+
+ <target name="c.configure" depends="c.configure.1,c.configure.2" />
+
+ <target name="rename.mingw.dll" if="isMingW">
+ <move file="${src}" tofile="${dest}" />
+ </target>
+
+ <target name="rename.dylib" if="isOSX">
+ <move file="${src}" tofile="${dest}" />
+ </target>
+
+ <macrodef name="c.build">
+ <attribute name="c.compiler.src.files" />
+ <attribute name="compiler.cfg.id" />
+ <attribute name="linker.cfg.id" />
+ <attribute name="output.lib.name" />
+ <attribute name="c.compiler.use-jawt" default="false"/>
+ <sequential>
+ <echo message="Output lib name = @{output.lib.name}" />
+
+ <!-- NOTE: the value of the debug and optimise attributes will not be overridden if already set externally -->
+ <property name="c.compiler.debug" value="false" />
+ <!-- Optimise flags one of { none, size, speed, minimal, full, aggressive, extreme, unsafe } -->
+ <property name="c.compiler.optimise" value="none" />
+
+ <condition property="c.compiler.use-debug"><istrue value="${c.compiler.debug}"/></condition>
+
+ <!-- since properties are immutable, we need one for each target -->
+ <condition property="@{output.lib.name}.useLibJAWT">
+ <istrue value="@{c.compiler.use-jawt}" />
+ </condition>
+ <echo message="c.compiler.use-jawt @{c.compiler.use-jawt}"/>
+ <echo message="@{output.lib.name}.useLibJAWT ${@{output.lib.name}.useLibJAWT}"/>
+
+ <condition property="@{output.lib.name}.useLibJVM">
+ <and>
+ <isset property="isHPUX"/>
+ <isset property="@{output.lib.name}.useLibJAWT"/>
+ </and>
+ </condition>
+
+ <patternset id="c.src.files.awt">
+ <include name="${rootrel.src.c}/JAWT*.c"/>
+ <include name="${rootrel.generated.c}/X11/JAWT*.c" if="isX11"/>
+ <include name="${rootrel.generated.c}/MacOSX/JAWT*.c" if="isOSX"/>
+ <include name="${rootrel.generated.c}/Windows/JAWT*.c" if="isWindows"/>
+ </patternset>
+
+ <patternset id="c.src.files.x11">
+ <include name="${rootrel.generated.c}/X11/X11*.c" if="isX11"/>
+ <include name="${rootrel.src.c}/x11/XineramaHelper.c" if="isX11"/>
+ <!-- Xinerama supporting functions for Linux only (for now) -->
+ <!-- Also supported on Solaris, but works differently -->
+ <include name="${rootrel.src.c}/x11/Xinerama.c" if="isLinux"/>
+ </patternset>
+
+ <echo message="Compiling @{output.lib.name}" />
+
+ <cc outtype="shared"
+ objdir="${obj}"
+ outfile="${obj}/@{output.lib.name}"
+ optimize="${c.compiler.optimise}"
+ debug="${c.compiler.debug}"
+ multithreaded="true"
+ exceptions="false"
+ rtti="false">
+
+ <!-- TODO: versioninfo companyname="java.net"
+ legalcopyright="Copyright"
+ productname="JOGL"
+ productversion="x.y.z"
+ description="Description"
+ fileversion="x.y.z"
+ filecomments="File Comment" /-->
+
+ <fileset dir="${project.root}"><patternset refid="@{c.compiler.src.files}"/></fileset>
+
+ <compiler extends="@{compiler.cfg.id}" >
+ <sysincludepath path="${java.includes.dir}"/>
+ <sysincludepath path="${java.includes.dir.platform}"/>
+ <!-- This is for the generated headers for handwritten C code -->
+ <includepath path="${src.generated.c}" />
+ <includepath path="${src.generated.c}/X11" if="isX11"/>
+ <includepath path="${src.generated.c}/MacOSX" if="isOSX"/>
+ <includepath path="${src.generated.c}/Windows" if="isWindows"/>
+
+ <!-- This must come last to not override real include paths -->
+ <!-- includepath path="stub_includes/macosx" if="isOSX" / -->
+ </compiler>
+
+ <linker extends="@{linker.cfg.id}">
+ <syslibset dir="${java.lib.dir.platform}" libs="jawt" if="@{output.lib.name}.useLibJAWT"/>
+ <syslibset dir="${java.lib.dir.platform}/server" libs="jvm" if="@{output.lib.name}.useLibJVM"/>
+ </linker>
+ </cc>
+
+ <!-- FIXME: this is a hack; the cpptask should have an option to change the
+ suffix or at least understand the override from dylib to jnilib -->
+ <antcall target="rename.dylib" inheritRefs="true">
+ <param name="src" value="${build}/obj/lib@{output.lib.name}.dylib" />
+ <param name="dest" value="${build}/obj/lib@{output.lib.name}.jnilib" />
+ </antcall>
+
+ <!-- FIXME: this is a hack; the cpptask should have an option to change the
+ suffix or at least understand the override from dylib to jnilib -->
+ <antcall target="rename.mingw.dll" inheritRefs="true">
+ <param name="src" value="${build}/obj/lib@{output.lib.name}.so" />
+ <param name="dest" value="${build}/obj/@{output.lib.name}.dll" />
+ </antcall>
+ </sequential>
+ </macrodef>
+
+ <target name="c.fixup.jawt.version.macosx" if="isOSX">
+ <!-- Edit the link to the JAWT version in the resulting jnilib
+ file; this isn't strictly needed but seems to allow the
+ universal binaries to work on 10.3 machines as well, which
+ is desirable for some end users -->
+ <apply executable="install_name_tool">
+ <arg value="-change" />
+ <arg value="/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Libraries/libjawt.dylib" />
+ <arg value="/System/Library/Frameworks/JavaVM.framework/Libraries/libjawt.dylib" />
+ <srcfile />
+ <fileset dir="${obj}" includes="libnativewindow_awt.jnilib" />
+ </apply>
+ </target>
+
+ <target name="c.build.nativewindow.awt">
+ <c.build c.compiler.src.files="c.src.files.awt"
+ c.compiler.use-jawt="true"
+ output.lib.name="nativewindow_awt"
+ compiler.cfg.id="${compiler.cfg.id}"
+ linker.cfg.id="${linker.cfg.id.oswin}"/>
+ </target>
+
+ <target name="c.build.nativewindow.windowlib.x11" if="isX11">
+ <c.build c.compiler.src.files="c.src.files.x11"
+ output.lib.name="nativewindow_x11"
+ compiler.cfg.id="${compiler.cfg.id}"
+ linker.cfg.id="${linker.cfg.id.oswin}"/>
+ </target>
+
+ <target name="c.build.nativewindow.windowlib" depends="c.build.nativewindow.windowlib.x11"/>
+
+ <target name="c.manifest" if="isVC8Family">
+ <!-- exec mt, the Microsoft Manifest Tool, to include DLL manifests in order to resolve the location of msvcr80.dll -->
+ <msvc.manifest objdir="${obj}" dllname="nativewindow" />
+ <msvc.manifest objdir="${obj}" dllname="nativewindow_awt" />
+ </target>
+
+ <target name="c.build.nativewindow" depends="c.configure,c.build.nativewindow.windowlib,c.build.nativewindow.awt">
+ <antcall target="c.fixup.jawt.version.macosx" inheritrefs="true" />
+ <antcall target="c.manifest" inheritRefs="true" />
+ </target>
+
+ <!-- ================================================================== -->
+ <!--
+ - Build the nativewindow.jar files.
+ -->
+ <target name="jar" depends="java.compile,cond-if-RImanifest,cond-else-RImanifest"/>
+
+ <target name="check-RIcond">
+ <condition property="RIcond-is-true">
+ <isset property="RImanifestfile"/>
+ </condition>
+ </target>
+
+ <target name="cond-if-RImanifest" depends="check-RIcond" if="RIcond-is-true">
+ <copy file="nativewindowRIversion"
+ tofile="tempversion"
+ overwrite="true">
+ <filterset>
+ <filter token="VERSION" value="${base_version}-pre-${timestamp}"/>
+ <filter token="BASEVERSION" value="${base_version}"/>
+ </filterset>
+ </copy>
+
+ <jar manifest="tempversion" destfile="${nativewindow.core.jar}">
+ <fileset dir="${classes}"
+ includes="${java.part.core}"
+ excludes="${java.part.awt}"/>
+ </jar>
+ <jar manifest="tempversion" destfile="${nativewindow.awt.jar}">
+ <fileset dir="${classes}"
+ includes="${java.part.awt}"/>
+ </jar>
+ <jar manifest="tempversion" destfile="${nativewindow.all.jar}">
+ <fileset dir="${classes}">
+ <include name="javax/media/nativewindow/**" />
+ <include name="com/sun/nativewindow/**" />
+ <include name="com/sun/gluegen/runtime/**" />
+ </fileset>
+ </jar>
+ <delete file="tempversion"/>
+ </target>
+
+
+ <target name="cond-else-RImanifest" depends="check-RIcond" unless="RIcond-is-true">
+ <tstamp>
+ <format property="timestamp" pattern="yyyyMMdd-HH:mm:ss"/>
+ </tstamp>
+ <copy file="nativewindowversion"
+ tofile="tempversion"
+ overwrite="true">
+ <filterset>
+ <filter token="VERSION" value="${base_version}-pre-${timestamp}"/>
+ <filter token="BASEVERSION" value="${base_version}"/>
+ </filterset>
+ </copy>
+ <jar manifest="tempversion" destfile="${nativewindow.jar}">
+ <fileset dir="${classes}">
+ <include name="javax/media/nativewindow/**" />
+ <include name="com/sun/gluegen/runtime/**" />
+ <include name="com/sun/nativewindow/**" />
+ </fileset>
+ </jar>
+ <delete file="tempversion"/>
+ </target>
+
+ <!-- ================================================================== -->
+ <!--
+ - Build the Javadocs for the sources.
+ - NOTE: these are not entirely correct as the javadocs targets depend
+ - on the platform specific build targets. To circumvent any
+ - errors, ensure that the source is built first.
+ -->
+ <target name="javadoc" depends="load.user.properties,init">
+ <!-- Build the general public Javadoc -->
+ <javadoc packagenames="${javadoc.packagenames}"
+ excludepackagenames="${java.excludes.javadoc.packagenames}"
+ sourcepath="${src.java};${src.generated.java}"
+ classpath="${gluegen-rt.jar}"
+ destdir="${javadoc}" windowtitle="${javadoc.windowtitle}"
+ overview="${javadoc.overview}"
+ source="1.4"
+ linkoffline="${javadoc.link} 142-packages"
+ bottom="${javadoc.bottom}" >
+ </javadoc>
+ </target>
+
+ <target name="javadoc.spec" depends="load.user.properties,init">
+ <!-- Build the specification Javadoc -->
+ <javadoc packagenames="${javadoc.spec.packagenames}"
+ excludepackagenames="${java.excludes.javadoc.packagenames}"
+ sourcepath="${src.java};${src.generated.java}"
+ classpath="${gluegen-rt.jar}"
+ destdir="${javadoc.spec}" windowtitle="${javadoc.windowtitle}"
+ overview="${javadoc.overview}"
+ source="1.4"
+ linkoffline="${javadoc.link} 142-packages"
+ bottom="${javadoc.bottom}" >
+ </javadoc>
+ </target>
+
+ <target name="javadoc.dev" depends="load.user.properties,init">
+ <!-- Build the internal developer Javadoc -->
+ <javadoc packagenames="${javadoc.dev.packagenames}"
+ excludepackagenames="${java.excludes.javadoc.packagenames}"
+ sourcepath="${src.java};${src.generated.java}"
+ classpath="${gluegen-rt.jar}"
+ destdir="${javadoc.dev}" windowtitle="${javadoc.windowtitle}"
+ overview="${javadoc.overview}"
+ source="1.4"
+ linkoffline="${javadoc.link} 142-packages"
+ bottom="${javadoc.bottom}" >
+ </javadoc>
+ </target>
+
+ <target name="all.doc" description="Build NativeWindow docs" depends="init,javadoc,javadoc.spec,javadoc.dev" />
+
+ <!-- ================================================================== -->
+ <!--
+ - Build the platform-independent distribution out of jars built for
+ - Windows, Linux and Mac OS X; the Java sources for Jogl can't be
+ - fully cross-compiled at this time. To run this target, you need to
+ - specify the property nativewindow.dist.dir as a System property (i.e.,
+ - "ant -Dnativewindow.dist.dir=../dist dist"); directories named nativewindow-linux,
+ - nativewindow-win, and nativewindow-macosx need to be inside that directory and each
+ - of those directories needs to contain both the nativewindow.jar for that
+ - platform as well as the native code (libnativewindow.so, nativewindow.dll, or
+ - libnativewindow.jnilib). Also builds jars containing the native code for
+ - Windows, Linux, Mac OS X, Solaris/SPARC and Solaris/x86.
+ -->
+ <target name="dist.dir.check" unless="nativewindow.dist.dir">
+ <fail>
+
+ ******************************************************************
+ ** To build the Jogl distribution out of the platform-specific **
+ ** component jars and native code, the property nativewindow.dist.dir **
+ ** needs to be specified on the command line. Please read the **
+ ** comments associated with the "dist" target in the build.xml. **
+ ******************************************************************
+ </fail>
+ </target>
+
+ <target name="dist.check.windows" if="nativewindow.dist.dir">
+ <condition property="windows.complete">
+ <and>
+ <available file="${nativewindow.dist.dir}/nativewindow-win/nativewindow.jar" />
+ <available file="${nativewindow.dist.dir}/nativewindow-win/32/nativewindow.dll" />
+ <available file="${nativewindow.dist.dir}/nativewindow-win/32/nativewindow_awt.dll" />
+ <available file="${nativewindow.dist.dir}/nativewindow-win/32/gluegen-rt.dll" />
+ <available file="${nativewindow.dist.dir}/nativewindow-win/32/gluegen-rt-natives-windows-i586.jar" />
+ </and>
+ </condition>
+ <fail unless="windows.complete">
+ ******************************************************************
+ ** Files are missing from the Windows build. This will cause **
+ ** the distribution to be incomplete. Please check the status **
+ ** of the Windows build and try again. **
+ ******************************************************************
+ </fail>
+ </target>
+
+ <target name="dist.check.windows-amd64" if="nativewindow.dist.dir">
+ <condition property="windows-amd64.complete">
+ <and>
+ <available file="${nativewindow.dist.dir}/nativewindow-win/64/nativewindow.dll" />
+ <available file="${nativewindow.dist.dir}/nativewindow-win/64/nativewindow_awt.dll" />
+ <available file="${nativewindow.dist.dir}/nativewindow-win/64/gluegen-rt.dll" />
+ <available file="${nativewindow.dist.dir}/nativewindow-win/64/gluegen-rt-natives-windows-amd64.jar" />
+ </and>
+ </condition>
+ <fail unless="windows-amd64.complete">
+ *********************************************************************
+ ** Files are missing from the Windows/AMD64 build. This will cause **
+ ** the distribution to be incomplete. Please check the status **
+ ** of the Windows/AMD64 build and try again. **
+ *********************************************************************
+ </fail>
+ </target>
+
+ <target name="dist.check.linux" if="nativewindow.dist.dir">
+ <condition property="linux.complete">
+ <and>
+ <available file="${nativewindow.dist.dir}/nativewindow-linux/nativewindow.jar" />
+ <available file="${nativewindow.dist.dir}/nativewindow-linux/32/libnativewindow.so" />
+ <available file="${nativewindow.dist.dir}/nativewindow-linux/32/libnativewindow_awt.so" />
+ <available file="${nativewindow.dist.dir}/nativewindow-linux/32/libgluegen-rt.so" />
+ <available file="${nativewindow.dist.dir}/nativewindow-linux/32/gluegen-rt-natives-linux-i586.jar" />
+ </and>
+ </condition>
+ <fail unless="linux.complete">
+ ******************************************************************
+ ** Files are missing from the Linux build. This will cause **
+ ** the distribution to be incomplete. Please check the status **
+ ** of the Linux build and try again. **
+ ******************************************************************
+ </fail>
+ </target>
+
+ <target name="dist.check.linux-amd64" if="nativewindow.dist.dir">
+ <condition property="linux-amd64.complete">
+ <and>
+ <available file="${nativewindow.dist.dir}/nativewindow-linux/64/libnativewindow.so" />
+ <available file="${nativewindow.dist.dir}/nativewindow-linux/64/libnativewindow_awt.so" />
+ <available file="${nativewindow.dist.dir}/nativewindow-linux/64/libgluegen-rt.so" />
+ <available file="${nativewindow.dist.dir}/nativewindow-linux/64/gluegen-rt-natives-linux-amd64.jar" />
+ </and>
+ </condition>
+ <fail unless="linux-amd64.complete">
+ *******************************************************************
+ ** Files are missing from the Linux/AMD64 build. This will cause **
+ ** the distribution to be incomplete. Please check the status **
+ ** of the Linux/AMD64 build and try again. **
+ *******************************************************************
+ </fail>
+ </target>
+
+ <target name="dist.check.macosx" if="nativewindow.dist.dir">
+ <condition property="macosx.complete">
+ <and>
+ <available file="${nativewindow.dist.dir}/nativewindow-macosx/nativewindow.jar" />
+ <available file="${nativewindow.dist.dir}/nativewindow-macosx/ppc/libnativewindow.jnilib" />
+ <available file="${nativewindow.dist.dir}/nativewindow-macosx/ppc/libnativewindow_awt.jnilib" />
+ <available file="${nativewindow.dist.dir}/nativewindow-macosx/ppc/libgluegen-rt.jnilib" />
+ <available file="${nativewindow.dist.dir}/nativewindow-macosx/ppc/gluegen-rt-natives-macosx-ppc.jar" />
+ </and>
+ </condition>
+ <fail unless="macosx.complete">
+ ******************************************************************
+ ** Files are missing from the Mac OS X build. This will cause **
+ ** the distribution to be incomplete. Please check the status **
+ ** of the Mac OS X build and try again. **
+ ******************************************************************
+ </fail>
+ </target>
+
+
+ <target name="dist.check.macosxfat" if="nativewindow.dist.dir">
+ <condition property="macosxfat.complete">
+ <and>
+ <available file="${nativewindow.dist.dir}/nativewindow-macosx/nativewindow.jar" />
+ <available file="${nativewindow.dist.dir}/nativewindow-macosx/fat/libnativewindow.jnilib" />
+ <available file="${nativewindow.dist.dir}/nativewindow-macosx/fat/libnativewindow_awt.jnilib" />
+ <available file="${nativewindow.dist.dir}/nativewindow-macosx/fat/libgluegen-rt.jnilib" />
+ <available file="${nativewindow.dist.dir}/nativewindow-macosx/fat/gluegen-rt-natives-macosx-universal.jar" />
+ </and>
+ </condition>
+ <fail unless="macosxfat.complete">
+ ******************************************************************
+ ** Files are missing from the Mac OS X build. This will cause **
+ ** the distribution to be incomplete. Please check the status **
+ ** of the Mac OS X build and try again. **
+ ******************************************************************
+ </fail>
+ </target>
+
+
+
+ <target name="dist.check.solsparc" if="nativewindow.dist.dir">
+ <condition property="solsparc.complete">
+ <and>
+ <available file="${nativewindow.dist.dir}/nativewindow-solsparc/nativewindow.jar" />
+ <available file="${nativewindow.dist.dir}/nativewindow-solsparc/32/libnativewindow.so" />
+ <available file="${nativewindow.dist.dir}/nativewindow-solsparc/32/libnativewindow_awt.so" />
+ <available file="${nativewindow.dist.dir}/nativewindow-solsparc/32/libgluegen-rt.so" />
+ <available file="${nativewindow.dist.dir}/nativewindow-solsparc/32/gluegen-rt-natives-solaris-sparc.jar" />
+ </and>
+ </condition>
+ <fail unless="solsparc.complete">
+ ******************************************************************
+ ** Files are missing from the Solaris/SPARC build. This will **
+ ** cause the distribution to be incomplete. Please check the **
+ ** status of the Solaris/SPARC build and try again. **
+ ******************************************************************
+ </fail>
+ </target>
+
+ <target name="dist.check.solsparcv9" if="nativewindow.dist.dir">
+ <condition property="solsparcv9.complete">
+ <and>
+ <available file="${nativewindow.dist.dir}/nativewindow-solsparc/nativewindow.jar" />
+ <available file="${nativewindow.dist.dir}/nativewindow-solsparc/64/libnativewindow.so" />
+ <available file="${nativewindow.dist.dir}/nativewindow-solsparc/64/libnativewindow_awt.so" />
+ <available file="${nativewindow.dist.dir}/nativewindow-solsparc/64/libgluegen-rt.so" />
+ <available file="${nativewindow.dist.dir}/nativewindow-solsparc/64/gluegen-rt-natives-solaris-sparcv9.jar" />
+ </and>
+ </condition>
+ <fail unless="solsparcv9.complete">
+ ******************************************************************
+ ** Files are missing from the Solaris/SPARCv9 build. This will **
+ ** cause the distribution to be incomplete. Please check the **
+ ** status of the Solaris/SPARCv9 build and try again. **
+ ******************************************************************
+ </fail>
+ </target>
+
+ <target name="dist.check.solx86" if="nativewindow.dist.dir">
+ <condition property="solx86.complete">
+ <and>
+ <available file="${nativewindow.dist.dir}/nativewindow-solx86/nativewindow.jar" />
+ <available file="${nativewindow.dist.dir}/nativewindow-solx86/32/libnativewindow.so" />
+ <available file="${nativewindow.dist.dir}/nativewindow-solx86/32/libnativewindow_awt.so" />
+ <available file="${nativewindow.dist.dir}/nativewindow-solx86/32/libgluegen-rt.so" />
+ <available file="${nativewindow.dist.dir}/nativewindow-solx86/32/gluegen-rt-natives-solaris-i586.jar" />
+ </and>
+ </condition>
+ <fail unless="solx86.complete">
+ ******************************************************************
+ ** Files are missing from the Solaris/x86 build. This will **
+ ** cause the distribution to be incomplete. Please check the **
+ ** status of the Solaris/x86 build and try again. **
+ ******************************************************************
+ </fail>
+ </target>
+
+ <target name="dist.check.solamd64" if="nativewindow.dist.dir">
+ <condition property="solamd64.complete">
+ <and>
+ <available file="${nativewindow.dist.dir}/nativewindow-solx86/64/libnativewindow.so" />
+ <available file="${nativewindow.dist.dir}/nativewindow-solx86/64/libnativewindow_awt.so" />
+ <available file="${nativewindow.dist.dir}/nativewindow-solx86/64/libgluegen-rt.so" />
+ <available file="${nativewindow.dist.dir}/nativewindow-solx86/64/gluegen-rt-natives-solaris-amd64.jar" />
+ </and>
+ </condition>
+ <fail unless="solamd64.complete">
+ ******************************************************************
+ ** Files are missing from the Solaris/x86/64 (amd64) build. This *
+ ** will cause the distribution **
+ ** to be incomplete. Please check the **
+ ** status of the Solaris/x86 (amd64) build and try again. **
+ ******************************************************************
+ </fail>
+ </target>
+
+ <!-- Helper task for dist target below -->
+ <!-- Required parameters: -->
+ <!-- zip.os.arch = the os/arch combination for this zip file (i.e., "windows-i586") -->
+ <!-- zip.src.so.dir = the directory containing the .so's / .dll's / .jnilib's for this platform-->
+ <target name="dist.build.zip">
+ <property name="nativewindow.tmp.version" value="nativewindow-${tmp.version}-${zip.os.arch}" />
+ <!-- Create all needed directories -->
+ <delete dir="${nativewindow.dist.dir}/tmp" failonerror="false" />
+ <mkdir dir="${nativewindow.dist.dir}/tmp/${nativewindow.tmp.version}/lib" />
+ <!-- Copy in files -->
+ <copy todir="${nativewindow.dist.dir}/tmp/${nativewindow.tmp.version}/lib">
+ <fileset dir="${zip.src.so.dir}" includes="*${zip.so.suffix}" />
+ </copy>
+ <copy file="${nativewindow.dist.dir}/nativewindow.jar" todir="${nativewindow.dist.dir}/tmp/${nativewindow.tmp.version}/lib" />
+ <copy file="${nativewindow.dist.dir}/gluegen-rt.jar" todir="${nativewindow.dist.dir}/tmp/${nativewindow.tmp.version}/lib" />
+ <copy file="../CHANGELOG.txt" todir="${nativewindow.dist.dir}/tmp/${nativewindow.tmp.version}" />
+ <copy file="../COPYRIGHT.txt" todir="${nativewindow.dist.dir}/tmp/${nativewindow.tmp.version}" />
+ <copy file="../LICENSE.txt" tofile="${nativewindow.dist.dir}/tmp/${nativewindow.tmp.version}/LICENSE-NATIVEWINDOW-${tmp.version}.txt" />
+ <copy file="README-zip-bundles.txt"
+ tofile="${nativewindow.dist.dir}/tmp/${nativewindow.tmp.version}/README.txt"
+ overwrite="true">
+ <filterset>
+ <filter token="VERSION" value="${tmp.version}"/>
+ </filterset>
+ </copy>
+ <copy file="../doc/userguide/index.html" tofile="${nativewindow.dist.dir}/tmp/${nativewindow.tmp.version}/Userguide.html" />
+ <!-- zip it up -->
+ <zip destfile="${nativewindow.dist.dir}/${nativewindow.tmp.version}.zip"
+ basedir="${nativewindow.dist.dir}/tmp"
+ includes="${nativewindow.tmp.version}/**" />
+ </target>
+
+ <target name="setup-version-RI" if="RImanifestfile">
+ <property name="tmp.version" value="${base_version}" />
+ </target>
+
+ <target name="setup-version-non-RI" unless="RImanifestfile">
+ <tstamp>
+ <format property="timestamp" pattern="yyyyMMdd"/>
+ </tstamp>
+ <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">
+ <delete>
+ <fileset dir="${nativewindow.dist.dir}" includes="*.jar" />
+ </delete>
+ <delete>
+ <fileset dir="${nativewindow.dist.dir}" includes="*.zip" />
+ </delete>
+ <delete dir="${nativewindow.dist.dir}/tmp" failonerror="false" />
+ <delete dir="${nativewindow.dist.dir}/META-INF" failonerror="false" />
+ <!-- Extract manifest from one of the jars to re-use it in the dist jar -->
+ <unjar src="${nativewindow.dist.dir}/nativewindow-win/nativewindow.jar" dest="${nativewindow.dist.dir}" >
+ <patternset>
+ <include name="META-INF/MANIFEST.MF" />
+ </patternset>
+ </unjar>
+ <!-- Build jar files suitable for Java Web Start -->
+ <jar manifest="${nativewindow.dist.dir}/META-INF/MANIFEST.MF" destfile="${nativewindow.dist.dir}/nativewindow.jar" duplicate="preserve">
+ <zipgroupfileset dir="${nativewindow.dist.dir}"
+ includes="nativewindow-win/nativewindow.jar, nativewindow-linux/nativewindow.jar, nativewindow-macosx/nativewindow.jar" />
+ </jar>
+ <!-- Apply Pack200 repacking to allow later compression by that mechanism -->
+ <apply executable="pack200" verbose="true" >
+ <arg value="--repack" />
+ <fileset file="${nativewindow.dist.dir}/nativewindow.jar" />
+ </apply>
+ <jar destfile="${nativewindow.dist.dir}/nativewindow-natives-windows-i586.jar"
+ basedir="${nativewindow.dist.dir}/nativewindow-win/32"
+ includes="nativewindow.dll,nativewindow_awt.dll" />
+ <jar destfile="${nativewindow.dist.dir}/nativewindow-natives-windows-amd64.jar"
+ basedir="${nativewindow.dist.dir}/nativewindow-win/64"
+ includes="nativewindow.dll,nativewindow_awt.dll" />
+ <jar destfile="${nativewindow.dist.dir}/nativewindow-natives-linux-i586.jar"
+ basedir="${nativewindow.dist.dir}/nativewindow-linux/32"
+ includes="libnativewindow.so,libnativewindow_awt.so" />
+ <jar destfile="${nativewindow.dist.dir}/nativewindow-natives-linux-amd64.jar"
+ basedir="${nativewindow.dist.dir}/nativewindow-linux/64"
+ includes="libnativewindow.so,libnativewindow_awt.so" />
+ <jar destfile="${nativewindow.dist.dir}/nativewindow-natives-macosx-ppc.jar"
+ basedir="${nativewindow.dist.dir}/nativewindow-macosx/ppc"
+ includes="libnativewindow.jnilib,libnativewindow_awt.jnilib" />
+ <jar destfile="${nativewindow.dist.dir}/nativewindow-natives-macosx-universal.jar"
+ basedir="${nativewindow.dist.dir}/nativewindow-macosx/fat"
+ includes="libnativewindow.jnilib,libnativewindow_awt.jnilib" />
+ <jar destfile="${nativewindow.dist.dir}/nativewindow-natives-solaris-sparc.jar"
+ basedir="${nativewindow.dist.dir}/nativewindow-solsparc/32"
+ includes="libnativewindow.so,libnativewindow_awt.so" />
+ <jar destfile="${nativewindow.dist.dir}/nativewindow-natives-solaris-sparcv9.jar"
+ basedir="${nativewindow.dist.dir}/nativewindow-solsparc/64"
+ includes="libnativewindow.so,libnativewindow_awt.so" />
+ <jar destfile="${nativewindow.dist.dir}/nativewindow-natives-solaris-i586.jar"
+ basedir="${nativewindow.dist.dir}/nativewindow-solx86/32"
+ includes="libnativewindow.so,libnativewindow_awt.so" />
+ <jar destfile="${nativewindow.dist.dir}/nativewindow-natives-solaris-amd64.jar"
+ basedir="${nativewindow.dist.dir}/nativewindow-solx86/64"
+ includes="libnativewindow.so,libnativewindow_awt.so" />
+ <!-- Copy gluegen-rt.jar from Linux build (arbitrary; this jar is platform-independent) -->
+ <copy file="${nativewindow.dist.dir}/nativewindow-linux/gluegen-rt.jar" todir="${nativewindow.dist.dir}" />
+ <!-- Copy gluegen-rt native jars out of platform-specific subdirectories -->
+ <copy todir="${nativewindow.dist.dir}">
+ <fileset dir="${nativewindow.dist.dir}/nativewindow-win/32" includes="gluegen-natives-*.jar" />
+ </copy>
+ <copy todir="${nativewindow.dist.dir}">
+ <fileset dir="${nativewindow.dist.dir}/nativewindow-win/64" includes="gluegen-natives-*.jar" />
+ </copy>
+ <copy todir="${nativewindow.dist.dir}">
+ <fileset dir="${nativewindow.dist.dir}/nativewindow-linux/32" includes="gluegen-natives-*.jar" />
+ </copy>
+ <copy todir="${nativewindow.dist.dir}">
+ <fileset dir="${nativewindow.dist.dir}/nativewindow-linux/64" includes="gluegen-natives-*.jar" />
+ </copy>
+ <copy todir="${nativewindow.dist.dir}">
+ <fileset dir="${nativewindow.dist.dir}/nativewindow-macosx/ppc" includes="gluegen-natives-*.jar" />
+ </copy>
+ <copy todir="${nativewindow.dist.dir}">
+ <fileset dir="${nativewindow.dist.dir}/nativewindow-macosx/fat" includes="gluegen-natives-*.jar" />
+ </copy>
+ <copy todir="${nativewindow.dist.dir}">
+ <fileset dir="${nativewindow.dist.dir}/nativewindow-solsparc/32" includes="gluegen-natives-*.jar" />
+ </copy>
+ <copy todir="${nativewindow.dist.dir}">
+ <fileset dir="${nativewindow.dist.dir}/nativewindow-solsparc/64" includes="gluegen-natives-*.jar" />
+ </copy>
+ <copy todir="${nativewindow.dist.dir}">
+ <fileset dir="${nativewindow.dist.dir}/nativewindow-solx86/32" includes="gluegen-natives-*.jar" />
+ </copy>
+ <copy todir="${nativewindow.dist.dir}">
+ <fileset dir="${nativewindow.dist.dir}/nativewindow-solx86/64" includes="gluegen-natives-*.jar" />
+ </copy>
+
+ <zip destfile="${nativewindow.dist.dir}/nativewindow-${tmp.version}-src.zip"
+ basedir="../.."
+ includes="jogl/*.txt,jogl/${rootrel.build.nativewindow}/gensrc/classes/javax/media/nativewindow/**,jogl/doc/**,jogl/make/**,jogl/src/nativewindow/**"
+ excludes="**/*.class,**/*~"
+ />
+ <!-- Create zip archives suitable for developers -->
+ <!-- Unfortunately, we have to replicate the os/arch name combinations from
+ gluegen-cpptasks.xml. The reason for this is that we can't generate these
+ zip archives on the platform where the builds run; we have to run the dist
+ target in order to get the platform-independent nativewindow.jar. -->
+ <antcall target="dist.build.zip" inheritAll="true">
+ <param name="zip.os.arch" value="linux-i586" />
+ <param name="zip.so.suffix" value=".so" />
+ <param name="zip.src.so.dir" value="${nativewindow.dist.dir}/nativewindow-linux/32" />
+ </antcall>
+ <antcall target="dist.build.zip" inheritAll="true">
+ <param name="zip.os.arch" value="linux-amd64" />
+ <param name="zip.so.suffix" value=".so" />
+ <param name="zip.src.so.dir" value="${nativewindow.dist.dir}/nativewindow-linux/64" />
+ </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="${nativewindow.dist.dir}/nativewindow-macosx/ppc" />
+ </antcall>
+ <antcall target="dist.build.zip" inheritAll="true">
+ <param name="zip.os.arch" value="macosx-universal" />
+ <param name="zip.so.suffix" value=".jnilib" />
+ <param name="zip.src.so.dir" value="${nativewindow.dist.dir}/nativewindow-macosx/fat" />
+ </antcall>
+ <antcall target="dist.build.zip" inheritAll="true">
+ <param name="zip.os.arch" value="solaris-i586" />
+ <param name="zip.so.suffix" value=".so" />
+ <param name="zip.src.so.dir" value="${nativewindow.dist.dir}/nativewindow-solx86/32" />
+ </antcall>
+ <antcall target="dist.build.zip" inheritAll="true">
+ <param name="zip.os.arch" value="solaris-amd64" />
+ <param name="zip.so.suffix" value=".so" />
+ <param name="zip.src.so.dir" value="${nativewindow.dist.dir}/nativewindow-solx86/64" />
+ </antcall>
+ <antcall target="dist.build.zip" inheritAll="true">
+ <param name="zip.os.arch" value="solaris-sparc" />
+ <param name="zip.so.suffix" value=".so" />
+ <param name="zip.src.so.dir" value="${nativewindow.dist.dir}/nativewindow-solsparc/32" />
+ </antcall>
+ <antcall target="dist.build.zip" inheritAll="true">
+ <param name="zip.os.arch" value="solaris-sparcv9" />
+ <param name="zip.so.suffix" value=".so" />
+ <param name="zip.src.so.dir" value="${nativewindow.dist.dir}/nativewindow-solsparc/64" />
+ </antcall>
+ <antcall target="dist.build.zip" inheritAll="true">
+ <param name="zip.os.arch" value="windows-i586" />
+ <param name="zip.so.suffix" value=".dll" />
+ <param name="zip.src.so.dir" value="${nativewindow.dist.dir}/nativewindow-win/32" />
+ </antcall>
+ <antcall target="dist.build.zip" inheritAll="true">
+ <param name="zip.os.arch" value="windows-amd64" />
+ <param name="zip.so.suffix" value=".dll" />
+ <param name="zip.src.so.dir" value="${nativewindow.dist.dir}/nativewindow-win/64" />
+ </antcall>
+ <!-- Create one last zip archive by hand, this one containing all of the -->
+ <!-- Java Web Start jar files (for easier redistribution) -->
+ <zip destfile="${nativewindow.dist.dir}/nativewindow-${tmp.version}-webstart.zip"
+ basedir="${nativewindow.dist.dir}"
+ includes="*.jar" />
+ <!-- Create a version.txt file indicating which version we just built -->
+ <echo message="${tmp.version}" file="${nativewindow.dist.dir}/version.txt" />
+ </target>
+
+ <!-- ================================================================== -->
+ <!--
+ - Clean up all that is built.
+ -->
+ <target name="clean" description="Remove all build products" depends="declare.common">
+ <delete includeEmptyDirs="true" quiet="true">
+ <fileset dir="${build}" />
+ <fileset dir="${javadoc}" />
+ <fileset dir="${javadoc.spec}" />
+ <fileset dir="${javadoc.dev}" />
+ </delete>
+ </target>
+
+ <!-- ================================================================== -->
+ <!--
+ - Build everything.
+ -->
+ <target name="all" description="Build NativeWindow JAR file(s) and native libraries." depends="load.user.properties,init,jar,c.build.nativewindow" />
+
+ <!-- ================================================================== -->
+ <!--
+ - Build everything and use Sun's Implementation tag in the manifest to
+ - indicate this is the Reference Implementation.
+ -->
+ <target name="RI">
+ <!-- Set property for using the RI manifest file so nativewindow.jar is versioned
+ - properly
+ -->
+ <property name="RImanifestfile" value="nativewindowRIversion" />
+ <antcall target="all" inheritRefs="true" />
+ </target>
+</project>
diff --git a/make/build-newt.xml b/make/build-newt.xml
new file mode 100644
index 0000000..a1b1baa
--- /dev/null
+++ b/make/build-newt.xml
@@ -0,0 +1,1029 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ - Ant build for NEWT. This build has been tested with ANT 1.7.0. The
+ - optional.jar that contains the optional ANT tasks must be in the ANT
+ - classpath (typically the ant/lib directory).
+ -
+ - A clean download of NEWT is required for this build.
+ -
+ - This build has no dependence on environment variables; the needed
+ - ones (e.g. java.home, ANT_HOME) are all set by the Ant wrapper shell
+ - script, by the virtual machine, or elsewhere. However, on all platforms,
+ - the C compiler and linker should be in the path. All other paths that
+ - need to be set are in host.properties.
+ -
+ - NOTE: because the GlueGen config files have their own relative paths
+ - which cannot be overridden by GlueGen, GlueGen MUST be run from
+ - the "make" directory. This also means that this build.xml MUST
+ - be run from the "make" directory.
+ -
+ - Public targets:
+ - all: (default; autodetects OS and chooses C compiler from newt.properties)
+ - clean: clean all built
+ - javadoc: create the standard developer Javadoc (recommended)
+ - (Note: should build all first - may be dependence in the future)
+ - javadoc.spec: create the standard developer Javadoc but exclude com.sun.* classes
+ - javadoc.dev: create the internal developer Javadoc. This includes the
+ - Java and C file generators. Note that it is only supported
+ - to create the Javadoc for the platform on which you are
+ - currently running.
+ -
+ - Note: on Windows the "win32.c.compiler" property in newt.properties
+ - is required to select the appropriate C compiler. See the example
+ - newt.properties in this directory for valid values. On Mac OS X
+ - universal binaries may also be built by setting the "macosxfat"
+ - property in newt.properties; again see the example file in this
+ - directory.
+ -
+ - Thanks to Rob Grzywinski and Artur Biesiadowski for the bulk of the
+ - ANT build, including the GlueGen and StaticGLInfo tasks, the building of
+ - the Java generated sources, the first and second phase Java compiles, and
+ - the building of the jar file. Thanks to Alex Radeski for the bulk of the
+ - port to the ant-contrib CPPTask framework. Thanks to Athomas Goldberg for
+ - the original OS detection code.
+ -
+ - Some environment defs affecting compilation
+
+ setup.cdcfp - Using the CDC Java runtime library
+ - no DoubleBuffer
+ - no LongBuffer
+
+ This will set
+ -> setup.noAWT
+
+ - Internal settings, may not be necessary to set them manually,
+ since all JAR archives are orthogonal.
+ setup.noAWT
+ setup.noOpenGL
+ -->
+<project name="NEWT" basedir="." default="all">
+
+ <!-- This is the version of JOGL you are building -->
+ <property name="base_version" value="0.0.0-rc0"/>
+
+ <!-- Uncomment this property definition to cause a full release build to be done -->
+ <!-- without needing to specify the RI target on the command line -->
+ <property name="RImanifestfile" value="newtRIversion" />
+
+ <!-- Pull in GlueGen cpptasks build file -->
+ <property name="gluegen.root" value="../../gluegen" />
+ <import file="${gluegen.root}/make/gluegen-cpptasks.xml" />
+
+ <available file="${user.home}/newt.compiler.xml" property="newt.compiler.present"/>
+ <import file="${user.home}/newt.compiler.xml" optional="true" />
+
+ <!-- ================================================================== -->
+ <!--
+ - Base initialization and detection of operating system.
+ -->
+ <target name="base.init">
+
+ <condition property="setup.noAWT">
+ <isset property="setup.cdcfp"/>
+ </condition>
+ <condition property="isCDCFP">
+ <isset property="setup.cdcfp"/>
+ </condition>
+ <condition property="javac.bootclasspath.jar"
+ value="../../gluegen/make/lib/cdc_fp.jar">
+ <isset property="setup.cdcfp"/>
+ </condition>
+ <echo message="setup.cdcfp: ${setup.cdcfp}" />
+ <echo message="setup.noAWT: ${setup.noAWT}" />
+ <echo message="setup.noOpenGL: ${setup.noOpenGL}" />
+ <echo message="javac.bootclasspath.jar: ${javac.bootclasspath.jar}" />
+
+ <!-- partitioning -->
+
+ <property name="java.part.core"
+ value="com/sun/javafx/newt/*, com/sun/javafx/newt/util/*, com/sun/javafx/newt/x11/*, com/sun/javafx/newt/windows/*, com/sun/javafx/newt/macosx/*, com/sun/javafx/newt/impl/*"/>
+
+ <property name="java.part.opengl"
+ value="com/sun/javafx/newt/opengl/*, com/sun/javafx/newt/opengl/kd/*"/>
+
+ <property name="java.part.awt"
+ value="com/sun/javafx/newt/awt/*"/>
+
+ <!-- condition excludes -->
+
+ <condition property="java.excludes.awt"
+ value="${java.part.awt}">
+ <isset property="setup.noAWT"/>
+ </condition>
+
+ <condition property="java.excludes.opengl"
+ value="${java.part.opengl}">
+ <isset property="setup.noOpenGL"/>
+ </condition>
+
+ <condition property="java.excludes.cdcfp"
+ value="">
+ <isset property="setup.cdcfp"/>
+ </condition>
+
+ <property name="java.excludes.all" value="${java.excludes.awt}, ${java.excludes.opengl}, ${java.excludes.cdcfp}" />
+ <echo message="java.excludes.all: ${java.excludes.all}" />
+
+
+ <!-- Set the project root directory to be up one directory. -->
+ <property name="project.root" value=".." />
+
+ <!-- Set the configuration and build files to this directory. -->
+ <property name="make" value="." />
+ </target>
+
+ <target name="base.init.sourcelevel.1">
+ <property name="newt.sourcelevel" value="1.4" />
+ </target>
+
+ <!--target name="base.init.sourcelevel.2" if="gluegen.nsig">
+ <property name="newt.sourcelevel" value="1.5" />
+ </target-->
+
+ <!-- ================================================================== -->
+ <!--
+ - Load user properties which override build defaults.
+ -->
+ <target name="load.user.properties" depends="base.init,base.init.sourcelevel.1" unless="user.properties.file">
+ <!-- Load the user specified properties file that defines various host
+ - specific paths. The user will be notified if this is does not
+ - exist. -->
+ <property name="user.properties.file" value="${user.home}/newt.properties" />
+ <property file="${user.properties.file}" />
+ <echo message="Loaded ${user.properties.file}." />
+ <property file="${user.home}/gluegen.properties" />
+ <echo message="Loaded ${user.home}/gluegen.properties." />
+ </target>
+
+ <!-- ================================================================== -->
+ <!--
+ - Declare all paths and user defined variables.
+ -->
+ <target name="declare.common" description="Declare properties" depends="load.user.properties">
+ <!-- The location and name of the configuration ANT file that will
+ - validate to ensure that all user-define variables are set. -->
+ <property name="validate.user.properties" value="${make}/validate-properties.xml" />
+
+ <!-- NOTE: the value of the debug and optimise attributes will not be overridden if already set externally -->
+ <property name="javacdebug" value="true" />
+ <property name="javacdebuglevel" value="source,lines" />
+
+ <!-- Names of directories relative to the project root.
+ Some of these are used in FileMappers later for dependence information
+ and need exact string matching, which is why they use file.separator
+ instead of "/". -->
+ <condition property="rootrel.build" value="build">
+ <not>
+ <isset property="rootrel.build"/>
+ </not>
+ </condition>
+ <property name="rootrel.build.newt" value="${rootrel.build}/newt" />
+ <property name="rootrel.src" value="src/newt" />
+ <property name="rootrel.src.java" value="${rootrel.src}/classes" />
+ <property name="rootrel.src.c" value="${rootrel.src}/native" />
+ <property name="rootrel.obj" value="${rootrel.build.newt}/obj" />
+
+ <property name="gluegen-rt.jar" value="../../gluegen/${rootrel.build}/gluegen-rt.jar" />
+ <property name="nativewindow.all.jar" value="../${rootrel.build}/nativewindow/nativewindow.all.jar" />
+ <property name="jogl.all.jar" value="../${rootrel.build}/jogl/jogl.all.jar" />
+
+ <!-- The source directories. -->
+ <property name="src.java" value="${project.root}/${rootrel.src.java}" />
+ <property name="src.c" value="${project.root}/${rootrel.src.c}" />
+ <property name="build" value="${project.root}/${rootrel.build.newt}" />
+
+ <!-- The generated source directories. -->
+ <property name="src.generated" value="${build}/gensrc" />
+ <property name="src.generated.c" value="${src.generated}/native/newt" />
+
+ <!-- The compiler output directories. -->
+ <property name="classes" value="${build}/classes" />
+ <property name="obj" value="${project.root}/${rootrel.obj}" />
+
+ <path id="nativewindow_gluegen_jogl.classpath">
+ <pathelement location="${nativewindow.all.jar}" />
+ <pathelement location="${gluegen-rt.jar}" />
+ <pathelement location="${jogl.all.jar}" />
+ </path>
+
+ <!-- The resulting newt.jar. -->
+ <property name="newt.core.jar" value="${build}/newt.core.jar" />
+ <property name="newt.ogl.jar" value="${build}/newt.ogl.jar" />
+ <property name="newt.awt.jar" value="${build}/newt.awt.jar" />
+ <property name="newt.all.jar" value="${build}/newt.all.jar" />
+
+ <!-- The javadoc dirs. -->
+ <property name="javadoc" value="${project.root}/javadoc_newt_public" />
+ <property name="javadoc.spec" value="${project.root}/javadoc_newt_spec" />
+ <property name="javadoc.dev" value="${project.root}/javadoc_newt_dev" />
+ <property name="javadoc.link" value="http://java.sun.com/j2se/1.4.2/docs/api/" />
+ <property name="javadoc.windowtitle" value="NEWT API -- ${base_version} Specification" />
+ <property name="javadoc.overview" value="spec-overview.html" />
+ <property name="javadoc.spec.packagenames" value="com.sun.javafx.newt, com.sun.javafx.newt.opengl" />
+
+ <property name="javadoc.packagenames" value="${javadoc.spec.packagenames}" />
+
+ <property name="javadoc.dev.packagenames" value="${javadoc.packagenames},com.sun.javafx.newt.*" />
+ <property name="javadoc.bottom" value="Copyright 2005 Sun Microsystems, Inc. All rights reserved. Use is subject to &lt;a href=&quot;http://jcp.org/en/jsr/detail?id=231&quot;&gt;license terms&lt;/a&gt;." />
+ </target>
+
+ <!-- ================================================================== -->
+ <!--
+ - Initialize all parameters required for the build and create any
+ - required directories.
+ -->
+ <target name="init" depends="declare.common">
+ <!-- Call the external config validator script to make sure the config is ok and consistent -->
+ <ant antfile="${validate.user.properties}" inheritall="true"/>
+
+ <mkdir dir="${src.generated.c}" />
+ <mkdir dir="${src.generated.c}/X11" />
+ <mkdir dir="${src.generated.c}/KD" />
+ <mkdir dir="${src.generated.c}/MacOSX" />
+ <mkdir dir="${src.generated.c}/Windows" />
+ <mkdir dir="${classes}" />
+ <mkdir dir="${obj}" />
+ </target>
+
+ <!-- ================================================================== -->
+ <!--
+ - Compile the original and generated source. The composable pipelines
+ - will be generated.
+ -->
+ <target name="java.compile.1" if="javac.bootclasspath.jar">
+ <!-- Perform the first pass Java compile; everything -->
+ <javac destdir="${classes}"
+ excludes="${java.excludes.all}"
+ source="${newt.sourcelevel}"
+ bootclasspath="${javac.bootclasspath.jar}"
+ fork="yes"
+ memoryMaximumSize="128m"
+ debug="${javacdebug}" debuglevel="${javacdebuglevel}">
+ <classpath refid="nativewindow_gluegen_jogl.classpath"/>
+ <src path="${src.java}" />
+ </javac>
+ </target>
+
+ <target name="java.compile.2" unless="javac.bootclasspath.jar">
+ <!-- Perform the second pass Java compile; everything. -->
+ <javac destdir="${classes}"
+ excludes="${java.excludes.all}"
+ source="${newt.sourcelevel}"
+ fork="yes"
+ memoryMaximumSize="128m"
+ debug="${javacdebug}" debuglevel="${javacdebuglevel}">
+ <src path="${src.java}" />
+ <classpath refid="nativewindow_gluegen_jogl.classpath"/>
+ </javac>
+ </target>
+
+ <target name="java.compile" depends="java.compile.1,java.compile.2" />
+
+ <!-- ================================================================== -->
+ <!--
+ - Compile the native C code for JOGL (and optionally the Cg binding).
+ -->
+
+ <target name="c.configure.1" depends="gluegen.cpptasks.detect.os,gluegen.cpptasks.setup.compiler" unless="newt.compiler.present">
+ <!-- compiler configuration -->
+ <!-- Note that we can use the base setups in the gluegen-cpptasks for most of these -->
+
+ <compiler id="compiler.cfg.freebsd.newt" extends="compiler.cfg.freebsd">
+ <!-- Need to force X11R6 headers on to include path after stub_includes -->
+ <includepath path="/usr/X11R6/include" />
+ </compiler>
+
+ <!-- linker configuration -->
+
+ <linker id="linker.cfg.linux.newt.x11" extends="linker.cfg.linux">
+ <syslibset dir="/usr/X11R6/lib" libs="X11"/>
+ <syslibset dir="/usr/X11R6/lib" libs="Xxf86vm" />
+ </linker>
+
+ <linker id="linker.cfg.linux.amd64.newt.x11" extends="linker.cfg.linux.amd64">
+ <syslibset dir="/usr/X11R6/lib64" libs="X11"/>
+ <syslibset dir="/usr/X11R6/lib64" libs="Xxf86vm" />
+ </linker>
+
+ <linker id="linker.cfg.solaris.newt.x11" extends="linker.cfg.solaris">
+ <syslibset libs="X11"/>
+ </linker>
+
+ <linker id="linker.cfg.win32.mingw.newt" extends="linker.cfg.win32.mingw">
+ <linkerarg value="-Wl,--kill-at" /> <!-- remove @ from function names -->
+ <syslibset libs="gdi32, kernel32"/>
+ </linker>
+
+ <linker id="linker.cfg.win32.msvc.newt" extends="linker.cfg.win32.msvc">
+ <syslibset libs="gdi32, user32, kernel32" />
+ </linker>
+
+ <linker id="linker.cfg.macosx.newt" extends="linker.cfg.macosx">
+ <linkerarg value="-framework" />
+ <linkerarg value="Cocoa" />
+ </linker>
+
+ <linker id="linker.cfg.hpux.newt" extends="linker.cfg.hpux">
+ <syslibset dir="/usr/lib" libs="X11"/>
+ </linker>
+ </target>
+
+ <target name="c.configure.win32.vc" if="isVCFamily">
+ <echo message="Win32.VC" />
+ <property name="compiler.cfg.id" value="compiler.cfg.win32.msvc" />
+ <property name="linker.cfg.id.core" value="linker.cfg.win32.msvc" />
+ <property name="linker.cfg.id.oswin" value="linker.cfg.win32.msvc.newt" />
+ </target>
+
+ <target name="c.configure.win32.mingw" if="isMingW">
+ <echo message="Win32.MingW" />
+ <property name="compiler.cfg.id" value="compiler.cfg.win32.mingw" />
+ <property name="linker.cfg.id.core" value="linker.cfg.win32.mingw" />
+ <property name="linker.cfg.id.oswin" value="linker.cfg.win32.mingw.newt" />
+ </target>
+
+ <target name="c.configure.linux.x86" if="isLinuxX86">
+ <echo message="Linux.x86" />
+ <property name="compiler.cfg.id" value="compiler.cfg.linux" />
+ <property name="linker.cfg.id.core" value="linker.cfg.linux" />
+ <property name="linker.cfg.id.oswin" value="linker.cfg.linux.newt.x11" />
+ </target>
+
+ <target name="c.configure.linux.amd64" if="isLinuxAMD64">
+ <echo message="Linux.AMD64" />
+ <property name="compiler.cfg.id" value="compiler.cfg.linux.amd64" />
+ <property name="linker.cfg.id.core" value="linker.cfg.linux.amd64" />
+ <property name="linker.cfg.id.oswin" value="linker.cfg.linux.amd64.newt.x11" />
+ </target>
+
+ <target name="c.configure.linux.ia64" if="isLinuxIA64">
+ <echo message="Linux.IA64" />
+ <property name="compiler.cfg.id" value="compiler.cfg.linux" />
+ <property name="linker.cfg.id.core" value="linker.cfg.linux" />
+ <property name="linker.cfg.id.oswin" value="linker.cfg.linux.newt.x11" />
+ </target>
+
+ <target name="c.configure.linux" depends="c.configure.linux.x86,c.configure.linux.amd64,c.configure.linux.ia64,c.configure.x11" if="isLinux" />
+
+ <target name="c.configure.solaris32" depends="c.configure.x11" if="isSolaris32Bit">
+ <echo message="Solaris" />
+ <property name="compiler.cfg.id" value="compiler.cfg.solaris" />
+ <property name="linker.cfg.id.core" value="linker.cfg.solaris" />
+ <property name="linker.cfg.id.oswin" value="linker.cfg.solaris.newt.x11" />
+ </target>
+
+
+ <target name="c.configure.solaris.sparcv9" depends="c.configure.x11" if="isSolarisSparcv9">
+ <echo message="SolarisSparcv9" />
+ <property name="compiler.cfg.id" value="compiler.cfg.solaris.sparcv9" />
+ <property name="linker.cfg.id.core" value="linker.cfg.solaris.sparcv9" />
+ <property name="linker.cfg.id.oswin" value="linker.cfg.solaris.sparcv9.newt.x11" />
+ </target>
+
+
+ <target name="c.configure.solaris.amd64" depends="c.configure.x11" if="isSolarisAMD64">
+ <echo message="SolarisAMD64" />
+ <property name="compiler.cfg.id" value="compiler.cfg.solaris.amd64" />
+ <property name="linker.cfg.id.core" value="linker.cfg.solaris.amd64" />
+ <property name="linker.cfg.id.oswin" value="linker.cfg.solaris.amd64.newt.x11" />
+ </target>
+
+ <target name="c.configure.freebsd" depends="c.configure.x11" if="isFreeBSD">
+ <echo message="FreeBSD" />
+ <property name="compiler.cfg.id" value="compiler.cfg.freebsd.newt" />
+ <property name="linker.cfg.id.core" value="linker.cfg.linux" />
+ <property name="linker.cfg.id.oswin" value="linker.cfg.linux.newt.x11" />
+ </target>
+
+ <target name="c.configure.hpux" depends="c.configure.x11" if="isHPUX">
+ <echo message="HP-UX" />
+ <property name="compiler.cfg.id" value="compiler.cfg.hpux" />
+ <property name="linker.cfg.id.core" value="linker.cfg.hpux" />
+ <property name="linker.cfg.id.oswin" value="linker.cfg.hpux.newt.x11" />
+ </target>
+
+ <target name="c.configure.win32" depends="c.configure.win32.vc,c.configure.win32.mingw" if="isWindows" />
+
+ <target name="c.configure.x11" if="isX11" />
+
+ <target name="c.configure.macosx" if="isOSX">
+ <property name="compiler.cfg.id" value="compiler.cfg.macosx" />
+ <property name="linker.cfg.id.core" value="linker.cfg.macosx" />
+ <property name="linker.cfg.id.oswin" value="linker.cfg.macosx.newt" />
+ </target>
+
+ <target name="c.configure.2" depends="c.configure.win32,c.configure.linux,c.configure.solaris32,c.configure.solaris.sparcv9,c.configure.solaris.amd64,c.configure.macosx,c.configure.freebsd,c.configure.hpux" />
+
+ <target name="c.configure" depends="c.configure.1,c.configure.2" />
+
+ <target name="rename.mingw.dll" if="isMingW">
+ <move file="${src}" tofile="${dest}" />
+ </target>
+
+ <target name="rename.dylib" if="isOSX">
+ <move file="${src}" tofile="${dest}" />
+ </target>
+
+ <macrodef name="c.build">
+ <attribute name="c.compiler.src.files" />
+ <attribute name="compiler.cfg.id" />
+ <attribute name="linker.cfg.id" />
+ <attribute name="output.lib.name" />
+ <attribute name="c.compiler.use-jawt" default="false"/>
+ <sequential>
+ <echo message="Output lib name = @{output.lib.name}" />
+
+ <!-- NOTE: the value of the debug and optimise attributes will not be overridden if already set externally -->
+ <property name="c.compiler.debug" value="false" />
+ <!-- Optimise flags one of { none, size, speed, minimal, full, aggressive, extreme, unsafe } -->
+ <property name="c.compiler.optimise" value="none" />
+
+ <condition property="c.compiler.use-debug"><istrue value="${c.compiler.debug}"/></condition>
+
+ <patternset id="c.src.files.newt">
+ <include name="${rootrel.src.c}/WindowsWindow.c" if="isWindows"/>
+ <include name="${rootrel.src.c}/*.m" if="isOSX"/>
+ <include name="${rootrel.src.c}/X11Window.c" if="isX11"/>
+ <include name="${rootrel.src.c}/KDWindow.c" if="useKD"/>
+ </patternset>
+
+ <echo message="Compiling @{output.lib.name}" />
+
+ <cc outtype="shared"
+ objdir="${obj}"
+ outfile="${obj}/@{output.lib.name}"
+ optimize="${c.compiler.optimise}"
+ debug="${c.compiler.debug}"
+ multithreaded="true"
+ exceptions="false"
+ rtti="false">
+
+ <!-- TODO: versioninfo companyname="java.net"
+ legalcopyright="Copyright"
+ productname="JOGL"
+ productversion="x.y.z"
+ description="Description"
+ fileversion="x.y.z"
+ filecomments="File Comment" /-->
+
+ <fileset dir="${project.root}"><patternset refid="@{c.compiler.src.files}"/></fileset>
+
+ <compiler extends="@{compiler.cfg.id}" >
+ <sysincludepath path="${java.includes.dir}"/>
+ <sysincludepath path="${java.includes.dir.platform}"/>
+ <includepath path="stub_includes/egl"/>
+ <!-- This is for the generated headers for handwritten C code -->
+ <includepath path="${src.generated.c}" />
+ <includepath path="${src.generated.c}/X11" if="isX11"/>
+ <includepath path="${src.generated.c}/MacOSX" if="isOSX"/>
+ <includepath path="${src.generated.c}/Windows" if="isWindows"/>
+ <includepath path="${src.generated.c}/KD"/>
+
+ <!-- This must come last to not override real include paths -->
+ <!-- includepath path="stub_includes/macosx" if="isOSX" / -->
+ </compiler>
+
+ <linker extends="@{linker.cfg.id}">
+ <syslibset dir="${java.lib.dir.platform}" libs="jawt" if="@{output.lib.name}.useLibJAWT"/>
+ <syslibset dir="${java.lib.dir.platform}/server" libs="jvm" if="@{output.lib.name}.useLibJVM"/>
+ </linker>
+ </cc>
+
+ <!-- FIXME: this is a hack; the cpptask should have an option to change the
+ suffix or at least understand the override from dylib to jnilib -->
+ <antcall target="rename.dylib" inheritRefs="true">
+ <param name="src" value="${build}/obj/lib@{output.lib.name}.dylib" />
+ <param name="dest" value="${build}/obj/lib@{output.lib.name}.jnilib" />
+ </antcall>
+
+ <!-- FIXME: this is a hack; the cpptask should have an option to change the
+ suffix or at least understand the override from dylib to jnilib -->
+ <antcall target="rename.mingw.dll" inheritRefs="true">
+ <param name="src" value="${build}/obj/lib@{output.lib.name}.so" />
+ <param name="dest" value="${build}/obj/@{output.lib.name}.dll" />
+ </antcall>
+ </sequential>
+ </macrodef>
+
+ <target name="c.build.newt.prepare">
+ <javah destdir="../${rootrel.build.newt}/gensrc/native/newt/Windows" classpath="${newt.all.jar}" class="com.sun.javafx.newt.windows.WindowsWindow" />
+ <javah destdir="../${rootrel.build.newt}/gensrc/native/newt/MacOSX" classpath="${newt.all.jar}" class="com.sun.javafx.newt.macosx.MacWindow" />
+ <javah destdir="../${rootrel.build.newt}/gensrc/native/newt/X11" classpath="${newt.all.jar}" class="com.sun.javafx.newt.x11.X11Window" />
+ <javah destdir="../${rootrel.build.newt}/gensrc/native/newt/KD" classpath="${newt.all.jar}" class="com.sun.javafx.newt.opengl.kd.KDWindow" />
+ </target>
+
+ <target name="c.build.newt.windowlib">
+ <c.build c.compiler.src.files="c.src.files.newt"
+ output.lib.name="newt"
+ compiler.cfg.id="${compiler.cfg.id}"
+ linker.cfg.id="${linker.cfg.id.oswin}"/>
+ </target>
+
+ <target name="c.manifest" if="isVC8Family">
+ <!-- exec mt, the Microsoft Manifest Tool, to include DLL manifests in order to resolve the location of msvcr80.dll -->
+ <msvc.manifest objdir="${obj}" dllname="newt" />
+ </target>
+
+ <target name="c.build.newt" depends="c.configure,c.build.newt.prepare,c.build.newt.windowlib">
+ <antcall target="c.manifest" inheritRefs="true" />
+ </target>
+
+ <!-- ================================================================== -->
+ <!--
+ - Build the newt.jar files.
+ -->
+ <target name="jar" depends="java.compile,cond-if-RImanifest,cond-else-RImanifest"/>
+
+ <target name="check-RIcond">
+ <condition property="RIcond-is-true">
+ <isset property="RImanifestfile"/>
+ </condition>
+ </target>
+
+ <target name="cond-if-RImanifest" depends="check-RIcond" if="RIcond-is-true">
+ <copy file="newtRIversion"
+ tofile="tempversion"
+ overwrite="true">
+ <filterset>
+ <filter token="VERSION" value="${base_version}-pre-${timestamp}"/>
+ <filter token="BASEVERSION" value="${base_version}"/>
+ </filterset>
+ </copy>
+
+ <jar manifest="tempversion" destfile="${newt.core.jar}">
+ <fileset dir="${classes}"
+ includes="${java.part.core}"/>
+ </jar>
+ <jar manifest="tempversion" destfile="${newt.ogl.jar}">
+ <fileset dir="${classes}"
+ includes="${java.part.core}, ${java.part.opengl}"/>
+ </jar>
+ <jar manifest="tempversion" destfile="${newt.awt.jar}">
+ <fileset dir="${classes}"
+ includes="${java.part.awt}"/>
+ </jar>
+ <jar manifest="tempversion" destfile="${newt.all.jar}">
+ <fileset dir="${classes}">
+ <include name="com/sun/javafx/newt/**" />
+ </fileset>
+ </jar>
+ <delete file="tempversion"/>
+ </target>
+
+
+ <target name="cond-else-RImanifest" depends="check-RIcond" unless="RIcond-is-true">
+ <tstamp>
+ <format property="timestamp" pattern="yyyyMMdd-HH:mm:ss"/>
+ </tstamp>
+ <copy file="newtversion"
+ tofile="tempversion"
+ overwrite="true">
+ <filterset>
+ <filter token="VERSION" value="${base_version}-pre-${timestamp}"/>
+ <filter token="BASEVERSION" value="${base_version}"/>
+ </filterset>
+ </copy>
+ <jar manifest="tempversion" destfile="${newt.jar}">
+ <fileset dir="${classes}">
+ <include name="com/sun/javafx/newt/**" />
+ </fileset>
+ </jar>
+ <delete file="tempversion"/>
+ </target>
+
+ <!-- ================================================================== -->
+ <!--
+ - Build the Javadocs for the sources.
+ - NOTE: these are not entirely correct as the javadocs targets depend
+ - on the platform specific build targets. To circumvent any
+ - errors, ensure that the source is built first.
+ -->
+ <target name="javadoc" depends="load.user.properties,init">
+ <!-- Build the general Javadoc -->
+ <javadoc packagenames="${javadoc.packagenames}"
+ excludepackagenames="${java.excludes.javadoc.packagenames}"
+ sourcepath="${src.java};${src.generated.java}"
+ destdir="${javadoc}" windowtitle="${javadoc.windowtitle}"
+ overview="${javadoc.overview}"
+ source="1.4"
+ linkoffline="${javadoc.link} 142-packages"
+ bottom="${javadoc.bottom}" >
+ <classpath refid="nativewindow_gluegen_jogl.classpath"/>
+ </javadoc>
+ </target>
+
+ <target name="javadoc.spec" depends="load.user.properties,init">
+ <!-- Build the general Javadoc -->
+ <javadoc packagenames="${javadoc.spec.packagenames}"
+ excludepackagenames="${java.excludes.javadoc.packagenames}"
+ sourcepath="${src.java};${src.generated.java}"
+ destdir="${javadoc.spec}" windowtitle="${javadoc.windowtitle}"
+ overview="${javadoc.overview}"
+ source="1.4"
+ linkoffline="${javadoc.link} 142-packages"
+ bottom="${javadoc.bottom}" >
+ <classpath refid="nativewindow_gluegen_jogl.classpath"/>
+ </javadoc>
+ </target>
+
+ <target name="javadoc.dev" depends="load.user.properties,init">
+ <!-- Build the internal developer Javadoc -->
+ <javadoc packagenames="${javadoc.dev.packagenames}"
+ excludepackagenames="${java.excludes.javadoc.packagenames}"
+ sourcepath="${src.java};${src.generated.java}"
+ destdir="${javadoc.dev}" windowtitle="${javadoc.windowtitle}"
+ overview="${javadoc.overview}"
+ source="1.4"
+ linkoffline="${javadoc.link} 142-packages"
+ bottom="${javadoc.bottom}" >
+ <classpath refid="nativewindow_gluegen_jogl.classpath"/>
+ </javadoc>
+ </target>
+
+ <target name="all.doc" description="Build NEWT docs" depends="init,javadoc,javadoc.spec,javadoc.dev" />
+
+ <!-- ================================================================== -->
+ <!--
+ - Build the platform-independent distribution out of jars built for
+ - Windows, Linux and Mac OS X; the Java sources for Jogl can't be
+ - fully cross-compiled at this time. To run this target, you need to
+ - specify the property newt.dist.dir as a System property (i.e.,
+ - "ant -Dnewt.dist.dir=../dist dist"); directories named newt-linux,
+ - newt-win, and newt-macosx need to be inside that directory and each
+ - of those directories needs to contain both the newt.jar for that
+ - platform as well as the native code (libnewt.so, newt.dll, or
+ - libnewt.jnilib). Also builds jars containing the native code for
+ - Windows, Linux, Mac OS X, Solaris/SPARC and Solaris/x86.
+ -->
+ <target name="dist.dir.check" unless="newt.dist.dir">
+ <fail>
+
+ ******************************************************************
+ ** To build the Jogl distribution out of the platform-specific **
+ ** component jars and native code, the property newt.dist.dir **
+ ** needs to be specified on the command line. Please read the **
+ ** comments associated with the "dist" target in the build.xml. **
+ ******************************************************************
+ </fail>
+ </target>
+
+ <target name="dist.check.windows" if="newt.dist.dir">
+ <condition property="windows.complete">
+ <and>
+ <available file="${newt.dist.dir}/newt-win/newt.jar" />
+ <available file="${newt.dist.dir}/newt-win/32/newt.dll" />
+ </and>
+ </condition>
+ <fail unless="windows.complete">
+ ******************************************************************
+ ** Files are missing from the Windows build. This will cause **
+ ** the distribution to be incomplete. Please check the status **
+ ** of the Windows build and try again. **
+ ******************************************************************
+ </fail>
+ </target>
+
+ <target name="dist.check.windows-amd64" if="newt.dist.dir">
+ <condition property="windows-amd64.complete">
+ <and>
+ <available file="${newt.dist.dir}/newt-win/64/newt.dll" />
+ </and>
+ </condition>
+ <fail unless="windows-amd64.complete">
+ *********************************************************************
+ ** Files are missing from the Windows/AMD64 build. This will cause **
+ ** the distribution to be incomplete. Please check the status **
+ ** of the Windows/AMD64 build and try again. **
+ *********************************************************************
+ </fail>
+ </target>
+
+ <target name="dist.check.linux" if="newt.dist.dir">
+ <condition property="linux.complete">
+ <and>
+ <available file="${newt.dist.dir}/newt-linux/newt.jar" />
+ <available file="${newt.dist.dir}/newt-linux/32/libnewt.so" />
+ </and>
+ </condition>
+ <fail unless="linux.complete">
+ ******************************************************************
+ ** Files are missing from the Linux build. This will cause **
+ ** the distribution to be incomplete. Please check the status **
+ ** of the Linux build and try again. **
+ ******************************************************************
+ </fail>
+ </target>
+
+ <target name="dist.check.linux-amd64" if="newt.dist.dir">
+ <condition property="linux-amd64.complete">
+ <and>
+ <available file="${newt.dist.dir}/newt-linux/64/libnewt.so" />
+ </and>
+ </condition>
+ <fail unless="linux-amd64.complete">
+ *******************************************************************
+ ** Files are missing from the Linux/AMD64 build. This will cause **
+ ** the distribution to be incomplete. Please check the status **
+ ** of the Linux/AMD64 build and try again. **
+ *******************************************************************
+ </fail>
+ </target>
+
+ <target name="dist.check.macosx" if="newt.dist.dir">
+ <condition property="macosx.complete">
+ <and>
+ <available file="${newt.dist.dir}/newt-macosx/newt.jar" />
+ <available file="${newt.dist.dir}/newt-macosx/ppc/libnewt.jnilib" />
+ </and>
+ </condition>
+ <fail unless="macosx.complete">
+ ******************************************************************
+ ** Files are missing from the Mac OS X build. This will cause **
+ ** the distribution to be incomplete. Please check the status **
+ ** of the Mac OS X build and try again. **
+ ******************************************************************
+ </fail>
+ </target>
+
+
+ <target name="dist.check.macosxfat" if="newt.dist.dir">
+ <condition property="macosxfat.complete">
+ <and>
+ <available file="${newt.dist.dir}/newt-macosx/newt.jar" />
+ <available file="${newt.dist.dir}/newt-macosx/fat/libnewt.jnilib" />
+ </and>
+ </condition>
+ <fail unless="macosxfat.complete">
+ ******************************************************************
+ ** Files are missing from the Mac OS X build. This will cause **
+ ** the distribution to be incomplete. Please check the status **
+ ** of the Mac OS X build and try again. **
+ ******************************************************************
+ </fail>
+ </target>
+
+
+
+ <target name="dist.check.solsparc" if="newt.dist.dir">
+ <condition property="solsparc.complete">
+ <and>
+ <available file="${newt.dist.dir}/newt-solsparc/newt.jar" />
+ <available file="${newt.dist.dir}/newt-solsparc/32/libnewt.so" />
+ </and>
+ </condition>
+ <fail unless="solsparc.complete">
+ ******************************************************************
+ ** Files are missing from the Solaris/SPARC build. This will **
+ ** cause the distribution to be incomplete. Please check the **
+ ** status of the Solaris/SPARC build and try again. **
+ ******************************************************************
+ </fail>
+ </target>
+
+ <target name="dist.check.solsparcv9" if="newt.dist.dir">
+ <condition property="solsparcv9.complete">
+ <and>
+ <available file="${newt.dist.dir}/newt-solsparc/newt.jar" />
+ <available file="${newt.dist.dir}/newt-solsparc/64/libnewt.so" />
+ </and>
+ </condition>
+ <fail unless="solsparcv9.complete">
+ ******************************************************************
+ ** Files are missing from the Solaris/SPARCv9 build. This will **
+ ** cause the distribution to be incomplete. Please check the **
+ ** status of the Solaris/SPARCv9 build and try again. **
+ ******************************************************************
+ </fail>
+ </target>
+
+ <target name="dist.check.solx86" if="newt.dist.dir">
+ <condition property="solx86.complete">
+ <and>
+ <available file="${newt.dist.dir}/newt-solx86/newt.jar" />
+ <available file="${newt.dist.dir}/newt-solx86/32/libnewt.so" />
+ </and>
+ </condition>
+ <fail unless="solx86.complete">
+ ******************************************************************
+ ** Files are missing from the Solaris/x86 build. This will **
+ ** cause the distribution to be incomplete. Please check the **
+ ** status of the Solaris/x86 build and try again. **
+ ******************************************************************
+ </fail>
+ </target>
+
+ <target name="dist.check.solamd64" if="newt.dist.dir">
+ <condition property="solamd64.complete">
+ <and>
+ <available file="${newt.dist.dir}/newt-solx86/64/libnewt.so" />
+ </and>
+ </condition>
+ <fail unless="solamd64.complete">
+ ******************************************************************
+ ** Files are missing from the Solaris/x86/64 (amd64) build. This *
+ ** will cause the distribution **
+ ** to be incomplete. Please check the **
+ ** status of the Solaris/x86 (amd64) build and try again. **
+ ******************************************************************
+ </fail>
+ </target>
+
+ <!-- Helper task for dist target below -->
+ <!-- Required parameters: -->
+ <!-- zip.os.arch = the os/arch combination for this zip file (i.e., "windows-i586") -->
+ <!-- zip.src.so.dir = the directory containing the .so's / .dll's / .jnilib's for this platform-->
+ <target name="dist.build.zip">
+ <property name="newt.tmp.version" value="newt-${tmp.version}-${zip.os.arch}" />
+ <!-- Create all needed directories -->
+ <delete dir="${newt.dist.dir}/tmp" failonerror="false" />
+ <mkdir dir="${newt.dist.dir}/tmp/${newt.tmp.version}/lib" />
+ <!-- Copy in files -->
+ <copy todir="${newt.dist.dir}/tmp/${newt.tmp.version}/lib">
+ <fileset dir="${zip.src.so.dir}" includes="*${zip.so.suffix}" />
+ </copy>
+ <copy file="${newt.dist.dir}/newt.jar" todir="${newt.dist.dir}/tmp/${newt.tmp.version}/lib" />
+ <copy file="../CHANGELOG.txt" todir="${newt.dist.dir}/tmp/${newt.tmp.version}" />
+ <copy file="../COPYRIGHT.txt" todir="${newt.dist.dir}/tmp/${newt.tmp.version}" />
+ <copy file="../LICENSE.txt" tofile="${newt.dist.dir}/tmp/${newt.tmp.version}/LICENSE-NEWT-${tmp.version}.txt" />
+ <copy file="README-zip-bundles.txt"
+ tofile="${newt.dist.dir}/tmp/${newt.tmp.version}/README.txt"
+ overwrite="true">
+ <filterset>
+ <filter token="VERSION" value="${tmp.version}"/>
+ </filterset>
+ </copy>
+ <copy file="../doc/userguide/index.html" tofile="${newt.dist.dir}/tmp/${newt.tmp.version}/Userguide.html" />
+ <!-- zip it up -->
+ <zip destfile="${newt.dist.dir}/${newt.tmp.version}.zip"
+ basedir="${newt.dist.dir}/tmp"
+ includes="${newt.tmp.version}/**" />
+ </target>
+
+ <target name="setup-version-RI" if="RImanifestfile">
+ <property name="tmp.version" value="${base_version}" />
+ </target>
+
+ <target name="setup-version-non-RI" unless="RImanifestfile">
+ <tstamp>
+ <format property="timestamp" pattern="yyyyMMdd"/>
+ </tstamp>
+ <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">
+ <delete>
+ <fileset dir="${newt.dist.dir}" includes="*.jar" />
+ </delete>
+ <delete>
+ <fileset dir="${newt.dist.dir}" includes="*.zip" />
+ </delete>
+ <delete dir="${newt.dist.dir}/tmp" failonerror="false" />
+ <delete dir="${newt.dist.dir}/META-INF" failonerror="false" />
+ <!-- Extract manifest from one of the jars to re-use it in the dist jar -->
+ <unjar src="${newt.dist.dir}/newt-win/newt.jar" dest="${newt.dist.dir}" >
+ <patternset>
+ <include name="META-INF/MANIFEST.MF" />
+ </patternset>
+ </unjar>
+ <!-- Build jar files suitable for Java Web Start -->
+ <jar manifest="${newt.dist.dir}/META-INF/MANIFEST.MF" destfile="${newt.dist.dir}/newt.jar" duplicate="preserve">
+ <zipgroupfileset dir="${newt.dist.dir}"
+ includes="newt-win/newt.jar, newt-linux/newt.jar, newt-macosx/newt.jar" />
+ </jar>
+ <!-- Apply Pack200 repacking to allow later compression by that mechanism -->
+ <apply executable="pack200" verbose="true" >
+ <arg value="--repack" />
+ <fileset file="${newt.dist.dir}/newt.jar" />
+ </apply>
+ <jar destfile="${newt.dist.dir}/newt-natives-windows-i586.jar"
+ basedir="${newt.dist.dir}/newt-win/32"
+ includes="newt.dll" />
+ <jar destfile="${newt.dist.dir}/newt-natives-windows-amd64.jar"
+ basedir="${newt.dist.dir}/newt-win/64"
+ includes="newt.dll" />
+ <jar destfile="${newt.dist.dir}/newt-natives-linux-i586.jar"
+ basedir="${newt.dist.dir}/newt-linux/32"
+ includes="libnewt.so" />
+ <jar destfile="${newt.dist.dir}/newt-natives-linux-amd64.jar"
+ basedir="${newt.dist.dir}/newt-linux/64"
+ includes="libnewt.so" />
+ <jar destfile="${newt.dist.dir}/newt-natives-macosx-ppc.jar"
+ basedir="${newt.dist.dir}/newt-macosx/ppc"
+ includes="libnewt.jnilib" />
+ <jar destfile="${newt.dist.dir}/newt-natives-macosx-universal.jar"
+ basedir="${newt.dist.dir}/newt-macosx/fat"
+ includes="libnewt.jnilib" />
+ <jar destfile="${newt.dist.dir}/newt-natives-solaris-sparc.jar"
+ basedir="${newt.dist.dir}/newt-solsparc/32"
+ includes="libnewt.so" />
+ <jar destfile="${newt.dist.dir}/newt-natives-solaris-sparcv9.jar"
+ basedir="${newt.dist.dir}/newt-solsparc/64"
+ includes="libnewt.so" />
+ <jar destfile="${newt.dist.dir}/newt-natives-solaris-i586.jar"
+ basedir="${newt.dist.dir}/newt-solx86/32"
+ includes="libnewt.so" />
+ <jar destfile="${newt.dist.dir}/newt-natives-solaris-amd64.jar"
+ basedir="${newt.dist.dir}/newt-solx86/64"
+ includes="libnewt.so" />
+
+ <zip destfile="${newt.dist.dir}/newt-${tmp.version}-src.zip"
+ basedir="../.."
+ includes="jogl/*.txt,jogl/doc/**,jogl/make/**,jogl/src/newt/**"
+ excludes="**/*.class,**/*~"
+ />
+ <!-- Create zip archives suitable for developers -->
+ <!-- Unfortunately, we have to replicate the os/arch name combinations from
+ gluegen-cpptasks.xml. The reason for this is that we can't generate these
+ zip archives on the platform where the builds run; we have to run the dist
+ target in order to get the platform-independent newt.jar. -->
+ <antcall target="dist.build.zip" inheritAll="true">
+ <param name="zip.os.arch" value="linux-i586" />
+ <param name="zip.so.suffix" value=".so" />
+ <param name="zip.src.so.dir" value="${newt.dist.dir}/newt-linux/32" />
+ </antcall>
+ <antcall target="dist.build.zip" inheritAll="true">
+ <param name="zip.os.arch" value="linux-amd64" />
+ <param name="zip.so.suffix" value=".so" />
+ <param name="zip.src.so.dir" value="${newt.dist.dir}/newt-linux/64" />
+ </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="${newt.dist.dir}/newt-macosx/ppc" />
+ </antcall>
+ <antcall target="dist.build.zip" inheritAll="true">
+ <param name="zip.os.arch" value="macosx-universal" />
+ <param name="zip.so.suffix" value=".jnilib" />
+ <param name="zip.src.so.dir" value="${newt.dist.dir}/newt-macosx/fat" />
+ </antcall>
+ <antcall target="dist.build.zip" inheritAll="true">
+ <param name="zip.os.arch" value="solaris-i586" />
+ <param name="zip.so.suffix" value=".so" />
+ <param name="zip.src.so.dir" value="${newt.dist.dir}/newt-solx86/32" />
+ </antcall>
+ <antcall target="dist.build.zip" inheritAll="true">
+ <param name="zip.os.arch" value="solaris-amd64" />
+ <param name="zip.so.suffix" value=".so" />
+ <param name="zip.src.so.dir" value="${newt.dist.dir}/newt-solx86/64" />
+ </antcall>
+ <antcall target="dist.build.zip" inheritAll="true">
+ <param name="zip.os.arch" value="solaris-sparc" />
+ <param name="zip.so.suffix" value=".so" />
+ <param name="zip.src.so.dir" value="${newt.dist.dir}/newt-solsparc/32" />
+ </antcall>
+ <antcall target="dist.build.zip" inheritAll="true">
+ <param name="zip.os.arch" value="solaris-sparcv9" />
+ <param name="zip.so.suffix" value=".so" />
+ <param name="zip.src.so.dir" value="${newt.dist.dir}/newt-solsparc/64" />
+ </antcall>
+ <antcall target="dist.build.zip" inheritAll="true">
+ <param name="zip.os.arch" value="windows-i586" />
+ <param name="zip.so.suffix" value=".dll" />
+ <param name="zip.src.so.dir" value="${newt.dist.dir}/newt-win/32" />
+ </antcall>
+ <antcall target="dist.build.zip" inheritAll="true">
+ <param name="zip.os.arch" value="windows-amd64" />
+ <param name="zip.so.suffix" value=".dll" />
+ <param name="zip.src.so.dir" value="${newt.dist.dir}/newt-win/64" />
+ </antcall>
+ <!-- Create one last zip archive by hand, this one containing all of the -->
+ <!-- Java Web Start jar files (for easier redistribution) -->
+ <zip destfile="${newt.dist.dir}/newt-${tmp.version}-webstart.zip"
+ basedir="${newt.dist.dir}"
+ includes="*.jar" />
+ <!-- Create a version.txt file indicating which version we just built -->
+ <echo message="${tmp.version}" file="${newt.dist.dir}/version.txt" />
+ </target>
+
+ <!-- ================================================================== -->
+ <!--
+ - Clean up all that is built.
+ -->
+ <target name="clean" description="Remove all build products" depends="declare.common">
+ <delete includeEmptyDirs="true" quiet="true">
+ <fileset dir="${build}" />
+ <fileset dir="${javadoc}" />
+ <fileset dir="${javadoc.spec}" />
+ <fileset dir="${javadoc.dev}" />
+ </delete>
+ </target>
+
+ <!-- ================================================================== -->
+ <!--
+ - Build everything.
+ -->
+ <target name="all" description="Build NEWT JAR file(s) and native libraries." depends="load.user.properties,init,jar,c.build.newt" />
+
+ <!-- ================================================================== -->
+ <!--
+ - Build everything and use Sun's Implementation tag in the manifest to
+ - indicate this is the Reference Implementation.
+ -->
+ <target name="RI">
+ <!-- Set property for using the RI manifest file so newt.jar is versioned
+ - properly
+ -->
+ <property name="RImanifestfile" value="newtRIversion" />
+ <antcall target="all" inheritRefs="true" />
+ </target>
+</project>
diff --git a/make/build-staticglgen.xml b/make/build-staticglgen.xml
new file mode 100644
index 0000000..9ef1147
--- /dev/null
+++ b/make/build-staticglgen.xml
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ - Ant build for JOGL's BuildStaticGLInfo and corresponding ANT task. This
+ - build should not be called directly. It is invoked from the main
+ - "build.xml" file and relies on the properties set therein.
+ -
+ - This build has been tested with ANT 1.5.3 and JOGL 1.1.1.1.
+ -
+ - Public targets:
+ - all: clean and build BuildStaticGLInfo and StaticGLGen Ant task
+ - clean: clean all built
+ -->
+<project name="JOGL.BuildStaticGLInfo" default="all">
+ <!-- ================================================================== -->
+ <!--
+ - Declare all paths and user defined variables.
+ -->
+ <target name="declare" description="Declare properties">
+ <!-- The location of the BuildStaticGLInfo source. -->
+ <property name="static.gl.src" value="${src.java}/com/sun/gluegen/opengl" />
+ </target>
+
+ <!-- ================================================================== -->
+ <!--
+ - Build BuildStaticGLInfo.
+ -->
+ <target name="build.static.gl" depends="declare">
+ <!-- Ensure that the output classes directory exists. -->
+ <mkdir dir="${classes}" />
+
+ <!-- Compile BuildStaticGLInfo -->
+ <javac srcdir="${src.java}" destdir="${classes}" includes="**/BuildStaticGLInfo.java" source="1.4" debug="true" debuglevel="source,lines">
+ <classpath refid="antlr.classpath" />
+ </javac>
+
+ <!-- Inform the user that BuildStaticGLInfo has been successfully built. -->
+ <echo message="" />
+ <echo message="BuildStaticGLInfo has been built successfully." />
+ </target>
+
+ <!-- ================================================================== -->
+ <!--
+ - Build the StaticGLGen ANT task.
+ -->
+ <target name="build.static.gl.task" depends="declare">
+ <!-- Ensure that the output classes directory exists. -->
+ <mkdir dir="${classes}" />
+
+ <!-- Build the BuildStaticGLInfo ANT task.
+ - NOTE: ONLY the StaticGLGen is built at this time. BuildStaticGLInfo
+ - itself is built in a separate task. -->
+ <javac destdir="${classes}" includes="**/StaticGLGenTask.java" source="1.4" debug="true" debuglevel="source,lines">
+ <src path="${src.java}" />
+ <classpath refid="classpath" />
+ </javac>
+
+ <!-- Inform the user that the BuildStaticGLInfo ANT task has been
+ - successfully built. -->
+ <echo message="" />
+ <echo message="StaticGLGen ANT task has been built successfully." />
+ </target>
+
+ <!-- ================================================================== -->
+ <!--
+ - Clean up all that is built.
+ - NOTE: this is a bit heavy-handed as it may delete more than just
+ - what is built with this build.
+ -->
+ <target name="clean" depends="declare">
+ <!-- Create the directory before attempting to delete it. Deleting
+ - non-existant dirs will cause an error. -->
+ <mkdir dir="${classes}" />
+
+ <delete includeEmptyDirs="true">
+ <fileset dir="${classes}" />
+ </delete>
+ </target>
+
+ <!-- ================================================================== -->
+ <!--
+ - Build BuildStaticGLInfo and the BuildStaticGLInfo ANT task.
+ -->
+ <target name="all" depends="declare">
+ <!-- Build BuildStaticGLInfo -->
+ <antcall target="build.static.gl" />
+
+ <!-- Build the BuildStaticGLInfo ANT task -->
+ <antcall target="build.static.gl.task" />
+ </target>
+
+</project> \ No newline at end of file
diff --git a/make/build.xml b/make/build.xml
new file mode 100644
index 0000000..51ccc4e
--- /dev/null
+++ b/make/build.xml
@@ -0,0 +1,145 @@
+
+<project name="JOGL_ALL" basedir="." default="all">
+
+ <target name="init">
+ <property name="base_version_jogl" value="1.2.0-rc1"/>
+ <property name="base_version_nw" value="1.0.0-rc1"/>
+ <property name="project.root" value=".." />
+ <condition property="rootrel.build" value="build">
+ <not>
+ <isset property="rootrel.build"/>
+ </not>
+ </condition>
+ <property name="build" value="${project.root}/${rootrel.build}" />
+ <property name="src" value="${project.root}/src" />
+
+ <property name="nativewindow.make.dir" value="." />
+ <property name="nativewindow.build.xml" value="${nativewindow.make.dir}/build-nativewindow.xml" />
+ <property name="jogl.make.dir" value="." />
+ <property name="jogl.build.xml" value="${jogl.make.dir}/build-jogl.xml" />
+ <property name="newt.make.dir" value="." />
+ <property name="newt.build.xml" value="${newt.make.dir}/build-newt.xml" />
+
+ <property name="all.srcj.path" value="${src}/nativewindow/classes;${src}/jogl/classes;${src}/newt/classes" />
+ <property name="all.genj.path" value="${build}/nativewindow/gensrc/classes;${build}/jogl/gensrc/classes;${build}/newt/gensrc/classes" />
+
+ <!-- The javadoc dirs. -->
+ <property name="javadoc" value="${project.root}/javadoc_public" />
+ <property name="javadoc.link" value="http://java.sun.com/j2se/1.4.2/docs/api/" />
+ <property name="javadoc.overview" value="doc/jogl/spec-overview.html" />
+
+ <property name="javadoc.nw.overview" value="../src/nativewindow/classes/javax/media/nativewindow/package.html" />
+ <property name="javadoc.nw.spec" value="${project.root}/javadoc_nativewindow_spec" />
+ <property name="javadoc.nw.spec.windowtitle" value="NativeWindow API -- ${base_version_nw} Specification" />
+ <property name="javadoc.nw.spec.packagenames" value="javax.media.nativewindow.*" />
+
+ <property name="javadoc.spec" value="${project.root}/javadoc_jogl_spec" />
+ <property name="javadoc.spec.windowtitle" value="JOGL API -- JSR-231 ${base_version_jogl} Specification" />
+ <property name="javadoc.spec.packagenames" value="javax.media.opengl.*" />
+
+ <property name="javadoc.windowtitle" value="JOGL, NativeWindow and NEWT APIs" />
+ <property name="javadoc.packagenames" value="${javadoc.nw.spec.packagenames},${javadoc.spec.packagenames},com.sun.opengl.util.*,com.sun.javafx.newt, com.sun.javafx.newt.opengl" />
+
+ <property name="javadoc.dev" value="${project.root}/javadoc_dev" />
+ <property name="javadoc.dev.packagenames" value="${javadoc.packagenames},com.sun.opengl.impl.*,com.sun.nativewindow.impl.*,com.sun.javafx.newt.*,com.sun.gluegen,com.sun.gluegen.runtime" />
+
+ <property name="java.excludes.javadoc.packagenames" value="com.sun.opengl.impl.gl2.fixme.*,com.sun.javafx.audio.windows.waveout.TestSpatialization"/>
+ <property name="javadoc.bottom" value="Copyright 2005 Sun Microsystems, Inc. All rights reserved. Use is subject to &lt;a href=&quot;http://jcp.org/en/jsr/detail?id=231&quot;&gt;license terms&lt;/a&gt;." />
+
+ <property name="gluegen-rt.jar" value="../../gluegen/${rootrel.build}/gluegen-rt.jar" />
+ <property name="nativewindow.all.jar" value="../${rootrel.build}/nativewindow/nativewindow.all.jar" />
+ <property name="jogl.all.jar" value="../${rootrel.build}/jogl/jogl.all.jar" />
+ <property name="newt.all.jar" value="../${rootrel.build}/newt/newt.all.jar" />
+
+ <path id="all.classpath">
+ <pathelement location="${nativewindow.all.jar}" />
+ <pathelement location="${gluegen-rt.jar}" />
+ <pathelement location="${jogl.all.jar}" />
+ <pathelement location="${newt.all.jar}" />
+ </path>
+
+ </target>
+
+ <target name="build.nativewindow" depends="init">
+ <ant antfile="${nativewindow.build.xml}" dir="${nativewindow.make.dir}" target="all" inheritAll="false"/>
+ </target>
+
+ <target name="build.jogl" depends="init">
+ <ant antfile="${jogl.build.xml}" dir="${jogl.make.dir}" target="all" inheritAll="false"/>
+ </target>
+
+ <target name="build.newt" depends="init">
+ <ant antfile="${newt.build.xml}" dir="${newt.make.dir}" target="all" inheritAll="false"/>
+ </target>
+
+ <target name="all" description="Build nativewindow, jogl and newt projects" depends="init,build.nativewindow,build.jogl,build.newt" />
+
+ <target name="clean" depends="init">
+ <ant antfile="${nativewindow.build.xml}" dir="${nativewindow.make.dir}" target="clean" inheritAll="false"/>
+ <ant antfile="${jogl.build.xml}" dir="${jogl.make.dir}" target="clean" inheritAll="false"/>
+ <ant antfile="${newt.build.xml}" dir="${newt.make.dir}" target="clean" inheritAll="false"/>
+ </target>
+
+ <target name="javadoc" depends="init">
+ <!-- Build the general public Javadoc -->
+ <javadoc packagenames="${javadoc.packagenames}"
+ excludepackagenames="${java.excludes.javadoc.packagenames}"
+ sourcepath="${all.srcj.path};${all.genj.path}"
+ destdir="${javadoc}" windowtitle="${javadoc.windowtitle}"
+ overview="${javadoc.overview}"
+ source="1.4"
+ bottom="${javadoc.bottom}" >
+ <classpath refid="all.classpath"/>
+ <link offline="true" href="${javadoc.link}" packagelistLoc="142-packages" />
+ </javadoc>
+ </target>
+
+ <target name="javadoc.jogl.spec" depends="init,javadoc.nw.spec">
+ <!-- Build the specification Javadoc -->
+ <javadoc packagenames="${javadoc.spec.packagenames}"
+ excludepackagenames="${java.excludes.javadoc.packagenames}"
+ sourcepath="${all.srcj.path};${all.genj.path}"
+ destdir="${javadoc.spec}" windowtitle="${javadoc.spec.windowtitle}"
+ overview="${javadoc.overview}"
+ source="1.4"
+ bottom="${javadoc.bottom}" >
+ <classpath refid="all.classpath"/>
+ <link offline="true" href="${javadoc.link}" packagelistLoc="142-packages" />
+ <link offline="false" href="${javadoc.nw.spec}" />
+ </javadoc>
+ </target>
+
+ <target name="javadoc.dev" depends="init">
+ <!-- Build the internal developer Javadoc -->
+ <javadoc packagenames="${javadoc.dev.packagenames}"
+ excludepackagenames="${java.excludes.javadoc.packagenames}"
+ sourcepath="${all.srcj.path};${all.genj.path}"
+ destdir="${javadoc.dev}" windowtitle="${javadoc.windowtitle}"
+ overview="${javadoc.overview}"
+ source="1.4"
+ bottom="${javadoc.bottom}" >
+ <classpath refid="all.classpath"/>
+ <link offline="true" href="${javadoc.link}" packagelistLoc="142-packages" />
+ </javadoc>
+ </target>
+
+ <target name="javadoc.nw.spec" depends="init">
+ <!-- Build the general Javadoc -->
+ <javadoc packagenames="${javadoc.nw.spec.packagenames}"
+ excludepackagenames="${java.excludes.javadoc.packagenames}"
+ sourcepath="${all.srcj.path};${all.genj.path}"
+ destdir="${javadoc.nw.spec}" windowtitle="${javadoc.nw.spec.windowtitle}"
+ overview="${javadoc.nw.overview}"
+ source="1.4"
+ bottom="${javadoc.bottom}" >
+ <classpath refid="all.classpath"/>
+ <link offline="true" href="${javadoc.link}" packagelistLoc="142-packages" />
+ </javadoc>
+ </target>
+
+ <target name="javadoc.spec" description="Build Specifications JOGL and Nativewindow" depends="init,javadoc.jogl.spec" />
+
+ <target name="all.doc" description="Build NativeWindow, JOGL and NEWT docs" depends="init,javadoc,javadoc.spec,javadoc.dev" />
+
+</project>
+
diff --git a/make/config/intptr.cfg b/make/config/intptr.cfg
new file mode 100755
index 0000000..c946e48
--- /dev/null
+++ b/make/config/intptr.cfg
@@ -0,0 +1,17 @@
+CustomCCode #ifdef _WIN32
+CustomCCode #ifdef _MSC_VER
+CustomCCode /* This typedef is apparently needed for Microsoft compilers before VC8,
+CustomCCode and on Windows CE */
+CustomCCode #if (_MSC_VER < 1400) || defined(UNDER_CE)
+CustomCCode #ifdef _WIN64
+CustomCCode typedef long long intptr_t;
+CustomCCode #else
+CustomCCode typedef int intptr_t;
+CustomCCode #endif
+CustomCCode #endif
+CustomCCode #else
+CustomCCode #include <inttypes.h>
+CustomCCode #endif
+CustomCCode #else
+CustomCCode #include <inttypes.h>
+CustomCCode #endif
diff --git a/make/config/jogl/cg-common-CustomJavaCode.java b/make/config/jogl/cg-common-CustomJavaCode.java
new file mode 100755
index 0000000..1f109d9
--- /dev/null
+++ b/make/config/jogl/cg-common-CustomJavaCode.java
@@ -0,0 +1,29 @@
+static {
+ com.sun.opengl.impl.NativeLibLoader.loadCgImpl();
+}
+
+/** A convenience method which reads all available data from the InputStream and then calls cgCreateProgram. */
+public static CGprogram cgCreateProgramFromStream(CGcontext ctx, int program_type, java.io.InputStream stream, int profile, java.lang.String entry, java.lang.String[] args) throws java.io.IOException {
+ if (stream == null) {
+ throw new java.io.IOException("null stream");
+ }
+ stream = new java.io.BufferedInputStream(stream);
+ int avail = stream.available();
+ byte[] data = new byte[avail];
+ int numRead = 0;
+ int pos = 0;
+ do {
+ if (pos + avail > data.length) {
+ byte[] newData = new byte[pos + avail];
+ System.arraycopy(data, 0, newData, 0, pos);
+ data = newData;
+ }
+ numRead = stream.read(data, pos, avail);
+ if (numRead >= 0) {
+ pos += numRead;
+ }
+ avail = stream.available();
+ } while (avail > 0 && numRead >= 0);
+ String program = new String(data, 0, pos, "US-ASCII");
+ return cgCreateProgram(ctx, program_type, program, profile, entry, args);
+}
diff --git a/make/config/jogl/cg-common.cfg b/make/config/jogl/cg-common.cfg
new file mode 100644
index 0000000..9b8dba0
--- /dev/null
+++ b/make/config/jogl/cg-common.cfg
@@ -0,0 +1,118 @@
+# This .cfg file provides common options used among all Cg glue code
+# generated for Jogl on all platforms.
+Package com.sun.opengl.cg
+JavaClass CgGL
+Style AllStatic
+JavaOutputDir gensrc/classes
+NativeOutputDir gensrc/native/jogl_cg
+HierarchicalNativeOutput false
+
+#
+# Map const char* return values to Java strings for these functions
+#
+ReturnsString cgGetAnnotationName
+ReturnsString cgGetEnumString
+ReturnsString cgGetErrorString
+ReturnsString cgGetLastErrorString
+ReturnsString cgGetLastListing
+ReturnsString cgGetParameterName
+ReturnsString cgGetParameterSemantic
+ReturnsString cgGetPassName
+ReturnsString cgGetProfileString
+ReturnsString cgGetProgramString
+ReturnsString cgGetResourceString
+ReturnsString cgGetStateName
+ReturnsString cgGetString
+ReturnsString cgGetStringAnnotationValue
+ReturnsString cgGetStringParameterValue
+ReturnsString cgGetStringStateAssignmentValue
+ReturnsString cgGetTechniqueName
+ReturnsString cgGetTypeString
+
+ArgumentIsString cgAddStateEnumerant 1
+ArgumentIsString cgCreateArrayState 1
+ArgumentIsString cgCreateArraySamplerState 1
+ArgumentIsString cgCreateEffect 1 2
+ArgumentIsString cgCreateEffectFromFile 1 2
+ArgumentIsString cgCreateProgram 2 4 5
+ArgumentIsString cgCreateProgramFromFile 2 4 5
+ArgumentIsString cgCreateProgramFromEffect 2 3
+ArgumentIsString cgCreateSamplerState 1
+ArgumentIsString cgCreateState 1
+ArgumentIsString cgGetEffectParameterBySemantic 1
+ArgumentIsString cgGetEnum 0
+ArgumentIsString cgGetNamedEffectParameter 1
+ArgumentIsString cgGetNamedParameter 1
+ArgumentIsString cgGetNamedPass 1
+ArgumentIsString cgGetNamedProgramParameter 2
+ArgumentIsString cgGetNamedSamplerState 1
+ArgumentIsString cgGetNamedState 1
+ArgumentIsString cgGetNamedSamplerStateAssignment 1
+ArgumentIsString cgGetNamedStateAssignment 1
+ArgumentIsString cgGetNamedStructParameter 1
+ArgumentIsString cgGetNamedTechnique 1
+ArgumentIsString cgGetNamedTechniqueAnnotation 1
+ArgumentIsString cgGetNamedPassAnnotation 1
+ArgumentIsString cgGetNamedParameterAnnotation 1
+ArgumentIsString cgGetNamedProgramAnnotation 1
+ArgumentIsString cgGetNamedUserType 1
+ArgumentIsString cgGetProfile 0
+ArgumentIsString cgGetType 0
+ArgumentIsString cgGetResource 0
+ArgumentIsString cgSetLastListing 1
+ArgumentIsString cgSetParameterSemantic 1
+ArgumentIsString cgSetStringParameterValue 1
+
+# Opaque definitions
+Opaque boolean CGbool
+
+#
+# FIXME!!!! Ignore these functions for now because we can't
+# automatically handle C callbacks
+#
+Ignore cgSetErrorCallback
+Ignore cgGetErrorCallback
+Ignore cgSetErrorHandler
+Ignore cgGetErrorHandler
+Ignore cgSetStateCallbacks
+Ignore cgGetStateSetCallback
+Ignore cgGetStateResetCallback
+Ignore cgGetStateValidateCallback
+
+#
+# FIXME!!!! Ignore these functions for now because bugs in the
+# emitter code can't handle them
+#
+Ignore cgGetBooleanAnnotationValues
+Ignore cgGetBoolStateAssignmentValues
+Ignore cgGetFloatAnnotationValues
+Ignore cgGetFloatStateAssignmentValues
+Ignore cgGetIntAnnotationValues
+Ignore cgGetIntStateAssignmentValues
+Ignore cgGetParameterValues
+Ignore cgGetProgramOptions
+
+#
+# Need to import New IO for Buffer classes
+#
+Import java.nio.*
+# And NativeLibLoader for help loading the native libraries
+Import com.sun.opengl.impl.*
+
+#
+# NIODirectOnly directives for routines requiring them for semantic reasons
+#
+NIODirectOnly cgGLSetParameterPointer
+
+# Raise CgException instead of RuntimeException in glue code
+RuntimeExceptionType CgException
+
+#
+# Make sure the right definitions and include files are added to the
+# generated C code
+#
+
+CustomCCode #include <stdlib.h>
+CustomCCode #include <Cg/cgGL.h>
+
+IncludeAs CustomJavaCode CgGL cg-common-CustomJavaCode.java
diff --git a/make/config/jogl/cgl-macosx.cfg b/make/config/jogl/cgl-macosx.cfg
new file mode 100644
index 0000000..780afcf
--- /dev/null
+++ b/make/config/jogl/cgl-macosx.cfg
@@ -0,0 +1,41 @@
+# This .cfg file is used to generate the interface to the CGL routines
+# used internally by the MacOSXGLContext implementation.
+JavaOutputDir gensrc/classes
+NativeOutputDir gensrc/native/jogl/MacOSX
+
+Package com.sun.opengl.impl.macosx.cgl
+JavaClass CGL
+Style allstatic
+Include gl-common-gl2.cfg
+Include gl-common-extensions.cfg
+Include gl-desktop.cfg
+
+Opaque long void *
+
+# Opaque directives for low-level CGL binding (for Java2D/JOGL bridge)
+Opaque long CGLContextObj
+Opaque long CGLPBufferObj
+Opaque long CGLPixelFormatObj
+
+CustomCCode #include </usr/include/machine/types.h>
+CustomCCode #include "macosx-window-system.h"
+
+# Implement the first argument to getProcAddress as String instead
+# of byte[]
+ArgumentIsString getProcAddress 0
+
+DropUniqVendorExtensions AMD
+# We need GL_APPLE_float_pixels for our pbuffer implementation
+# DropUniqVendorExtensions APPLE
+DropUniqVendorExtensions ATI
+DropUniqVendorExtensions HP
+DropUniqVendorExtensions IBM
+DropUniqVendorExtensions MESA
+DropUniqVendorExtensions MESAX
+DropUniqVendorExtensions NV
+DropUniqVendorExtensions SGI
+DropUniqVendorExtensions SGIS
+DropUniqVendorExtensions SGIX
+DropUniqVendorExtensions SUN
+DropUniqVendorExtensions WIN
+
diff --git a/make/config/jogl/cglext.cfg b/make/config/jogl/cglext.cfg
new file mode 100755
index 0000000..4000ecb
--- /dev/null
+++ b/make/config/jogl/cglext.cfg
@@ -0,0 +1,44 @@
+# This .cfg file is used to generate the interface and implementing
+# class for the CGL extensions.
+# Note that there are currently no such extensions exposed on Mac OS
+# X, but if in the future there are, this structure will allow them to
+# be easily exposed.
+JavaOutputDir gensrc/classes
+NativeOutputDir gensrc/native/jogl/MacOSX
+
+Package com.sun.opengl.impl.macosx.cgl
+Style InterfaceAndImpl
+JavaClass CGLExt
+ImplPackage com.sun.opengl.impl.macosx.cgl
+ImplJavaClass CGLExtImpl
+Include gl-common-gl2.cfg
+Include gl-desktop.cfg
+
+EmitProcAddressTable true
+ProcAddressTableClassName CGLExtProcAddressTable
+GetProcAddressTableExpr _context.getCGLExtProcAddressTable()
+
+# Ignore everything that doesn't start with cgl or CGL
+IgnoreNot ^(cgl|CGL).+
+
+Include gl-headers.cfg
+Include ../intptr.cfg
+
+CustomJavaCode CGLExt public boolean isFunctionAvailable(String glFunctionName);
+CustomJavaCode CGLExt public boolean isExtensionAvailable(String glExtensionName);
+
+CustomJavaCode CGLExtImpl public CGLExtImpl(MacOSXCGLContext context) {
+CustomJavaCode CGLExtImpl this._context = context;
+CustomJavaCode CGLExtImpl }
+
+CustomJavaCode CGLExtImpl public boolean isFunctionAvailable(String glFunctionName)
+CustomJavaCode CGLExtImpl {
+CustomJavaCode CGLExtImpl return _context.isFunctionAvailable(glFunctionName);
+CustomJavaCode CGLExtImpl }
+
+CustomJavaCode CGLExtImpl public boolean isExtensionAvailable(String glExtensionName)
+CustomJavaCode CGLExtImpl {
+CustomJavaCode CGLExtImpl return _context.isExtensionAvailable(glExtensionName);
+CustomJavaCode CGLExtImpl }
+
+CustomJavaCode CGLExtImpl private MacOSXCGLContext _context;
diff --git a/make/config/jogl/egl.cfg b/make/config/jogl/egl.cfg
new file mode 100755
index 0000000..6457ab2
--- /dev/null
+++ b/make/config/jogl/egl.cfg
@@ -0,0 +1,70 @@
+# This .cfg file is used to generate the interface to the EGL routines
+# used internally by the EGLContext implementation.
+JavaOutputDir gensrc/classes
+NativeOutputDir gensrc/native/jogl/egl
+
+Package com.sun.opengl.impl.egl
+JavaClass EGL
+Style allstatic
+# Shouldn't matter which one of these we pick up
+
+HierarchicalNativeOutput false
+Include gl-common.cfg
+
+# Use a ProcAddressTable so we dynamically look up the routines
+EmitProcAddressTable true
+ProcAddressTableClassName EGLProcAddressTable
+GetProcAddressTableExpr _table
+
+# Translate EGLBoolean as Java boolean
+Opaque boolean EGLBoolean
+
+# Implement the first argument to eglGetProcAddress as String instead
+# of byte[]
+ArgumentIsString eglGetProcAddress 0
+ReturnsString eglQueryString
+
+# Make eglGetProcAddress return an opaque long
+Opaque long __EGLFuncPtr
+
+# Force all of the methods to be emitted using dynamic linking so we
+# don't need to link against any emulation library on the desktop or
+# depend on the presence of an import library for a particular device
+ForceProcAddressGen __ALL__
+
+# Treat all of the EGL types as opaque longs
+Opaque long EGLContext
+Opaque long EGLDisplay
+Opaque long EGLSurface
+Opaque long EGLNativeDisplayType
+Opaque long EGLNativeWindowType
+Opaque long EGLNativePixmapType
+Opaque long EGLClientBuffer
+
+CustomCCode #include <EGL/egl.h>
+
+Include ../intptr.cfg
+
+CustomJavaCode EGL private static EGLProcAddressTable _table = new EGLProcAddressTable();
+CustomJavaCode EGL public static void resetProcAddressTable(DynamicLookupHelper lookup) {
+CustomJavaCode EGL GLProcAddressHelper.resetProcAddressTable(_table, lookup);
+CustomJavaCode EGL }
+
+# There are some #defines in egl.h that GlueGen and PCPP don't currently handle
+CustomJavaCode EGL public static final long EGL_DEFAULT_DISPLAY = 0;
+CustomJavaCode EGL public static final long EGL_NO_CONTEXT = 0;
+CustomJavaCode EGL public static final long EGL_NO_DISPLAY = 0;
+CustomJavaCode EGL public static final long EGL_NO_SURFACE = 0;
+CustomJavaCode EGL public static final int EGL_DONT_CARE = -1;
+CustomJavaCode EGL public static final int EGL_UNKNOWN = -1;
+CustomJavaCode EGL
+CustomJavaCode EGL protected static long eglGetProcAddress(long eglGetProcAddressHandle, java.lang.String procname)
+CustomJavaCode EGL {
+CustomJavaCode EGL if (eglGetProcAddressHandle == 0) {
+CustomJavaCode EGL throw new GLException("Passed null pointer for method \"eglGetProcAddress\"");
+CustomJavaCode EGL }
+CustomJavaCode EGL return dispatch_eglGetProcAddress0(procname, eglGetProcAddressHandle);
+CustomJavaCode EGL }
+
+
+Import com.sun.gluegen.runtime.opengl.GLProcAddressHelper
diff --git a/make/config/jogl/eglext.cfg b/make/config/jogl/eglext.cfg
new file mode 100755
index 0000000..bdd9a36
--- /dev/null
+++ b/make/config/jogl/eglext.cfg
@@ -0,0 +1,126 @@
+# This .cfg file is used to generate the interface to the EGL routines
+# used internally by the EGLContext implementation.
+JavaOutputDir gensrc/classes
+NativeOutputDir gensrc/native/jogl/egl
+
+Package com.sun.opengl.impl.egl
+Style InterfaceAndImpl
+JavaClass EGLExt
+ImplPackage com.sun.opengl.impl.egl
+ImplJavaClass EGLExtImpl
+# Shouldn't matter which one of these we pick up
+
+ExtendedInterfaceSymbols ../build-temp/gensrc/classes/com/sun/opengl/impl/egl/EGL.java
+HierarchicalNativeOutput false
+Include gl-common.cfg
+
+# Use a ProcAddressTable so we dynamically look up the routines
+EmitProcAddressTable true
+ProcAddressTableClassName EGLExtProcAddressTable
+GetProcAddressTableExpr _context.getEGLExtProcAddressTable()
+
+# Translate EGLBoolean as Java boolean
+Opaque boolean EGLBoolean
+
+# Implement the first argument to eglGetProcAddress as String instead
+# of byte[]
+ArgumentIsString eglGetProcAddress 0
+ReturnsString eglQueryString
+
+# Make eglGetProcAddress return an opaque long
+Opaque long __EGLFuncPtr
+
+# Force all of the methods to be emitted using dynamic linking so we
+# don't need to link against any emulation library on the desktop or
+# depend on the presence of an import library for a particular device
+ForceProcAddressGen __ALL__
+
+# Also force the calling conventions of the locally generated function
+# pointer typedefs for these routines to EGLAPIENTRY
+LocalProcAddressCallingConvention __ALL__ EGLAPIENTRY
+
+# Treat all of the EGL types as opaque longs
+# Opaque long EGLConfig
+Opaque long EGLContext
+Opaque long EGLDisplay
+Opaque long EGLSurface
+Opaque long EGLNativeDisplayType
+Opaque long EGLNativeWindowType
+Opaque long EGLNativePixmapType
+Opaque long EGLClientBuffer
+Opaque long EGLImageKHR
+#Opaque long EGLPerfMonitorNV
+#Opaque long EGLPerfCounterNV
+#Opaque long EGLPerfMarkerNV
+Opaque long EGLSyncKHR
+Opaque long NativeSyncKHR
+
+# Opaque long EGLClientBuffer
+
+CustomCCode /* Define EGL_EGLEXT_PROTOTYPES so that the EGL extension prototypes in
+CustomCCode "eglext.h" are parsed. */
+CustomCCode #define EGL_EGLEXT_PROTOTYPES
+CustomCCode
+CustomCCode #include <EGL/eglext.h>
+
+Include ../intptr.cfg
+
+# There are some #defines in eglext.h that GlueGen and PCPP don't currently handle
+CustomJavaCode EGLExt public static final long EGL_NO_IMAGE = 0;
+CustomJavaCode EGLExt public static final long EGL_NO_PERFMONITOR = 0;
+CustomJavaCode EGLExt public static final long EGL_DEFAULT_PERFMARKER = 0;
+CustomJavaCode EGLExt public boolean isFunctionAvailable(String glFunctionName);
+CustomJavaCode EGLExt public boolean isExtensionAvailable(String glExtensionName);
+
+CustomJavaCode EGLExtImpl public EGLExtImpl(EGLContext context) {
+CustomJavaCode EGLExtImpl this._context = context;
+CustomJavaCode EGLExtImpl }
+
+CustomJavaCode EGLExtImpl public boolean isFunctionAvailable(String glFunctionName)
+CustomJavaCode EGLExtImpl {
+CustomJavaCode EGLExtImpl return _context.isFunctionAvailable(glFunctionName);
+CustomJavaCode EGLExtImpl }
+
+CustomJavaCode EGLExtImpl public boolean isExtensionAvailable(String glExtensionName)
+CustomJavaCode EGLExtImpl {
+CustomJavaCode EGLExtImpl return _context.isExtensionAvailable(glExtensionName);
+CustomJavaCode EGLExtImpl }
+
+CustomJavaCode EGLExtImpl private EGLContext _context;
+
+# These Ignores cause the core EGL routines to be ignored from the
+# EGLExt interface and EGLExtImpl implementing class.
+Ignore eglBindAPI
+Ignore eglBindTexImage
+Ignore eglChooseConfig
+Ignore eglCopyBuffers
+Ignore eglCreateContext
+Ignore eglCreatePbufferFromClientBuffer
+Ignore eglCreatePbufferSurface
+Ignore eglCreatePixmapSurface
+Ignore eglCreateWindowSurface
+Ignore eglDestroyContext
+Ignore eglDestroySurface
+Ignore eglGetConfigAttrib
+Ignore eglGetConfigs
+Ignore eglGetCurrentContext
+Ignore eglGetCurrentDisplay
+Ignore eglGetCurrentSurface
+Ignore eglGetDisplay
+Ignore eglGetError
+Ignore eglGetProcAddress
+Ignore eglInitialize
+Ignore eglMakeCurrent
+Ignore eglQueryAPI
+Ignore eglQueryContext
+Ignore eglQueryString
+Ignore eglQuerySurface
+Ignore eglReleaseTexImage
+Ignore eglReleaseThread
+Ignore eglSurfaceAttrib
+Ignore eglSwapBuffers
+Ignore eglSwapInterval
+Ignore eglTerminate
+Ignore eglWaitClient
+Ignore eglWaitGL
+Ignore eglWaitNative
diff --git a/make/config/jogl/gl-common-extensions.cfg b/make/config/jogl/gl-common-extensions.cfg
new file mode 100644
index 0000000..fb46e43
--- /dev/null
+++ b/make/config/jogl/gl-common-extensions.cfg
@@ -0,0 +1,127 @@
+
+# Note: we keep the Apple, ATI and NVidia extensions since they are generally
+# the most useful and up-to-date
+DropUniqVendorExtensions 3DFX
+DropUniqVendorExtensions AMD
+# DropUniqVendorExtensions APPLE
+# DropUniqVendorExtensions ATI
+DropUniqVendorExtensions HP
+DropUniqVendorExtensions IBM
+DropUniqVendorExtensions INGR
+DropUniqVendorExtensions MESA
+DropUniqVendorExtensions MESAX
+# DropUniqVendorExtensions NV
+DropUniqVendorExtensions PGI
+DropUniqVendorExtensions SGI
+DropUniqVendorExtensions SGIS
+DropUniqVendorExtensions SGIX
+DropUniqVendorExtensions SUN
+DropUniqVendorExtensions WIN
+
+# Drop some obsolete or mostly-integrated vendor extensions that the above directives let in
+# Note that some of these are in LWJGL, so perhaps there is justification for leaving them in
+IgnoreExtension GL_APPLE_element_array
+IgnoreExtension GL_APPLE_vertex_array_object
+IgnoreExtension GL_ATI_element_array
+IgnoreExtension GL_ATI_envmap_bumpmap
+IgnoreExtension GL_ATI_fragment_shader
+IgnoreExtension GL_ATI_map_object_buffer
+IgnoreExtension GL_ATI_separate_stencil
+IgnoreExtension GL_ATI_text_fragment_shader
+IgnoreExtension GL_ATI_texture_env_combine3
+IgnoreExtension GL_ATI_texture_mirror_once
+IgnoreExtension GL_ATI_vertex_array_object
+IgnoreExtension GL_ATI_vertex_attrib_array_object
+IgnoreExtension GL_ATI_vertex_streams
+IgnoreExtension GL_NV_depth_buffer_float
+IgnoreExtension GL_NV_fragment_program
+IgnoreExtension GL_NV_fragment_program2
+IgnoreExtension GL_NV_packed_depth_stencil
+IgnoreExtension GL_NV_point_sprite
+IgnoreExtension GL_NV_register_combiners
+IgnoreExtension GL_NV_register_combiners2
+IgnoreExtension GL_NV_texgen_reflection
+IgnoreExtension GL_NV_texture_env_combine4
+IgnoreExtension GL_NV_texture_rectangle
+IgnoreExtension GL_NV_vertex_program
+# This one would require more work -- has associated GLX and WGL bindings
+IgnoreExtension GL_NV_present_video
+
+# For the time being, ignore these extensions which are in the ES 2.0 spec
+IgnoreExtension GL_NV_coverage_sample
+IgnoreExtension GL_NV_framebuffer_vertex_attrib_array
+
+# Remove extension suffixes from extensions which are common
+RenameExtensionIntoCore GL_ARB_framebuffer_object
+IgnoreExtension GL_EXT_framebuffer_object
+RenameExtensionIntoCore GL_OES_framebuffer_object
+
+# Remove extension suffixes from extensions which are common between OpenGL and OpenGL ES
+RenameExtensionIntoCore GL_ARB_half_float_pixel
+RenameExtensionIntoCore GL_ARB_point_sprite
+RenameExtensionIntoCore GL_OES_blend_equation_separate
+RenameExtensionIntoCore GL_OES_blend_func_separate
+RenameExtensionIntoCore GL_OES_blend_subtract
+RenameExtensionIntoCore GL_OES_compressed_paletted_texture
+RenameExtensionIntoCore GL_OES_depth24
+RenameExtensionIntoCore GL_OES_depth32
+RenameExtensionIntoCore GL_OES_mapbuffer
+RenameExtensionIntoCore GL_OES_point_sprite
+RenameExtensionIntoCore GL_OES_rgb8_rgba8
+RenameExtensionIntoCore GL_OES_read_format
+RenameExtensionIntoCore GL_OES_stencil1
+RenameExtensionIntoCore GL_OES_stencil4
+RenameExtensionIntoCore GL_OES_stencil8
+RenameExtensionIntoCore GL_OES_stencil_wrap
+RenameExtensionIntoCore GL_OES_texture_cube_map
+RenameExtensionIntoCore GL_OES_texture_half_float
+RenameExtensionIntoCore GL_OES_texture_mirrored_repeat
+
+# The following extensions have some differences requiring us to
+# manually rename some symbols and leave others alone for best
+# correctness
+# RenameExtensionIntoCore GL_ARB_matrix_palette
+# We do not want to pull in all of this extension into the core namespace
+# RenameExtensionIntoCore GL_ARB_vertex_blend
+
+RenameJavaSymbol GL_MAX_VERTEX_UNITS_ARB GL_MAX_VERTEX_UNITS
+RenameJavaSymbol GL_MAX_PALETTE_MATRICES_ARB GL_MAX_PALETTE_MATRICES
+RenameJavaSymbol GL_MATRIX_PALETTE_ARB GL_MATRIX_PALETTE
+RenameJavaSymbol GL_MATRIX_INDEX_ARRAY_ARB GL_MATRIX_INDEX_ARRAY
+RenameJavaSymbol GL_WEIGHT_ARRAY_ARB GL_WEIGHT_ARRAY
+RenameJavaSymbol GL_CURRENT_PALETTE_MATRIX_ARB GL_CURRENT_PALETTE_MATRIX
+RenameJavaSymbol GL_MATRIX_INDEX_ARRAY_SIZE_ARB GL_MATRIX_INDEX_ARRAY_SIZE
+RenameJavaSymbol GL_MATRIX_INDEX_ARRAY_TYPE_ARB GL_MATRIX_INDEX_ARRAY_TYPE
+RenameJavaSymbol GL_MATRIX_INDEX_ARRAY_STRIDE_ARB GL_MATRIX_INDEX_ARRAY_STRIDE
+RenameJavaSymbol GL_MATRIX_INDEX_ARRAY_POINTER_ARB GL_MATRIX_INDEX_ARRAY_POINTER
+RenameJavaSymbol GL_WEIGHT_ARRAY_SIZE_ARB GL_WEIGHT_ARRAY_SIZE
+RenameJavaSymbol GL_WEIGHT_ARRAY_TYPE_ARB GL_WEIGHT_ARRAY_TYPE
+RenameJavaSymbol GL_WEIGHT_ARRAY_STRIDE_ARB GL_WEIGHT_ARRAY_STRIDE
+RenameJavaSymbol GL_WEIGHT_ARRAY_POINTER_ARB GL_WEIGHT_ARRAY_POINTER
+RenameJavaSymbol glCurrentPaletteMatrixARB glCurrentPaletteMatrix
+RenameJavaSymbol glMatrixIndexPointerARB glMatrixIndexPointer
+RenameJavaSymbol glWeightPointerARB glWeightPointer
+
+# There are some definitions in this extension that don't exist in desktop OpenGL,
+# so we shouldn't remove the suffixes of those OES-only variants
+# RenameExtensionIntoCore GL_OES_matrix_palette
+RenameJavaSymbol GL_MAX_VERTEX_UNITS_OES GL_MAX_VERTEX_UNITS
+RenameJavaSymbol GL_MAX_PALETTE_MATRICES_OES GL_MAX_PALETTE_MATRICES
+RenameJavaSymbol GL_MATRIX_PALETTE_OES GL_MATRIX_PALETTE
+RenameJavaSymbol GL_MATRIX_INDEX_ARRAY_OES GL_MATRIX_INDEX_ARRAY
+RenameJavaSymbol GL_WEIGHT_ARRAY_OES GL_WEIGHT_ARRAY
+RenameJavaSymbol GL_CURRENT_PALETTE_MATRIX_OES GL_CURRENT_PALETTE_MATRIX
+RenameJavaSymbol GL_MATRIX_INDEX_ARRAY_SIZE_OES GL_MATRIX_INDEX_ARRAY_SIZE
+RenameJavaSymbol GL_MATRIX_INDEX_ARRAY_TYPE_OES GL_MATRIX_INDEX_ARRAY_TYPE
+RenameJavaSymbol GL_MATRIX_INDEX_ARRAY_STRIDE_OES GL_MATRIX_INDEX_ARRAY_STRIDE
+RenameJavaSymbol GL_MATRIX_INDEX_ARRAY_POINTER_OES GL_MATRIX_INDEX_ARRAY_POINTER
+RenameJavaSymbol GL_WEIGHT_ARRAY_SIZE_OES GL_WEIGHT_ARRAY_SIZE
+RenameJavaSymbol GL_WEIGHT_ARRAY_TYPE_OES GL_WEIGHT_ARRAY_TYPE
+RenameJavaSymbol GL_WEIGHT_ARRAY_STRIDE_OES GL_WEIGHT_ARRAY_STRIDE
+RenameJavaSymbol GL_WEIGHT_ARRAY_POINTER_OES GL_WEIGHT_ARRAY_POINTER
+RenameJavaSymbol GL_WEIGHT_ARRAY_BUFFER_BINDING_OES GL_WEIGHT_ARRAY_BUFFER_BINDING
+RenameJavaSymbol glCurrentPaletteMatrixOES glCurrentPaletteMatrix
+RenameJavaSymbol glMatrixIndexPointerOES glMatrixIndexPointer
+RenameJavaSymbol glWeightPointerOES glWeightPointer
+
+
diff --git a/make/config/jogl/gl-common-gl2.cfg b/make/config/jogl/gl-common-gl2.cfg
new file mode 100644
index 0000000..4d86d74
--- /dev/null
+++ b/make/config/jogl/gl-common-gl2.cfg
@@ -0,0 +1,8 @@
+# This .cfg file provides common options used among all GL glue code
+# generated for Jogl on Windows.
+
+HierarchicalNativeOutput false
+Include gl-common.cfg
+
+# XID needs to be treated as a long for 32/64 bit compatibility
+Opaque long XID
diff --git a/make/config/jogl/gl-common.cfg b/make/config/jogl/gl-common.cfg
new file mode 100644
index 0000000..50c2ff0
--- /dev/null
+++ b/make/config/jogl/gl-common.cfg
@@ -0,0 +1,641 @@
+# This .cfg file provides common options used among all glue code
+# generated for Jogl on all platforms.
+
+# Raise GLException instead of RuntimeException in glue code
+RuntimeExceptionType GLException
+UnsupportedExceptionType GLException
+
+# Imports needed by all glue code
+Import java.nio.*
+Import java.util.*
+Import javax.media.opengl.*
+Import javax.media.opengl.fixedfunc.*
+Import com.sun.opengl.impl.*
+
+#####################################################################
+# Mostly desktop OpenGL stuff below
+#
+
+# Don't output #defines of GL version identifier strings as constants,
+# because we don't need them java-side.
+Ignore GL_VERSION_.+
+
+# There are a few routines we don't handle yet
+Ignore glGetBufferPointerivNV
+Ignore glGetBufferPointerv
+
+# Ignore GL functions that deal with explicit pointer values in such a
+# way that we cannot implement the functionality in Java
+Ignore glGetBufferPointerv
+Ignore glGetBufferPointervARB
+Ignore glGetPointerv
+Ignore glGetPointervEXT
+Ignore glGetTexParameterPointervAPPLE
+Ignore glGetVertexAttribPointerv
+Ignore glGetVertexAttribPointervARB
+Ignore glGetVertexAttribPointervNV
+Ignore glTracePointerRangeMESA
+
+# Manually implement glMapBuffer as the size of the returned buffer
+# can only be computed by calling another routine
+ManuallyImplement glMapBuffer
+ManuallyImplement glMapBufferOES
+
+# Ignore the ATI_map_object_buffer extension for now unless someone
+# claims they need it, as it will undoubtedly require a similar
+# construct to glMapBuffer
+Ignore glMapObjectBufferATI
+Ignore glUnmapObjectBufferATI
+
+# Ignore some GL functions that have outgoing void** parameters; we cannot yet deal with them
+Ignore glGetVariantPointervEXT
+
+# Don't output #defines of GL name strings as constants, because we
+# don't need them java-side.
+# Format of name strings is found at:
+# http://oss.sgi.com/projects/ogl-sample/registry/doc/template.txt
+
+Ignore (GL|GLU|GLX|WGL|AGL|CGL)_EXT_.+
+Ignore (GL|GLU|GLX|WGL|AGL|CGL)_ARB_.+
+Ignore (GL|GLU|GLX|WGL|AGL|CGL)_OES_.+
+Ignore (GL|GLU|GLX|WGL|AGL|CGL)_PGI_.+
+Ignore (GL|GLU|GLX|WGL|AGL|CGL)_SGI_.+
+Ignore (GL|GLU|GLX|WGL|AGL|CGL)_SGIS_.+
+Ignore (GL|GLU|GLX|WGL|AGL|CGL)_SGIX_.+
+Ignore (GL|GLU|GLX|WGL|AGL|CGL)_MESA_.+
+Ignore (GL|GLU|GLX|WGL|AGL|CGL)_HP_.+
+Ignore (GL|GLU|GLX|WGL|AGL|CGL)_ATI_.+
+Ignore (GL|GLU|GLX|WGL|AGL|CGL)_NV_.+
+Ignore (GL|GLU|GLX|WGL|AGL|CGL)_IBM_.+
+Ignore (GL|GLU|GLX|WGL|AGL|CGL)_WIN_.+
+Ignore (GL|GLU|GLX|WGL|AGL|CGL)_REND_.+
+Ignore (GL|GLU|GLX|WGL|AGL|CGL)_APPLE_.+
+Ignore (GL|GLU|GLX|WGL|AGL|CGL)_INTEL_.+
+Ignore (GL|GLU|GLX|WGL|AGL|CGL)_INGR_.+
+Ignore (GL|GLU|GLX|WGL|AGL|CGL)_SUN_.+
+Ignore (GL|GLU|GLX|WGL|AGL|CGL)_SUNX_.+
+Ignore (GL|GLU|GLX|WGL|AGL|CGL)_3DFX_.+
+Ignore (GL|GLU|GLX|WGL|AGL|CGL)_OML_.+
+Ignore (GL|GLU|GLX|WGL|AGL|CGL)_I3D_.+
+Ignore (GL|GLU|GLX|WGL|AGL|CGL)_S3_.+
+Ignore GL_KTX_buffer_region
+
+# FIXME: these extensions require either a handle to a device context
+# or take void** parameters or both. Until we think through the
+# semantics of each of these individually we need to disable them.
+# WGL_ARB_buffer_region
+Ignore wglCreateBufferRegion
+Ignore wglDeleteBufferRegion
+Ignore wglSaveBufferRegion
+Ignore wglRestoreBufferRegion
+Ignore wglGetSyncValuesOML
+Ignore wglGetMscRateOML
+Ignore wglSwapBuffersMscOML
+Ignore wglSwapLayerBuffersMscOML
+Ignore wglWaitForMscOML
+Ignore wglWaitForSbcOML
+Ignore wglGetDigitalVideoParametersI3D
+Ignore wglSetDigitalVideoParametersI3D
+Ignore wglGetGammaTableParametersI3D
+Ignore wglSetGammaTableParametersI3D
+Ignore wglGetGammaTableI3D
+Ignore wglSetGammaTableI3D
+Ignore wglEnableGenlockI3D
+Ignore wglDisableGenlockI3D
+Ignore wglIsEnabledGenlockI3D
+Ignore wglGenlockSourceI3D
+Ignore wglGetGenlockSourceI3D
+Ignore wglGenlockSourceEdgeI3D
+Ignore wglGetGenlockSourceEdgeI3D
+Ignore wglGenlockSampleRateI3D
+Ignore wglGetGenlockSampleRateI3D
+Ignore wglGenlockSourceDelayI3D
+Ignore wglGetGenlockSourceDelayI3D
+Ignore wglQueryGenlockMaxSourceDelayI3D
+Ignore wglCreateImageBufferI3D
+Ignore wglDestroyImageBufferI3D
+Ignore wglAssociateImageBufferEventsI3D
+Ignore wglReleaseImageBufferEventsI3D
+
+#
+# IgnoreExtension directives
+#
+
+# Ignore extensions requiring persistent pointer-to-pointer storage as
+# there is no such thing as a direct "BufferBuffer"
+IgnoreExtension GL_IBM_vertex_array_lists
+IgnoreExtension GL_INTEL_parallel_arrays
+IgnoreExtension GL_SUN_triangle_list
+
+# Ignore extensions never approved by the ARB
+IgnoreExtension GL_EXT_coordinate_frame
+
+# Ignore discontinued extensions
+IgnoreExtension GL_NV_element_array
+
+# Ignore extensions subsumed in OpenGL 1.1 (from OpenGL 1.1 spec, Appendix C)
+IgnoreExtension GL_EXT_vertex_array
+IgnoreExtension GL_EXT_blend_logic_op
+IgnoreExtension GL_EXT_copy_texture
+IgnoreExtension GL_EXT_polygon_offset
+IgnoreExtension GL_EXT_subtexture
+IgnoreExtension GL_EXT_texture
+IgnoreExtension GL_EXT_texture_object
+
+# Ignore extensions subsumed in OpenGL 1.2 and 1.2.1 (from OpenGL 1.2.1 spec, Appendix D)
+IgnoreExtension GL_EXT_bgra
+IgnoreExtension GL_EXT_blend_color
+IgnoreExtension GL_EXT_blend_minmax
+IgnoreExtension GL_EXT_blend_subtract
+IgnoreExtension GL_EXT_color_subtable
+IgnoreExtension GL_EXT_convolution
+IgnoreExtension GL_EXT_draw_range_elements
+IgnoreExtension GL_EXT_histogram
+IgnoreExtension GL_EXT_packed_pixels
+# NOTE: also ignoring GL_EXT_paletted_texture because it appears that it was subsumed
+# into the core even though that isn't stated explicitly in the spec
+IgnoreExtension GL_EXT_paletted_texture
+IgnoreExtension GL_EXT_rescale_normal
+IgnoreExtension GL_EXT_separate_specular_color
+IgnoreExtension GL_EXT_texture3D
+IgnoreExtension GL_HP_convolution_border_modes
+IgnoreExtension GL_SGI_color_matrix
+IgnoreExtension GL_SGI_color_table
+IgnoreExtension GL_SGIS_texture_edge_clamp
+IgnoreExtension GL_SGIS_texture_lod
+
+# Ignore extensions subsumed in OpenGL 1.3 (from OpenGL 1.3 spec, Appendix F)
+IgnoreExtension GL_ARB_multisample
+IgnoreExtension GL_ARB_multitexture
+IgnoreExtension GL_ARB_texture_compression
+IgnoreExtension GL_ARB_texture_cube_map
+IgnoreExtension GL_ARB_texture_border_clamp
+IgnoreExtension GL_ARB_texture_env_add
+IgnoreExtension GL_ARB_texture_env_combine
+IgnoreExtension GL_ARB_texture_en