blob: 8dc59b00fd493b8829cd3e448e191cfe14f58bb2 [file] [log] [blame]
Karl Schultzb5bfe2f2001-10-15 20:38:12 +00001File: docs/README.WIN32
2
Karl Schultz18b72d12006-03-31 06:54:11 +00003Last updated: Mar 31, 2006 - Karl Schultz - kschultz@users.sourceforge.net
Karl Schultzb5bfe2f2001-10-15 20:38:12 +00004
5Quick Start
Karl Schultz516546a2005-06-02 23:17:02 +00006----- -----
Karl Schultzb5bfe2f2001-10-15 20:38:12 +00007
Karl Schultze43edd32006-03-29 23:53:43 +00008Unzip the MesaLib, MesaGLUT, and MesaDemos ZIP files into the same
9directory. The libs and demos build separately, so if you do not care
10about the demos or GLUT, you only need to unzip MesaLib. If you unzip
11more than one ZIP file, they all need to be unzipped into the same
12directory. Don't worry, you will not overwrite anything.
Karl Schultzaf76b422002-11-08 18:00:04 +000013
Karl Schultz516546a2005-06-02 23:17:02 +000014The Windows build system uses Microsoft Visual Studio. Project files
15for a specific version of Visual Studio are in their own directory in
16the top-level "windows" directory. For example, Visual Studio 6 files
17are in windows/VC6. If a directory does not exist for your version of
18Visual Studio, you can try importing the project files from an earlier
19version of Visual Studio. At this time, project files exist for
Karl Schultz5f79d272005-07-01 21:08:00 +000020Version 6 and Version 7. The code has been built with a beta version
21of Version 8 and it runs on 64-bit Windows. If you want to try this,
22start by importing the VC7 files and create the 64-bit targets in the
23configuration manager.
Karl Schultzb5bfe2f2001-10-15 20:38:12 +000024
Karl Schultze43edd32006-03-29 23:53:43 +000025It is likely that the new and free Visual Studio Express can be used
26to build Mesa, but it hasn't been tried yet. Start with the VC7
27project files.
28
Karl Schultz516546a2005-06-02 23:17:02 +000029The project files to build the core Mesa library, Windows Mesa
30drivers, OSMesa, and GLU are in the mesa directory. The project files
31to build GLUT and some demo programs are in the progs directory.
Karl Schultz7ff3c9e2004-10-01 21:22:10 +000032
Karl Schultz516546a2005-06-02 23:17:02 +000033Makefiles are no longer shipped or supported, but can be generated
34from the projects using Visual Studio.
Karl Schultzb5bfe2f2001-10-15 20:38:12 +000035
Karl Schultz7ff3c9e2004-10-01 21:22:10 +000036
Karl Schultz516546a2005-06-02 23:17:02 +000037Windows Drivers
38------- -------
39
Karl Schultz18b72d12006-03-31 06:54:11 +000040At this time, only the GDI driver is known to work. Most of the demos
41in progs/demos should work with this driver.
Karl Schultze43edd32006-03-29 23:53:43 +000042
43Source code also exists in the tree for other drivers in
44src/mesa/drivers/windows, but the status of this code is unknown.
Karl Schultz516546a2005-06-02 23:17:02 +000045
46The GDI driver operates basically by writing pixel spans into a DIB
47section and then blitting the DIB to the window. The driver was
48recently cleaned up and rewitten and so may have bugs or may be
49missing some functionality. The older versions of the CVS source may
50be useful in figuring out any problems, or report them to me.
51
52To build Mesa with the GDI driver, build the mesa, gdi, and glu
53projects in the Visual Studio workspace found at
Karl Schultz5f79d272005-07-01 21:08:00 +000054
55 windows/VC6/mesa/mesa.dsw
56or
57 windows/VC7/mesa/mesa.sln
58
59The osmesa DLL can also be built with the osmesa project.
Karl Schultz516546a2005-06-02 23:17:02 +000060
61The build system creates a lib top-level directory and copies
62resulting LIB and DLL files to this lib directory. The files are:
63
Karl Schultz7ff3c9e2004-10-01 21:22:10 +000064 OPENGL32.LIB, GLU32.LIB, OSMESA32.LIB
65 OPENGL32.DLL, GLU32.DLL, OSMESA32.DLL
66
Karl Schultz516546a2005-06-02 23:17:02 +000067If the MesaDemos ZIP file was extracted, the DLL files are also copied
Karl Schultz5f79d272005-07-01 21:08:00 +000068to the demos directory. This facilitates running the demos as described
69below.
Karl Schultzb5bfe2f2001-10-15 20:38:12 +000070
Karl Schultzb5bfe2f2001-10-15 20:38:12 +000071
Karl Schultz516546a2005-06-02 23:17:02 +000072GLUT and Demos
73---- --- -----
Karl Schultzb5bfe2f2001-10-15 20:38:12 +000074
Karl Schultz5f79d272005-07-01 21:08:00 +000075A Visual Studio workspace can be found at
76
77 windows/VC6/progs/progs.dsw
78or
79 windows/VC7/progs/progs.sln
80
Karl Schultz516546a2005-06-02 23:17:02 +000081It can be used to build GLUT and a few demos. The GLUT lib and DLL
82are copied to the top-level lib directory, along with the Mesa libs.
Karl Schultzb5bfe2f2001-10-15 20:38:12 +000083
Karl Schultz516546a2005-06-02 23:17:02 +000084The demo build system expects to find the LIB files in the top level
85lib directory, so you must build the Mesa libs first. The demo
86executables are placed in the demos directory, because some of them
87rely on data files found there. Also, the Mesa lib DLL's were copied
88there by the Mesa lib build process. Therefore, you should be able to
89simply run the demo executables from the demo directory.
Karl Schultzb5bfe2f2001-10-15 20:38:12 +000090
Karl Schultz5f79d272005-07-01 21:08:00 +000091If you want to run the demos from the Visual Studio, you may have to
92change the startup directory and explicitly state where the executables are.
Karl Schultzb5bfe2f2001-10-15 20:38:12 +000093
Karl Schultze43edd32006-03-29 23:53:43 +000094You may also build all the demo programs by using a makefile. Go to
95the progs/demos directory and make sure you have executed VCVARS32.BAT
96or whatever setup script is appropriate for your compiler. Then,
97
98 nmake -f Makefile.win
99
100should build all the demos.
101
Karl Schultzb5bfe2f2001-10-15 20:38:12 +0000102
Karl Schultz516546a2005-06-02 23:17:02 +0000103Build System Notes
104----- ------ -----
Karl Schultzb5bfe2f2001-10-15 20:38:12 +0000105
Karl Schultz516546a2005-06-02 23:17:02 +0000106VC6
107---
Karl Schultzb5bfe2f2001-10-15 20:38:12 +0000108
Karl Schultz516546a2005-06-02 23:17:02 +0000109Visual Studio 6 does not recognize files with the .cc extension as C++
110language files, without a lot of unnatural tweaking. So, the VC6
111build process uses custom build steps to compile these files in the
112GLU library.
Karl Schultzb5bfe2f2001-10-15 20:38:12 +0000113
Karl Schultze43edd32006-03-29 23:53:43 +0000114Two additional configurations are provided, Debug x86 and Release x86
115that activate the shader code compilation by defining SLANG_86. It is
116unknown if and how this works.
Karl Schultzb5bfe2f2001-10-15 20:38:12 +0000117
Karl Schultz516546a2005-06-02 23:17:02 +0000118VC7
119---
120
Karl Schultz5f79d272005-07-01 21:08:00 +0000121The above-mentioned .cc problem does not exist in this version.
Karl Schultz516546a2005-06-02 23:17:02 +0000122
123
124General
125-------
126
127After building, you can copy the above DLL files to a place in your
128PATH such as $SystemRoot/SYSTEM32. If you don't like putting things
129in a system directory, place them in the same directory as the
130executable(s). Be careful about accidentially overwriting files of
131the same name in the SYSTEM32 directory.
132
133The DLL files are built so that the external entry points use the
134stdcall calling convention.
135
136Static LIB files are not built. The LIB files that are built with are
137the linker import files associated with the DLL files.
138
139The si-glu sources are used to build the GLU libs. This was done
140mainly to get the better tessellator code.
141
142To build "mangled" Mesa, add the preprocessor define USE_MGL_NAMESPACE
143to the project settings. You will also need to edit src/mesa.def to
144change all the gl* symbols to mgl*. Because this is easy to do with a
145global replace operation in a text editor, no additional mangled
146version of mesa.def is maintained or shipped.
Karl Schultzfaa2b092003-10-10 17:13:47 +0000147
Karl Schultzb5bfe2f2001-10-15 20:38:12 +0000148If you have a Windows-related build problem or question, it is
149probably better to direct it to me (kschultz@users.sourceforge.net),
Karl Schultz516546a2005-06-02 23:17:02 +0000150rather than directly to the other Mesa developers. I will help you as
151much as I can. I also monitor the Mesa mailing lists and will answer
152questions in this area there as well.
Karl Schultzb5bfe2f2001-10-15 20:38:12 +0000153
154
155Karl Schultz