<HTML>

<TITLE>Getting Mesa</TITLE>

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

<BODY>

<H1>Downloading</H1>

<p>
Primary Mesa download site:
<a href="ftp://ftp.freedesktop.org/pub/mesa/"
target="_parent">freedesktop.org</a> (FTP)
</p>

<p>
When a new release is coming, release candidates (betas) may be found
<a href="ftp://ftp.freedesktop.org/pub/mesa/beta/" target="_parent">here</a>.
</p>


<p>
Mesa is distributed in several parts:
</p>
<ul>
<li><b>MesaLib-x.y.z</b> - the main Mesa library source code, drivers
    and documentation.
</li>
<li><b>MesaDemos-x.y.z</b> - OpenGL demonstration and test programs.
    Most of the programs require GLUT (either the
    <a href="http://www.opengl.org/resources/libraries/glut"
    target="_parent">original GLUT by Mark Kilgard</a> or
    <a href="http://freeglut.sourceforge.net" target="_parent">freeglut</a> or
    <a href="http://openglut.sourceforge.net" target="_parent">OpenGLUT</a>).
</li>
<li><b>MesaGLUT-x.y.z</b> - Mark Kilgard's GLUT, easily compiled and used
    with Mesa.  Plus, other implementation of GLUT for DOS, OS/2, BeOS, etc.
</li>
</ul>

<p>
If you're not interested in running the demos, you'll only need the first
package.
</p>

<p>
If you're new to this and not sure what you're doing, grab all three packages.
</p>

<p>
The packages are available in .tar.gz, .tar.bz2 and .zip formats.
Other sites might offer additional package formats.
</p>

<H1>Unpacking</H1>

<p>
All the packages should be in the same directory prior to unpacking.
</p>

<ul>
<li>To unpack .tar.gz files:
<pre>
	tar zxf MesaLib-X.Y.tar.gz
	tar zxf MesaDemos-X.Y.tar.gz
	tar zxf MesaGLUT-X.Y.tar.gz
</pre>
or
<pre>
	gzcat MesaLib-X.Y.tar.gz | tar xf -
	gzcat MesaDemos-X.Y.tar.gz | tar xf -
	gzcat MesaGLUT-X.Y.tar.gz | tar xf -
</pre>
or
<pre>
	gunzip MesaLib-X.Y.tar.gz ; tar xf MesaLib-X.Y.tar
	gunzip MesaDemos-X.Y.tar.gz ; tar xf MesaDemos-X.Y.tar
	gunzip MesaGLUT-X.Y.tar.gz ; tar xf MesaGLUT-X.Y.tar
</pre>
<li>To unpack .tar.bz2 files:
<pre>
	bunzip2 -c MesaLib-X.Y.tar.gz | tar xf -
	bunzip2 -c MesaDemos-X.Y.tar.gz | tar xf -
	bunzip2 -c MesaGLUT-X.Y.tar.gz | tar xf -
</pre>
<li>To unpack .zip files:
<pre>
	unzip MesaLib-X.Y.zip
	unzip MesaDemos-X.Y.zip
	unzip MesaGLUT-X.Y.zip
</pre>
</ul>


<h1>Contents</h1>

<p>
After unpacking you'll have these files and directories (among others):
</p>
<pre>
Makefile	- top-level Makefile for most systems
configs/	- makefile parameter files for various systems
include/	- GL header (include) files
bin/		- shell scripts for making shared libraries, etc
docs/		- documentation
src/		- source code for libraries
src/mesa	- sources for the main Mesa library and device drivers
src/glu		- libGLU source code
src/glx		- sources for building libGL with full GLX and DRI support
src/glw		- Xt/Motif/OpenGL widget code
</pre>

If you downloaded and unpacked the MesaDemos.X.Y package:

<pre>
progs/demos	- original Mesa demos
progs/xdemos	- GLX OpenGL/Mesa demos
progs/redbook	- examples from the OpenGL Programming Guide
progs/samples	- examples from SGI
progs/images/	- image files
</pre>

If you downloaded and unpacked the MesaGLUT.X.Y package:
<pre>
src/glut	- GLUT library source code
</pre>

<p>
Proceed to the <a href="install.html">compilation and installation
instructions</a>.
</p>


</BODY>
</HTML>
