| <HTML> |
| |
| <TITLE>Compilation and Installation</TITLE> |
| |
| <BODY text="#000000" bgcolor="#55bbff" link="#111188"> |
| |
| <H1>Compilation and Installation for Unix/X11</H1> |
| |
| <p> |
| If you're not using a variant of Unix with X11, see the |
| <a href="systems.html">Supported Systems and Drivers</a> section |
| for instructions. |
| </p> |
| |
| <p> |
| There are two methods for building Mesa on Unix/X11 systems: |
| </p> |
| |
| <dl> |
| <dt><a href="#new">NEW-STYLE</a><dt> |
| <dd> |
| Basically, type "./configure" followed by "make" |
| This <em>should</em> work on most Unix-like operating systems. |
| Unfortunately, autoconf/automake seems to seldom work reliably on non-Linux |
| systems. For that reason, the old-style make system is still supported |
| (and is the preferred method of the Mesa developers). |
| </dd> |
| <br> |
| <dt><a href="#old">OLD-STYLE</a><dt> |
| <dd> |
| Simply type <code>make</code> and you'll see a list of supported |
| system configurations. Pick one and type <code>make</code> <em>config</em>. |
| More details below. |
| </dd> |
| </dl> |
| |
| <p> |
| <B>NOTE</b>: The GLUT library and demonstrations programs are in the |
| MesaDemos-x.y.z.tar.gz file. If you don't have GLUT or you want to |
| run some demos, download the MesaDemos package too. |
| </p> |
| |
| <p> |
| In either case, building Mesa entails the following: |
| <p> |
| <ul> |
| <li>Compiling libGL, the OpenGL-replacement library. |
| <li>Compiling libGLU, the OpenGL Utility library. |
| <li>Compiling libglut, the GLUT library (if you downloaded the Mesa demos |
| package) |
| <li>Compiling the demonstration programs in the directories: |
| <code>demos, xdemos, samples</code> and <code>book</code> |
| (if you downloaded the Mesa demos package.) |
| </ul> |
| |
| |
| <a name="new"> |
| <H2>NEW-STYLE compilation and installation</H2> |
| |
| <p> |
| <b> 0.</b> If you've downloaded Mesa via CVS there will not be a "configure" |
| script. You'll have to run the "bootstrap" script first. This script |
| may not work on any OS other than Linux. You'll need these programs |
| to run the bootstrap script: |
| </p> |
| |
| <pre> |
| autoconf 2.50 |
| automake 1.4-p2 |
| libtool 1.4 |
| </pre> |
| |
| <p> |
| <b>1.</b> Run the configure script |
| </p> |
| |
| <pre> |
| ./configure [options] |
| </pre> |
| |
| <p> |
| For Linux, it is recommended that you use: |
| </p> |
| <pre> |
| ./configure --prefix=/usr |
| </pre> |
| |
| So that the headers and libs are located according to the Linux/OpenGL |
| standard spec at http://oss.sgi.com/projects/ogl-sample/ABI/ |
| </p> |
| <p> |
| For Red Hat 8.0, Mandrake 9.1 and other Linux distros, you may have to use |
| the following: |
| </p> |
| <pre> |
| export LDFLAGS="-lstdc++" ; ./configure --prefix=/usr |
| or |
| setenv LDFLAGS -lstdc++ ; ./configure --prefix=/usr |
| </pre> |
| <p> |
| This works around a problem when building the GLU library. It needs to |
| be linked with the C++ runtime library, but libtool (for some reason) |
| doesn't do this. |
| </p> |
| <pre> |
| Possible options are: |
| |
| --prefix=DIR |
| The toplevel directory of the hierachy in which Mesa |
| will be installed (DIR/include,DIR/lib etc.). |
| The default is "/usr/local". |
| |
| --sysconfdir=DIR |
| The directory where Mesa configuration files |
| will be stored. The default is "$prefix/etc". |
| You may want to overwrite the default with --sysconfdir=/etc. |
| |
| --enable-static |
| Enable building of static libraries. |
| Static libraries are NOT built by default. |
| |
| --disable-shared |
| Disable building of shared libraries. |
| Shared libraries are built by default. |
| |
| --with-pic |
| --without-pic |
| In normal operation, libtool will build shared libraries from |
| PIC objects and static archives from non-PIC objects, except where one |
| or the other is not provided by the target host. By specifying |
| --with-pic you are asking libtool to build static archives from |
| PIC objects, and similarly by specifying --without-pic you are asking |
| libtool to build shared libraries from non-PIC objects. |
| libtool will only honour this flag where it will produce a |
| working library, otherwise it reverts to the default. |
| |
| --enable-debug |
| Enable debugging messages (disabled by default). |
| |
| --enable-profile |
| Enable profiling (disabled by default). |
| |
| --disable-optimize |
| Disable extra optimizations (enabled by default, |
| i.e., optimize for maximum performance). |
| |
| --enable-warn |
| Enable extended compiler warnings (disabled by default). |
| |
| --enable-x86[=ARG] |
| --disable-x86 |
| Enable/disable x86 assembler support to speed up Mesa |
| (autodetected by default). You may set `on' or `off'. |
| |
| --enable-3dnow[=ARG] |
| --disable-3dnow |
| Enable/disable 3Dnow support to speed up Mesa |
| (autodetected by default). You may set `on' or `off'. |
| |
| --enable-mmx[=ARG] |
| --disable-mmx |
| Enable/disable MMX support to speed up Mesa |
| (autodetected by default). You may set `on' or `off'. |
| |
| --enable-sse[=ARG] |
| --disable-sse |
| Enable/disable SSE support to speed up Mesa |
| (autodetected by default). You may set `on' or `off'. |
| If you have a PentiumIII and want to use SSE make sure you have the |
| PIII Linux kernel-patch installed or things will fail! |
| You can get the patch from http://www.redhat.com/~dledford/linux_kernel.html |
| |
| --with-glide[=DIR] |
| --without-glide |
| Enable/disable support for Glide (disabled by default). |
| DIR is the installation directory of Glide. |
| If Glide cannot be found, the driver won't be built. |
| |
| --with-glut[=DIR] |
| --without-glut |
| Don't/use already-installed GLUT (autodetected by default). |
| DIR is the installation directory of Glut. |
| If GLUT cannot be found, the version shipped with Mesa will be built. |
| |
| --with-ggi[=DIR] |
| --without-ggi |
| Enable/disable support for GGI (autodetected by default). |
| DIR is the installation directory of GGI. |
| If GGI cannot be found, the driver won't be built. |
| |
| --disable-ggi-fbdev |
| Don't build the GGI fbdev target (autodetected by default). |
| |
| --disable-ggi-genkgi |
| Don't build the GGI generic KGI driver (autodetected by default). |
| |
| --disable-ggi-savage4 |
| Don't build the GGI Savage4 KGI driver (autodetected by default). |
| |
| --disable-osmesa |
| Disable OSmesa (offscreen rendering) support (enabled by default). |
| |
| --with-svga[=DIR] |
| --without-svga |
| Enable/disable support for SVGALib (autodetected by default). |
| DIR is the installation directory of SVGALib. |
| If SVGALib cannot be found, the driver won't be built. |
| |
| --x-includes=DIR |
| Search for the X include files in DIR. |
| |
| --x-libraries=DIR |
| Search for the X library files in DIR. |
| </pre> |
| |
| <p> |
| User specific compiler options can be set using the shell variable |
| CFLAGS. For instance, |
| </p> |
| <pre> |
| CFLAGS="-g -O2" ./configure |
| </pre> |
| <p> |
| (on some systems: env CFLAGS="-g -O2" ./configure) |
| sets the compiler flags to "-g -O2". |
| </p> |
| <p> |
| For more options run "./configure --help" and read INSTALL.GNU. |
| </p> |
| |
| <p> |
| <b>2.</b> To build the Mesa libraries run: |
| </p> |
| <pre> |
| make |
| </pre> |
| <p> |
| When finished, libGL.so will be in src/.libs/ and libGLU.so will be in |
| si-glu/.libs/, etc. |
| </p> |
| <p> |
| Optionally, you can strip the libraries using |
| </p> |
| <pre> |
| make strip |
| </pre> |
| <p> |
| Now make sure that you have the permissions to install Mesa in the |
| specified directories, for example, by becoming super user ("su") |
| Then run: |
| </p> |
| <pre> |
| make install |
| </pre> |
| <p> |
| Mesa is now installed. |
| Please don't move the installed files but rerun all installation |
| steps if you want to use other directories. |
| </p> |
| |
| <p> |
| <b>3.</b>To test whether Mesa works properly you might want to run the |
| Mesa demos: |
| </p> |
| <pre> |
| make check |
| </pre> |
| <p> |
| Builds all demos. |
| </p> |
| <pre> |
| make exec |
| </pre> |
| <p> |
| Builds and executes all demos. |
| </p> |
| |
| |
| <a name="old"> |
| <H2>OLD-STYLE compilation and installation</H2> |
| |
| <p> |
| This procedure usually works when <code>./configure ; make</code> fails. |
| </p> |
| |
| <p> |
| <b>Note</b>: If you tried <code>./configure ; make</code> but it failed, |
| first copy the top-level <code>Makefile.X11</code> file over |
| <code>Makefile</code>. |
| </p> |
| |
| <p> |
| Just type <code>make</code> alone. |
| You'll see a list of supported system configurations. |
| Choose one and type <code>make</code> <em>config</em> |
| (for example <code>make linux-x86</code>). |
| The Mesa libraries and demo programs will be compiled. |
| </p> |
| |
| <H3>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 the Mesa headers, do this: |
| <pre> |
| cp -r include/GL /usr/include |
| </pre> |
| |
| <p> |
| To install the Mesa libraries, do this: |
| </p> |
| <pre> |
| cp -pd lib/* /usr/lib |
| |
| (The -pd options preserve symbolic links) |
| </pre> |
| |
| <H3>LD_LIBRARY_PATH</H3> |
| |
| <p> |
| On Linux and similar operating systems the <code>LD_LIBRARY_PATH</code> |
| environment variable can be used to indicate a list of directories to |
| search for shared libraries. |
| If you don't install Mesa in <code>/usr/lib/</code> you may have to |
| set the <code>LD_LIBRARY_PATH</code> variable in order to use the Mesa |
| libraries. |
| </p> |
| |
| </body> |
| </html> |