-\r
- Mesa/Readme.win32\r
-\r
- Last Updated: Sunday, September 19th, 1999 - tjump@tertius.com\r
-\r
-*** What's New\r
-\r
-- Updated for Mesa 3.1beta3/CVS. Debug and Release command-line builds of\r
- Mesa, fxMesa, GLU, GLUT and all sample programs DLL-based. Manual\r
- executions tests with minimum requisite results (aka: things looked like\r
- I expected them to).\r
-\r
- What did you expect, complete regression testing maybe?\r
-\r
-- NASM build support. Any file in the project coded as a .S file will\r
- automatically be recognized and built as a NASM-source assember file.\r
-\r
- To enable building using NASM, set the environment variable NASM to\r
- indicate that command to execute to run nasm on a file. If NASM is in\r
- your command search path then all this needs be set to is 'nasmw' -\r
- otherwise you will need to include the complete drive and directory path.\r
-\r
- NASM may be retrieved here: http://www.web-sites.co.uk/nasm/\r
-\r
-- DevStudio projects suspended for compatability reasons: projects modified\r
- by DevStudio 6 are not compatible with DevStudio 5.\r
-\r
- These will slowly be rebuilt and put into CVS as I can.\r
-\r
-- Build environment change: The Glide SDK is no longer assumed to be in\r
- the global INCLUDE/LIB environment vars, it is required that you set the\r
- value 'GLIDE2X' as either an environment variable pointing to your Glide\r
- SDK install directory or that you configure that as a build option to\r
- nmake.exe when building fxmesagl32. Examples:\r
-\r
- nmake /f nmake.mak GLIDE2X=g:\sdk\glide2x fxmesagl32\r
-\r
- <or>\r
-\r
- nmake /f nmake.mak GLIDE2X=g:\sdk\glide2x allfx\r
-\r
- <or>\r
-\r
- nmake /f nmake.mak GLIDE2X=g:\sdk\glide2x progs.3dfx.demos\r
-\r
- The DevStudio workspace files for 3Dfx OpenGL require the definition of\r
- GLIDE2SDK as an environment variable pointing to where your copy of the\r
- Glide SDK has been installed. Adding this to your AUTOEXEC.BAT would do\r
- so (change the directories to match):\r
-\r
- SET GLIDE2SDK=G:\SDK\GLIDE2X\r
-\r
-*** Legalese\r
-\r
-These build files are provided as-is and are submitted to be included with\r
-the "Mesa 3-D Graphics Library" package as (currently) maintained by Brian\r
-Paul. These project build files are free software; you can redistribute it\r
-and/or modify it under the terms of the GNU Library General Public License\r
-as published by the Free Software Foundation; either version 2 of the\r
-License, or (at your option) any later version.\r
-\r
-These project files are distributed in the hope that they will be useful,\r
-but WITHOUT ANY WARRANTY; without even the implied warranty of\r
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library\r
-General Public License for more details.\r
-\r
-You should have received a copy of the GNU Library General Public License\r
-along with this library; if not, write to the Free Software Foundation,\r
-Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\r
-\r
-*** Maintenance Responsiblity and Technical Support\r
-\r
-While these files are now part of the Mesa core distribution please do NOT\r
-contact Mr. Paul for help with them if you encounter problems as he can't\r
-help you (currently). I will, however, attempt my straightforward best in\r
-assisting anyone with using these files on their system. I can NOT\r
-guarantee instant responses owing to other responsiblities, but I do try\r
-dang hard to answer any mail w/in 24 hours. I may be contacted at the\r
-above email address for the forseeable future.\r
-\r
--Ted\r
-mailto://tjump@tertius.com\r
-http://www.tertius.com/tjump\r
-\r
-*** General Information\r
-\r
-These build files facilitate convenient building of many variants of Mesa,\r
-both as static link libraries (including mesaglu) and as dynamic link\r
-libraries that in some cases may be used as "drop-in" replacements for\r
-OpenGL32.DLL on both Windows95 and Windows NT.\r
-\r
-The construction of the Win32 command-line build files and projects has\r
-been something of a pet project of mine, and is based upon my own\r
-"standard" Win32 build environment as supplied by the "nmake.mif" file.\r
-They have been tested under Windows95 OSR2, Windows NT 4.0SP3, and Windows\r
-NT 5.0 beta 1. The libraries that they generated have been tested (via the\r
-demo programs) in a *limited* fashion on the above three systems, including\r
-the 3Dfx versions.\r
-\r
-The reason I went with command-line build environment instead of the more\r
-convenient IDE-based project files is for two reasons: 1. These appear to\r
-have some amount of portability between versions (the nmake syntax hasn't\r
-changed much since Microsoft C 7.0) while the IDE project files seem to\r
-change drastically each version. and 2. These are readable with any ascii\r
-editor and such are better self-documentation of the file relationships for\r
-more people such that it will facilitate supporting other Win32 compilers.\r
-\r
-While these files only deal with building for x86 targeted code it *should*\r
-be possible to add the necessary logic to them to build for the other MSVC\r
-supported CPU targets, I simply have no hardware to test them on nor the\r
-alternative compilers to build with.\r
-\r
-*** Prerequisites for use\r
-\r
-1. You must have a 32-bit Microsoft compiler installed. I have tested\r
-this with Visual C 5.0 (SP3) and Visual C 4.2, but with minor\r
-(possibly no) modification to the nmake.mak and nmake.mif files this\r
-sequence should work on Visual C 2.0 also. The workspace files\r
-(mesalib.dsw and mesademos-*.dsw) and their included project files\r
-(*.dsp) are specific to the DevStudio IDE - I have made no attempt at\r
-building a VC4 IDE project set as I do not use that any more. Note\r
-that the VC workspace files NO LONGER use NORE are dependant upon the\r
-nmake.mak and nmake.mif files for construction of definition (*.DEF)\r
-and resource (*.RC) files.\r
-\r
-*** Visual C 4.x Users Warning ****\r
-\r
-Note that early editions of VC4 do NOT have header files current enough\r
-for use building this code base. If you are using VC4 you will either need\r
-to get an update to version 4.2 *or* you may download the Platform SDK\r
-directly from Microsoft's web site (www.microsoft.com) and update your\r
-build environment that way.\r
-\r
-*** Visual C 4.x Users Warning ****\r
-\r
-2. You must have the PATH, INCLUDE, and LIB environment variables set\r
-properly. With VC5 you can easily get this by executing the VCVARS32.BAT\r
-file that was created for you upon installation. It is found in the\r
-DevStudio\VC\BIN directory, wherever you installed DevStudio. VC4 provides\r
-a similar batch file in it's BIN directory also.\r
-\r
-3. (optional) If you're going to build for 3Dfx/Voodoo you will need to\r
-have previously installed the Glide SDK version 2.3 or later, if I\r
-recall. This may be retrieved from www.3dfx.com for no money and some\r
-download time. ;-) These build files assume that you have the Glide SDK\r
-added to the respective environment variables (LIB and INCLUDE).\r
-\r
-4. (optional) If you're going to build for S3/Virge you will need the S3\r
-Developers Toolkit which may be downloaded from www.s3.com for the price of\r
-registering on-line and some time. NOTE: I can build the s3mesa.dll file to\r
-completion, however the compilation of s3mesa.c currently generates a large\r
-amount of compiler warnings and between that and the fact that I can not at\r
-all test it I can make no claims to it's ability to execute. Again, like\r
-the 3Dfx version before this, these build files assume you have the S3Dtk H\r
-and LIB files in the path of their respective environment variables.\r
-Note 2: As of Mesa3.0beta6 I have build files, both command-line and IDE,\r
-which should be able to build the s3mesa code base if it weren't for updates\r
-being required in the S3 DD code support (Mesa-3.0/src/s3 directory).\r
-\r
-I advise putting any include and lib files for secondary toolkits (Glide,\r
-S3Tk, whatever) in their respective environment variables *before* the\r
-Microsoft-assigned default values.\r
-\r
-*** FAQ: Frequenty Asked Questions and Other Important Information ***\r
-\r
-- When running the 3Dfx demos under Windows NT, they crash on exit, what's\r
- up?\r
-\r
- This is apparently a problem in Glide itself. The workaround is to go to\r
- your C:\WINNT\SYSTEM32 directory and rename the file FXOEM2X.DLL to\r
- FXOEM2X.DL_ to prevent Glide from loading and initializing it upon\r
- startup. This is known to be an issue with cards that do not have "TV\r
- out" and is known to cause crashes on Diamond Monster II 8M and 3Dfx\r
- Reference boards, all using 3Dfx Reference Drivers version 2.53. Other\r
- hardware/driver combinations will also likely exhibit this behavior.\r
-\r
-- I'm having a problem building Mesa for static library linking.\r
-\r
- This was caused by some incomplete testing on my part, and a fix is now\r
- available in the form of an add-on to the base Mesa 3.0 release. The\r
- file to get is:\r
-\r
- via FTP download from: iris.ssec.wisc.edu\r
- you want to go here: /pub/Mesa/patches_to_3.0/\r
- you want to get file: Mesa-3.0-w32-static-fixes.tar.gz\r
-\r
- This required a minor addition to INCLUDE/GL for a clean solution, the\r
- file "include/gl/mesa_wgl.h" is automatically included by\r
- "include/gl/gl.h" when a Win32 non-DLL build is in progress to provide\r
- prototypes for the various wgl functions.\r
-\r
- The only remaining hitch in this setup is that the 3Dfx build is not yet\r
- running as a static build, because of problems with conflicts in\r
- existance of the various GDI functions like ChoosePixelFormat,\r
- etc. *sigh*\r
-\r
- Anyway, the "allstatic" target now works as expected and builds all\r
- book/sample/demos programs to boot. ;^)\r
-\r
-- How do I get fxMesa to render in a window on the desktop instead of only\r
- full-screen?\r
-\r
- Use the Microsoft Windows fxMesa-in-a-window hack!\r
-\r
- Seriously, if you want fxMesaGL to render using the 3Dfx Voodoo1 or\r
- Voodoo2 hardware into a window on the desktop then all you need to do is\r
- set the MESA_WGL_FX environment variable to anything other than\r
- "fullscreen" and it will render into a window. If you wish to go\r
- fullscreen then you only need to NOT have the environment variable, or\r
- have it set to "fullscreen". You may also switch at runtime between\r
- fullscreen-mode and windowed by pressing ALT-ENTER on the keyboard\r
- (unless the application using Mesa does something with those keystrokes,\r
- of course).\r
-\r
- As of 8/13/98 this should be running a LOT better for more people as a\r
- low-compatability item was cleaned up which prevented it from working on\r
- many (most?) display drivers under Windows 9x.\r
-\r
-- I have my 3Dfx card hooked to it's own monitor and I want the output to\r
- stay on even if I switch to another program, is this possible?\r
-\r
- If the Glide environment variable SST_DUALHEAD is set to '1' then fxMesa\r
- will never disable the Voodoo output on a Voodoo1 or Voodoo2 display\r
- regardless of whether the fxMesa application is "current" or not. This\r
- works regardless of whether it's rendering using the window hack\r
- mentioned above or not.\r
-\r
-- I want to run the Mesa demos on my Intel740 card using it's own OpenGL\r
- acceleration, how do I do this?\r
-\r
- Build GLUT standalone for use with system OpenGL and GLU drivers!\r
-\r
- The Command-line project supports building all test/demo programs against\r
- these drivers also! This allows you full use of GLUT on Windows using\r
- hardware accelerated OpenGL. Wheee! This includes the "3dfx/demos"\r
- directory of which only two programs will not run on "standard"\r
- opengl. Note that there are a few of the sample programs which will NOT\r
- work without Mesa as they directly call into Mesa instead of using the\r
- extension mechanism.\r
-\r
-*** Included programs that exhibit unfortunate or bad behavior\r
-\r
-- demos/bounce - doesn't run on high-colors screens? It's requesting an\r
- INDEX display from GLUT and that fails on my true-color desktop. Changing\r
- this to _RGB let's the program work, but it doesn't display\r
- properly. This is probably just an idiosyncracy of my machine though, as\r
- if I test the program using GLUT for System OpenGL on my Intel740 OpenGL\r
- accelerated machine it's just hunky-dory.\r
-\r
-- demos/glutfx - runs, but crashes on exit (but not on my Intel740 machine)\r
-\r
-- demos/texobj - runs, but crashes on exit if ESC is pressed. Exits cleanly\r
- if the Close box on the window frame is pressed with the mouse. Go figure.\r
-\r
-- book/aaindex - doesn't run, can't get pixel format, because it wants an\r
- INDEX display maybe (but is okay on my Intel740 machine)?\r
-\r
-- most of the book/* demos don't respond to ESC being pressed.\r
-\r
-- 3dfx/demos/* - all demos run, however they all crash on exit. I've traced\r
- this so far as to determine the call it's happening with. The crash comes\r
- from within Glide during the processing of the grGlideShutdown() call, as\r
- in invalid memory reference exception. I'm wondering if this is because\r
- of some state or processing not being completed before the call. Dunno,\r
- but putting grSstIdle() in just before grGlideShutdown() does NOT fix the\r
- problem.\r
-\r
-- 3dfx/demos/tunnel2 - does not run on my system even with SLI mode\r
- disabled. Hmmmm, maybe I need to disconnect my Voodoo2 cards?\r
-\r
-*** Important Notes and Changing Default values\r
-\r
-- The optimizer settings have been manually reworked in both command line\r
- and DevStudio IDE files to hopefully prevent possible irrational code on\r
- the part of the code generator. Formerly, it was configured for "/Ox",\r
- now it is configured for safer handling at a slight potential performance\r
- cost. This may not be required for Visual Studio 6 but I can't test that\r
- (yet).\r
-\r
-- These files build with the code targeted for Pentium processors and\r
- 8-byte structure padding.\r
-\r
-- The IDE-built programs seem to be "happier" in that the command line\r
- build of the 3Dfx demo "fire" will grenade on exit (?). Otherwise pretty\r
- much everything may be built with either interface.\r
-\r
-- The currently configured Mesa version is 3.1, and MesaDemos version is\r
- the same. To change this permanently you will need to edit NMAKE.MAK and\r
- change the lines that look like this (they start o/a line 116):\r
-\r
- # Currently, Mesa is at rev 3.1 ...\r
- #\r
- !IF "$(MESAVER)" == ""\r
- MESAVER=3.1\r
- !ENDIF\r
-\r
- # used in building all of the resource files for the Mesa DLLs\r
- #\r
- !IF "$(MESAFILEVER)" == ""\r
- MESAFILEVER=3,1,0,0\r
- !ENDIF\r
-\r
-- Currently the build files are configured to be used from a Win32\r
- directory that is included inside the main Mesa-3.1 heirarchy.\r
-\r
-- The build files are smart enough to find the files for the core lib, glu,\r
- glut, and the various demo programs if they are unpacked in the current\r
- Mesa-3.1 heirarchy, like this:\r
-\r
- \Mesa-3.1\r
- \Mesa-3.1\src\r
- \Mesa-3.1\src-glu\r
- \Mesa-3.1\src-glut\r
- \Mesa-3.1\Win32\r
- \Mesa-3.1\samples\r
- \Mesa-3.1\demos\r
- \Mesa-3.1\book\r
- \Mesa-3.1\3Dfx\demos\r
-\r
- ... should work. This arose because my initial build tests for the\r
- demo files were done before MesaDemos 2.6 had been released.\r
-\r
-- With the exception of the static link libraries generated by this file\r
- set (mesagl.lib, mesaglu.lib, mesaglut.lib) all DLLs and executables are\r
- built against the "Multithreaded DLL" runtime - this means that they\r
- require MSVCRT.DLL or MSVCRTD.DLL in the path to execute.\r
-\r
- ** CHANGED 8/11/98 ***\r
-\r
- Note also that the demos are all built aginst the "OpenGL32, GLU32, and\r
- GLUT32" and as such they are fairly agnostic wrt: building against Mesa\r
- for CPU-rendering, Mesa-for-3Dfx, Mesa-for-S3, or System OpenGL.\r
-\r
- If you want to build them for use on your system and your display card\r
- provides full OpenGL acceleration (Permedia, Intel740, Intergraph,\r
- whatever) then you only need to build GLUT prior to building any of the\r
- demo programs. For convenience, the GLUT project is included in each of\r
- the demo projects Workspace files for the DevStudio IDE builds BUT it is\r
- not automatically built - you still need to build it first manually.\r
-\r
- Note that if you have GLUT already installed on your system (gl/glut.h in\r
- yoru INCLUDE path, glut32.lib/glut32d.lib in your LIB path, and the DLL\r
- in your PATH) then you do NOT need to build GLUT prior to the test\r
- programs.\r
-\r
-- The 3Dfx build of Mesa has primarily been tested with Quake 2 and it runs\r
- (mostly) fine on my PC (take that for what you want it)...\r
-\r
- ** CHANGED 8/11/98 ***\r
-\r
- There is still something going on that causes Glide to crash on shutdown,\r
- when I run fxMesa under Windows NT, however it does not appear to occur\r
- under Windows 9x on either Voodoo1 or Voodoo2 cards. *sigh*\r
-\r
-- I can not test the S3 build as I have no machines available with Virge\r
- based display cards.\r
-\r
-- The multithreaded test code is *not* built as it requires pthreads and I\r
- have as of yet spent not time trying to get that running. The latest word\r
- that I saw WRT threading support on win32 was that they are intending to\r
- support it natively within Win32 - so I'm waiting it out until they get\r
- it done.\r
-\r
-- Similarly, the 'xdemos' are not currently built because I haven't gotten\r
- around to building the client libs for native win32 and getting it all\r
- setup for use.\r
-\r
-*** Output Files\r
-\r
-All final output files (DLL/LIB) are placed in the Mesa-3.1/lib directory,\r
-with the exception of the fxMesaGL32 build which is placed in\r
-Mesa-3./lib/FX and the executable images which are placed in their source\r
-directories.\r
-\r
-To be able to execute the various test programs, you will need to copy the\r
-requisite DLL files into the same directory as the EXE files. Note that\r
-most of the 3Dfx/demos/* programs WILL run with the non-FX build of Mesa -\r
-just very slowly. The two programs which are hard-linked with the FX build\r
-and will not run without it are "glbpaltx" which uses "gl3DfxSetPaletteEXT"\r
-directly instead of via the extensions mechanism and "tunnel2" which uses\r
-"fxMesaSelectCurrentBoard" API for selecting between multiple 3Dfx cards\r
-installed in one system. Likewise, "paltex" directly uses the\r
-"glColorTableEXT" extension and thus may not run on anything except\r
-Mesa. If these applications used the proper extension mechanism they could\r
-then be used on more than "just" fxMesa to good effect (for example, the\r
-rest of the "3Dfx/demos" run just peachy on the Intel740 card in my test\r
-machine) under WinNT.\r
-\r
-Because I'm anal about my computer and it's organization, and I like to\r
-prevent collision between builds, each of the subprojects has their own\r
-intermediate file directory inside .\win32\release (for example, when\r
-building mesagl.lib all of it's intermediate files will be found in\r
-.\win32\release\lib.mesagl). This makes it very easy to cleanup as you\r
-only need to remove .\win32\release.\r
-\r
-*** Okay, Enough, how do I build with this stuff already Ted!\r
-\r
-Okay, no major calamity here. The basic way to use the project file is to\r
-call it via NMAKE from the command line. The format is:\r
-\r
- nmake[.exe] /f nmake.mak [options] [target]\r
-\r
-The most likely [options] values you will use may be any combination of the\r
-following:\r
-\r
- DEBUG=1 or DEBUG=0\r
- USE_CRTDLL=1 or USE_CRTDLL=0\r
-\r
- Note that all three of these options are OFF by default.\r
-\r
-The [target] includes but is not limited to the following (for full details\r
-please peruse the NMAKE.MAK and NMAKE.MIF files - but be warned that\r
-NMAKE.MIF is rather large and sometimes hard to follow):\r
-\r
- --- convenience targets ---\r
-\r
- all - builds everything\r
- libfiles - builds all linking library files\r
- progs - builds all executable images\r
-\r
- --- library files, static and dynamic ---\r
-\r
- mesagl - static lib build of Mesa core.\r
- mesaglu - static lib build of MesaGLU core.\r
- mesaglut - static lib build of Mesa GLUT core.\r
-\r
- mesagl32 - dynamic lib build of Mesa core.\r
-\r
- mesaglu32 - dynamic lib build of GLU core, generates\r
- GLU32.DLL and/or GLU32d.DLL.\r
-\r
- mesaglut32 - dynamic lib build of GLUT core, generates\r
- GLUT32.DLL and/or GLUT32d.dll.\r
-\r
- --- hardware accelerated mesa builds ---\r
-\r
- fxmesagl32 - builds Mesa for use on top of the 3Dfx\r
- Glide runtime libs\r
-\r
- s3mesagl32 - builds mesa for use on top of the S3\r
- 'S3Tk' runtime libs.\r
-\r
- --- executable images ---\r
-\r
- progs.book - builds all programs in \book directory\r
- progs.demos - builds all programs in \demos directory\r
- progs.samples - builds all programs in \samples directory\r
-\r
- These targets generate all of the programs in their respective\r
- directories and link the executables against OpenGL32.DLL,\r
- GLU32.DLL, and GLUT32.DLL (or their debug equivalents).\r
-\r
- progs.3dfx.demos - builds all programs in \3dfx\demos directory\r
-\r
- This target generates the 3Dfx/Demo executables, linking them\r
- against GLUT32.DLL, GLU32.DLL, OPENGL32.DLL and are thus NOT\r
- hard-bound to using Mesa per-se as you can simply NOT build the\r
- Mesa core and GLU libraries.\r
-\r
- --- Microsoft/SGI OpenGL-based GLUT and Demo program builds ----\r
-\r
- *** IMPORTANT SAFETY TIP: If you're going to build these variants of\r
- GLUT then DO NOT build any other target libraries in this package\r
- first, OR from the command line run the "nmake /f nmake.mak clean"\r
- command first! This is because generation of the GLUT for SGI\r
- OpenGL target libraries conflicts in naming with the static build\r
- libraries of Mesa and it's supporting GLUT build.\r
-\r
- Currently, you may build GLUT as either GLUT32.DLL or GLUT.DLL for\r
- use running against either Microsoft or SGI OpenGL for Window,\r
- respectively. This allows for the general use of GLUT 3.7 on Windows\r
- systems with fully compliant OpenGL.\r
-\r
- You can build the GLUT DLL files either with the command line by\r
- issuing either of these commands:\r
-\r
- nmake /f nmake.mak glut.sysgl\r
-\r
- <or>\r
-\r
- nmake /f nmake.mak glut.sgigl\r
-\r
- OR by using the DevStudio MesaLib Worksapce build the GLUT_SGIGL or\r
- GLUT_SYSGL projects within the DevStudio IDE.\r
-\r
- Unfortunately, the only way to build the test programs against this\r
- build of GLUT is via the command line, and I will NOT be making\r
- duplicate demo program projects for the IDE as it's just not worth it,\r
- sorry.\r
-\r
- To build the test programs against either MS or SGI OpenGL, you do so\r
- via either of these two commands:\r
-\r
- nmake /f nmake.mak progs.sysgl\r
-\r
- <or>\r
-\r
- nmake /f nmake.mak progs.sgigl\r
-\r
- To use the GLUT-for-system-OpenGL in your own programs, you need to do\r
- three things by way of preparation, after building GLUT of course:\r
-\r
- 1. Copy include\gl\glut.h to somewhere in your %INCLUDE% path, one\r
- likely candidate location would be in your\r
- "DevStudio\VC\INCLUDE\GL" directory.\r
-\r
- 2. Copy the linking libraries to somewhere in your %LIB% path, one\r
- likely candidate location would be in your "DevStudio\VC\LIB"\r
- directory. The linking libraries you need to copy are as\r
- follows:\r
-\r
- .\Release\GLUT32.LIB\r
- .\Release\GLUT.LIB\r
- .\Debug\GLUT32.LIB\r
- .\Debug\GLUT.LIB\r
-\r
- 3. Copy the runtime libraries to somewhere in your %PATH%, one\r
- likely candidate location would be in WINDOWS\SYSTEM. the files\r
- that you should copy are as follows:\r
-\r
- .\Release\GLUT32.DLL\r
- .\Release\GLUT32.PDB\r
- .\Release\GLUT.DLL\r
- .\Release\GLUT.PDB\r
- .\Debug\GLUT32d.DLL\r
- .\Debug\GLUT32d.PDB\r
- .\Debug\GLUTd.DLL\r
- .\Debug\GLUTd.PDB\r
-\r
-Some examples are in order ...\r
-\r
- ... build all dynamic-link libs using MSVCRT.DLL for C runtime:\r
-\r
- nmake /f nmake.mak USE_CRTDLL=1 alldynamic\r
-\r
- ... To build all library variants and all test and demonstration\r
- programs with the default settings you do this:\r
-\r
- nmake /f nmake.mak all\r
-\r
- ... to build all static link libs and nothing else you do this:\r
-\r
- nmake /f nmake.mak allstatic\r
-\r
- ... to build all non-accelerated dynamic link libs you do this:\r
-\r
- nmake /f nmake.mak alldynamic\r
-\r
- ... to build all 3Dfx targeted dynamic link libs you do this:\r
-\r
- nmake /f nmake.mak allaccel\r
-\r
- ... to build all S3 Virge targetd dynamic link libs you do this:\r
-\r
- nmake /f nmake.mak alls3\r
-\r
- ... to build all libraries, static and dynamic, in all versions\r
- you do this:\r
-\r
- nmake /f nmake.mak libfiles\r
-\r
- ... to subsequently build all demo and test programs you do this:\r
-\r
- nmake /f nmake.mak progs\r
-\r
- ... to cleanup all intermediate files you do this:\r
-\r
- nmake /f clean\r
-\r
-You get the picture. (I hope) ;^) You may also specify specify\r
-single targets in a convenient fashion. The rule is simple, any of the\r
-above named lib files, static or dynamic, may be built by providing it's\r
-name on the command line as the target. Examples:\r
-\r
- ... to build only Mesa as OpenGL32.DLL ...\r
-\r
- nmake /f nmake.mak opengl32\r
-\r
- ... to build only Mesa on top of the 3Dfx Glide API ...\r
-\r
- nmake /f nmake.mak fxMesaGL32\r
- <or>\r
- nmake /f nmake.mak fxMesaGL\r
-\r
- ... to build only Mesa on top of the S3 Toolkit ...\r
-\r
- nmake /f nmake.mak s3MesaGL32\r
- <or>\r
- nmake /f nmake.mak s3mesaGL\r
-\r
-*** Revision history for ./win32 project files\r
-\r
-1/18/98 - initial cut submitted and included with core mesa\r
-2/5/98 - fixed internal dependency within nmake.mif upon there being\r
- a $(DEVDIR) variable to make some temporary batch files\r
- dependant upon (thanks to Keven T. McDonnell for finding\r
- that there was this particular bug). I also updated the\r
- build files for 2.6beta6.\r
-2/8/98 - added DevStudio workspace and project files for all lib\r
- files and some test programs. Updated readme.win32.\r
-6/25/98 - initial revision for Mesa 3.0, does not include IDE files,\r
- not everything is running. *sigh*\r
-7/20/98 - Mesa 3.0beta6 rev of all build files, all libs built and\r
- minimally tested, all demo programs built and minimally\r
- tested to within limits of my PC. ;^) Eveything looks\r
- MUCH better now ...\r
-7/30/98 - Minor updates/edits based upon feedback from\r
- Eero Pajarre <epajarre@koti.tpo.fi>. These updates include a fix\r
- to the Mesa-on-3Dfx build such that Quake-II now runs almost\r
- properly on my system. It runs, just *very* slowly and with *no*\r
- textures. Hmmm. Doesn't make any difference whether Quake is set\r
- to use 8-bit textures or not.\r
-8/13/98 - Lots of build cleanups, minor bug fixes in fxwgl.c, and\r
- compatability fix in fxapi.c for in-window rendering using 3Dfx\r
- hardware.\r
-8/26/98 - Final revisions for Mesa 3 release checked\r
-9/22/98 - Fixed static builds for all but fxMesaGL32 and s3MesaGL32 targets\r
-9/29/98 - Reorganized FAQ information and added Added faq entry about Glide\r
- bug under NT (crash on exit) and a workaround.\r
-11/21/98 - Updated files for Mesa 3.1 beta 1\r
- Updated fxMesa window-hack code\r
- Updated fxMesa resolution support to handle 1600x1200 & 1280x1024\r
-7/9/99 - Rev'd for Mesa 3.1 beta 2
\ No newline at end of file
+File: docs/README.WIN32
+
+Last updated: Oct 15, 2001 - 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.
+
+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.
+
+- 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.
+
+- 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.
+
+- The si-glu sources are used to build the GLU libs. This was done
+ mainly to get the better tessellator code. However the C++ NURBS
+ code is not built. If you need NURBS, consider modifying the
+ makefiles to build the C++ code or try to build the older GLU
+ code in src-glu.
+
+- The osmesa driver builds and should work on Windows as well as
+ any other platform.
+
+- The Windows driver (in src/Windows) builds and runs at least at
+ a minimal level. I modified this driver to work with the new
+ Mesa 4.0 code and driver architecture, but I did not do a great
+ deal of optimization and testing. There are many opportunities
+ for optimization, many of which can be done by coding more specific
+ paths for the rasterizers. See src/osmesa/osmesa.c for some good
+ examples.
+
+- There is DirectDraw support in the Windows driver, but I do not
+ know if it compiles or works. If you have an application that
+ does not draw much in a frame, but needs a higher framerate, then
+ it may pay to turn on the DirectDraw code, since DD often performs
+ the off-screen to on-screen blit faster than GDI.
+
+- Some of the more specialized code like FX drivers, stereo, and
+ parallel support isn't compiled or tested. I left much of this
+ code alone, but it may need some work to get it 'turned on' again.
+
+- No assembly code is compiled or assembled. Again, this may need
+ some work to turn it back on or use it again.
+
+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