forked from KolibriOS/kolibrios
251 lines
9.0 KiB
HTML
251 lines
9.0 KiB
HTML
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||
|
<html lang="en">
|
||
|
<head>
|
||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||
|
<title>Compilation and Installation using Autoconf</title>
|
||
|
<link rel="stylesheet" type="text/css" href="mesa.css">
|
||
|
</head>
|
||
|
<body>
|
||
|
|
||
|
<div class="header">
|
||
|
<h1>The Mesa 3D Graphics Library</h1>
|
||
|
</div>
|
||
|
|
||
|
<iframe src="contents.html"></iframe>
|
||
|
<div class="content">
|
||
|
|
||
|
<h1>Compilation and Installation using Autoconf</h1>
|
||
|
|
||
|
<ol>
|
||
|
<li><p><a href="#basic">Basic Usage</a></li>
|
||
|
<li><p><a href="#driver">Driver Options</a>
|
||
|
<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>
|
||
|
</ol>
|
||
|
|
||
|
|
||
|
<h2 id="basic">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:
|
||
|
</p>
|
||
|
<dl>
|
||
|
<dt><code>--prefix=PREFIX</code></dt>
|
||
|
<dd><p>This is the root directory where
|
||
|
files will be installed by <code>make install</code>. The default is
|
||
|
<code>/usr/local</code>.</p>
|
||
|
</dd>
|
||
|
|
||
|
<dt><code>--exec-prefix=EPREFIX</code></dt>
|
||
|
<dd><p>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>.</p>
|
||
|
</dd>
|
||
|
|
||
|
<dt><code>--libdir=LIBDIR</code></dt>
|
||
|
<dd><p>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.</p>
|
||
|
</dd>
|
||
|
|
||
|
<dt><code>--enable-static, --disable-shared</code></dt>
|
||
|
<dd><p>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.</p>
|
||
|
</dd>
|
||
|
|
||
|
<dt><code>CC, CFLAGS, CXX, CXXFLAGS</code></dt>
|
||
|
<dd><p>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>.</p>
|
||
|
</dd>
|
||
|
|
||
|
<dt><code>LDFLAGS</code></dt>
|
||
|
<dd><p>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>.</p>
|
||
|
</dd>
|
||
|
|
||
|
<dt><code>PKG_CONFIG_PATH</code></dt>
|
||
|
<dd><p>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.</p>
|
||
|
</dd>
|
||
|
</dl>
|
||
|
|
||
|
<p>
|
||
|
There are also a few general options for altering the Mesa build:
|
||
|
</p>
|
||
|
<dl>
|
||
|
<dt><code>--with-x</code></dt>
|
||
|
<dd><p>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.</p>
|
||
|
</dd>
|
||
|
|
||
|
<dt><code>--enable-gl-osmesa</code></dt>
|
||
|
<dd><p>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.</p>
|
||
|
</dd>
|
||
|
|
||
|
<dt><code>--enable-debug</code></dt>
|
||
|
<dd><p>This option will enable compiler
|
||
|
options and macros to aid in debugging the Mesa libraries.</p>
|
||
|
</dd>
|
||
|
|
||
|
<dt><code>--disable-asm</code></dt>
|
||
|
<dd><p>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.</p>
|
||
|
</dd>
|
||
|
|
||
|
<dt><code>--enable-32-bit</code></dt>
|
||
|
<dt><code>--enable-64-bit</code></dt>
|
||
|
<dd><p>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.</p>
|
||
|
</dd>
|
||
|
</dl>
|
||
|
|
||
|
|
||
|
<h2 id="driver">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>
|
||
|
|
||
|
<h3 id="xlib">Xlib</h3><p>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.
|
||
|
|
||
|
<h3 id="dri">DRI</h3><p>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.
|
||
|
|
||
|
<!-- DRI specific options -->
|
||
|
<dl>
|
||
|
<dt><code>--with-dri-driverdir=DIR</code>
|
||
|
<dd><p> 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>.
|
||
|
<dt><code>--with-dri-drivers=DRIVER,DRIVER,...</code>
|
||
|
<dd><p> 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.
|
||
|
<!-- This explanation might be totally bogus. Kristian? -->
|
||
|
<dt><code>--disable-driglx-direct</code>
|
||
|
<dd><p> 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.
|
||
|
<dt><code>--enable-glx-tls</code> <dd><p>
|
||
|
Enable Thread Local Storage (TLS) in
|
||
|
GLX.
|
||
|
<dt><code>--with-expat=DIR</code> <dd> 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.
|
||
|
</dl>
|
||
|
|
||
|
<h3 id="osmesa">OSMesa </h3><p> 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.
|
||
|
|
||
|
<!-- OSMesa specific options -->
|
||
|
<dl>
|
||
|
<dt><code>--with-osmesa-bits=BITS</code>
|
||
|
<dd><p> 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.
|
||
|
</dl>
|
||
|
|
||
|
|
||
|
<h2 id="library">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>.
|
||
|
|
||
|
</div>
|
||
|
</body>
|
||
|
</html>
|