omega-rpg/docs/compile.dos

78 lines
3.8 KiB
Plaintext

Note on compiling PC-Omega
--------------------------
The PC version was written for MSC5.0 and PC-Curses, and I used Ndmake
to help with compilation. The PC-Curses I actually used was the
one from Bjorn Larsson. Ndmake is from Don Kneller. Both are
available from the simtel20 archives and elsewhere. MSC4.0 or MSC5.1
will probably also work, but I make no guarantees.
NB The sources have undergone considerable changes since the MSDOS
#defines were put in, and as such all bets are off :) If you wish to
compile on an IBM, I recommend DJGPP as the compiler - see COMPILE.DJ
This is a *very* large program. Be prepared to have around 4MB available
on your disk to do this, plus whatever space is needed for backup copies
and level files created when you run the game. Compilation from the
start takes around 1.5 hrs on an AT-type machine.
Use the makefile called makefile.dos.
Set up a main directory for your compilation. Put the makefile and the
header files (*.h) into this directory. Create a subdirectory called
realc, and put the source files (*.c) in there. The object files and
executable are going to be put in the main directory.
You'll want to either put all the data files in the main directory with
the header files, or create another subdirectory and put them in it.
In the latter case you'll have to move the executable in there to
run it (unless you've changed the source so that it's not necessary).
You'll have to edit defs.h to change a few things to be specific
for the pc and your system. The comment around NORANDOM should
be removed, so that this macro is defined. Similarly the comment
around EXCESSIVE_REDRAW should be removed. The OMEGALIB macro
should be changed to reflect where all the data files will be.
I usually set this to "./". WIZARD can be changed or not changed.
If you change it to "pcuser", then wizard mode will work all the time;
if not, it will never work.
The progam fixstr should be compiled from fixstr.c directly. This is
a utility program I wrote which is used in compilation, and compiling
information for it does not appear in the makefile. "cl fixstr.c"
should suffice. The executable should either be put into the PATH, or
into the main directory.
The reason for the elaborate setup with the realc subdirectory is
because of the fact that there are so many string constants in the
source, and that these all would get put in the same segment in
memory. Because of this, the sources cannot link "as is." They have
to be transformed using my "fixstr" program to alleviate this
problem.
My setup (as described above) is to have a subdirectory, for example
call it realc, which contains the real C sources (only the .c files).
The headers and everything else are in your main directory. If you
use my makefile, it copies the sources from realc into the main
directory, modifies them using fixstr, and then compiles the modified
files there.
Depending on what variety of the make program you use, you may have
some problems. The version I use (ndmake 4.3) has the problem that if
you run make with everything set up as above the first time, it will
copy all the .c files from realc into the main directory and run
fixstr on them, but won't compile them. If you run make again, it
does the compilation. In general this seems to happen when the .c
files are missing from the main directory. When I tried using a
later version of this program, it did not work at all because the $@
macro wouldn't work. Just a warning. If you use a completely independent
version of make, there's no guaranteeing what will happen if it's buggy.
All of the changes required in order for Omega to work on the IBM-PC
under MSDOS have been done using #ifdef's for MSDOS, etc,. The macro
MSDOS is automatically defined when using MSC.
- Nathan Glasser
nathan@brokaw.lcs.mit.edu (internet)
nathan@mit-eddie.uucp (usenet)