install.html revision afc0428b5c5380fa5beaaa28c78faddd41da5284
1<HTML> 2 3<TITLE>Compilation and Installation</TITLE> 4 5<BODY text="#000000" bgcolor="#55bbff" link="#111188"> 6 7<H1>Compilation and Installation for Unix/X11</H1> 8 9<p> 10If you're not using a variant of Unix with X11, see the 11<a href="systems.html">Supported Systems and Drivers</a> section 12for instructions. 13</p> 14 15<p> 16There are two methods for building Mesa on Unix/X11 systems: 17</p> 18 19<dl> 20<dt><a href="#new">NEW-STYLE</a><dt> 21<dd> 22Basically, type "/configure" followed by "make" 23This <em>should</em> work on most Unix-like operating systems. 24Unfortunately, autoconf/automake seems to seldom work reliably on non-Linux 25systems. For that reason, the old-style make system is still supported 26(and is the preferred method of the Mesa developers). 27</dd> 28<br> 29<dt><a href="#old">OLD-STYLE</a><dt> 30<dd> 31Simply type <code>make</code> and you'll see a list of supported 32system configurations. Pick one and type <code>make</code> <em>config</em>. 33More details below. 34<br> 35</dd> 36</dl> 37 38<p> 39<B>NOTE</b>: The GLUT library and demonstrations programs are in the 40MesaDemos-x.y.z.tar.gz file. If you don't have GLUT or you want to 41run some demos, download the MesaDemos package too. 42</p> 43 44<p> 45In either case, building Mesa entails the following: 46<p> 47<ul> 48<li>Compiling libGL, the OpenGL-replacement library. 49<li>Compiling libGLU, the OpenGL Utility library. 50<li>Compiling libglut, the GLUT library (if you downloaded the Mesa demos 51package) 52<li>Compiling the demonstration programs in the directories: 53<code>demos, xdemos, samples</code> and <code>book</code> 54(if you downloaded the Mesa demos package.) 55</ul> 56 57 58<a name="new"> 59<H2>NEW-STYLE compilation and installation</H2> 60 61<p> 62<b> 0.</b> If you've downloaded Mesa via CVS there will not be a "configure" 63 script. You'll have to run the "bootstrap" script first. This script 64 may not work on any OS other than Linux. You'll need these programs 65 to run the bootstrap script: 66</p> 67 68<pre> 69 autoconf 2.50 70 automake 1.4-p2 71 libtool 1.4 72</pre> 73 74<p> 75<b>1.</b> Run the configure script 76</p> 77 78<pre> 79 /configure [options] 80</pre> 81 82<p> 83For Linux, it is recommended that you use: 84</p> 85<pre> 86 /configure --prefix=/usr 87</pre> 88 89So that the headers and libs are located according to the Linux/OpenGL 90standard spec at http://oss.sgi.com/projects/ogl-sample/ABI/ 91</p> 92<p> 93For Red Hat 8.0, Mandrake 9.1 and other Linux distros, you may have to use 94the following: 95</p> 96<pre> 97 export LDFLAGS="-lstdc++" ; /configure --prefix=/usr 98 or 99 setenv LDFLAGS -lstdc++ ; /configure --prefix=/usr 100</pre> 101<p> 102This works around a problem when building the GLU library. It needs to 103be linked with the C++ runtime library, but libtool (for some reason) 104doesn't do this. 105</p> 106<pre> 107Possible options are: 108 109--prefix=DIR 110 The toplevel directory of the hierachy in which Mesa 111 will be installed (DIR/include,DIR/lib etc.). 112 The default is "/usr/local". 113 114--sysconfdir=DIR 115 The directory where Mesa configuration files 116 will be stored. The default is "$prefix/etc". 117 You may want to overwrite the default with --sysconfdir=/etc. 118 119--enable-static 120 Enable building of static libraries. 121 Static libraries are NOT built by default. 122 123--disable-shared 124 Disable building of shared libraries. 125 Shared libraries are built by default. 126 127--with-pic 128--without-pic 129 In normal operation, libtool will build shared libraries from 130 PIC objects and static archives from non-PIC objects, except where one 131 or the other is not provided by the target host. By specifying 132 --with-pic you are asking libtool to build static archives from 133 PIC objects, and similarly by specifying --without-pic you are asking 134 libtool to build shared libraries from non-PIC objects. 135 libtool will only honour this flag where it will produce a 136 working library, otherwise it reverts to the default. 137 138--enable-debug 139 Enable debugging messages (disabled by default). 140 141--enable-profile 142 Enable profiling (disabled by default). 143 144--disable-optimize 145 Disable extra optimizations (enabled by default, 146 i.e., optimize for maximum performance). 147 148--enable-warn 149 Enable extended compiler warnings (disabled by default). 150 151--enable-x86[=ARG] 152--disable-x86 153 Enable/disable x86 assembler support to speed up Mesa 154 (autodetected by default). You may set `on' or `off'. 155 156--enable-3dnow[=ARG] 157--disable-3dnow 158 Enable/disable 3Dnow support to speed up Mesa 159 (autodetected by default). You may set `on' or `off'. 160 161--enable-mmx[=ARG] 162--disable-mmx 163 Enable/disable MMX support to speed up Mesa 164 (autodetected by default). You may set `on' or `off'. 165 166--enable-sse[=ARG] 167--disable-sse 168 Enable/disable SSE support to speed up Mesa 169 (autodetected by default). You may set `on' or `off'. 170 If you have a PentiumIII and want to use SSE make sure you have the 171 PIII Linux kernel-patch installed or things will fail! 172 You can get the patch from http://www.redhat.com/~dledford/linux_kernel.html 173 174--with-glide[=DIR] 175--without-glide 176 Enable/disable support for Glide (disabled by default). 177 DIR is the installation directory of Glide. 178 If Glide cannot be found, the driver won't be built. 179 180--with-glut[=DIR] 181--without-glut 182 Don't/use already-installed GLUT (autodetected by default). 183 DIR is the installation directory of Glut. 184 If GLUT cannot be found, the version shipped with Mesa will be built. 185 186--with-ggi[=DIR] 187--without-ggi 188 Enable/disable support for GGI (autodetected by default). 189 DIR is the installation directory of GGI. 190 If GGI cannot be found, the driver won't be built. 191 192--disable-ggi-fbdev 193 Don't build the GGI fbdev target (autodetected by default). 194 195--disable-ggi-genkgi 196 Don't build the GGI generic KGI driver (autodetected by default). 197 198--disable-ggi-savage4 199 Don't build the GGI Savage4 KGI driver (autodetected by default). 200 201--disable-osmesa 202 Disable OSmesa (offscreen rendering) support (enabled by default). 203 204--with-svga[=DIR] 205--without-svga 206 Enable/disable support for SVGALib (autodetected by default). 207 DIR is the installation directory of SVGALib. 208 If SVGALib cannot be found, the driver won't be built. 209 210--x-includes=DIR 211 Search for the X include files in DIR. 212 213--x-libraries=DIR 214 Search for the X library files in DIR. 215</pre> 216 217<p> 218User specific compiler options can be set using the shell variable 219CFLAGS. For instance, 220</p> 221<pre> 222 CFLAGS="-g -O2" /configure 223</pre> 224<p> 225(on some systems: env CFLAGS="-g -O2" /configure) 226sets the compiler flags to "-g -O2". 227</p> 228<p> 229For more options run "/configure --help" and read INSTALL.GNU. 230</p> 231 232<p> 233<b>2.</b> To build the Mesa libraries run: 234</p> 235<pre> 236 make 237</pre> 238<p>(on some systems you may need to run <code>gmake</code> or 239<code>gnumake</code> instead) 240</p> 241<p> 242When finished, libGL.so will be in src/.libs/ and libGLU.so will be in 243si-glu/.libs/, etc. 244</p> 245<p> 246Optionally, you can strip the libraries using 247</p> 248<pre> 249 make strip 250</pre> 251<p> 252Now make sure that you have the permissions to install Mesa in the 253specified directories, for example, by becoming super user ("su") 254Then run: 255</p> 256<pre> 257 make install 258</pre> 259<p> 260Mesa is now installed. 261Please don't move the installed files but rerun all installation 262steps if you want to use other directories. 263</p> 264 265<p> 266<b>3.</b>To test whether Mesa works properly you might want to run the 267Mesa demos: 268</p> 269<pre> 270 make check 271</pre> 272<p> 273Builds all demos. 274</p> 275<pre> 276 make exec 277</pre> 278<p> 279Builds and executes all demos. 280</p> 281 282 283<a name="old"> 284<H2>OLD-STYLE compilation and installation</H2> 285 286<p> 287This procedure usually works when <code>/configure ; make</code> fails. 288</p> 289 290<p> 291<b>Note</b>: If you tried <code>/configure ; make</code> but it failed, 292first copy the top-level <code>Makefile.X11</code> file over 293<code>Makefile</code>. 294</p> 295 296<p> 297<B>Also Note</B>: if you've obtained Mesa directly from CVS you'll have 298to copy the top-level Makefile.X11 to Makefile. 299</p> 300 301<p> 302Just type <code>make</code> alone. 303You'll see a list of supported system configurations. 304Choose one and type <code>make</code> <em>config</em> 305(for example <code>make linux-x86</code>). 306The Mesa libraries and demo programs will be compiled. 307</p> 308 309<H3>Header and library files</H3> 310 311<p> 312The standard location for the OpenGL header files on Unix-type systems is 313in <code>/usr/include/GL/</code>. 314The standard location for the libraries is <code>/usr/lib/</code>. 315For more information see, the 316<a href="http://oss.sgi.com/projects/ogl-sample/ABI/" target="_parent"> 317Linux/OpenGL ABI specification</a>. 318</p> 319 320<p> 321If you'd like Mesa to co-exist with another implementation of OpenGL that's 322already installed, you'll have to choose different directories, like 323<code>/usr/local/include/GL/</code> and <code>/usr/local/lib/</code>. 324</p> 325 326<p> 327To install the Mesa headers, do this: 328<pre> 329 cp -r include/GL /usr/include 330</pre> 331 332<p> 333To install the Mesa libraries, do this: 334</p> 335<pre> 336 cp -pd lib/* /usr/lib 337 338 (The -pd options preserve symbolic links) 339</pre> 340 341<H3>LD_LIBRARY_PATH</H3> 342 343<p> 344On Linux and similar operating systems the <code>LD_LIBRARY_PATH</code> 345environment variable can be used to indicate a list of directories to 346search for shared libraries. 347If you don't install Mesa in <code>/usr/lib/</code> you may have to 348set the <code>LD_LIBRARY_PATH</code> variable in order to use the Mesa 349libraries. 350</p> 351 352</body> 353</html> 354