<HTML>

<TITLE>Compiling and Installing</TITLE>

<link rel="stylesheet" type="text/css" href="mesa.css"></head>

<BODY>


<H1>Compiling and Installing</H1>

<ol>
<li><a href="#unix-x11">Unix / X11</a>
  <ul>
  <li><a href="#prereq">Prerequisites for DRI and hardware acceleration</a>
  <li><a href="#autoconf">Building with autoconf</a>
  <li><a href="#traditional">Building with traditional Makefiles</a>
  <li><a href="#libs">The Libraries</a>
  <li><a href="#demos">Running the demos
  <li><a href="#install">Installing the header and library files
  <li><a href="#pkg-config">Building OpenGL programs with pkg-config
  </ul>
<li><a href="#windows">Windows</a>
<li><a href="#scons">SCons</a>
<li><a href="#other">Other</a>
</ol>
<br>


<a name="unix-x11">
<H2>1. Unix/X11 Compilation and Installation</H1>


<a name="prereq">
<h3>1.1 Prerequisites for DRI and hardware acceleration</h3>

<p>
The following are required for DRI-based hardware acceleration with Mesa:
</p>

<ul>
<li><a href="http://xorg.freedesktop.org/releases/individual/proto/">dri2proto</a> version 1.99.3 or later
<li>Linux 2.6.28
<li><a href="http://dri.freedesktop.org/libdrm/" target="_parent">libDRM</a>
version 2.4.15 or later
<li>Xorg server version 1.5 or later
</ul>
</p>


<a name="autoconf">
<h3>1.2 Building with Autoconf</h3>

<p>
Mesa may be <a href="autoconf.html">built using autoconf</a>.
This should work well on most GNU-based systems.
If that fails the traditional Mesa build system is available.



<a name="traditional">
<h3>1.3 Building with traditional Makefiles</h3>

<p>
The traditional Mesa build system is based on a collection of pre-defined
system configurations.
</p>
<p>
To see the list of configurations, just type <code>make</code>.
Then choose a configuration from the list and type <code>make</code>
<em>configname</em>.
</p>

<p>
Mesa may be built in several different ways using the predefined configurations:
</p>
<ul>
<li><b><em>Stand-alone/Xlib mode</em></b> - Mesa will be compiled as
a software renderer using Xlib to do all rendering.
The libGL.so library will be a self-contained rendering library that will
allow you to run OpenGL/GLX applications on any X server (regardless of
whether it supports the GLX X server extension).
You will <em>not</em> be able to use hardware 3D acceleration.
<p>
To compile stand-alone Mesa type <code>make</code> in the top-level directory.
You'll see a list of supported system configurations.
Choose one from the list (such as linux-x86), and type:
</p>
<pre>
    make linux-x86
</pre>
<p>This will produce libGL.so and several other libraries</p>
</li>

<li><b><em>DRI/accelerated</em></b> - The DRI hardware drivers for
accelerated OpenGL rendering (for ATI, Intel, Matrox, etc) will be built.
The libGL.so library will support the GLX extension and will load/use
the DRI hardware drivers.


<p>
Build Mesa and the DRI hardware drivers by running
</p>
<pre>
   make linux-dri
</pre>
<p>
There are also <code>linux-dri-x86</code>, <code>linux-dri-x86-64</code>, 
and <code>linux-ppc</code> configurations which are optimized for those
architectures.
</p>
<p>
Make sure you have the prerequisite versions of DRM and Xserver mentioned
above.
</p>

</li>

</ul>


<p>
Later, if you want to rebuild for a different configuration run
<code>make realclean</code> before rebuilding.
</p>


<a name="libs">
<h3>1.4 The libraries</h3>

<p>
When compilation has finished, look in the top-level <code>lib/</code>
(or <code>lib64/</code>) directory.
You'll see a set of library files similar to this:
</p>
<pre>
lrwxrwxrwx    1 brian    users          10 Mar 26 07:53 libGL.so -> libGL.so.1*
lrwxrwxrwx    1 brian    users          19 Mar 26 07:53 libGL.so.1 -> libGL.so.1.5.060100*
-rwxr-xr-x    1 brian    users     3375861 Mar 26 07:53 libGL.so.1.5.060100*
lrwxrwxrwx    1 brian    users          11 Mar 26 07:53 libGLU.so -> libGLU.so.1*
lrwxrwxrwx    1 brian    users          20 Mar 26 07:53 libGLU.so.1 -> libGLU.so.1.3.060100*
-rwxr-xr-x    1 brian    users      549269 Mar 26 07:53 libGLU.so.1.3.060100*
lrwxrwxrwx    1 brian    users          12 Mar 26 07:53 libglut.so -> libglut.so.3*
lrwxrwxrwx    1 brian    users          16 Mar 26 07:53 libglut.so.3 -> libglut.so.3.7.1*
-rwxr-xr-x    1 brian    users      597754 Mar 26 07:53 libglut.so.3.7.1*
lrwxrwxrwx    1 brian    users          11 Mar 26 08:04 libGLw.so -> libGLw.so.1*
lrwxrwxrwx    1 brian    users          15 Mar 26 08:04 libGLw.so.1 -> libGLw.so.1.0.0*
-rwxr-xr-x    1 brian    users       20750 Mar 26 08:04 libGLw.so.1.0.0*
lrwxrwxrwx    1 brian    users          14 Mar 26 07:53 libOSMesa.so -> libOSMesa.so.6*
lrwxrwxrwx    1 brian    users          23 Mar 26 07:53 libOSMesa.so.6 -> libOSMesa.so.6.1.060100*
-rwxr-xr-x    1 brian    users       23871 Mar 26 07:53 libOSMesa.so.6.1.060100*
</pre>

<p>
<b>libGL</b> is the main OpenGL library (i.e. Mesa).
<br>
<b>libGLU</b> is the OpenGL Utility library.
<br>
<b>libglut</b> is the GLUT library.
<br>
<b>libGLw</b> is the Xt/Motif OpenGL drawing area widget library.
<br>
<b>libOSMesa</b> is the OSMesa (Off-Screen) interface library.
</p>

<p>
If you built the DRI hardware drivers, you'll also see the DRI drivers:
</p>
<pre>
-rwxr-xr-x   1 brian users 15607851 Jul 21 12:11 ffb_dri.so
-rwxr-xr-x   1 brian users 15148747 Jul 21 12:11 i810_dri.so
-rwxr-xr-x   1 brian users 14497814 Jul 21 12:11 i830_dri.so
-rwxr-xr-x   1 brian users 16895413 Jul 21 12:11 i915_dri.so
-rwxr-xr-x   1 brian users 11320803 Jul 21 12:11 mach64_dri.so
-rwxr-xr-x   1 brian users 11418014 Jul 21 12:12 mga_dri.so
-rwxr-xr-x   1 brian users 11064426 Jul 21 12:12 r128_dri.so
-rwxr-xr-x   1 brian users 11849858 Jul 21 12:12 r200_dri.so
-rwxr-xr-x   1 brian users 16050488 Jul 21 12:11 r300_dri.so
-rwxr-xr-x   1 brian users 11757388 Jul 21 12:12 radeon_dri.so
-rwxr-xr-x   1 brian users 11232304 Jul 21 12:13 s3v_dri.so
-rwxr-xr-x   1 brian users 11062970 Jul 21 12:13 savage_dri.so
-rwxr-xr-x   1 brian users 11214212 Jul 21 12:13 sis_dri.so
-rwxr-xr-x   1 brian users 11368736 Jul 21 12:13 tdfx_dri.so
-rwxr-xr-x   1 brian users 10598868 Jul 21 12:13 trident_dri.so
-rwxr-xr-x   1 brian users 10997120 Jul 21 12:13 unichrome_dri.so
</pre>


<a name="demos">
<h3>1.5 Running the demos</h3>

<p>
If you downloaded/unpacked the MesaDemos-x.y.z.tar.gz archive or
obtained Mesa from CVS, the <b>progs/</b> directory will contain a
bunch of demonstration programs.
</p>

<p>
Before running a demo, you'll probably have to set two environment variables
to indicate where the libraries are located.  For example:
<p>
<blockquote>
<b>cd lib/</b>
<br>
<b>export LD_LIBRARY_PATH=${PWD}</b>
<br>
<b>export LIBGL_DRIVERS_PATH=${PWD}</b> (if using DRI drivers)
</blockquote>

<p>
Next, change to the Mesa/demos/ directory:
</p>
<blockquote>
<b>cd ../progs/demos</b>
</blockquote>

<p>
Run a demo such as gears:
</p>
<blockquote>
<b>./gears</b>
</blockquote>

<p>
If this doesn't work, try the <b>Mesa/progs/xdemos/glxinfo</b> program
and see that it prints the expected Mesa version number.
</p>

<p>
If you're using Linux or a similar OS, verify that the demo program is
being linked with the proper library files:
</p>
<blockquote>
<b>ldd gears</b>
</blockquote>

<p>
You should see something like this:
</p>
<pre>
        libglut.so.3 => /home/brian/Mesa/lib/libglut.so.3 (0x40013000)
        libGLU.so.1 => /home/brian/Mesa/lib/libGLU.so.1 (0x40051000)
        libGL.so.1 => /home/brian/Mesa/lib/libGL.so.1 (0x400e0000)
        libc.so.6 => /lib/i686/libc.so.6 (0x42000000)
        libm.so.6 => /lib/i686/libm.so.6 (0x403da000)
        libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x403fc000)
        libXmu.so.6 => /usr/X11R6/lib/libXmu.so.6 (0x404da000)
        libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0x404f1000)
        libXi.so.6 => /usr/X11R6/lib/libXi.so.6 (0x40543000)
        libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x4054b000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x405fd000)
        libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40605000)
        libpthread.so.0 => /lib/i686/libpthread.so.0 (0x40613000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
        libdl.so.2 => /lib/libdl.so.2 (0x40644000)
        libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x40647000)
        libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x40650000)
</pre>

<p>
Retrace your steps if this doesn't look right.
</p>


<a name="install">
<H3>1.6 Installing the header and library files</H3>

<p>
The standard location for the OpenGL header files on Unix-type systems is
in <code>/usr/include/GL/</code>.
The standard location for the libraries is <code>/usr/lib/</code>.
For more information see, the
<a href="http://oss.sgi.com/projects/ogl-sample/ABI/" target="_parent">
Linux/OpenGL ABI specification</a>.
</p>

<p>
If you'd like Mesa to co-exist with another implementation of OpenGL that's
already installed, you'll have to choose different directories, like
<code>/usr/local/include/GL/</code> and <code>/usr/local/lib/</code>.
</p>

<p>
To install Mesa's headers and libraries, run <code>make install</code>.
But first, check the Mesa/configs/default file and examine the values
of the <b>INSTALL_DIR</b> and <b>DRI_DRIVER_INSTALL_DIR</b> variables.
Change them if needed, then run <code>make install</code>.
</p>

<p>
The variable
<b>DESTDIR</b> may also be used to install the contents to a temporary
staging directory.
This can be useful for package management.
For example: <code>make install DESTDIR=/somepath/</code>
</p>

<p>
Note: at runtime you can use the LD_LIBRARY_PATH environment variable
(on Linux at least) to switch
between the Mesa libraries and other vendor's libraries whenever you want.
This is a handy way to compare multiple OpenGL implementations.
</p>


<a name="pkg-config">
<H3>1.7 Building OpenGL programs with pkg-config</H3>

<p>
Running <code>make install</code> will install package configuration files
for the pkg-config utility.
</p>

<p>
When compiling your OpenGL application you can use pkg-config to determine
the proper compiler and linker flags.
</p>

<p>
For example, compiling and linking a GLUT application can be done with:
</p>
<pre>
   gcc `pkg-config --cflags --libs glut` mydemo.c -o mydemo
</pre>

<br>

<a name="windows">
<H2>2. Windows Compilation and Installation</H1>

<p>
Please see the <a href="#scons">instructions on building with SCons</a>.
Alternatively see <a href="README.WIN32">README.WIN32</a> file.
</p>



<a name="scons">
<H2>3. Building with SCons</H1>

<p>
To build Mesa with SCons on Linux or Windows do
</p>
<pre>
    scons
</pre>
<p>
The build output will be placed in
build/<i>platform</i>-<i>machine</i>-<i>debug</i>/..., where <i>platform</i> is for
example linux or windows, <i>machine</i> is x86 or x86_64, optionally followed
by -debug for debug builds.
</p>

<p>
To build Mesa with SCons for Windows on Linux using the MinGW crosscompiler toolchain do
</p>
<pre>
    scons platform=windows toolchain=crossmingw machine=x86 statetrackers=mesa drivers=softpipe,trace winsys=gdi
</pre>
<p>
This will create:
</p>
<ul>
<li>build/windows-x86-debug/gallium/targets/libgl-gdi/opengl32.dll &mdash; Mesa + Gallium + softpipe, binary compatible with Windows's opengl32.dll 
<li>build/windows-x86-debug/glut/glx/glut32.dll
<li>progs/build/windows-x86-debug/wgl/wglinfo.exe
<li>progs/build/windows-x86-debug/trivial/tri.exe
<li>and many other samples in progs/build/windows-x86-debug/...
</ul>
<p>
Put them all in the same directory to test them.
</p>


<a name="other">
<H2>4. Other systems</H1>

<p>
Documentation for other environments (some may be very out of date):
</p>

<UL>
<li><A HREF="README.VMS">README.VMS</A> - VMS
<LI><A HREF="README.GGI">README.GGI</A> - GGI
<LI><A HREF="README.3DFX">README.3DFX</A> - 3Dfx/Glide driver
<LI><A HREF="README.AMIWIN">README.AMIWIN</A> - Amiga Amiwin
<LI><A HREF="README.BEOS">README.BEOS</A> - BeOS
<LI><A HREF="README.D3D">README.D3D</A> - Direct3D driver
<LI><A HREF="README.DJ">README.DJ</A> - DJGPP
<LI><A HREF="README.LYNXOS">README.LYNXOS</A> - LynxOS
<LI><A HREF="README.MINGW32">README.MINGW32</A> - Mingw32
<LI><A HREF="README.NeXT">README.NeXT</A> - NeXT
<LI><A HREF="README.OpenStep">README.OpenStep</A> - OpenStep
<LI><A HREF="README.OS2">README.OS2</A> - OS/2
<LI><A HREF="README.WINDML">README.WINDML</A> - WindML
</UL>




</body>
</html>
