README.Watcom
author Sam Lantinga <slouken@libsdl.org>
Tue, 09 May 2006 07:26:58 +0000
changeset 1790 828a17e05192
parent 1773 3776702e1fb9
child 1710 db78e088b6ce
permissions -rw-r--r--
Date: Mon, 8 May 2006 14:19:30 -0700
From: Bob Ippolito
Subject: SDL trunk (r2346) and Mac OS X

The current state of the trunk doesn't quite compile on Mac OS X,
I've attached a series of patches that gets it to compile and kills a
few warnings.

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