Respect the 'in_use' field in the global LRU as a marker for
[mesa.git] / docs / README.WIN32
index d98cdd2ebc68d68d3a9ada55bd88864d5b5aa40e..8802d8748d0b47ccdc9678f7ad61b51a6552f33f 100644 (file)
@@ -1,55 +1,52 @@
 File: docs/README.WIN32
 
-Last updated: Nov 29, 2001 - Karl Schultz - kschultz@users.sourceforge.net
+Last updated: Sep 18, 2003 - Karl Schultz - kschultz@users.sourceforge.net
 
 Quick Start
 
-If you have Microsoft Visual C++ 6.0 installed, simply go to the top directory
-of the Mesa distribution and type 'nmake -f Makefile.win NODEBUG=1' for
-an optimized build.
+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 build system has been changed to use Microsoft Visual Studio project
+workspaces and projects.  Makefiles are no longer shipped or supported, but
+can be generated from the projects using Visual Studio.
 
 Details and Notes
 
-- Building Mesa as noted above should visit and build the following:
-  src        MesaGL.dll, MesaGL.lib, osmesa.dll, osmesa.lib
-  si-glu     MesaGLU.dll, MesaGLU.lib
-  src-glut   glut32.dll, glut32.lib
-  demos      a handful of demo executables.
+- To build the Mesa libraries, open the Mesa.dsw workspace file
+  in the top directory.  You can build each project one-by-one,
+  or build the glut project to build everything except osmesa,
+  which needs to be built separately.  The build process will
+  create a lib directory in the top directory and will put the
+  following files there:
+       OPENGL32.LIB, GLU32.LIB, GLUT32.LIB, OSMESA32.LIB
+       OPENGL32.DLL, GLU32.DLL, GLUT32.DLL, OSMESA32.DLL
 
 - After building, you can copy the above DLL files to a place in your PATH
-  or to the demos directory if you just want to give the demos a try.
-  The DLL and LIB files are copied to the ./lib directory.  The makefile
-  creates this directory if it does not already exist.
-
-- The make targets 'clean' and 'clobber' will remove objects and libraries.
-  But the files in ./lib are never cleaned.
-
-- The make target 'install' will take its best shot at copying DLL files,
-  LIB files, and headers to the right places.  I strongly suggest that
-  you examine the makefiles to make sure that 'install' doesn't do anything
-  that you can't live with.
-
-- The makefiles are designed to work with Microsoft's NMAKE, and do,
-  unfortunately, have some Microsoft-specific things in them.  If you
-  would like to use gcc or some other build tools like the Cygnus tools,
-  then you will have to hack the makefiles to make them work with your
-  tools.  I'm sorry about this; I wasn't motivated to make this any
-  different, but if you end up modifying the makefiles for your tools,
-  you can send me the changes and I can apply the changes to the 
-  source tree.
-
-- There are no Microsoft Visual Studio project files.  However, these
-  should be very easy to create.  One can use the compiler and linker
-  options found in the makefiles to make quick progress in creating
-  projects.
+  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.
+
+- Build the demos by opening the appropriate *.dsw file in the
+  progs directory tree.  For example, to build the demos, use
+  progs/demos/Windows/demos.dsw.  The Windows directory contains
+  the workspace and all the projects for each demo program.  Each
+  project places the executable in the same directory as its source
+  code, which is required for some demos.
+
+- The demo projects also copy the Mesa library DLL files from the lib
+  directory into the same directory as the demo executables, so that
+  the demos use the Mesa libs you just built.
 
 - 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
-  the current makefiles are the linker import files associated with
-  the DLL files.  If static LIB's are desired, it should not be too
-  difficult to modify the makefiles to generate them.
+  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.
@@ -67,9 +64,9 @@ Details and Notes
 
 - There is DirectDraw support in the Windows driver, updated by
   Daniel Slater.  You'll need to uncomment the #define DDRAW line
-  in src/Windows/wmesadef.h and add ddraw.lib to the list of libraries
-  in src/Makefile.win.  On some systems, you will acheive significantly
-  higher framerates with DirectDraw.
+  in src/Windows/wmesadef.h and add ddraw.lib to the list of libraries.
+  On some systems, you will acheive significantly higher framerates 
+  with DirectDraw.
 
 - Some of the more specialized code like FX drivers, stereo, and
   parallel support isn't compiled or tested.  I left much of this
@@ -78,6 +75,12 @@ Details and Notes
 - No assembly code is compiled or assembled.  Again, this may need
   some work to turn it back on or use it again.
 
+- 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