1. Basic Usage
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.