Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
@@ -0,0 +1,129 @@ | ||
|
||
Using SDL under Windows with the OpenWatcom compiler | ||
==================================================== | ||
|
||
Prerequisites | ||
------------- | ||
|
||
I have done the port under Windows XP Home with SP2 installed. Windows | ||
2000 should also be working. I'm not so sure about ancient Windows NT, | ||
since only DirectX 3 is available there. Building should be possible, | ||
but running the compiled applications will probalbly fail with | ||
SDL_VIDEODRIVER=directx. The windib driver should work, though. | ||
|
||
To compile and use the SDL with Open Watcom you will need the following: | ||
- Open Watcom compiler. I used version 1.5. The environment variables | ||
PATH, WATCOM and INCLUDE need to be set appropriately - please consult | ||
the OpenWatcom documentation and instructions given during the | ||
installation of the compiler. | ||
My setup looks like this in owvars.bat: | ||
set WATCOM=C:\watcom | ||
set INCLUDE=%WATCOM%\h;%WATCOM%\h\nt | ||
set PATH=%PATH%;%WATCOM%\binnt;%WATCOM%\binw | ||
- A fairly recent DirectX SDK. The original unmodified DX8 SDK works, as | ||
well as the minimal DirectX 7 SDK from the Allegro download site | ||
(<http://alleg.sourceforge.net/files/dx70_min.zip>). | ||
- The SDL sources from Subversion | ||
- The file Watcom-Win32.zip (now available in Subversion) | ||
|
||
|
||
Building the Library | ||
-------------------- | ||
|
||
1) In the SDL base directory extract the archive Watcom-Win32.zip. This | ||
creates a subdirectory named 'watcom'. | ||
2) The makefile expects the environment variable DXDIR to be set to the | ||
base directory of a DirectX SDK. I have tried a stock DX8 SDK from | ||
Microsoft as well as the minimal DirectX 7 SDK from the Allegro | ||
download site. | ||
You can also edit the makefile directly and hard code your path to | ||
the SDK on your system. | ||
I have this in my setup: | ||
set DXDIR=D:\devel\DX8_SDK | ||
3) Enter the watcom directory and run | ||
wmake sdl | ||
4) All tests from the test directory are working and can be built by | ||
running | ||
wmake tests | ||
|
||
Notes: | ||
|
||
The makefile offers some options to tweak the way the library is built. | ||
You have at your disposal the option to build a static (default) | ||
library, or a DLL (with tgt=dll). You can also choose whether to build | ||
a Release (default) or a Debug version (with build=debug) of the tests | ||
and library. Please consult the usage comment at the top of the | ||
makefile for usage instructions. | ||
|
||
If you specify a test target (i.e. 'wmake tests' for all tests, or | ||
selected targets like 'wmake testgl testvidinfo testoverlay2'), the | ||
tests are always freshly compiled and linked. This is done to | ||
minimise hassle when switching between library versions (static vs. | ||
DLL), because they require subtly different options. | ||
Also, the test executables are put directly into the test directory, | ||
so they can find their data files. The clean target of the makefile | ||
removes the test executables and the SDL.dll file from the test | ||
directory. | ||
|
||
To use the library in your own projects with Open Watcom, you can use | ||
the way the tests are built as base of your own build environment. | ||
|
||
|
||
Test applications | ||
----------------- | ||
|
||
I've tried to make all tests work. The following table gives an overview | ||
of the current status. | ||
|
||
Testname Status | ||
~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
checkkeys + | ||
graywin + | ||
loopwave + | ||
testalpha + | ||
testbitmap + | ||
testdyngl + | ||
testerror + | ||
testfile + | ||
testgamma + | ||
testgl + | ||
testhread + | ||
testiconv - (all failed) | ||
testkeys + | ||
testlock + | ||
testoverlay + (needs 'set SDL_VIDEODRIVER=directx') | ||
testoverlay2 + (needs 'set SDL_VIDEODRIVER=directx') | ||
testpalette + | ||
testplatform + | ||
testsem + | ||
testsprite + | ||
testtimer + | ||
testver + | ||
testvidinfo + | ||
testwin - (fading doesn't seem right) | ||
testwm + | ||
torturethread + | ||
testcdrom + | ||
testjoystick not tested | ||
threadwin + | ||
|
||
|
||
TODO | ||
---- | ||
|
||
There is room for further improvement: | ||
- Test joystick functionality. | ||
- Investigate fading issue in 'testwin' test. | ||
- Fix the UTF-8 support. | ||
- Adapt the makefile/object file list to support more target systems | ||
- Use "#pragma aux" syntax for the CPU info functions. | ||
|
||
|
||
Questions and Comments | ||
---------------------- | ||
|
||
Please direct any questions or comments to me: <mailto:macpete@gmx.de> | ||
|
||
Happy Coding! | ||
|
||
Marc Peter |