install.html revision adc58e96d088615abc8325ac8c78ec770931448d
1<HTML> 2 3<TITLE>Compiling and Installing</TITLE> 4 5<link rel="stylesheet" type="text/css" href="mesa.css"></head> 6 7<BODY> 8 9 10<H1>Compiling and Installing</H1> 11 12<ol> 13<li><a href="#prereq-general">Prerequisites for building</a> 14 <ul> 15 <li><a href="#prereq-general">General prerequisites</a> 16 <li><a href="#prereq-dri">For DRI and hardware acceleration</a> 17 </ul> 18<li><a href="#autoconf">Building with autoconf (Linux/Unix/X11)</a> 19<li><a href="#scons">Building with SCons (Windows/Linux)</a> 20<li><a href="#other">Building for other systems</a> 21<li><a href="#libs">Library Information</a> 22<li><a href="#pkg-config">Building OpenGL programs with pkg-config 23</ol> 24 25 26<a name="prereq-general"> 27<h1>1. Prerequisites for building</h1> 28 29<h2>1.1 General</h2> 30<ul> 31<li>lex / yacc - for building the GLSL compiler. 32On Linux systems, flex and bison are used. 33Versions 2.5.35 and 2.4.1, respectively, (or later) should work. 34<br> 35<br> 36On Windows with MinGW, install flex and bison with: 37<pre>mingw-get install msys-flex msys-bison</pre> 38</li> 39<li>python - Python is needed for building the Gallium components. 40Version 2.6.4 or later should work. 41<br> 42<br> 43To build OpenGL ES 1.1 and 2.0 you'll also need 44<a href="http://xmlsoft.org/sources/win32/python/libxml2-python-2.7.7.win32-py2.7.exe">libxml2-python</a>. 45</li> 46</ul> 47 48 49<a name="prereq-dri"> 50<h3>1.2 For DRI and hardware acceleration</h3> 51 52<p> 53The following are required for DRI-based hardware acceleration with Mesa: 54</p> 55 56<ul> 57<li><a href="http://xorg.freedesktop.org/releases/individual/proto/" 58target="_parent">dri2proto</a> version 2.6 or later 59<li><a href="http://dri.freedesktop.org/libdrm/" target="_parent">libDRM</a> 60version 2.4.33 or later 61<li>Xorg server version 1.5 or later 62<li>Linux 2.6.28 or later 63</ul> 64</p> 65<p> 66If you're using a fedora distro the following command should install all 67the needed dependencies: 68<pre> 69 sudo yum install flex bison imake libtool xorg-x11-proto-devel libdrm-devel \ 70 gcc-c++ xorg-x11-server-devel libXi-devel libXmu-devel libXdamage-devel git \ 71 expat-devel llvm-devel 72</pre> 73 74 75 76<a name="autoconf"> 77<H1>2. Building with autoconf (Linux/Unix/X11)</H1> 78 79<p> 80The primary method to build Mesa on Unix systems is with autoconf. 81</p> 82 83<p> 84The general approach is the standard: 85<pre> 86 /configure 87 make 88 sudo make install 89</pre> 90But please read the <a href="autoconf.html">detailed autoconf instructions</a> 91for more details. 92</p> 93 94 95 96<a name="scons"> 97<H1>3. Building with SCons (Windows/Linux)</H1> 98 99<p> 100To build Mesa with SCons on Linux or Windows do 101</p> 102<pre> 103 scons 104</pre> 105<p> 106The build output will be placed in 107build/<i>platform</i>-<i>machine</i>-<i>debug</i>/..., where <i>platform</i> is for 108example linux or windows, <i>machine</i> is x86 or x86_64, optionally followed 109by -debug for debug builds. 110</p> 111 112<p> 113To build Mesa with SCons for Windows on Linux using the MinGW crosscompiler toolchain do 114</p> 115<pre> 116 scons platform=windows toolchain=crossmingw machine=x86 mesagdi libgl-gdi 117</pre> 118<p> 119This will create: 120</p> 121<ul> 122<li>build/windows-x86-debug/mesa/drivers/windows/gdi/opengl32.dll — Mesa + swrast, binary compatible with Windows's opengl32.dll 123<li>build/windows-x86-debug/gallium/targets/libgl-gdi/opengl32.dll — Mesa + Gallium + softpipe, binary compatible with Windows's opengl32.dll 124</ul> 125<p> 126Put them all in the same directory to test them. 127</p> 128 129 130 131<a name="other"> 132<H1>4. Building for other systems</H1> 133 134<p> 135Documentation for other environments (some may be very out of date): 136</p> 137 138<UL> 139<li><A HREF="README.VMS">README.VMS</A> - VMS 140<LI><A HREF="README.CYGWIN">README.CYGWIN</A> - Cygwin 141<LI><A HREF="README.WIN32">README.WIN32</A> - Win32 142</UL> 143 144 145 146<a name="libs"> 147<H1>5. Library Information</H1> 148 149<p> 150When compilation has finished, look in the top-level <code>lib/</code> 151(or <code>lib64/</code>) directory. 152You'll see a set of library files similar to this: 153</p> 154<pre> 155lrwxrwxrwx 1 brian users 10 Mar 26 07:53 libGL.so -> libGL.so.1* 156lrwxrwxrwx 1 brian users 19 Mar 26 07:53 libGL.so.1 -> libGL.so.1.5.060100* 157-rwxr-xr-x 1 brian users 3375861 Mar 26 07:53 libGL.so.1.5.060100* 158lrwxrwxrwx 1 brian users 11 Mar 26 07:53 libGLU.so -> libGLU.so.1* 159lrwxrwxrwx 1 brian users 20 Mar 26 07:53 libGLU.so.1 -> libGLU.so.1.3.060100* 160-rwxr-xr-x 1 brian users 549269 Mar 26 07:53 libGLU.so.1.3.060100* 161lrwxrwxrwx 1 brian users 14 Mar 26 07:53 libOSMesa.so -> libOSMesa.so.6* 162lrwxrwxrwx 1 brian users 23 Mar 26 07:53 libOSMesa.so.6 -> libOSMesa.so.6.1.060100* 163-rwxr-xr-x 1 brian users 23871 Mar 26 07:53 libOSMesa.so.6.1.060100* 164</pre> 165 166<p> 167<b>libGL</b> is the main OpenGL library (i.e. Mesa). 168<br> 169<b>libGLU</b> is the OpenGL Utility library. 170<br> 171<b>libOSMesa</b> is the OSMesa (Off-Screen) interface library. 172</p> 173 174<p> 175If you built the DRI hardware drivers, you'll also see the DRI drivers: 176</p> 177<pre> 178-rwxr-xr-x 1 brian users 16895413 Jul 21 12:11 i915_dri.so 179-rwxr-xr-x 1 brian users 16895413 Jul 21 12:11 i965_dri.so 180-rwxr-xr-x 1 brian users 11849858 Jul 21 12:12 r200_dri.so 181-rwxr-xr-x 1 brian users 16050488 Jul 21 12:11 r300_dri.so 182-rwxr-xr-x 1 brian users 11757388 Jul 21 12:12 radeon_dri.so 183</pre> 184 185<p> 186If you built with Gallium support, look in lib/gallium/ for Gallium-based 187versions of libGL and device drivers. 188</p> 189 190 191<a name="pkg-config"> 192<H1>6. Building OpenGL programs with pkg-config</H1> 193 194<p> 195Running <code>make install</code> will install package configuration files 196for the pkg-config utility. 197</p> 198 199<p> 200When compiling your OpenGL application you can use pkg-config to determine 201the proper compiler and linker flags. 202</p> 203 204<p> 205For example, compiling and linking a GLUT application can be done with: 206</p> 207<pre> 208 gcc `pkg-config --cflags --libs glut` mydemo.c -o mydemo 209</pre> 210 211<br> 212 213 214</body> 215</html> 216