Merge branch 'master' of git+ssh://znh@git.freedesktop.org/git/mesa/mesa into 965...
[mesa.git] / docs / README.WIN32
index c26297638739a56aca37d24ec9260f70e206fb1e..ce595076bd5c912f449c9dfb5b3fbff76e97a533 100644 (file)
-File: docs/README.WIN32
-
-Last updated: Jun 02, 2005 - Karl Schultz - kschultz@users.sourceforge.net
-
-Quick Start
------ -----
-
-Unzip both ZIP files (MesaLib and MesaDemos) into the same directory.
-The libs and demos build separately, so if you do not care about the
-demos, you do not have to unzip that zip file.  But if you do, it does
-need to be unzipped into the same directory as the lib zip file
-because the demos depend on the libs.
-
-The Windows build system uses Microsoft Visual Studio.  Project files
-for a specific version of Visual Studio are in their own directory in
-the top-level "windows" directory.  For example, Visual Studio 6 files
-are in windows/VC6.  If a directory does not exist for your version of
-Visual Studio, you can try importing the project files from an earlier
-version of Visual Studio.  At this time, project files exist for
-Version 6.
-
-The project files to build the core Mesa library, Windows Mesa
-drivers, OSMesa, and GLU are in the mesa directory.  The project files
-to build GLUT and some demo programs are in the progs directory.
-
-Makefiles are no longer shipped or supported, but can be generated
-from the projects using Visual Studio.
-
-
-Windows Drivers
-------- -------
-
-At this time, only the GDI driver is known to work, as it has been
-ported and rewritten to the latest Mesa DD interfaces.  Source code
-also exists in the tree for other drivers in src/mesa/drivers/windows,
-but the status of this code is unknown.
-
-The GDI driver operates basically by writing pixel spans into a DIB
-section and then blitting the DIB to the window.  The driver was
-recently cleaned up and rewitten and so may have bugs or may be
-missing some functionality.  The older versions of the CVS source may
-be useful in figuring out any problems, or report them to me.
-
-To build Mesa with the GDI driver, build the mesa, gdi, and glu
-projects in the Visual Studio workspace found at
-windows/VC?/mesa/mesa.dsw.  The osmesa DLL can also be built with the
-osmesa project.
-
-The build system creates a lib top-level directory and copies
-resulting LIB and DLL files to this lib directory.  The files are:
-
-       OPENGL32.LIB, GLU32.LIB, OSMESA32.LIB
-       OPENGL32.DLL, GLU32.DLL, OSMESA32.DLL
-
-If the MesaDemos ZIP file was extracted, the DLL files are also copied
-to the demos directory.
-
-
-GLUT and Demos
----- --- -----
-
-A Visual Studio workspace can be found at windows/VC?/progs/progs.dsw.
-It can be used to build GLUT and a few demos.  The GLUT lib and DLL
-are copied to the top-level lib directory, along with the Mesa libs.
-
-The demo build system expects to find the LIB files in the top level
-lib directory, so you must build the Mesa libs first.  The demo
-executables are placed in the demos directory, because some of them
-rely on data files found there.  Also, the Mesa lib DLL's were copied
-there by the Mesa lib build process.  Therefore, you should be able to
-simply run the demo executables from the demo directory.
-
-
-
-Build System Notes
------ ------ -----
-
-VC6
----
-
-Visual Studio 6 does not recognize files with the .cc extension as C++
-language files, without a lot of unnatural tweaking.  So, the VC6
-build process uses custom build steps to compile these files in the
-GLU library.
-
-
-VC7
----
-
-Some users have reported problems building glu with VC7 after
-importing and converting the VC6 project files.  The problem is caused
-by a custom build step that was put in place to work around a problem
-with VC6 not recognizing .cc files as C++ source files.  It appears
-that VC7 can be configured to recognize .cc files as C++ files and so
-it compiles these glu files with the default settings, and does not
-use settings that are required to compile the files correctly.  The
-easiest way to solve the problem is to remove the .cc files from the
-glu project.  This does not delete the files, but removes them from
-the project so that VS does not try to compile them at all.  This
-allows the custom build step to compile the files with the proper
-settings.  Another approach is to remove the custom build step and fix
-the project up to compile the files normally.
-
-
-General
--------
-
-After building, you can copy the above DLL files to a place in your
-PATH such as $SystemRoot/SYSTEM32.  If you don't like putting things
-in a system directory, place them in the same directory as the
-executable(s).  Be careful about accidentially overwriting files of
-the same name in the SYSTEM32 directory.
-
-The DLL files are built so that the external entry points use the
-stdcall calling convention.
-
-Static LIB files are not built.  The LIB files that are built with are
-the linker import files associated with the DLL files.
-
-The si-glu sources are used to build the GLU libs.  This was done
-mainly to get the better tessellator code.
-
-To build "mangled" Mesa, add the preprocessor define USE_MGL_NAMESPACE
-to the project settings.  You will also need to edit src/mesa.def to
-change all the gl* symbols to mgl*.  Because this is easy to do with a
-global replace operation in a text editor, no additional mangled
-version of mesa.def is maintained or shipped.
-
-If you have a Windows-related build problem or question, it is
-probably better to direct it to me (kschultz@users.sourceforge.net),
-rather than directly to the other Mesa developers.  I will help you as
-much as I can.  I also monitor the Mesa mailing lists and will answer
-questions in this area there as well.
-
-
-Karl Schultz
+File: docs/README.WIN32\r
+\r
+Last updated: Apr 25, 2007 - Karl Schultz - kschultz@users.sourceforge.net\r
+\r
+Quick Start\r
+----- -----\r
+\r
+Unzip the MesaLib, MesaGLUT, and MesaDemos ZIP files into the same\r
+directory.  The libs and demos build separately, so if you do not care\r
+about the demos or GLUT, you only need to unzip MesaLib.  If you unzip\r
+more than one ZIP file, they all need to be unzipped into the same\r
+directory.  Don't worry, you will not overwrite anything.\r
+\r
+The Windows build system uses Microsoft Visual Studio.  Project files\r
+for a specific version of Visual Studio are in their own directory in\r
+the top-level "windows" directory.  For example, Visual Studio 8 files\r
+are in windows/VC8.\r
+\r
+Support has been dropped for versions of Visual Studio prior to 8. The\r
+main reason is because Microsoft now provides a free compiler and\r
+developer environment.  Visual Studio Express can be found at\r
+\r
+http://msdn.microsoft.com/vstudio/express/visualc/default.aspx\r
+\r
+You'll also need the Platform SDK.  Instructions for obtaining and\r
+using the SDK with Visual Studio Express can be found at\r
+\r
+http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/\r
+\r
+If you are stuck using VC6 or VC7, you may start with these project\r
+files, but you may need to modify them to reflect changes in the\r
+Mesa source code tree.  If you sucessfully update the project files,\r
+please submit them to the author of this document so that they may\r
+be included in the next distribution. \r
+\r
+The project files to build the core Mesa library, Windows Mesa\r
+drivers, OSMesa, and GLU are in the mesa directory.  The project files\r
+to build GLUT and some demo programs are in the progs directory.\r
+\r
+Makefiles are no longer shipped or supported, but can be generated\r
+from the projects using Visual Studio.\r
+\r
+\r
+Windows Drivers\r
+------- -------\r
+\r
+At this time, only the GDI driver is known to work.  Most of the demos\r
+in progs/demos should work with this driver.\r
+\r
+Source code also exists in the tree for other drivers in\r
+src/mesa/drivers/windows, but the status of this code is unknown.\r
+\r
+The GDI driver operates basically by writing pixel spans into a DIB\r
+section and then blitting the DIB to the window.  The driver was\r
+recently cleaned up and rewitten and so may have bugs or may be\r
+missing some functionality.  The older versions of the CVS source may\r
+be useful in figuring out any problems, or report them to me.\r
+\r
+To build Mesa with the GDI driver, build the mesa, gdi, and glu\r
+projects in the Visual Studio workspace found at\r
+\r
+       windows/VC8/mesa/mesa.sln\r
+\r
+The osmesa DLL can also be built with the osmesa project.\r
+\r
+The build system creates a lib top-level directory and copies\r
+resulting LIB and DLL files to this lib directory.  The files are:\r
+\r
+       OPENGL32.LIB, GLU32.LIB, OSMESA32.LIB\r
+       OPENGL32.DLL, GLU32.DLL, OSMESA32.DLL\r
+\r
+If the MesaDemos ZIP file was extracted, the DLL files are also copied\r
+to the demos directory.  This facilitates running the demos as described\r
+below.\r
+\r
+\r
+GLUT and Demos\r
+---- --- -----\r
+\r
+A Visual Studio workspace can be found at \r
+\r
+       windows/VC8/progs/progs.sln\r
+\r
+It can be used to build GLUT and a few demos.  The GLUT lib and DLL\r
+are copied to the top-level lib directory, along with the Mesa libs.\r
+\r
+The demo build system expects to find the LIB files in the top level\r
+lib directory, so you must build the Mesa libs first.  The demo\r
+executables are placed in the demos directory, because some of them\r
+rely on data files found there.  Also, the Mesa lib DLL's were copied\r
+there by the Mesa lib build process.  Therefore, you should be able to\r
+simply run the demo executables from the demo directory.\r
+\r
+If you want to run the demos from the Visual Studio, you may have to\r
+change the startup directory and explicitly state where the executables are.\r
+\r
+You may also build all the demo programs by using a makefile.  Go to\r
+the progs/demos directory and make sure you have executed VCVARS32.BAT\r
+or whatever setup script is appropriate for your compiler.  Then,\r
+\r
+       nmake -f Makefile.win\r
+\r
+should build all the demos.\r
+\r
+\r
+Build System Notes\r
+----- ------ -----\r
+\r
+VC6 (not actively supported)\r
+---\r
+\r
+Visual Studio 6 does not recognize files with the .cc extension as C++\r
+language files, without a lot of unnatural tweaking.  So, the VC6\r
+build process uses custom build steps to compile these files in the\r
+GLU library.\r
+\r
+Two additional configurations are provided, Debug x86 and Release x86\r
+that activate the shader code compilation by defining SLANG_86.  It is\r
+unknown if and how this works.\r
+\r
+VC7 (not actively supported)\r
+---\r
+\r
+The above-mentioned .cc problem does not exist in this version.\r
+\r
+VC8\r
+---\r
+\r
+No notes.\r
+\r
+\r
+General\r
+-------\r
+\r
+After building, you can copy the above DLL files to a place in your\r
+PATH such as $SystemRoot/SYSTEM32.  If you don't like putting things\r
+in a system directory, place them in the same directory as the\r
+executable(s).  Be careful about accidentially overwriting files of\r
+the same name in the SYSTEM32 directory.\r
+\r
+The DLL files are built so that the external entry points use the\r
+stdcall calling convention.\r
+\r
+Static LIB files are not built.  The LIB files that are built with are\r
+the linker import files associated with the DLL files.\r
+\r
+The si-glu sources are used to build the GLU libs.  This was done\r
+mainly to get the better tessellator code.\r
+\r
+To build "mangled" Mesa, add the preprocessor define USE_MGL_NAMESPACE\r
+to the project settings.  You will also need to edit src/mesa.def to\r
+change all the gl* symbols to mgl*.  Because this is easy to do with a\r
+global replace operation in a text editor, no additional mangled\r
+version of mesa.def is maintained or shipped.\r
+\r
+If you have a Windows-related build problem or question, it is\r
+probably better to direct it to me (kschultz@users.sourceforge.net),\r
+rather than directly to the other Mesa developers.  I will help you as\r
+much as I can.  I also monitor the Mesa mailing lists and will answer\r
+questions in this area there as well.\r
+\r
+\r
+Karl Schultz\r