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:
./configure
To see a short description of all the options, type ./configure
--help
. If you are using a development snapshot and the configure
script does not exist, type ./autogen.sh
to generate it
first. If you know the options you want to pass to
configure
, you can pass them to autogen.sh
. It
will run configure
with these options after it is
generated. Once you have run configure
and set the options
to your preference, type:
make
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 make realclean
before rebuilding.
Some of the generic autoconf options are used with Mesa:
--prefix=PREFIX
- This is the root directory where
files will be installed by make install
. The default is
/usr/local
.
--exec-prefix=EPREFIX
- 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
${prefix}
.
--libdir=LIBDIR
- This option specifies the directory
where the GL libraries will be installed. The default is
${exec_prefix}/lib
. It also serves as the name of the
library staging area in the source tree. For instance, if the option
--libdir=/usr/local/lib64
is used, the libraries will be
created in a lib64
directory at the top of the Mesa source
tree.
--enable-static, --disable-shared
- 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.
CC, CFLAGS, CXX, CXXFLAGS
- These environment variables
control the C and C++ compilers used during the build. By default,
gcc
and g++
are used with the options
"-g -O2"
.
LDFLAGS
- 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, LDFLAGS="-L/usr/X11R6/lib"
.
PKG_CONFIG_PATH
- When available, the
pkg-config
utility is used to search for external libraries
on the system. This environment variable is used to control the search
path for pkg-config
. For instance, setting
PKG_CONFIG_PATH=/usr/X11R6/lib/pkgconfig
will search for
package metadata in /usr/X11R6
before the standard
directories.
There are also a few general options for altering the Mesa build:
--with-x
- When the X11 development libraries are
needed, the pkg-config
utility will
be used for locating them. If they cannot be found through
pkg-config
a fallback routing using imake
will
be used. In this case, the --with-x
,
--x-includes
and --x-libraries
options can
control the use of X for Mesa.
--enable-gl-osmesa
- The OSMesa
library 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.
--enable-debug
- This option will enable compiler
options and macros to aid in debugging the Mesa libraries.
--disable-asm
- 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.
--enable-32-bit, --enable-64-bit
- By default, the
build will compile code as directed by the environment variables
CC
, CFLAGS
, etc. If the compiler is
gcc
, 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.
There are several different driver modes that Mesa can use. These are described in more detail in the basic installation instructions. The Mesa driver is controlled through the configure option --with-driver. There are currently three supported options in the configure script.
--with-driver=xlib
. The libX11 and libXext
libraries, as well as the X11 development headers, will be need to
support the Xlib driver.
--with-driver=dri
. See the basic
installation instructions for details on prerequisites for the DRI
drivers.
--with-dri-driverdir=DIR
- This option specifies the
location the DRI drivers will be installed to and the location libGL
will search for DRI drivers. The default is ${libdir}/dri
.
--with-dri-drivers=DRIVER,DRIVER,...
- This option
allows a specific set of DRI drivers to be built. For example,
--with-dri-drivers="i965,radeon,nouveau"
. By default,
the drivers will be chosen depending on the target platform. See the
directory src/mesa/drivers/dri
in the source tree for
available drivers.
--disable-driglx-direct
- 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.
--enable-glx-tls
- Enable Thread Local Storage (TLS) in
GLX.
--with-expat=DIR
- The DRI-enabled libGL uses expat to
parse the DRI configuration files in /etc/drirc
and
~/.drirc
. This option allows a specific expat installation
to be used. For example, --with-expat=/usr/local
will
search for expat headers and libraries in /usr/local/include
and /usr/local/lib
, respectively.
--with-osmesa-bits=BITS
- 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, --with-osmesa-bits=16
will create the libOSMesa16 library with a 16-bit color channel.
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 basic installation instructions.
--disable-glu
.
--disable-glw
.
--disable-glut
.
There are many demonstration programs in the MesaDemos tarball. If the
programs are available when ./configure
is run, a subset of
the programs will be built depending on the driver and library options
chosen. See the directory progs
for the full set of demos.
--with-demos=DEMOS,DEMOS,...
- This option allows a
specific set of demo programs to be built. For example,
--with-demos="xdemos,slang"
. Beware that if this option is
used, it will not be ensured that the necessary GL libraries will be
available.
--without-demos
- This completely disables building the
demo programs. It is equivalent to --with-demos=no
.