Brian Paul | 8a06c75 | 1999-07-09 14:23:50 +0000 | [diff] [blame] | 1 |
|
| 2 | Mesa/Readme.win32
|
| 3 |
|
Ted Jump | 32b2028 | 1999-09-19 09:55:37 +0000 | [diff] [blame] | 4 | Last Updated: Sunday, September 19th, 1999 - tjump@tertius.com
|
Brian Paul | 8a06c75 | 1999-07-09 14:23:50 +0000 | [diff] [blame] | 5 |
|
| 6 | *** What's New
|
| 7 |
|
Ted Jump | 74783e9 | 1999-09-17 02:37:14 +0000 | [diff] [blame] | 8 | - Updated for Mesa 3.1beta3/CVS. Debug and Release command-line builds of
|
| 9 | Mesa, fxMesa, GLU, GLUT and all sample programs DLL-based. Manual
|
| 10 | executions tests with minimum requisite results (aka: things looked like
|
| 11 | I expected them to).
|
| 12 |
|
| 13 | What did you expect, complete regression testing maybe?
|
Brian Paul | 8a06c75 | 1999-07-09 14:23:50 +0000 | [diff] [blame] | 14 |
|
Ted Jump | 32b2028 | 1999-09-19 09:55:37 +0000 | [diff] [blame] | 15 | - NASM build support. Any file in the project coded as a .S file will
|
| 16 | automatically be recognized and built as a NASM-source assember file.
|
| 17 |
|
| 18 | To enable building using NASM, set the environment variable NASM to
|
| 19 | indicate that command to execute to run nasm on a file. If NASM is in
|
| 20 | your command search path then all this needs be set to is 'nasmw' -
|
| 21 | otherwise you will need to include the complete drive and directory path.
|
| 22 |
|
| 23 | NASM may be retrieved here: http://www.web-sites.co.uk/nasm/
|
| 24 |
|
Brian Paul | 8a06c75 | 1999-07-09 14:23:50 +0000 | [diff] [blame] | 25 | - DevStudio projects suspended for compatability reasons: projects modified
|
| 26 | by DevStudio 6 are not compatible with DevStudio 5.
|
| 27 |
|
Ted Jump | 74783e9 | 1999-09-17 02:37:14 +0000 | [diff] [blame] | 28 | These will slowly be rebuilt and put into CVS as I can.
|
| 29 |
|
Brian Paul | 8a06c75 | 1999-07-09 14:23:50 +0000 | [diff] [blame] | 30 | - Build environment change: The Glide SDK is no longer assumed to be in
|
| 31 | the global INCLUDE/LIB environment vars, it is required that you set the
|
| 32 | value 'GLIDE2X' as either an environment variable pointing to your Glide
|
| 33 | SDK install directory or that you configure that as a build option to
|
| 34 | nmake.exe when building fxmesagl32. Examples:
|
| 35 |
|
| 36 | nmake /f nmake.mak GLIDE2X=g:\sdk\glide2x fxmesagl32
|
| 37 |
|
| 38 | <or>
|
| 39 |
|
| 40 | nmake /f nmake.mak GLIDE2X=g:\sdk\glide2x allfx
|
| 41 |
|
| 42 | <or>
|
| 43 |
|
| 44 | nmake /f nmake.mak GLIDE2X=g:\sdk\glide2x progs.3dfx.demos
|
| 45 |
|
| 46 | The DevStudio workspace files for 3Dfx OpenGL require the definition of
|
| 47 | GLIDE2SDK as an environment variable pointing to where your copy of the
|
| 48 | Glide SDK has been installed. Adding this to your AUTOEXEC.BAT would do
|
| 49 | so (change the directories to match):
|
| 50 |
|
| 51 | SET GLIDE2SDK=G:\SDK\GLIDE2X
|
| 52 |
|
| 53 | *** Legalese
|
| 54 |
|
| 55 | These build files are provided as-is and are submitted to be included with
|
| 56 | the "Mesa 3-D Graphics Library" package as (currently) maintained by Brian
|
| 57 | Paul. These project build files are free software; you can redistribute it
|
| 58 | and/or modify it under the terms of the GNU Library General Public License
|
| 59 | as published by the Free Software Foundation; either version 2 of the
|
| 60 | License, or (at your option) any later version.
|
| 61 |
|
| 62 | These project files are distributed in the hope that they will be useful,
|
| 63 | but WITHOUT ANY WARRANTY; without even the implied warranty of
|
| 64 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library
|
| 65 | General Public License for more details.
|
| 66 |
|
| 67 | You should have received a copy of the GNU Library General Public License
|
| 68 | along with this library; if not, write to the Free Software Foundation,
|
| 69 | Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
| 70 |
|
| 71 | *** Maintenance Responsiblity and Technical Support
|
| 72 |
|
| 73 | While these files are now part of the Mesa core distribution please do NOT
|
| 74 | contact Mr. Paul for help with them if you encounter problems as he can't
|
| 75 | help you (currently). I will, however, attempt my straightforward best in
|
| 76 | assisting anyone with using these files on their system. I can NOT
|
| 77 | guarantee instant responses owing to other responsiblities, but I do try
|
| 78 | dang hard to answer any mail w/in 24 hours. I may be contacted at the
|
| 79 | above email address for the forseeable future.
|
| 80 |
|
| 81 | -Ted
|
| 82 | mailto://tjump@tertius.com
|
| 83 | http://www.tertius.com/tjump
|
| 84 |
|
| 85 | *** General Information
|
| 86 |
|
| 87 | These build files facilitate convenient building of many variants of Mesa,
|
| 88 | both as static link libraries (including mesaglu) and as dynamic link
|
| 89 | libraries that in some cases may be used as "drop-in" replacements for
|
| 90 | OpenGL32.DLL on both Windows95 and Windows NT.
|
| 91 |
|
| 92 | The construction of the Win32 command-line build files and projects has
|
| 93 | been something of a pet project of mine, and is based upon my own
|
| 94 | "standard" Win32 build environment as supplied by the "nmake.mif" file.
|
| 95 | They have been tested under Windows95 OSR2, Windows NT 4.0SP3, and Windows
|
| 96 | NT 5.0 beta 1. The libraries that they generated have been tested (via the
|
| 97 | demo programs) in a *limited* fashion on the above three systems, including
|
| 98 | the 3Dfx versions.
|
| 99 |
|
| 100 | The reason I went with command-line build environment instead of the more
|
| 101 | convenient IDE-based project files is for two reasons: 1. These appear to
|
| 102 | have some amount of portability between versions (the nmake syntax hasn't
|
| 103 | changed much since Microsoft C 7.0) while the IDE project files seem to
|
| 104 | change drastically each version. and 2. These are readable with any ascii
|
| 105 | editor and such are better self-documentation of the file relationships for
|
| 106 | more people such that it will facilitate supporting other Win32 compilers.
|
| 107 |
|
| 108 | While these files only deal with building for x86 targeted code it *should*
|
| 109 | be possible to add the necessary logic to them to build for the other MSVC
|
| 110 | supported CPU targets, I simply have no hardware to test them on nor the
|
| 111 | alternative compilers to build with.
|
| 112 |
|
| 113 | *** Prerequisites for use
|
| 114 |
|
| 115 | 1. You must have a 32-bit Microsoft compiler installed. I have tested
|
| 116 | this with Visual C 5.0 (SP3) and Visual C 4.2, but with minor
|
| 117 | (possibly no) modification to the nmake.mak and nmake.mif files this
|
| 118 | sequence should work on Visual C 2.0 also. The workspace files
|
| 119 | (mesalib.dsw and mesademos-*.dsw) and their included project files
|
| 120 | (*.dsp) are specific to the DevStudio IDE - I have made no attempt at
|
| 121 | building a VC4 IDE project set as I do not use that any more. Note
|
| 122 | that the VC workspace files NO LONGER use NORE are dependant upon the
|
| 123 | nmake.mak and nmake.mif files for construction of definition (*.DEF)
|
| 124 | and resource (*.RC) files.
|
| 125 |
|
| 126 | *** Visual C 4.x Users Warning ****
|
| 127 |
|
| 128 | Note that early editions of VC4 do NOT have header files current enough
|
| 129 | for use building this code base. If you are using VC4 you will either need
|
| 130 | to get an update to version 4.2 *or* you may download the Platform SDK
|
| 131 | directly from Microsoft's web site (www.microsoft.com) and update your
|
| 132 | build environment that way.
|
| 133 |
|
| 134 | *** Visual C 4.x Users Warning ****
|
| 135 |
|
| 136 | 2. You must have the PATH, INCLUDE, and LIB environment variables set
|
| 137 | properly. With VC5 you can easily get this by executing the VCVARS32.BAT
|
| 138 | file that was created for you upon installation. It is found in the
|
| 139 | DevStudio\VC\BIN directory, wherever you installed DevStudio. VC4 provides
|
| 140 | a similar batch file in it's BIN directory also.
|
| 141 |
|
| 142 | 3. (optional) If you're going to build for 3Dfx/Voodoo you will need to
|
| 143 | have previously installed the Glide SDK version 2.3 or later, if I
|
| 144 | recall. This may be retrieved from www.3dfx.com for no money and some
|
| 145 | download time. ;-) These build files assume that you have the Glide SDK
|
| 146 | added to the respective environment variables (LIB and INCLUDE).
|
| 147 |
|
| 148 | 4. (optional) If you're going to build for S3/Virge you will need the S3
|
| 149 | Developers Toolkit which may be downloaded from www.s3.com for the price of
|
| 150 | registering on-line and some time. NOTE: I can build the s3mesa.dll file to
|
| 151 | completion, however the compilation of s3mesa.c currently generates a large
|
| 152 | amount of compiler warnings and between that and the fact that I can not at
|
| 153 | all test it I can make no claims to it's ability to execute. Again, like
|
| 154 | the 3Dfx version before this, these build files assume you have the S3Dtk H
|
| 155 | and LIB files in the path of their respective environment variables.
|
| 156 | Note 2: As of Mesa3.0beta6 I have build files, both command-line and IDE,
|
| 157 | which should be able to build the s3mesa code base if it weren't for updates
|
| 158 | being required in the S3 DD code support (Mesa-3.0/src/s3 directory).
|
| 159 |
|
| 160 | I advise putting any include and lib files for secondary toolkits (Glide,
|
| 161 | S3Tk, whatever) in their respective environment variables *before* the
|
| 162 | Microsoft-assigned default values.
|
| 163 |
|
| 164 | *** FAQ: Frequenty Asked Questions and Other Important Information ***
|
| 165 |
|
| 166 | - When running the 3Dfx demos under Windows NT, they crash on exit, what's
|
| 167 | up?
|
| 168 |
|
| 169 | This is apparently a problem in Glide itself. The workaround is to go to
|
| 170 | your C:\WINNT\SYSTEM32 directory and rename the file FXOEM2X.DLL to
|
| 171 | FXOEM2X.DL_ to prevent Glide from loading and initializing it upon
|
| 172 | startup. This is known to be an issue with cards that do not have "TV
|
| 173 | out" and is known to cause crashes on Diamond Monster II 8M and 3Dfx
|
| 174 | Reference boards, all using 3Dfx Reference Drivers version 2.53. Other
|
| 175 | hardware/driver combinations will also likely exhibit this behavior.
|
| 176 |
|
| 177 | - I'm having a problem building Mesa for static library linking.
|
| 178 |
|
| 179 | This was caused by some incomplete testing on my part, and a fix is now
|
| 180 | available in the form of an add-on to the base Mesa 3.0 release. The
|
| 181 | file to get is:
|
| 182 |
|
| 183 | via FTP download from: iris.ssec.wisc.edu
|
| 184 | you want to go here: /pub/Mesa/patches_to_3.0/
|
| 185 | you want to get file: Mesa-3.0-w32-static-fixes.tar.gz
|
| 186 |
|
| 187 | This required a minor addition to INCLUDE/GL for a clean solution, the
|
| 188 | file "include/gl/mesa_wgl.h" is automatically included by
|
| 189 | "include/gl/gl.h" when a Win32 non-DLL build is in progress to provide
|
| 190 | prototypes for the various wgl functions.
|
| 191 |
|
| 192 | The only remaining hitch in this setup is that the 3Dfx build is not yet
|
| 193 | running as a static build, because of problems with conflicts in
|
| 194 | existance of the various GDI functions like ChoosePixelFormat,
|
| 195 | etc. *sigh*
|
| 196 |
|
| 197 | Anyway, the "allstatic" target now works as expected and builds all
|
| 198 | book/sample/demos programs to boot. ;^)
|
| 199 |
|
| 200 | - How do I get fxMesa to render in a window on the desktop instead of only
|
| 201 | full-screen?
|
| 202 |
|
| 203 | Use the Microsoft Windows fxMesa-in-a-window hack!
|
| 204 |
|
| 205 | Seriously, if you want fxMesaGL to render using the 3Dfx Voodoo1 or
|
| 206 | Voodoo2 hardware into a window on the desktop then all you need to do is
|
| 207 | set the MESA_WGL_FX environment variable to anything other than
|
| 208 | "fullscreen" and it will render into a window. If you wish to go
|
| 209 | fullscreen then you only need to NOT have the environment variable, or
|
| 210 | have it set to "fullscreen". You may also switch at runtime between
|
| 211 | fullscreen-mode and windowed by pressing ALT-ENTER on the keyboard
|
| 212 | (unless the application using Mesa does something with those keystrokes,
|
| 213 | of course).
|
| 214 |
|
| 215 | As of 8/13/98 this should be running a LOT better for more people as a
|
| 216 | low-compatability item was cleaned up which prevented it from working on
|
| 217 | many (most?) display drivers under Windows 9x.
|
| 218 |
|
| 219 | - I have my 3Dfx card hooked to it's own monitor and I want the output to
|
| 220 | stay on even if I switch to another program, is this possible?
|
| 221 |
|
| 222 | If the Glide environment variable SST_DUALHEAD is set to '1' then fxMesa
|
| 223 | will never disable the Voodoo output on a Voodoo1 or Voodoo2 display
|
| 224 | regardless of whether the fxMesa application is "current" or not. This
|
| 225 | works regardless of whether it's rendering using the window hack
|
| 226 | mentioned above or not.
|
| 227 |
|
| 228 | - I want to run the Mesa demos on my Intel740 card using it's own OpenGL
|
| 229 | acceleration, how do I do this?
|
| 230 |
|
| 231 | Build GLUT standalone for use with system OpenGL and GLU drivers!
|
| 232 |
|
| 233 | The Command-line project supports building all test/demo programs against
|
| 234 | these drivers also! This allows you full use of GLUT on Windows using
|
| 235 | hardware accelerated OpenGL. Wheee! This includes the "3dfx/demos"
|
| 236 | directory of which only two programs will not run on "standard"
|
| 237 | opengl. Note that there are a few of the sample programs which will NOT
|
| 238 | work without Mesa as they directly call into Mesa instead of using the
|
| 239 | extension mechanism.
|
| 240 |
|
| 241 | *** Included programs that exhibit unfortunate or bad behavior
|
| 242 |
|
| 243 | - demos/bounce - doesn't run on high-colors screens? It's requesting an
|
| 244 | INDEX display from GLUT and that fails on my true-color desktop. Changing
|
| 245 | this to _RGB let's the program work, but it doesn't display
|
| 246 | properly. This is probably just an idiosyncracy of my machine though, as
|
| 247 | if I test the program using GLUT for System OpenGL on my Intel740 OpenGL
|
| 248 | accelerated machine it's just hunky-dory.
|
| 249 |
|
| 250 | - demos/glutfx - runs, but crashes on exit (but not on my Intel740 machine)
|
| 251 |
|
| 252 | - demos/texobj - runs, but crashes on exit if ESC is pressed. Exits cleanly
|
| 253 | if the Close box on the window frame is pressed with the mouse. Go figure.
|
| 254 |
|
| 255 | - book/aaindex - doesn't run, can't get pixel format, because it wants an
|
| 256 | INDEX display maybe (but is okay on my Intel740 machine)?
|
| 257 |
|
| 258 | - most of the book/* demos don't respond to ESC being pressed.
|
| 259 |
|
| 260 | - 3dfx/demos/* - all demos run, however they all crash on exit. I've traced
|
| 261 | this so far as to determine the call it's happening with. The crash comes
|
| 262 | from within Glide during the processing of the grGlideShutdown() call, as
|
| 263 | in invalid memory reference exception. I'm wondering if this is because
|
| 264 | of some state or processing not being completed before the call. Dunno,
|
| 265 | but putting grSstIdle() in just before grGlideShutdown() does NOT fix the
|
| 266 | problem.
|
| 267 |
|
| 268 | - 3dfx/demos/tunnel2 - does not run on my system even with SLI mode
|
| 269 | disabled. Hmmmm, maybe I need to disconnect my Voodoo2 cards?
|
| 270 |
|
| 271 | *** Important Notes and Changing Default values
|
| 272 |
|
| 273 | - The optimizer settings have been manually reworked in both command line
|
| 274 | and DevStudio IDE files to hopefully prevent possible irrational code on
|
| 275 | the part of the code generator. Formerly, it was configured for "/Ox",
|
| 276 | now it is configured for safer handling at a slight potential performance
|
| 277 | cost. This may not be required for Visual Studio 6 but I can't test that
|
| 278 | (yet).
|
| 279 |
|
| 280 | - These files build with the code targeted for Pentium processors and
|
| 281 | 8-byte structure padding.
|
| 282 |
|
| 283 | - The IDE-built programs seem to be "happier" in that the command line
|
| 284 | build of the 3Dfx demo "fire" will grenade on exit (?). Otherwise pretty
|
| 285 | much everything may be built with either interface.
|
| 286 |
|
| 287 | - The currently configured Mesa version is 3.1, and MesaDemos version is
|
| 288 | the same. To change this permanently you will need to edit NMAKE.MAK and
|
| 289 | change the lines that look like this (they start o/a line 116):
|
| 290 |
|
| 291 | # Currently, Mesa is at rev 3.1 ...
|
| 292 | #
|
| 293 | !IF "$(MESAVER)" == ""
|
| 294 | MESAVER=3.1
|
| 295 | !ENDIF
|
| 296 |
|
| 297 | # used in building all of the resource files for the Mesa DLLs
|
| 298 | #
|
| 299 | !IF "$(MESAFILEVER)" == ""
|
| 300 | MESAFILEVER=3,1,0,0
|
| 301 | !ENDIF
|
| 302 |
|
| 303 | - Currently the build files are configured to be used from a Win32
|
| 304 | directory that is included inside the main Mesa-3.1 heirarchy.
|
| 305 |
|
| 306 | - The build files are smart enough to find the files for the core lib, glu,
|
| 307 | glut, and the various demo programs if they are unpacked in the current
|
| 308 | Mesa-3.1 heirarchy, like this:
|
| 309 |
|
| 310 | \Mesa-3.1
|
| 311 | \Mesa-3.1\src
|
| 312 | \Mesa-3.1\src-glu
|
| 313 | \Mesa-3.1\src-glut
|
| 314 | \Mesa-3.1\Win32
|
| 315 | \Mesa-3.1\samples
|
| 316 | \Mesa-3.1\demos
|
| 317 | \Mesa-3.1\book
|
| 318 | \Mesa-3.1\3Dfx\demos
|
| 319 |
|
| 320 | ... should work. This arose because my initial build tests for the
|
| 321 | demo files were done before MesaDemos 2.6 had been released.
|
| 322 |
|
| 323 | - With the exception of the static link libraries generated by this file
|
| 324 | set (mesagl.lib, mesaglu.lib, mesaglut.lib) all DLLs and executables are
|
| 325 | built against the "Multithreaded DLL" runtime - this means that they
|
| 326 | require MSVCRT.DLL or MSVCRTD.DLL in the path to execute.
|
| 327 |
|
| 328 | ** CHANGED 8/11/98 ***
|
| 329 |
|
| 330 | Note also that the demos are all built aginst the "OpenGL32, GLU32, and
|
| 331 | GLUT32" and as such they are fairly agnostic wrt: building against Mesa
|
| 332 | for CPU-rendering, Mesa-for-3Dfx, Mesa-for-S3, or System OpenGL.
|
| 333 |
|
| 334 | If you want to build them for use on your system and your display card
|
| 335 | provides full OpenGL acceleration (Permedia, Intel740, Intergraph,
|
| 336 | whatever) then you only need to build GLUT prior to building any of the
|
| 337 | demo programs. For convenience, the GLUT project is included in each of
|
| 338 | the demo projects Workspace files for the DevStudio IDE builds BUT it is
|
| 339 | not automatically built - you still need to build it first manually.
|
| 340 |
|
| 341 | Note that if you have GLUT already installed on your system (gl/glut.h in
|
| 342 | yoru INCLUDE path, glut32.lib/glut32d.lib in your LIB path, and the DLL
|
| 343 | in your PATH) then you do NOT need to build GLUT prior to the test
|
| 344 | programs.
|
| 345 |
|
| 346 | - The 3Dfx build of Mesa has primarily been tested with Quake 2 and it runs
|
| 347 | (mostly) fine on my PC (take that for what you want it)...
|
| 348 |
|
| 349 | ** CHANGED 8/11/98 ***
|
| 350 |
|
| 351 | There is still something going on that causes Glide to crash on shutdown,
|
| 352 | when I run fxMesa under Windows NT, however it does not appear to occur
|
| 353 | under Windows 9x on either Voodoo1 or Voodoo2 cards. *sigh*
|
| 354 |
|
| 355 | - I can not test the S3 build as I have no machines available with Virge
|
| 356 | based display cards.
|
| 357 |
|
| 358 | - The multithreaded test code is *not* built as it requires pthreads and I
|
| 359 | have as of yet spent not time trying to get that running. The latest word
|
| 360 | that I saw WRT threading support on win32 was that they are intending to
|
| 361 | support it natively within Win32 - so I'm waiting it out until they get
|
| 362 | it done.
|
| 363 |
|
| 364 | - Similarly, the 'xdemos' are not currently built because I haven't gotten
|
| 365 | around to building the client libs for native win32 and getting it all
|
| 366 | setup for use.
|
| 367 |
|
| 368 | *** Output Files
|
| 369 |
|
| 370 | All final output files (DLL/LIB) are placed in the Mesa-3.1/lib directory,
|
| 371 | with the exception of the fxMesaGL32 build which is placed in
|
| 372 | Mesa-3./lib/FX and the executable images which are placed in their source
|
| 373 | directories.
|
| 374 |
|
| 375 | To be able to execute the various test programs, you will need to copy the
|
| 376 | requisite DLL files into the same directory as the EXE files. Note that
|
| 377 | most of the 3Dfx/demos/* programs WILL run with the non-FX build of Mesa -
|
| 378 | just very slowly. The two programs which are hard-linked with the FX build
|
| 379 | and will not run without it are "glbpaltx" which uses "gl3DfxSetPaletteEXT"
|
| 380 | directly instead of via the extensions mechanism and "tunnel2" which uses
|
| 381 | "fxMesaSelectCurrentBoard" API for selecting between multiple 3Dfx cards
|
| 382 | installed in one system. Likewise, "paltex" directly uses the
|
| 383 | "glColorTableEXT" extension and thus may not run on anything except
|
| 384 | Mesa. If these applications used the proper extension mechanism they could
|
| 385 | then be used on more than "just" fxMesa to good effect (for example, the
|
| 386 | rest of the "3Dfx/demos" run just peachy on the Intel740 card in my test
|
| 387 | machine) under WinNT.
|
| 388 |
|
| 389 | Because I'm anal about my computer and it's organization, and I like to
|
| 390 | prevent collision between builds, each of the subprojects has their own
|
| 391 | intermediate file directory inside .\win32\release (for example, when
|
| 392 | building mesagl.lib all of it's intermediate files will be found in
|
| 393 | .\win32\release\lib.mesagl). This makes it very easy to cleanup as you
|
| 394 | only need to remove .\win32\release.
|
| 395 |
|
| 396 | *** Okay, Enough, how do I build with this stuff already Ted!
|
| 397 |
|
| 398 | Okay, no major calamity here. The basic way to use the project file is to
|
| 399 | call it via NMAKE from the command line. The format is:
|
| 400 |
|
| 401 | nmake[.exe] /f nmake.mak [options] [target]
|
| 402 |
|
| 403 | The most likely [options] values you will use may be any combination of the
|
| 404 | following:
|
| 405 |
|
| 406 | DEBUG=1 or DEBUG=0
|
| 407 | USE_CRTDLL=1 or USE_CRTDLL=0
|
| 408 |
|
| 409 | Note that all three of these options are OFF by default.
|
| 410 |
|
| 411 | The [target] includes but is not limited to the following (for full details
|
| 412 | please peruse the NMAKE.MAK and NMAKE.MIF files - but be warned that
|
| 413 | NMAKE.MIF is rather large and sometimes hard to follow):
|
| 414 |
|
| 415 | --- convenience targets ---
|
| 416 |
|
| 417 | all - builds everything
|
| 418 | libfiles - builds all linking library files
|
| 419 | progs - builds all executable images
|
| 420 |
|
| 421 | --- library files, static and dynamic ---
|
| 422 |
|
| 423 | mesagl - static lib build of Mesa core.
|
| 424 | mesaglu - static lib build of MesaGLU core.
|
| 425 | mesaglut - static lib build of Mesa GLUT core.
|
| 426 |
|
| 427 | mesagl32 - dynamic lib build of Mesa core.
|
| 428 |
|
| 429 | mesaglu32 - dynamic lib build of GLU core, generates
|
| 430 | GLU32.DLL and/or GLU32d.DLL.
|
| 431 |
|
| 432 | mesaglut32 - dynamic lib build of GLUT core, generates
|
| 433 | GLUT32.DLL and/or GLUT32d.dll.
|
| 434 |
|
| 435 | --- hardware accelerated mesa builds ---
|
| 436 |
|
| 437 | fxmesagl32 - builds Mesa for use on top of the 3Dfx
|
| 438 | Glide runtime libs
|
| 439 |
|
| 440 | s3mesagl32 - builds mesa for use on top of the S3
|
| 441 | 'S3Tk' runtime libs.
|
| 442 |
|
| 443 | --- executable images ---
|
| 444 |
|
| 445 | progs.book - builds all programs in \book directory
|
| 446 | progs.demos - builds all programs in \demos directory
|
| 447 | progs.samples - builds all programs in \samples directory
|
| 448 |
|
| 449 | These targets generate all of the programs in their respective
|
| 450 | directories and link the executables against OpenGL32.DLL,
|
| 451 | GLU32.DLL, and GLUT32.DLL (or their debug equivalents).
|
| 452 |
|
| 453 | progs.3dfx.demos - builds all programs in \3dfx\demos directory
|
| 454 |
|
| 455 | This target generates the 3Dfx/Demo executables, linking them
|
| 456 | against GLUT32.DLL, GLU32.DLL, OPENGL32.DLL and are thus NOT
|
| 457 | hard-bound to using Mesa per-se as you can simply NOT build the
|
| 458 | Mesa core and GLU libraries.
|
| 459 |
|
| 460 | --- Microsoft/SGI OpenGL-based GLUT and Demo program builds ----
|
| 461 |
|
| 462 | *** IMPORTANT SAFETY TIP: If you're going to build these variants of
|
| 463 | GLUT then DO NOT build any other target libraries in this package
|
| 464 | first, OR from the command line run the "nmake /f nmake.mak clean"
|
| 465 | command first! This is because generation of the GLUT for SGI
|
| 466 | OpenGL target libraries conflicts in naming with the static build
|
| 467 | libraries of Mesa and it's supporting GLUT build.
|
| 468 |
|
| 469 | Currently, you may build GLUT as either GLUT32.DLL or GLUT.DLL for
|
| 470 | use running against either Microsoft or SGI OpenGL for Window,
|
| 471 | respectively. This allows for the general use of GLUT 3.7 on Windows
|
| 472 | systems with fully compliant OpenGL.
|
| 473 |
|
| 474 | You can build the GLUT DLL files either with the command line by
|
| 475 | issuing either of these commands:
|
| 476 |
|
| 477 | nmake /f nmake.mak glut.sysgl
|
| 478 |
|
| 479 | <or>
|
| 480 |
|
| 481 | nmake /f nmake.mak glut.sgigl
|
| 482 |
|
| 483 | OR by using the DevStudio MesaLib Worksapce build the GLUT_SGIGL or
|
| 484 | GLUT_SYSGL projects within the DevStudio IDE.
|
| 485 |
|
| 486 | Unfortunately, the only way to build the test programs against this
|
| 487 | build of GLUT is via the command line, and I will NOT be making
|
| 488 | duplicate demo program projects for the IDE as it's just not worth it,
|
| 489 | sorry.
|
| 490 |
|
| 491 | To build the test programs against either MS or SGI OpenGL, you do so
|
| 492 | via either of these two commands:
|
| 493 |
|
| 494 | nmake /f nmake.mak progs.sysgl
|
| 495 |
|
| 496 | <or>
|
| 497 |
|
| 498 | nmake /f nmake.mak progs.sgigl
|
| 499 |
|
| 500 | To use the GLUT-for-system-OpenGL in your own programs, you need to do
|
| 501 | three things by way of preparation, after building GLUT of course:
|
| 502 |
|
| 503 | 1. Copy include\gl\glut.h to somewhere in your %INCLUDE% path, one
|
| 504 | likely candidate location would be in your
|
| 505 | "DevStudio\VC\INCLUDE\GL" directory.
|
| 506 |
|
| 507 | 2. Copy the linking libraries to somewhere in your %LIB% path, one
|
| 508 | likely candidate location would be in your "DevStudio\VC\LIB"
|
| 509 | directory. The linking libraries you need to copy are as
|
| 510 | follows:
|
| 511 |
|
| 512 | .\Release\GLUT32.LIB
|
| 513 | .\Release\GLUT.LIB
|
| 514 | .\Debug\GLUT32.LIB
|
| 515 | .\Debug\GLUT.LIB
|
| 516 |
|
| 517 | 3. Copy the runtime libraries to somewhere in your %PATH%, one
|
| 518 | likely candidate location would be in WINDOWS\SYSTEM. the files
|
| 519 | that you should copy are as follows:
|
| 520 |
|
| 521 | .\Release\GLUT32.DLL
|
| 522 | .\Release\GLUT32.PDB
|
| 523 | .\Release\GLUT.DLL
|
| 524 | .\Release\GLUT.PDB
|
| 525 | .\Debug\GLUT32d.DLL
|
| 526 | .\Debug\GLUT32d.PDB
|
| 527 | .\Debug\GLUTd.DLL
|
| 528 | .\Debug\GLUTd.PDB
|
| 529 |
|
| 530 | Some examples are in order ...
|
| 531 |
|
| 532 | ... build all dynamic-link libs using MSVCRT.DLL for C runtime:
|
| 533 |
|
| 534 | nmake /f nmake.mak USE_CRTDLL=1 alldynamic
|
| 535 |
|
| 536 | ... To build all library variants and all test and demonstration
|
| 537 | programs with the default settings you do this:
|
| 538 |
|
| 539 | nmake /f nmake.mak all
|
| 540 |
|
| 541 | ... to build all static link libs and nothing else you do this:
|
| 542 |
|
| 543 | nmake /f nmake.mak allstatic
|
| 544 |
|
| 545 | ... to build all non-accelerated dynamic link libs you do this:
|
| 546 |
|
| 547 | nmake /f nmake.mak alldynamic
|
| 548 |
|
| 549 | ... to build all 3Dfx targeted dynamic link libs you do this:
|
| 550 |
|
| 551 | nmake /f nmake.mak allaccel
|
| 552 |
|
| 553 | ... to build all S3 Virge targetd dynamic link libs you do this:
|
| 554 |
|
| 555 | nmake /f nmake.mak alls3
|
| 556 |
|
| 557 | ... to build all libraries, static and dynamic, in all versions
|
| 558 | you do this:
|
| 559 |
|
| 560 | nmake /f nmake.mak libfiles
|
| 561 |
|
| 562 | ... to subsequently build all demo and test programs you do this:
|
| 563 |
|
| 564 | nmake /f nmake.mak progs
|
| 565 |
|
| 566 | ... to cleanup all intermediate files you do this:
|
| 567 |
|
| 568 | nmake /f clean
|
| 569 |
|
| 570 | You get the picture. (I hope) ;^) You may also specify specify
|
| 571 | single targets in a convenient fashion. The rule is simple, any of the
|
| 572 | above named lib files, static or dynamic, may be built by providing it's
|
| 573 | name on the command line as the target. Examples:
|
| 574 |
|
| 575 | ... to build only Mesa as OpenGL32.DLL ...
|
| 576 |
|
| 577 | nmake /f nmake.mak opengl32
|
| 578 |
|
| 579 | ... to build only Mesa on top of the 3Dfx Glide API ...
|
| 580 |
|
| 581 | nmake /f nmake.mak fxMesaGL32
|
| 582 | <or>
|
| 583 | nmake /f nmake.mak fxMesaGL
|
| 584 |
|
| 585 | ... to build only Mesa on top of the S3 Toolkit ...
|
| 586 |
|
| 587 | nmake /f nmake.mak s3MesaGL32
|
| 588 | <or>
|
| 589 | nmake /f nmake.mak s3mesaGL
|
| 590 |
|
| 591 | *** Revision history for ./win32 project files
|
| 592 |
|
| 593 | 1/18/98 - initial cut submitted and included with core mesa
|
| 594 | 2/5/98 - fixed internal dependency within nmake.mif upon there being
|
| 595 | a $(DEVDIR) variable to make some temporary batch files
|
| 596 | dependant upon (thanks to Keven T. McDonnell for finding
|
| 597 | that there was this particular bug). I also updated the
|
| 598 | build files for 2.6beta6.
|
| 599 | 2/8/98 - added DevStudio workspace and project files for all lib
|
| 600 | files and some test programs. Updated readme.win32.
|
| 601 | 6/25/98 - initial revision for Mesa 3.0, does not include IDE files,
|
| 602 | not everything is running. *sigh*
|
| 603 | 7/20/98 - Mesa 3.0beta6 rev of all build files, all libs built and
|
| 604 | minimally tested, all demo programs built and minimally
|
| 605 | tested to within limits of my PC. ;^) Eveything looks
|
| 606 | MUCH better now ...
|
| 607 | 7/30/98 - Minor updates/edits based upon feedback from
|
| 608 | Eero Pajarre <epajarre@koti.tpo.fi>. These updates include a fix
|
| 609 | to the Mesa-on-3Dfx build such that Quake-II now runs almost
|
| 610 | properly on my system. It runs, just *very* slowly and with *no*
|
| 611 | textures. Hmmm. Doesn't make any difference whether Quake is set
|
| 612 | to use 8-bit textures or not.
|
| 613 | 8/13/98 - Lots of build cleanups, minor bug fixes in fxwgl.c, and
|
| 614 | compatability fix in fxapi.c for in-window rendering using 3Dfx
|
| 615 | hardware.
|
| 616 | 8/26/98 - Final revisions for Mesa 3 release checked
|
| 617 | 9/22/98 - Fixed static builds for all but fxMesaGL32 and s3MesaGL32 targets
|
| 618 | 9/29/98 - Reorganized FAQ information and added Added faq entry about Glide
|
| 619 | bug under NT (crash on exit) and a workaround.
|
| 620 | 11/21/98 - Updated files for Mesa 3.1 beta 1
|
| 621 | Updated fxMesa window-hack code
|
| 622 | Updated fxMesa resolution support to handle 1600x1200 & 1280x1024
|
| 623 | 7/9/99 - Rev'd for Mesa 3.1 beta 2 |