The build system I'm using is SCons because it does a fine job of discovering dependencies on its own and it has decent multi-platform support. Other commonly used options tend to be overly complex and more closely tied to a platform. The SConstruct file that controls the build is my first attempt at using Python, so it's a bit messy. There are a few build options exposed through SCons; to list them, run:
Also included is a makefile. It gets compiler flags from makedefs and is intended for use with gcc. I don't keep the makefile up to date, but I have included a bash script I wrote some time ago that does it for me. It requires gcc.
There is also a project file for MS Visual Studio 2003. It also is not kept up to date, but it should be a matter of adding newer source files to the project. SCons also outputs project and solution files using a different name.
- Linux
- A number of distributions make it easy to install all the tools and dependencies
- Installation not part of the build
- No distribution-dependent install packages
- On Gentoo, I recomend using the following command as root to install what you'll need to run and build the game:
emerge -av sdl-ttf sdl-mixer scons
- Windows
- MS VC++ 2003
- Incomplete I18N support -- no support for positional formatting parameters with printf that I could find
- Lacks some math functions in standard C math library, although the functions are available to C++ programs
- MS VC++ 2005
- Fixes problems with the earlier version
- GNU toolchain not yet supported
- Missing some functions for IPv6 support, although I didn't fully support IPv6 anyway
- Application's title bar can only display ASCII characters (seems to be a bug in SDL up to at least version 1.2.11)
- Mac OS X
- An early build seemed OK on a PPC
- Uses same build tools as Linux, so the dependencies need to be built from source and installed Unix style.
- Apple style libraries (Frameworks?) are not supported -- couldn't figure out how to link to them
- Audio support (USE_AUDIO)
- I18N support (USE_GETTEXT)
- Background graphic support (USE_SDLIMAGE)
- Network message debugging (MSG_DEBUG)
- Provides console output detailing messages sent and received
- Incompatible with I18N support
- Non-Debug build (NDEBUG)
Generated on Mon May 28 04:41:40 2007 for Retro Tank Super Attack by
1.5.2