OSDN Git Service

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