Karl Schultz | b5bfe2f | 2001-10-15 20:38:12 +0000 | [diff] [blame] | 1 | File: docs/README.WIN32 |
| 2 | |
Karl Schultz | af76b42 | 2002-11-08 18:00:04 +0000 | [diff] [blame^] | 3 | Last updated: Nov 08, 2002 - Karl Schultz - kschultz@users.sourceforge.net |
Karl Schultz | b5bfe2f | 2001-10-15 20:38:12 +0000 | [diff] [blame] | 4 | |
| 5 | Quick Start |
| 6 | |
Karl Schultz | af76b42 | 2002-11-08 18:00:04 +0000 | [diff] [blame^] | 7 | Unzip both ZIP files (MesaLib and MesaDemos) into the same directory. |
| 8 | This is important because the current makefiles in MesaLib assume that |
| 9 | the directories in MesaDemos are present. |
| 10 | |
Karl Schultz | b5bfe2f | 2001-10-15 20:38:12 +0000 | [diff] [blame] | 11 | If you have Microsoft Visual C++ 6.0 installed, simply go to the top directory |
| 12 | of the Mesa distribution and type 'nmake -f Makefile.win NODEBUG=1' for |
Karl Schultz | 1073066 | 2002-08-15 15:13:31 +0000 | [diff] [blame] | 13 | an optimized build. Note that you may have to run ...VC98/BIN/VCVARS32.BAT |
| 14 | to set up the appropriate compiler environment variables. |
Karl Schultz | b5bfe2f | 2001-10-15 20:38:12 +0000 | [diff] [blame] | 15 | |
| 16 | Details and Notes |
| 17 | |
| 18 | - Building Mesa as noted above should visit and build the following: |
| 19 | src MesaGL.dll, MesaGL.lib, osmesa.dll, osmesa.lib |
| 20 | si-glu MesaGLU.dll, MesaGLU.lib |
| 21 | src-glut glut32.dll, glut32.lib |
| 22 | demos a handful of demo executables. |
Karl Schultz | 1073066 | 2002-08-15 15:13:31 +0000 | [diff] [blame] | 23 | book more examples |
| 24 | samples more examples |
Karl Schultz | b5bfe2f | 2001-10-15 20:38:12 +0000 | [diff] [blame] | 25 | |
| 26 | - After building, you can copy the above DLL files to a place in your PATH |
Karl Schultz | 1073066 | 2002-08-15 15:13:31 +0000 | [diff] [blame] | 27 | such as $SystemRoot/SYSTEM32. If you don't like putting things in a |
| 28 | system directory, place them in the same directory as the executable(s). |
| 29 | For example, you can copy the DLL files to the demos directory if you |
| 30 | just want to run the demos. The build process places the DLL and LIB files |
| 31 | in the ./lib directory. The makefile creates this directory if it does |
| 32 | not already exist. |
Karl Schultz | b5bfe2f | 2001-10-15 20:38:12 +0000 | [diff] [blame] | 33 | |
| 34 | - The make targets 'clean' and 'clobber' will remove objects and libraries. |
| 35 | But the files in ./lib are never cleaned. |
| 36 | |
| 37 | - The make target 'install' will take its best shot at copying DLL files, |
| 38 | LIB files, and headers to the right places. I strongly suggest that |
| 39 | you examine the makefiles to make sure that 'install' doesn't do anything |
| 40 | that you can't live with. |
| 41 | |
| 42 | - The makefiles are designed to work with Microsoft's NMAKE, and do, |
| 43 | unfortunately, have some Microsoft-specific things in them. If you |
| 44 | would like to use gcc or some other build tools like the Cygnus tools, |
| 45 | then you will have to hack the makefiles to make them work with your |
| 46 | tools. I'm sorry about this; I wasn't motivated to make this any |
| 47 | different, but if you end up modifying the makefiles for your tools, |
| 48 | you can send me the changes and I can apply the changes to the |
| 49 | source tree. |
| 50 | |
| 51 | - There are no Microsoft Visual Studio project files. However, these |
| 52 | should be very easy to create. One can use the compiler and linker |
| 53 | options found in the makefiles to make quick progress in creating |
| 54 | projects. |
| 55 | |
| 56 | - The DLL files are built so that the external entry points use the |
| 57 | stdcall calling convention. |
| 58 | |
| 59 | - Static LIB files are not built. The LIB files that are built with |
| 60 | the current makefiles are the linker import files associated with |
| 61 | the DLL files. If static LIB's are desired, it should not be too |
| 62 | difficult to modify the makefiles to generate them. |
| 63 | |
| 64 | - The si-glu sources are used to build the GLU libs. This was done |
Karl Schultz | 8ff2715 | 2001-11-29 16:55:37 +0000 | [diff] [blame] | 65 | mainly to get the better tessellator code. |
Karl Schultz | b5bfe2f | 2001-10-15 20:38:12 +0000 | [diff] [blame] | 66 | |
| 67 | - The osmesa driver builds and should work on Windows as well as |
| 68 | any other platform. |
| 69 | |
| 70 | - The Windows driver (in src/Windows) builds and runs at least at |
| 71 | a minimal level. I modified this driver to work with the new |
| 72 | Mesa 4.0 code and driver architecture, but I did not do a great |
| 73 | deal of optimization and testing. There are many opportunities |
| 74 | for optimization, many of which can be done by coding more specific |
| 75 | paths for the rasterizers. See src/osmesa/osmesa.c for some good |
| 76 | examples. |
| 77 | |
Karl Schultz | acf0c0a | 2001-11-01 22:44:47 +0000 | [diff] [blame] | 78 | - There is DirectDraw support in the Windows driver, updated by |
| 79 | Daniel Slater. You'll need to uncomment the #define DDRAW line |
| 80 | in src/Windows/wmesadef.h and add ddraw.lib to the list of libraries |
| 81 | in src/Makefile.win. On some systems, you will acheive significantly |
| 82 | higher framerates with DirectDraw. |
Karl Schultz | b5bfe2f | 2001-10-15 20:38:12 +0000 | [diff] [blame] | 83 | |
| 84 | - Some of the more specialized code like FX drivers, stereo, and |
| 85 | parallel support isn't compiled or tested. I left much of this |
| 86 | code alone, but it may need some work to get it 'turned on' again. |
| 87 | |
| 88 | - No assembly code is compiled or assembled. Again, this may need |
| 89 | some work to turn it back on or use it again. |
| 90 | |
| 91 | If you have a Windows-related build problem or question, it is |
| 92 | probably better to direct it to me (kschultz@users.sourceforge.net), |
| 93 | rather than directly to the other Mesa developers. I will help you |
| 94 | as much as I can. I also monitor the Mesa mailing lists and will |
| 95 | answer questions in this area there as well. |
| 96 | |
| 97 | |
| 98 | Karl Schultz |