home *** CD-ROM | disk | FTP | other *** search
- Instructions for compiling and installing NetHack 3.1
- on a TOS system
- =====================================================
- (or, How to make ST NetHack 3.1)
- Last revision: 23 Jan 1993
-
- 1. Make sure all the NetHack files are in the appropriate directory structure.
- You should have a main directory with subdirectories dat, doc, include,
- src, util, sys\atari, sys\share, and sys\unix. You may have other sub-
- directories under sys, but they needn't concern you. If you do not follow
- this structure, the Makefiles will not function properly. The .c files
- for the main program belong in src, those for utility programs in util,
- and Atari-specific ones in sys\atari. All the .h files belong in include,
- the documentation in doc, and assorted data files in dat. You may also
- use random.c from sys\share. The Makefiles belong in sys\unix (except
- for the Atari-specific Makefile.utl found in this directory).
- (A more detailed explanation of the directory structure may be found in
- Files, which should be in the top directory.)
-
-
- 2. If you don't already have a good command line interpreter, get one.
- Doing all of the following from the desktop or a GEM shell will
- probably be a *big* pain. If you can get a Bourne shell compatible
- one, and put it in \bin\sh, then you'll save yourself some trouble
- with the Makefiles. There are several good shells on various
- FTP sites (including atari.archive.umich.edu).
-
- Run the "setup.g" shell script in sys\atari. This will move all the
- makefiles and other files to the appropriate directories.
-
- The file termcap.uu is the fixed version of the Fred Fish termcap library.
- You will need to run a uudecode utility on it to generate the file
- termcap.arc. termcap.arc contains several files of termcap routines.
- Using them with NetHack involves very little knowledge of the UNIX concept
- of a termcap database; mostly you need to know enough to set a TERM
- environment variable. You can unarc termcap.arc here in the sys\share
- directory, but if you are going to use it, it is probably best to unarc a
- copy in the src directory. That way you will not miss copying any
- files over. Some compilers (notably the gcc) already have a termcap
- library; if so, you won't need this one.
-
- 3. Now go to the include subdirectory to edit a couple of the header files
- there.
-
- First edit config.h according to the comments to match your system and
- desired set of features. In particular:
- make sure that UNIX is *not* defined, and TOS is (if you're using
- the MiNT library, and/or the -mint option to gcc, this will
- be done automatically)
- make sure the HACKDIR is defined properly (or not at all)
- make sure that COMPRESS is not defined
-
- If you want to build a NetHack that will run on a 1 megabyte machine,
- I'm afraid you're going to have to disable some options. Just what
- to disable is a tough choice; NetHack *almost* fits in 1 meg, but
- almost isn't quite good enough :-(. On the other hand, if you can
- compile NetHack, you almost certainly have at least 2 megabytes;
- certainly gcc won't compile NetHack with less than 4.
-
- Also edit tosconf.h; this shouldn't need much changing. If you are not
- going to include random.c you will need to comment out RANDOM. Gcc users
- don't need RANDOM, since the gcc and MiNT libraries have a Berkeley
- derived srandom() function already. If you have no termcap support and
- don't want to use the supplied termcap.uu, comment out TERMLIB. Gcc has
- a termcap library, so TERMLIB should always be "on" with gcc (and you
- don't need to worry about termcap.uu at all).
-
- 4. If you're using a compiler other than the gcc, you may want to look
- through system.h, in the include directory. This file matches the return
- and parameter types for system calls and library routines with various
- flavors of compilers and operating systems. Leaving this file alone is
- unlikely to cause problems, but if you get compile errors with any
- functions in the standard library, it's worth checking the declarations
- there.
-
- 5. If you want to change the high score list behavior, examine the top of
- topten.c, in the src directory. You may want to change the definitions of
- PERSMAX, POINTSMIN, and ENTRYMAX. I set POINTSMIN to 51 and ENTRYMAX to
- 50 to keep the size of the score list down.
-
- 6. Go to the src directory and edit your Makefile. You'll want the Systos
- target configuration; the comments explain most of what needs to be done,
- at least for the gcc. If your compiler doesn't like directories separated
- by /'s, then change these to \'s.
-
- Next, go to the top, util, dat, and doc directories, and edit the Makefiles
- there, as necessary. You'll need nroff and/or TeX to do the files in doc;
- if you don't have one/both of these, you can skip it (docs?? we don't need
- no steenking docs :-)).
-
- If you elected to use Fred Fish's termcap library (bundled in as
- termcap.arc), you will have to generate termcap.a from those sources.
-
- If you are recompiling after patching your sources, or if you got your
- files from somewhere other than the official distribution, "touch
- makedefs.c" to ensure that certain files (onames.h and pm.h) are remade,
- lest potentially troublesome timestamps fool "make."
-
- 8. Now, enter "make all", and take a long siesta; your computer will be
- occupied for a long time. If all goes well, you will get an executable.
- If you tried to compile in too many features, you will probably get a
- dysfunctional executable, and will have to start over.
-
- Hint 1: If you're short on memory, you might enter "make -n all
- >make.bat," and then run script.bat with some sort of batch
- program or with the gulam command "script make.bat."
-
- Hint 2: You'll save yourself a lot of grief if you use the GNU
- version of the "make" program. Some of the smaller makes aren't
- completely compatible. GNU software for the Atari is widely
- available; for example, by anonymous FTP from atari.archive.umich.edu.
-
- 9. Make sure the support files-- data, rumors, cmdhelp, opthelp, help, hh,
- history, license, and oracles (if ORACLES was #define'd)-- were copied
- to the game directory. If not, move them there from the auxil directory
- yourself. rumors can be created manually by entering "makedefs -r;"
- data by entering "makedefs -d."
-
- Also, make sure that the various level files (*.lev, from the dat
- subdirectory) were copied over correctly. If you're not sure what files
- should have been made, double check with Makefile.dat.
-
- 10. Go to the src\atari directory. Copy atari.cnf to your game directory
- as NetHack.cnf. Edit it to reflect your particular setup and personal
- preferences, following the comments.
-
- If you compiled in the TERMLIB feature, also move the "termcap" file to
- your game directory. (Note: gcc's termcap routines have built-in
- defaults, so the termcap file is not necessary with that compiler.)
-
- To use funky graphics characters in TOS, uudecode "atarifnt.uue" and unarc
- the resulting "atarifnt.arc". This contains a program to run that makes
- some line graphics characters available to NetHack. To use them, uncomment
- the appropriate line in your NetHack.cnf file, and run the program before
- running NetHack (you can put the program in an AUTO folder if you want).
- This font won't work if you're running Speedo GDOS (and possibly other
- GDOS variants). I hope to have a bitmapped GDOS font suitable for
- NetHack 3.1 "Real Soon Now."
-
- If you're running NetHack from the MultiTOS desktop, and you want a
- more useful set of drop down menus than the plain system "File/Edit"
- ones, copy nethack.mnu to your games directory. This file contains a
- menu definition that puts a lot of the common commands into the menu.
-
- 11. Play NetHack. If it works, you're done!
-
-
- Notes
- -----
-
- 1) Save files and bones files from previous versions will not work with
- NetHack 3.1. Don't bother trying to keep them.
-
- 2) To install an update of NetHack after changing something, enter "make"
- from the src directory. If you add, delete, or reorder monsters or
- objects, or you change the format of saved level files, delete any save
- and bones files. (Trying to use such files sometimes produces amusing
- confusions on the game's part, but more often produces crashes.)
-
-