e14743d1 |
1 | \r |
2 | Using SDL under Windows with the OpenWatcom compiler\r |
3 | ====================================================\r |
4 | \r |
5 | Prerequisites\r |
6 | -------------\r |
7 | \r |
8 | I have done the port under Windows XP Home with SP2 installed. Windows\r |
9 | 2000 should also be working. I'm not so sure about ancient Windows NT,\r |
10 | since only DirectX 3 is available there. Building should be possible,\r |
11 | but running the compiled applications will probalbly fail with\r |
12 | SDL_VIDEODRIVER=directx. The windib driver should work, though.\r |
13 | \r |
14 | To compile and use the SDL with Open Watcom you will need the following:\r |
15 | - Open Watcom compiler. I used version 1.5. The environment variables\r |
16 | PATH, WATCOM and INCLUDE need to be set appropriately - please consult\r |
17 | the OpenWatcom documentation and instructions given during the\r |
18 | installation of the compiler.\r |
19 | My setup looks like this in owvars.bat:\r |
20 | set WATCOM=C:\watcom\r |
21 | set INCLUDE=%WATCOM%\h;%WATCOM%\h\nt\r |
22 | set PATH=%PATH%;%WATCOM%\binnt;%WATCOM%\binw\r |
23 | - A fairly recent DirectX SDK. The original unmodified DX8 SDK works, as\r |
24 | well as the minimal DirectX 7 SDK from the Allegro download site\r |
25 | (<http://alleg.sourceforge.net/files/dx70_min.zip>).\r |
26 | - The SDL sources from Subversion\r |
27 | - The file Watcom-Win32.zip (now available in Subversion)\r |
28 | \r |
29 | \r |
30 | Building the Library\r |
31 | --------------------\r |
32 | \r |
33 | 1) In the SDL base directory extract the archive Watcom-Win32.zip. This\r |
34 | creates a subdirectory named 'watcom'.\r |
35 | 2) The makefile expects the environment variable DXDIR to be set to the\r |
36 | base directory of a DirectX SDK. I have tried a stock DX8 SDK from\r |
37 | Microsoft as well as the minimal DirectX 7 SDK from the Allegro\r |
38 | download site.\r |
39 | You can also edit the makefile directly and hard code your path to\r |
40 | the SDK on your system.\r |
41 | I have this in my setup:\r |
42 | set DXDIR=D:\devel\DX8_SDK\r |
43 | 3) Enter the watcom directory and run\r |
44 | wmake sdl\r |
45 | 4) All tests from the test directory are working and can be built by\r |
46 | running\r |
47 | wmake tests\r |
48 | \r |
49 | Notes:\r |
50 | \r |
51 | The makefile offers some options to tweak the way the library is built.\r |
52 | You have at your disposal the option to build a static (default)\r |
53 | library, or a DLL (with tgt=dll). You can also choose whether to build\r |
54 | a Release (default) or a Debug version (with build=debug) of the tests\r |
55 | and library. Please consult the usage comment at the top of the\r |
56 | makefile for usage instructions.\r |
57 | \r |
58 | If you specify a test target (i.e. 'wmake tests' for all tests, or\r |
59 | selected targets like 'wmake testgl testvidinfo testoverlay2'), the\r |
60 | tests are always freshly compiled and linked. This is done to\r |
61 | minimise hassle when switching between library versions (static vs.\r |
62 | DLL), because they require subtly different options.\r |
63 | Also, the test executables are put directly into the test directory,\r |
64 | so they can find their data files. The clean target of the makefile\r |
65 | removes the test executables and the SDL.dll file from the test\r |
66 | directory.\r |
67 | \r |
68 | To use the library in your own projects with Open Watcom, you can use\r |
69 | the way the tests are built as base of your own build environment.\r |
70 | \r |
71 | The library can also be built with the stack calling convention of the\r |
72 | compiler (-6s instead of -6r).\r |
73 | \r |
74 | \r |
75 | Test applications\r |
76 | -----------------\r |
77 | \r |
78 | I've tried to make all tests work. The following table gives an overview\r |
79 | of the current status.\r |
80 | \r |
81 | Testname Status\r |
82 | ~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r |
83 | checkkeys +\r |
84 | graywin +\r |
85 | loopwave +\r |
86 | testalpha +\r |
87 | testbitmap +\r |
88 | testdyngl +\r |
89 | testerror +\r |
90 | testfile +\r |
91 | testgamma +\r |
92 | testgl +\r |
93 | testhread +\r |
94 | testiconv - (all failed)\r |
95 | testkeys +\r |
96 | testlock +\r |
97 | testoverlay + (needs 'set SDL_VIDEODRIVER=directx')\r |
98 | testoverlay2 + (needs 'set SDL_VIDEODRIVER=directx')\r |
99 | testpalette +\r |
100 | testplatform +\r |
101 | testsem +\r |
102 | testsprite +\r |
103 | testtimer +\r |
104 | testver +\r |
105 | testvidinfo +\r |
106 | testwin ? (fading doesn't seem right)\r |
107 | testwm +\r |
108 | torturethread +\r |
109 | testcdrom +\r |
110 | testjoystick not tested\r |
111 | threadwin +\r |
112 | testcursor +\r |
113 | \r |
114 | \r |
115 | TODO\r |
116 | ----\r |
117 | \r |
118 | There is room for further improvement:\r |
119 | - Test joystick functionality.\r |
120 | - Investigate fading issue in 'testwin' test.\r |
121 | - Fix the UTF-8 support.\r |
122 | - Adapt the makefile/object file list to support more target systems\r |
123 | - Use "#pragma aux" syntax for the CPU info functions.\r |
124 | \r |
125 | \r |
126 | Questions and Comments\r |
127 | ----------------------\r |
128 | \r |
129 | Please direct any questions or comments to me: <mailto:macpete@gmx.de>\r |
130 | \r |
131 | Happy Coding!\r |
132 | \r |
133 | Marc Peter\r |