3 <TITLE>Compilation and Installation
</TITLE>
5 <link rel=
"stylesheet" type=
"text/css" href=
"mesa.css"></head>
10 <H1>Compilation and Installation
</H1>
13 <li><a href=
"#unix-x11">Unix / X11
</a>
14 <li><a href=
"#windows">Windows
</a>
15 <li><a href=
"#vms">VMS
</a>
16 <li><a href=
"#other">Other
</a>
22 <H2>1. Unix/X11 Compilation and Installation
</H1>
25 Mesa uses a rather conventional Makefile system.
26 A GNU autoconf/automake system used to be included, but was discarded
30 <li>It seldom worked on IRIX, Solaris, AIX, etc.
31 <li>It was very compilicated
32 <li>Nobody maintained it
33 <li>libtool was just too weird
36 If someone strongly feels that Mesa should have a autoconf/automake
37 system and wants to contribute one and maintain it, we'll consider
42 In Mesa
6.1 we modified the conventional Makefile system.
43 Instead of specifying all the various system configurations in the
44 Make-config file, there's a directory named
<code>configs/
</code> which
45 has an individual file for each configuration.
46 One of the configs gets copied to
<code>configs/current
</code>, which
47 is then included by all Makefiles.
51 <h3>1.1 Compilation
</h3>
54 Note: if you've obtained Mesa through CVS, do this first:
62 Just type
<b>make
</b> in the top-level directory.
63 You'll see a list of supported system configurations.
64 Choose one from the list (such as linux-x86), and type:
70 If you want to rebuild for a different configuration run
71 <code>make realclean
</code> before rebuilding.
75 <h3>1.2 The libraries
</h3>
78 When compilation has finished, look in the top-level
<b>lib/
</b> directory.
79 You'll see a set of library files similar to this:
82 lrwxrwxrwx
1 brian users
10 Mar
26 07:
53 libGL.so -
> libGL.so
.1*
83 lrwxrwxrwx
1 brian users
19 Mar
26 07:
53 libGL.so
.1 -
> libGL.so
.1.5.060100*
84 -rwxr-xr-x
1 brian users
3375861 Mar
26 07:
53 libGL.so
.1.5.060100*
85 lrwxrwxrwx
1 brian users
11 Mar
26 07:
53 libGLU.so -
> libGLU.so
.1*
86 lrwxrwxrwx
1 brian users
20 Mar
26 07:
53 libGLU.so
.1 -
> libGLU.so
.1.3.060100*
87 -rwxr-xr-x
1 brian users
549269 Mar
26 07:
53 libGLU.so
.1.3.060100*
88 lrwxrwxrwx
1 brian users
12 Mar
26 07:
53 libglut.so -
> libglut.so
.3*
89 lrwxrwxrwx
1 brian users
16 Mar
26 07:
53 libglut.so
.3 -
> libglut.so
.3.7.1*
90 -rwxr-xr-x
1 brian users
597754 Mar
26 07:
53 libglut.so
.3.7.1*
91 lrwxrwxrwx
1 brian users
11 Mar
26 08:
04 libGLw.so -
> libGLw.so
.1*
92 lrwxrwxrwx
1 brian users
15 Mar
26 08:
04 libGLw.so
.1 -
> libGLw.so
.1.0.0*
93 -rwxr-xr-x
1 brian users
20750 Mar
26 08:
04 libGLw.so
.1.0.0*
94 lrwxrwxrwx
1 brian users
14 Mar
26 07:
53 libOSMesa.so -
> libOSMesa.so
.6*
95 lrwxrwxrwx
1 brian users
23 Mar
26 07:
53 libOSMesa.so
.6 -
> libOSMesa.so
.6.1.060100*
96 -rwxr-xr-x
1 brian users
23871 Mar
26 07:
53 libOSMesa.so
.6.1.060100*
100 <b>libGL
</b> is the main OpenGL library (i.e. Mesa).
102 <b>libGLU
</b> is the OpenGL Utility library.
104 <b>libglut
</b> is the GLUT library.
106 <b>libGLw
</b> is the Xt/Motif OpenGL drawing area widget library.
108 <b>libOSMesa
</b> is the OSMesa (Off-Screen) interface library.
112 <h3>1.3 Running the demos
</h3>
115 If you downloaded/unpacked the MesaDemos-x.y.z.tar.gz archive or
116 obtained Mesa from CVS, the
<b>progs/
</b> directory will contain a
117 bunch of demonstration programs.
121 Before running a demo, you may have to set an environment variable
122 (such as
<b>LD_LIBRARY_PATH
</b> on Linux) to indicate where the
123 libraries are located. For example:
126 <b>cd
</b> into the Mesa
<b>lib/
</b> directory.
128 <b>setenv LD_LIBRARY_PATH ${cwd}
</b> (if using csh or tcsh shell)
132 <b>export LD_LIBRARY_PATH=${PWD}
</b> (if using bash or sh shell)
136 Next, change to the Mesa/demos/ directory:
139 <b>cd ../progs/demos
</b>
143 Run a demo such as gears:
150 If this doesn't work, try the
<b>Mesa/progs/xdemos/glxinfo
</b> program
151 and see that it prints the expected Mesa version number.
155 If you're using Linux or a similar OS, verify that the demo program is
156 being linked with the proper library files:
163 You should see something like this:
166 libglut.so
.3 =
> /home/brian/Mesa/lib/libglut.so
.3 (
0x40013000)
167 libGLU.so
.1 =
> /home/brian/Mesa/lib/libGLU.so
.1 (
0x40051000)
168 libGL.so
.1 =
> /home/brian/Mesa/lib/libGL.so
.1 (
0x400e0000)
169 libc.so
.6 =
> /lib/i686/libc.so
.6 (
0x42000000)
170 libm.so
.6 =
> /lib/i686/libm.so
.6 (
0x403da000)
171 libX11.so
.6 =
> /usr/X11R6/lib/libX11.so
.6 (
0x403fc000)
172 libXmu.so
.6 =
> /usr/X11R6/lib/libXmu.so
.6 (
0x404da000)
173 libXt.so
.6 =
> /usr/X11R6/lib/libXt.so
.6 (
0x404f1000)
174 libXi.so
.6 =
> /usr/X11R6/lib/libXi.so
.6 (
0x40543000)
175 libstdc++.so
.5 =
> /usr/lib/libstdc++.so
.5 (
0x4054b000)
176 libgcc_s.so
.1 =
> /lib/libgcc_s.so
.1 (
0x405fd000)
177 libXext.so
.6 =
> /usr/X11R6/lib/libXext.so
.6 (
0x40605000)
178 libpthread.so
.0 =
> /lib/i686/libpthread.so
.0 (
0x40613000)
179 /lib/ld-linux.so
.2 =
> /lib/ld-linux.so
.2 (
0x40000000)
180 libdl.so
.2 =
> /lib/libdl.so
.2 (
0x40644000)
181 libSM.so
.6 =
> /usr/X11R6/lib/libSM.so
.6 (
0x40647000)
182 libICE.so
.6 =
> /usr/X11R6/lib/libICE.so
.6 (
0x40650000)
186 Retrace your steps if this doesn't look right.
190 <H3>1.4 Installing the header and library files
</H3>
193 The standard location for the OpenGL header files on Unix-type systems is
194 in
<code>/usr/include/GL/
</code>.
195 The standard location for the libraries is
<code>/usr/lib/
</code>.
196 For more information see, the
197 <a href=
"http://oss.sgi.com/projects/ogl-sample/ABI/" target=
"_parent">
198 Linux/OpenGL ABI specification
</a>.
202 If you'd like Mesa to co-exist with another implementation of OpenGL that's
203 already installed, you'll have to choose different directories, like
204 <code>/usr/local/include/GL/
</code> and
<code>/usr/local/lib/
</code>.
208 To install Mesa's headers and libraries, run
<code>make install
</code>
209 You'll be prompted to enter alternative directories for the headers
214 Note: at runtime, you can set the LD_LIBRARY_PATH (on Linux) to switch
215 between the Mesa libs and another vendor libs whenever you want.
216 This is a handy way to compare multiple OpenGL implementations.
222 <H2>2. Windows Compilation and Installation
</H1>
225 Please see the
<a href=
"README.WIN32">README.WIN32
</a> file.
232 <H2>3. VMS Compilation and Installation
</H1>
235 Please see the
<a href=
"README.VMS">README.VMS
</a> file.
242 <H2>4. Other systems
</H1>
245 Documentation for other environments (some may be very out of date):
249 <LI><A HREF=
"README.GGI">README.GGI
</A> - GGI
250 <LI><A HREF=
"README.3DFX">README
.3DFX
</A> -
3Dfx/Glide driver
251 <LI><A HREF=
"README.AMIWIN">README.AMIWIN
</A> - Amiga Amiwin
252 <LI><A HREF=
"README.BEOS">README.BEOS
</A> - BeOS
253 <LI><A HREF=
"README.D3D">README.D3D
</A> - Direct3D driver
254 <LI><A HREF=
"README.DJ">README.DJ
</A> - DJGPP
255 <LI><A HREF=
"README.LYNXOS">README.LYNXOS
</A> - LynxOS
256 <LI><A HREF=
"README.MINGW32">README.MINGW32
</A> - Mingw32
257 <LI><A HREF=
"README.NeXT">README.NeXT
</A> - NeXT
258 <LI><A HREF=
"README.OpenStep">README.OpenStep
</A> - OpenStep
259 <LI><A HREF=
"README.OS2">README.OS2
</A> - OS/
2
260 <LI><A HREF=
"README.WINDML">README.WINDML
</A> - WindML