mirror of
https://github.com/alexmchale/merc-mud
synced 2026-08-12 12:26:04 -04:00
81 lines
2.8 KiB
Text
81 lines
2.8 KiB
Text
Merc Release 2.1
|
|
Sunday 01 August 1993
|
|
|
|
Furey mec@shell.portal.com
|
|
Hatchet hatchet@uclink.berkeley.edu
|
|
Kahn michael@uclink.berkeley.edu
|
|
|
|
|
|
|
|
=== Compiling with traditional C
|
|
|
|
Merc is written in Ansi Standard C and uses several features not found in
|
|
traditional C compilers:
|
|
|
|
-- the 'const' attribute
|
|
-- function prototypes with argument types
|
|
-- new-style function definitions with argument types embedded
|
|
|
|
These features are too useful to just discard out of hand. On the other hand,
|
|
with some clever hacking (which we have graciously done for you), it is
|
|
possible to accommodate the deficiencies of some old non-ansi C compilers.
|
|
|
|
|
|
|
|
=== How to tell if you have traditional C or Ansi C
|
|
|
|
If your C Compiler is 'gcc', then it is Ansi C, and you don't need to know
|
|
anything about traditional C.
|
|
|
|
If you are on a Sun workstation and your compiler is Sun's 'cc', you have
|
|
traditional C.
|
|
|
|
If you get dozens of errors at compile time on 'merc.h' function declarations
|
|
with 'DO_FUN' and 'SPELL_FUN', you probably have a traditional C compiler.
|
|
|
|
Note that 'traditional C' refers to just about anything that's pre-Ansi C.
|
|
We've tested Merc 2.0 with 'mktrad' on several machines, but that's no
|
|
guarantee it will work on yours. You can do everything in this document and
|
|
STILL be unable to compile, link, or execute. Well, you said you were getting
|
|
a mud to 'learn about programming' ...
|
|
|
|
|
|
|
|
=== How to compile with traditional C
|
|
|
|
(1) Start with a clean copy of the release in an experimental directory. Step
|
|
(3) of this procedure will *irreversibly* change the source.
|
|
|
|
(2) Select the 'traditional C' makefile.
|
|
|
|
cp makefile.tra makefile
|
|
|
|
This makefile uses the command 'cc -c -O -DTRADITIONAL' to compile and the
|
|
command 'cc -O -o merc' to link. If you need different command lines, edit
|
|
the file. The file 'merc.h' checks the 'TRADITIONAL' symbol.
|
|
|
|
(3) Run 'mktrad'.
|
|
|
|
csh mktrad >& mktrad.out
|
|
|
|
'Mktrad' will invoke the 'ed' editor on *.c and rewrite all of the function
|
|
definition lines from Ansi C style to Traditional C style. After running
|
|
'mktrad', you cannot recover the original files. Also, if you run 'mktrad'
|
|
a second time on the same files, you will probably ruin them.
|
|
|
|
The file 'mktrad.out' will be about 80k long. You can ignore this
|
|
file if everything works.
|
|
|
|
If your system doesn't have 'ed', try changing mktrad to invoke 'ex'
|
|
instead. If you have neither 'ed' nor 'ex', you're on your own.
|
|
|
|
(4) Run 'make' as usual:
|
|
|
|
make -k >&! make.out
|
|
|
|
(5) If all goes well, then the one-time conversion has succeeded. You can now
|
|
develop the code as you like, and compile normally. NEVER run mktrad again
|
|
or you'll hose your source!
|
|
|
|
(6) If things go wrong and you need help, e-mail us. We'll need 'mktrad.out'
|
|
and 'make.out' files, as well as the model of your computer.
|