[BACK]Return to README.1st CVS log [TXT][DIR] Up to [Development] / projects / ogl-sample / main

Annotation of projects/ogl-sample/main/README.1st, Revision 1.1

1.1     ! ljp         1:     Release notes for the OpenGL(R) Sample Implementation (Jan. 25, 2000)
        !             2:     Jon Leech
        !             3:     OpenGL Core Engineering
        !             4:     SGI
        !             5:
        !             6:
        !             7: INTRODUCTION
        !             8:
        !             9:     These notes briefly describe the structure of the Sample
        !            10:     Implementation (SI) source tree and how it can be built. These are
        !            11:     preliminary, and people who are not highly familiar with building X
        !            12:     are likely to have trouble following these instructions.
        !            13:
        !            14:     Please bear with us as we move into the open source world. We're
        !            15:     undergoing a big transition moving from our internal Perforce-based
        !            16:     source code repository to the CVS-based repository on
        !            17:     http://oss.sgi.com, and we aren't able to build in the wide variety
        !            18:     of environments that open source developers have access to. There
        !            19:     will be startup pains as people get started using the code. Feedback
        !            20:     on problems (and fixes) to the ogl-sample@oss.sgi.com mailing list
        !            21:     will be greatly appreciated, so the build process gets easier for
        !            22:     everyone.
        !            23:
        !            24:
        !            25: TREE STRUCTURE
        !            26:
        !            27:     The source tree containing the Sample Implementation (SI) is structured
        !            28:     as follows:
        !            29:
        !            30: doc/man			Source and script tools for GL/GLU/GLX manpages
        !            31: doc/release		More detailed release notes
        !            32: gfx			GL and GLU libraries
        !            33: gfx/lib/glu		    GLU library
        !            34: gfx/lib/glw		    GLw Motif widget
        !            35: gfx/lib/opengl		    GL core rendering library
        !            36: gfx/lib/opengl/defs
        !            37: gfx/lib/opengl/include		Internal header files
        !            38: gfx/lib/opengl/generated	Generator scripts
        !            39: gfx/lib/opengl/glcore		GL core library
        !            40: gfx/include
        !            41: gfx/include/gl		    GL and GLU headers
        !            42: gfx/include/gl/spec		".spec" files for generating API and protocol wrappers
        !            43: gfx/include/gl/template		Generator scripts
        !            44: gfx/include/gl/internal
        !            45: gfx/include/glx		    GLX headers
        !            46: gfx/lib/glut		    GLUT library for samples
        !            47: gfx/lib/glfont		    Simple font library for samples
        !            48: gfx/lib/rgb		    Simple image library for samples
        !            49: gfx/samples		    Sample programs (most already open source)
        !            50: glx			GLX library
        !            51: glx/include		    Headers
        !            52: glx/lib			    Client code
        !            53: glx/server		    Server code
        !            54: tools			Build tools
        !            55: tools/man2html		    manpage -> HTML converter
        !            56: tools/libspec		    .spec file tools
        !            57: tools/include		    GNU make rules/macros
        !            58: tools/gfxinstall	    Portable install script
        !            59:
        !            60:
        !            61: BUILDING THE SAMPLE IMPLEMENTATION
        !            62:
        !            63:     QUICK RECIPE:
        !            64:
        !            65:       1) Follow the 'BUILDING IN THE SI TREE' instructions below
        !            66: 	 to create the generated files.
        !            67:       2) Next, follow the 'BUILDING IN THE X TREE' instructions below
        !            68: 	 to export SI files to the X tree.
        !            69:       3) Finally, follow the instructions in doc/release/build_xfree86
        !            70: 	 to modify your X tree to link against and intitialize GL, then
        !            71: 	 build the X server.
        !            72:
        !            73:     MORE DETAILS:
        !            74:
        !            75:     The tree can be used in two ways. First, the SI can be built
        !            76:     entirely within its own tree and the resulting libraries copied into
        !            77:     an X11R6 tree and used to build a GLX-capable X server. This is how
        !            78:     we usually work at SGI; we'll call this the "SI tree" below. The SI
        !            79:     tree is heavily based on GNU make.
        !            80:
        !            81:     Alternatively, the source tree can be exported into a different
        !            82:     structure which fits directly into an X11R6 tree, and is built as
        !            83:     part of the X build. This is how the SI is shipped to our licensees;
        !            84:     we'll call this "X tree". This uses imake, like everything else in
        !            85:     the X11 tree. It's probably going to be easier to build in the X11
        !            86:     tree at first, but moving to the SI tree over time is preferable
        !            87:     since mapping changes from files in the X tree to the SI tree is
        !            88:     tedious.
        !            89:
        !            90:     There are a number of databases and generator scripts used when
        !            91:     building within the SI tree. The generated files include GLX
        !            92:     protocol encoder and decoder routines for indirect rendering, header
        !            93:     files, and some others. When exporting into the X tree, the
        !            94:     generated files are included and the generator scripts are not. The
        !            95:     generator scripts are a mix of awk and Perl today; we'd like to move
        !            96:     completely to Perl in the near future, for better crossplatform
        !            97:     support.
        !            98:
        !            99:     Unfortunately, the two build processes are somewhat interdependent.
        !           100:     To build in the X tree, you must first build (just once) in the SI
        !           101:     tree to create the generated files that are part of what's exported.
        !           102:     To build in the SI tree and then include the resulting GL/GLX
        !           103:     libraries in a new X server, some framework in the X tree is
        !           104:     required so it will know to initialize GLX and link against the
        !           105:     GL/GLX libraries. Thus the 'QUICK RECIPE' above follows both steps
        !           106:     and leaves you with a buildable X tree including GL support.
        !           107:
        !           108:
        !           109: BUILDING IN THE SI TREE
        !           110:
        !           111:     To build the SI, you must have also have a X11R6/XFree86 source tree
        !           112:     to provide X headers. We currently build against XFree86 3.3.5 on
        !           113:     Linux and will upgrade to XFree86 4.0 when it goes public in the
        !           114:     near future.
        !           115:
        !           116:     The following environment variables are used by the build. All
        !           117:     except GLDEBUG are required.
        !           118:
        !           119: 	GLDEBUG
        !           120: 	    Set GLDEBUG=1 to compile everything with debug flags.
        !           121:
        !           122: 	GLPRODUCT
        !           123: 	    Set GLPRODUCT=DDX. Controls the type of driver to build.
        !           124: 	    In the future other drivers will use a different GLPRODUCT
        !           125: 	    setting.
        !           126:
        !           127: 	TOPDIR
        !           128: 	    Set TOPDIR to the path to the root of the SI tree (e.g. this
        !           129: 	    README.1st file should be under $TOPDIR).
        !           130:
        !           131: 	ROOT
        !           132: 	    Set ROOT to the path to a directory used for installing
        !           133: 	    scripts, headers, and libraries generated by the build.
        !           134:
        !           135: 	    It's almost certainly a bad idea to just set ROOT=/ and
        !           136: 	    install directly into /usr/include, /usr/lib, etc. - we
        !           137: 	    recommend setting $ROOT=${TOPDIR}/root
        !           138:
        !           139: 	XTOPDIR
        !           140: 	    Set XTOPDIR to the path to the root of your X11R6/XFree86
        !           141: 	    source tree (e.g. the 'xc' directory should be under
        !           142: 	    $XTOPDIR). This is required to pick up X11 headers used in
        !           143: 	    building GLX.
        !           144:
        !           145:     Once these environment variables are set, you can go to $TOPDIR and
        !           146:     'gmake World' (this can take quite awhile and consume a lot of disk
        !           147:     space, since a large number of sample programs are built. Later you
        !           148:     may wish to just rebuild the client and server libraries).
        !           149:
        !           150:     If you're going to export to the X tree, go on to the 'BUILDING IN
        !           151:     THE X TREE' instructions in the next section. Otherwise:
        !           152:
        !           153:     The result of 'gmake World' should be a tree under $ROOT including
        !           154:     these files:
        !           155:
        !           156: 	$ROOT/usr/include/GL/*.h    GL, GLX, and GLU header files
        !           157: 	$ROOT/usr/lib/libGL.so	    GL/GLX client library
        !           158: 		      libGLU.so     GLU client library
        !           159: 		      libGLw.a	    Motif GL widget
        !           160: 		      libglfont.a   Support libraries for samples
        !           161: 		      libglut.a		"
        !           162: 		      librgb.a		"
        !           163: 		      libdixGL.a    X server GLX library
        !           164: 		      libGLcore.a   X server GL library (core renderer)
        !           165:
        !           166:     libdixGL.a and libGLcore.a will need to be included in your XFree86
        !           167:     build. The other libraries are client libraries which can be
        !           168:     installed in /usr/lib or just used via LD_LIBRARY_PATH.
        !           169:
        !           170: BUILDING IN THE X TREE
        !           171:
        !           172:     The export process requires all the generated files, so you'll need
        !           173:     to build in the SI tree once (as described above) first. Once we get
        !           174:     the website rolling a bit more, we should be able to regularly put
        !           175:     up tarballs of the SI files in the X tree structure distribution on
        !           176:     a regular basis, instead of requiring you to do this yourself.
        !           177:
        !           178:     The next step is to export from the SI tree to the X tree. It's
        !           179:     probably best to use an intermediate directory at first, until
        !           180:     you're comfortable with the export process - otherwise the chance of
        !           181:     scribbling over unexpected parts of the X tree is high. To export:
        !           182:
        !           183:     1) Set the environment variable 'DIST' to the directory to which the
        !           184:        files will be exported, e.g.
        !           185:
        !           186: 	setenv DIST /tmp/dist
        !           187:
        !           188:     2) In $TOPDIR, install the build tools:
        !           189:
        !           190: 	gmake tools_install
        !           191:
        !           192:     3) Export the files
        !           193:
        !           194: 	gmake distsi
        !           195:
        !           196:     After this completes, the following directories will be created
        !           197:     under $DIST:
        !           198:
        !           199: 	xc/include/GL
        !           200: 	xc/lib/GL
        !           201: 	xc/programs/Xserver/GL
        !           202: 	xc/programs/Xserver/include/GL
        !           203: 	xc/contrib/GL
        !           204: 	xc/doc/man/GL
        !           205: 	xc/doc/hardcopy/GL
        !           206:
        !           207:     These can then be overlaid into your X tree by:
        !           208:
        !           209: 	(cd $DIST && tar cf - xc) | (cd $XTOPDIR && tar xf -)
        !           210:
        !           211:     It's also possible to just set DIST=$XTOPDIR if you're confident,
        !           212:     and avoid the intermediate step.
        !           213:
        !           214:     Finally, once you have the files installed in the X tree, refer to
        !           215:     $TOPDIR/doc/release/build_xfree86 for instructions on how to modify
        !           216:     the XFree86 build to incorporate the SI.

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>