| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289 | 
							- <html>
 - 
 - <title>Compilation and Installation using Autoconf</title>
 - 
 - <link rel="stylesheet" type="text/css" href="mesa.css"></head>
 - 
 - <body>
 - 
 - 
 - <h1>Compilation and Installation using Autoconf</h1>
 - 
 - <ol>
 - <li><a href="#basic">Basic Usage</a></li>
 - <li><a href="#driver">Driver Options</a></li>
 -   <ul>
 -   <li><a href="#xlib">Xlib Driver Options</a></li>
 -   <li><a href="#dri">DRI Driver Options</a></li>
 -   <li><a href="#osmesa">OSMesa Driver Options</a></li>
 -   </ul>
 - <li><a href="#library">Library Options</a></li>
 -   <ul>
 -   <li><a href="#glu">GLU</a></li>
 -   <li><a href="#glw">GLw</a></li>
 -   <li><a href="#glut">GLUT</a></li>
 -   </ul>
 - <li><a href="#demos">Demo Program Options</a></li>
 - </ol>
 - 
 - 
 - <a name="basic">
 - <h2>1. Basic Usage</h2>
 - 
 - <p>
 - The autoconf generated configure script can be used to guess your
 - platform and change various options for building Mesa. To use the
 - configure script, type:
 - </p>
 - 
 - <pre>
 -     ./configure
 - </pre>
 - 
 - <p>
 - To see a short description of all the options, type <code>./configure
 - --help</code>. If you are using a development snapshot and the configure
 - script does not exist, type <code>./autogen.sh</code> to generate it
 - first. If you know the options you want to pass to
 - <code>configure</code>, you can pass them to <code>autogen.sh</code>. It
 - will run <code>configure</code> with these options after it is
 - generated. Once you have run <code>configure</code> and set the options
 - to your preference, type:
 - </p>
 - 
 - <pre>
 -     make
 - </pre>
 - 
 - <p>
 - This will produce libGL.so and several other libraries depending on the
 - options you have chosen. Later, if you want to rebuild for a different
 - configuration run <code>make realclean</code> before rebuilding.
 - </p>
 - 
 - <p>
 - Some of the generic autoconf options are used with Mesa:
 - 
 - <ul>
 - <li><code>--prefix=PREFIX</code> - This is the root directory where
 - files will be installed by <code>make install</code>. The default is
 - <code>/usr/local</code>.
 - </li>
 - <li><code>--exec-prefix=EPREFIX</code> - This is the root directory
 - where architecture-dependent files will be installed. In Mesa, this is
 - only used to derive the directory for the libraries. The default is
 - <code>${prefix}</code>.
 - </li>
 - <li><code>--libdir=LIBDIR</code> - This option specifies the directory
 - where the GL libraries will be installed. The default is
 - <code>${exec_prefix}/lib</code>. It also serves as the name of the
 - library staging area in the source tree. For instance, if the option
 - <code>--libdir=/usr/local/lib64</code> is used, the libraries will be
 - created in a <code>lib64</code> directory at the top of the Mesa source
 - tree.
 - </li>
 - <li><code>--enable-static, --disable-shared</code> - By default, Mesa
 - will build shared libraries. Either of these options will force static
 - libraries to be built. It is not currently possible to build static and
 - shared libraries in a single pass.
 - </li>
 - <li><code>CC, CFLAGS, CXX, CXXFLAGS</code> - These environment variables
 - control the C and C++ compilers used during the build. By default,
 - <code>gcc</code> and <code>g++</code> are used with the options
 - <code>"-g -O2"</code>.
 - </li>
 - <li><code>LDFLAGS</code> - An environment variable specifying flags to
 - pass when linking programs. These are normally empty, but can be used
 - to direct the linker to use libraries in nonstandard directories. For
 - example, <code>LDFLAGS="-L/usr/X11R6/lib"</code>.
 - </li>
 - <li><code>PKG_CONFIG_PATH</code> - When available, the
 - <code>pkg-config</code> utility is used to search for external libraries
 - on the system. This environment variable is used to control the search
 - path for <code>pkg-config</code>. For instance, setting
 - <code>PKG_CONFIG_PATH=/usr/X11R6/lib/pkgconfig</code> will search for
 - package metadata in <code>/usr/X11R6</code> before the standard
 - directories.
 - </li>
 - </ul>
 - </p>
 - 
 - <p>
 - There are also a few general options for altering the Mesa build:
 - <ul>
 - <li><code>--with-x</code> - When the X11 development libraries are
 - needed, the <code>pkg-config</code> utility <a href="#pkg-config">will
 - be used</a> for locating them. If they cannot be found through
 - <code>pkg-config</code> a fallback routing using <code>imake</code> will
 - be used. In this case, the <code>--with-x</code>,
 - <code>--x-includes</code> and <code>--x-libraries</code> options can
 - control the use of X for Mesa.
 - </li>
 - <li><code>--enable-gl-osmesa</code> - The <a href="osmesa.html">OSMesa
 - library</a> can be built on top of libGL for drivers that provide it.
 - This option controls whether to build libOSMesa. By default, this is
 - enabled for the Xlib driver and disabled otherwise. Note that this
 - option is different than using OSMesa as the driver.
 - </li>
 - <li><code>--enable-debug</code> - This option will enable compiler
 - options and macros to aid in debugging the Mesa libraries.
 - </li>
 - <li><code>--disable-asm</code> - There are assembly routines
 - available for a few architectures. These will be used by default if
 - one of these architectures is detected. This option ensures that
 - assembly will not be used.
 - </li>
 - <li><code>--enable-32-bit, --enable-64-bit</code> - By default, the
 - build will compile code as directed by the environment variables
 - <code>CC</code>, <code>CFLAGS</code>, etc. If the compiler is
 - <code>gcc</code>, these options offer a helper to add the compiler flags
 - to force 32- or 64-bit code generation as used on the x86 and x86_64
 - architectures.
 - </li>
 - </ul>
 - </p>
 - 
 - 
 - <a name="driver">
 - <h2>2. Driver Options</h2>
 - 
 - <p>
 - There are several different driver modes that Mesa can use. These are
 - described in more detail in the <a href="install.html">basic
 - installation instructions</a>. The Mesa driver is controlled through the
 - configure option --with-driver. There are currently three supported
 - options in the configure script.
 - </p>
 - 
 - <ul>
 - 
 - <a name="xlib">
 - <li><b><em>Xlib</em></b> - This is the default mode for building Mesa.
 - It uses Xlib as a software renderer to do all rendering. It corresponds
 - to the option <code>--with-driver=xlib</code>. The libX11 and libXext
 - libraries, as well as the X11 development headers, will be need to
 - support the Xlib driver.
 - </li>
 - 
 - <a name="dri">
 - <li><b><em>DRI</em></b> - This mode uses the DRI hardware drivers for
 - accelerated OpenGL rendering. Enable the DRI drivers with the option
 - <code>--with-driver=dri</code>. See the <a href="install.html">basic
 - installation instructions</a> for details on prerequisites for the DRI
 - drivers.
 - </li>
 - 
 - <!-- DRI specific options -->
 - <p>
 - <ul>
 - <li><code>--with-dri-driverdir=DIR</code> - This option specifies the
 - location the DRI drivers will be installed to and the location libGL
 - will search for DRI drivers. The default is <code>${libdir}/dri</code>.
 - </li>
 - <li><code>--with-dri-drivers=DRIVER,DRIVER,...</code> - This option
 - allows a specific set of DRI drivers to be built. For example,
 - <code>--with-dri-drivers="swrast,i965,radeon,nouveau"</code>. By
 - default, the drivers will be chosen depending on the target platform.
 - See the directory <code>src/mesa/drivers/dri</code> in the source tree
 - for available drivers. Beware that the swrast DRI driver is used by both
 - libGL and the X.Org xserver GLX module to do software rendering, so you
 - may run into problems if it is not available.</li>
 - <!-- This explanation might be totally bogus. Kristian? -->
 - <li><code>--disable-driglx-direct</code> - Disable direct rendering in
 - GLX. Normally, direct hardware rendering through the DRI drivers and
 - indirect software rendering are enabled in GLX. This option disables
 - direct rendering entirely. It can be useful on architectures where
 - kernel DRM modules are not available.
 - </li>
 - <li><code>--enable-glx-tls</code> - Enable Thread Local Storage (TLS) in
 - GLX.
 - </li>
 - <li><code>--with-expat=DIR</code> - The DRI-enabled libGL uses expat to
 - parse the DRI configuration files in <code>/etc/drirc</code> and
 - <code>~/.drirc</code>. This option allows a specific expat installation
 - to be used. For example, <code>--with-expat=/usr/local</code> will
 - search for expat headers and libraries in <code>/usr/local/include</code>
 - and <code>/usr/local/lib</code>, respectively.
 - </li>
 - </ul>
 - </p>
 - 
 - <a name="osmesa">
 - <li><b><em>OSMesa</em></b> - No libGL is built in this
 - mode. Instead, the driver code is built into the Off-Screen Mesa
 - (OSMesa) library. See the <a href="osmesa.html">Off-Screen Rendering</a>
 - page for more details.
 - </li>
 - 
 - <!-- OSMesa specific options -->
 - <p>
 - <ul>
 - <li><code>--with-osmesa-bits=BITS</code> - This option allows the size
 - of the color channel in bits to be specified. By default, an 8-bit
 - channel will be used, and the driver will be named libOSMesa. Other
 - options are 16- and 32-bit color channels, which will add the bit size
 - to the library name. For example, <code>--with-osmesa-bits=16</code>
 - will create the libOSMesa16 library with a 16-bit color channel.
 - </li>
 - </ul>
 - </p>
 - 
 - </ul>
 - 
 - 
 - <a name="library">
 - <h2>3. Library Options</h2>
 - 
 - <p>
 - The configure script provides more fine grained control over the GL
 - libraries that will be built. More details on the specific GL libraries
 - can be found in the <a href="install.html">basic installation
 - instructions</a>.
 - 
 - <ul>
 - <a name="glu">
 - <li><b><em>GLU</em></b> - The libGLU library will be built by default
 - on all drivers. This can be disable with the option
 - <code>--disable-glu</code>.
 - </li>
 - 
 - <a name="glw">
 - <li><b><em>GLw</em></b> - The libGLw library will be built by default
 - if libGLU has been enabled. This can be disable with the option
 - <code>--disable-glw</code>.
 - </li>
 - 
 - <a name="glut">
 - <li><b><em>GLUT</em></b> - The libglut library will be built by default
 - if libGLU has been enabled and the glut source code from the MesaGLUT
 - tarball is available. This can be disable with the option
 - <code>--disable-glut</code>.
 - </li>
 - </ul>
 - </p>
 - 
 - 
 - <a name="demos">
 - <h2>4. Demo Program Options</h2>
 - 
 - <p>
 - There are many demonstration programs in the MesaDemos tarball. If the
 - programs are available when <code>./configure</code> is run, a subset of
 - the programs will be built depending on the driver and library options
 - chosen. See the directory <code>progs</code> for the full set of demos.
 - 
 - <ul>
 - <li><code>--with-demos=DEMOS,DEMOS,...</code> - This option allows a
 - specific set of demo programs to be built. For example,
 - <code>--with-demos="xdemos,slang"</code>. Beware that if this option is
 - used, it will not be ensured that the necessary GL libraries will be
 - available.
 - </li>
 - <li><code>--without-demos</code> - This completely disables building the
 - demo programs. It is equivalent to <code>--with-demos=no</code>.
 - </li>
 - </ul>
 - </p>
 - 
 - </body>
 - </html>
 
 
  |