Wiki
Clone wikiultima-exodus / Build_Environment
Build Environment Overview
The Exodus Project consists of two types of source code:
- assembler source code (*.asm files)
- C source code (*.c, *.h files)
The asm files are assembled using Flat Assembler (fasm) and are intended for a DOS/i386 architecture.
For C source code the Exodus Project supports two architectures: the DOS/i386 architecture and the local machine (aka the build environment). DOS/i386 is the intended execution environment for the upgrades and is therefore the primary architecture of the project. However binaries for the local architecture are also built for several reasons:
- some of the programs may only be intended for developers (and will not be packaged with the release)
- it makes the programs a little easier to test
- some of these compiled programs are actually used by the build process (e.g. the binpatch tools)
In order to build both architectures, the project employs two compilers for C source code:
- GNU C (gcc)
- OpenWatcom (wcc)
I would actually have preferred to use GNU C for everything (can you tell I'm a UNIX developer?) but GCC cannot output binaries for the 16-bit DOS architecture which is absolutely necessary for this project. Thus, the project also needs WCC specifically for this purpose. Alternatively, I could have ported the project to use OpenWatcom entirely. I may some day attempt to do that to reduce the complexity of the build environment, though I do not know how its make program compares to GNU's.
Cross-Platform Development
Note that this project should be buildable on any platform that supports GNU C, OpenWatcom, and FASM. This includes MS-Windows (both 32 and 64 bit) with Cygwin or MinGW, Linux, BSD, and potentially MacOS X. Feel free to report your success to me.
As a side note, cross-platform development was one of the reasons I chose OpenWatcom over Digital Mars and Borland, which were also considerations. DJGPP was previously used but required a DPMI interface such as DOS4GW because it produced 32-bit DOS executables. DJGPP also cannot run under 64 bit Windows.
Build Environment Details
The following pages describe Exodus Project build environment in more detail.
Updated