README.WIN32 revision af4e2f46653cbc7ceaf1291ba22087ec5758d07f
1File: docs/README.WIN32
2
3Last updated: Apr 25, 2007
4
5NOTE: This information only applies to Mesa 7.8 and older.  Nowadays
6it's probably better to use Scons to build for Windows.
7
8
9Quick Start
10----- -----
11
12Unzip the MesaLib, MesaGLUT, and MesaDemos ZIP files into the same
13directory.  The libs and demos build separately, so if you do not care
14about the demos or GLUT, you only need to unzip MesaLib.  If you unzip
15more than one ZIP file, they all need to be unzipped into the same
16directory.  Don't worry, you will not overwrite anything.
17
18The Windows build system uses Microsoft Visual Studio.  Project files
19for a specific version of Visual Studio are in their own directory in
20the top-level "windows" directory.  For example, Visual Studio 8 files
21are in windows/VC8.
22
23Support has been dropped for versions of Visual Studio prior to 8. The
24main reason is because Microsoft now provides a free compiler and
25developer environment.  Visual Studio Express can be found at
26
27http://msdn.microsoft.com/vstudio/express/visualc/default.aspx
28
29You'll also need the Platform SDK.  Instructions for obtaining and
30using the SDK with Visual Studio Express can be found at
31
32http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/
33
34The project files to build the core Mesa library, Windows Mesa
35drivers, OSMesa, and GLU are in the mesa directory.  The project files
36to build GLUT and some demo programs are in the progs directory.
37
38Makefiles are no longer shipped or supported, but can be generated
39from the projects using Visual Studio.
40
41
42Windows Drivers
43------- -------
44
45At this time, only the GDI driver is known to work.  Most of the demos
46in progs/demos should work with this driver.
47
48Source code also exists in the tree for other drivers in
49src/mesa/drivers/windows, but the status of this code is unknown.
50
51The GDI driver operates basically by writing pixel spans into a DIB
52section and then blitting the DIB to the window.  The driver was
53recently cleaned up and rewitten and so may have bugs or may be
54missing some functionality.  The older versions of the CVS source may
55be useful in figuring out any problems, or report them to me.
56
57To build Mesa with the GDI driver, build the mesa, gdi, and glu
58projects in the Visual Studio workspace found at
59
60	windows/VC8/mesa/mesa.sln
61
62The osmesa DLL can also be built with the osmesa project.
63
64The build system creates a lib top-level directory and copies
65resulting LIB and DLL files to this lib directory.  The files are:
66
67	OPENGL32.LIB, GLU32.LIB, OSMESA32.LIB
68	OPENGL32.DLL, GLU32.DLL, OSMESA32.DLL
69
70If the MesaDemos ZIP file was extracted, the DLL files are also copied
71to the demos directory.  This facilitates running the demos as described
72below.
73
74
75GLUT and Demos
76---- --- -----
77
78A Visual Studio workspace can be found at 
79
80	windows/VC8/progs/progs.sln
81
82It can be used to build GLUT and a few demos.  The GLUT lib and DLL
83are copied to the top-level lib directory, along with the Mesa libs.
84
85The demo build system expects to find the LIB files in the top level
86lib directory, so you must build the Mesa libs first.  The demo
87executables are placed in the demos directory, because some of them
88rely on data files found there.  Also, the Mesa lib DLL's were copied
89there by the Mesa lib build process.  Therefore, you should be able to
90simply run the demo executables from the demo directory.
91
92If you want to run the demos from the Visual Studio, you may have to
93change the startup directory and explicitly state where the executables are.
94
95You may also build all the demo programs by using a makefile.  Go to
96the progs/demos directory and make sure you have executed VCVARS32.BAT
97or whatever setup script is appropriate for your compiler.  Then,
98
99	nmake -f Makefile.win
100
101should build all the demos.
102
103
104Build System Notes
105----- ------ -----
106
107VC8
108---
109
110No notes.
111
112
113General
114-------
115
116After building, you can copy the above DLL files to a place in your
117PATH such as $SystemRoot/SYSTEM32.  If you don't like putting things
118in a system directory, place them in the same directory as the
119executable(s).  Be careful about accidentially overwriting files of
120the same name in the SYSTEM32 directory.
121
122The DLL files are built so that the external entry points use the
123stdcall calling convention.
124
125Static LIB files are not built.  The LIB files that are built with are
126the linker import files associated with the DLL files.
127
128The si-glu sources are used to build the GLU libs.  This was done
129mainly to get the better tessellator code.
130
131To build "mangled" Mesa, add the preprocessor define USE_MGL_NAMESPACE
132to the project settings.  You will also need to edit src/mesa.def to
133change all the gl* symbols to mgl*.  Because this is easy to do with a
134global replace operation in a text editor, no additional mangled
135version of mesa.def is maintained or shipped.
136
137If you have a Windows-related build problem or question, please post
138to the mesa-dev or mesa-users list.
139