]> granicus.if.org Git - nethack/commitdiff
*** empty log message ***
authorjwalz <jwalz>
Sat, 5 Jan 2002 21:05:56 +0000 (21:05 +0000)
committerjwalz <jwalz>
Sat, 5 Jan 2002 21:05:56 +0000 (21:05 +0000)
sys/msdos/Install.dos [new file with mode: 0644]

diff --git a/sys/msdos/Install.dos b/sys/msdos/Install.dos
new file mode 100644 (file)
index 0000000..6045574
--- /dev/null
@@ -0,0 +1,537 @@
+       SCCS Id: @(#)Install.dos         3.3            2000/08/02
+
+          Copyright (c) NetHack PC Development Team 1990-2000.
+       NetHack may be freely redistributed.  See license for details.
+       ==============================================================
+              Instructions for compiling and installing
+                    NetHack 3.3 on a DOS system
+         ======================================================
+                   (or, How to make PC NetHack 3.3)
+                    Last revision: August 2, 2000
+
+Credit for a runnable full PC NetHack 3.3 goes to the PC Development team
+of Paul Winner, Kevin Smolkowski, Michael Allison, Yitzhak Sapir, Bill Dyer, 
+Timo Hakulinen, Yamamoto Keizo, Mike Threepoint, Mike Stephenson, 
+Stephen White, Ken Washikita and Janet Walz.  The present port is based
+on the previous effort of Pierre Martineau, Stephen Spackman, Steve Creps, Mike
+Threepoint, Mike Stephenson, Norm Meluch and Don Kneller.
+
+CONTENTS:
+
+        I.  Dispelling the Myths
+        II. Compiling on a DOS machine
+        Appendix A - Building the "official binaries"
+        Appendix B - Building other binaries
+        Appendix C - Microsoft C Compiler notes
+        Appendix D - DJGPP Compiler (gcc ported to msdos) notes
+        Appendix E - Borland C++ Compiler notes
+        Appendix F - Microsoft C Compiler Warnings
+        Appendix G - Additional Notes
+        Appendix H - Contacting Us
+
+I.  Dispelling the Myths:
+
+    Compiling NetHack is not as easy as it sounds, nor as hard as it looks,
+    however it will behoove you to read this entire file through before
+    beginning the task.
+
+    We have provided the proper makefiles for building NetHack using the
+    following compilers:
+       Microsoft C 7.0 and Microsoft Visual C++ Professional (MSVC) 1.52c
+       djgpp V2.0 or later
+       Borland C V3.1
+
+    For specific details concerning each compiler, please see the
+    corresponding appendix.
+
+    The makefile named Makefile.MSC is for use with Microsoft's NMAKE, 
+    the make utility that ships with the Microsoft C Compiler version 7.0 
+    and above, including the 16-bit Microsoft Visual C++ Professional.
+
+    The makefile named Makefile.GCC is for use with GNU Make that
+    accompanies djgpp.
+
+    The makefile named Makefile.BC is for use with Borland's make that
+    accompanies Borland C 3.1.  Other versions of Borland's make may or
+    may not work, but version 3.7 (of MAKE) is known to not work.
+
+    If you want to build a copy of NetHack that is identical to the
+    "official binaries", please see appendix A.
+
+    You may find it useful to obtain copies of lex (flex) and yacc (bison
+    or byacc).  While not strictly necessary to compile nethack, they are 
+    required should you desire to make any changes to the level and dungeon 
+    compilers.  Flex and Bison are included with the DJGPP distribution and 
+    are also available on many archive sites.
+
+II. To compile your copy of NetHack on a DOS machine:
+    (or "just follow these few 'simple' steps outlined below.")
+
+1.  It almost goes without saying that you should make sure that your tools
+    are set up and running correctly.
+
+2.  Make sure all the NetHack files are in the appropriate directory
+    structure.  You should have a main directory with subdirectories
+    dat, doc, include, src, sys\share, sys\msdos, util, win\tty and
+    win\share.  Other subdirectories may also be included in your
+    distribution, but they are not necessary for use with DOS.  You can
+    delete them to save space.  If you are using MSC7 or MSVC, the makefile
+    will create an additional working directory src\o.
+
+    Required Source Directories for DOS NetHack:
+
+                           (top)
+                             |
+        ------------------------------------------------- 
+        |       |     |        |       |     |          | 
+       util    dat   doc    include   src   sys        win
+                                             |          |
+                                          ------      ----- 
+                                          |    |      |   |  
+                                       share msdos   tty share
+
+    Check the file "Files" in your top level directory for an exact
+    listing of what files are in which directory.  In order for the
+    Makefiles to work, all the source files must be in the proper
+    locations.
+
+    If you downloaded or ftp'd the sources from a UNIX system, the lines
+    will probably end in UNIX-style newlines, instead of the carriage
+    return and line feed pairs used by DOS.  Some programs have trouble
+    with them, so you may need to convert them (with a utility like
+    Rahul Dhesi's "flip").
+
+3.  A few files in the NetHack distribution are uuencoded because
+    they contain non-ascii characters, or binary information.  To use
+    them they must first be decoded using a uudecode utility (available
+    from your local archive site).  After reading the descriptions
+    of these files below, uudecode the ones that you will need in order
+    to build NetHack with the options that you have decided you want.
+
+    The uuencoded files that are relevant to NetHack on a DOS machine
+    include:
+
+       nhico.uu   Optional.  This uudecodes into a MS-Windows compatible
+                  ICON.  You only need to uudecode this if you plan on
+                  launching NetHack from MS-Windows, and want a unique
+                  Nethack ICON to use.
+
+       nhpif.uu   Optional.  This uudecodes into a MS-Windows compatible
+                  PIF file which may be used to launch NetHack from the
+                  MS-Windows program manager.  You only need to uudecode
+                  this if you plan on launching NetHack from within
+                  MS-Windows.
+
+       termcap.uu Optional.  Termcap support is no longer required for
+                  building NetHack, though you can if you want to.
+                  The file termcap.uu is the fixed version
+                  of the Fred Fish termcap library.  If you have modified
+                  pcconf.h to define TERMLIB as well as commented out
+                  the default #define NO_TERMS, then you will need to
+                  run a uudecode utility on termcap.uu to generate the
+                  file termcap.zip.  termcap.zip 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 unzip termcap.zip in the
+                  sys/share directory, but if you are going to use it, it
+                  is probably better to unzip a copy in a special directory
+                  and copy the library files to where your linker can find
+                  them.  NetHack versions since 3.1.2 no longer enable
+                  the use of termcap in the default configuration, or
+                  with the official binaries.
+
+                  Makefiles are included should you want to build your own
+                  termcap library file.  Makemsc.lib works with Microsoft
+                  C (MSC and MSVC) and generates termcap.lib, Makegcc.lib
+                  works with DJGPP and generates libtermc.a.
+
+4.  Go to the sys/msdos directory and ensure that the file setup.bat
+    has MSDOS style end-of-line characters rather than UNIX style
+    end-of-line characters.  You can do that using a utility like
+    Rahul Dhesi's "flip", or by invoking the MSDOS edit utility on
+    setup.bat and saving the file without making any changes. Failure to
+    do this will prevent the bat file from executing completely, yet no
+    warning message will be given.
+
+    Run the setup.bat batch file with one of the following as the argument:
+
+       MSC        For Microsoft C and its NMAKE.
+
+       GCC        For djgpp and GNU MAKE.
+
+       BC         For Borland C++ 3.1, and Borland's MAKE.
+
+    The appropriate and necessary Makefile movements will be accomplished
+    for you, as well as verifying a few files and fixing a few file names
+    on FAT systems with long file name support.
+
+5.  Now go to the include subdirectory to check a couple of the header
+    files there.  Things *should* work as they are, but since you have
+    probably set up your system in some sort of custom configuration
+    it doesn't hurt to check out the following:
+
+    First check config.h according to the comments to match your system and
+    desired set of features.  Mostly you need to check the WIZARD option,
+    and check TERMLIB and COMPRESS.  Also be sure to leave DLB support 
+    commented out in config.h.  MSDOS has support for DLB, but it must be 
+    done through the Makefile, rather than config.h, to ensure that the 
+    necessary packaging steps are done.
+
+    We've managed to enable all the special features.  You may include all
+    or as few of them as you wish.  To conserve disk space, you may wish
+    to disable LOGFILE and NEWS.
+
+    Also check pcconf.h, which should not need much editing (if you are
+    including random.c, and if you do not require termcap for screen
+    management).  If you are not including random.c you will need to
+    comment out RANDOM.
+
+    There are several options available for screen management with this
+    release of PC NetHack.  The features #define TERMLIB, #define
+    ANSI_DEFAULT, and #define NO_TERMS in pcconf.h control the various
+    options.
+
+    The NO_TERMS feature (the default) has the advantage of not needing a
+    DEVICE=ANSI.SYS statement in config.sys.  The supplied sources and
+    header files are distributed with support for NO_TERMS enabled.
+    NO_TERMS will not work with TERMLIB, nor with ANSI_DEFAULT defined.
+    The NO_TERMS feature uses internal routines for screen management, and
+    may be an ideal choice if your play machine is industry standard (has
+    an IBM compatible BIOS).
+
+    Should you choose to leave NO_TERMS defined, define only one of the two
+    screen access methods.  If compiling for Microsoft compilers, use
+    SCREEN_BIOS; if using DJGPP, you can choose between SCREEN_BIOS
+    and SCREEN_DJGPPFAST.  Never, never, ever choose both.  Bad things
+    will happen.  We are not kidding.
+
+    If you leave the #define TERMLIB commented in pcconf.h to disable use
+    of termcap routines, then your screen management must rely on either
+    the NO_TERMS feature described above, or the ANSI_DEFAULT feature.
+    Either of these will make your job a bit easier than if you choose to
+    use TERMLIB.  If you elect to include TERMLIB support, you may compile
+    with both TERMLIB and ANSI_DEFAULT, and simply not set your TERM variable
+    if you do not wish to use the termcap file settings.  You will need
+    to uudecode the termcap library in sys\share if you are using the TERMLIB
+    feature.
+
+6.  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.  We set POINTSMIN to 51 and ENTRYMAX to
+    50 to keep the size of the score list down.
+
+7.  Go to the src directory and edit the top of your Makefile.  Be sure the
+    directory you want the game installed in (GAMEDIR) actually exists.
+
+    If you elected to use termcap (TERMLIB defined), then uncomment the
+    TERMLIB macro in your Makefile that points to the location of the
+    library.
+
+    That is,    TERMLIB =
+    should be   TERMLIB = (SSYS)\termlib.lib
+
+    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 your make utility.
+
+    a) For Borland C++ 3.1,
+
+       Choose an overlay schema by setting SCHEMA to 1 or 2.  If you change
+       the overlay schema, you will need to recompile all the object modules
+       from scratch since the overlay schema is information is used during
+       compile time for Borland C++, unlike Microsoft C which does it during
+       link time.
+
+    b) For Microsoft C 7.0 or greater, and Microsoft Visual C++
+
+       The only overlay schema available is Schema3 so you don't have to 
+       choose one.  The Makefile is set up for it already.  The overlay
+       description file src\Schema3.def is created from sys\msdos\Schema3.MSC
+       by setup.bat.
+
+    If you elected to add graphical tile support, set TILESUPPORT to Y.
+
+    Set USE_DLB to Y if you wish to place NetHack's many runtime files into
+    a special archive that NetHack can utilize.  This is highly recommended!
+    In fact, we haven't tested NetHack without it for several releases now.
+
+8.  Now that everything is set up, what you do next depends on which
+    compiler and version you are using.  You will need to execute either
+    step 8a, or step 8b, or step 8c, but only one of them.
+
+    a) For Microsoft C 7.0 or greater, and Microsoft Visual C++
+
+       Go to the src directory, and "nmake install".
+
+    b) For djgpp
+
+       Go to the src directory, and using the GNU Make utility,
+       "make install".
+
+    c) For Borland C V3.1
+
+       Go to the src directory, and using the Borland Make utility,
+       "make -N install".
+
+
+    Depending on your particular machine and compiler, you can either
+    grab a cup of coffee or go home for the day.  Your computer will be
+    occupied for quite some time.  If all goes well, you will get an
+    NetHack executable.
+
+9.  If you chose DLB support (recommended), make sure that the file nhdat 
+    got copied into the game directory.
+
+    If you didn't choose DLB support, make sure the support files --
+    data, rumors, cmdhelp, opthelp, help, hh,history, guidebook.txt
+    license, and all the *.lev files -- were copied to the game directory.  
+    If not, move them there from the dat directory yourself.  rumors can 
+    be created manually be entering "makedefs -r", data by entering 
+    "makedefs -d".
+
+    Make sure the files NetHack1.tib and NetHacko.tib made it to your game
+    directory.  Copy them from src to the game directory yourself if
+    necessary.
+
+    Make sure the files defaults.nh and termcap made it to your game
+    directory.  If not, go to sys\share and copy NetHack.cnf to
+    your game directory as defaults.nh.  The name in previous versions was
+    nethack.cnf, but the CNF extension conflicted with the MS Windows
+    speed-dialer, making the file hidden on many machines.
+
+    If you changed your build settings to include TERMCAP support, copy
+    termcap to your game directory.  
+
+    Also, make sure the file msdoshlp.txt made it to your game directory.
+    If it didn't, move it from sys\msdos to your game directory
+    yourself.
+
+10. In your game directory, review the settings in defaults.nh and adjust
+    them according to your style of play.  Some new options that you might
+    be interested in are "menustyle" (for tailoring new object selection
+    interface), and "video" (for turning on graphical tiles).
+
+    On Borland C++, the soundcard:autodetect option enables pc speaker
+    sound in NetHack if you compiled with PCMUSIC set in pcconf.h. It
+    is rumored that this also works with djgpp, but the PCMUSIC setting
+    in pcconf.h must be uncommented manually.
+
+11. Play NetHack.  If it works, you're done!
+
+Appendix A - Building the "official binaries"
+
+    If you wish to build a copy of NetHack identical to the ones that
+    the pc team distributes, simply do the following:
+
+1.  16-bit Real Mode Overlaid version
+    Use the 16-bit  Microsoft Visual C++ V1.52c compiler
+
+    Paths below are relative to the top of your unpacked
+    NetHack source distribution:
+
+       md \games\nethack
+       cd sys\msdos
+       setup MSC
+       cd ..\..\src
+       nmake install
+
+2.  32-bit Protected Mode DPMI version
+    Use the 32-bit djgpp compiler V2.03 or greater
+
+    Paths below are relative to the top of your unpacked
+    NetHack source distribution:
+
+       md \games\nethackd
+       cd sys\msdos
+       setup GCC
+       cd ..\..\src
+       make install
+
+
+Appendix B - Building other binaries
+
+    Make sure that USE_DLB and TILESUPPORT (if using Microsoft C or Borland
+    C) are both set to be turned on in the appropriate makefile.
+
+    For an overlaid binary built with Microsoft C 7.00, make no changes to
+    any of the defines and use the Makefile.MSC as distributed.
+
+    For an overlaid binary built with Borland C++ 3.1, make no changes to
+    any of the defines and use the makefile Makefile.BC as distributed.
+
+    For the 32-bit binary built with DJGPP (playable on a 386 or
+    better machine only), make no changes to any of the defines and use 
+    the Makefile.GCC as distributed.
+
+    Make sure the following files have been converted from the
+    unix style "^J" end of line, to the msdos style "^M^J":
+      license, help, hh, termcap, history, cmdhelp wizhelp and
+      defaults.nh.
+
+    Uudecode nhico.uu nhpif.uu.
+
+    Place all the files in a clean directory and test.
+
+Appendix C - Microsoft C Compilers
+
+    Officially, support is no longer provided for MSC versions prior to
+    7.0.  For versions of MSC 7.0 and greater (including Visual C++ ),
+    a single Makefile is used, and it is MS NMAKE specific.  It is executed
+    from the src directory.  It makes several passes over the files in order
+    to produce overlays.
+
+    MSC Version 7.0 works with or without the August 1992 patch.
+
+    MSVC Professional 1.52c works as distributed.  In some rare cases
+    you may encounter a problem with the compiler where it stops
+    part way through the build with a memory error.  Things proceed
+    normally after starting 'nmake install' once again.  The problem,
+    although annoying if it happens, does not affect the code generation
+    or the final executable.
+
+    MSC Version 7.0 and MSVC take advantage of the CL environment variables
+    to set the compiler flags, as they exceed the MSDOS limitation of 128
+    characters on the command line.  Please read the Makefile carefully
+    and select those options that go with the compiler.  The Makefile
+    will set the CL environment variable within the context of the build,
+    so you do not have to do it elsewhere.
+
+
+  Microsoft C version 7.0 and
+  Microsoft Visual C++ Professional versions up to 1.52c.
+
+    Microsoft's MOVE overlay facility is suitable for building overlaid
+    versions of NetHack.
+
+    A single Makefile is used, and it is NMAKE specific.  It is executed
+    from the src directory.  It is stored in the distribution as
+    sys/msdos/Makefile.MSC.  It is moved to the src directory (with the
+    new name 'Makefile') by setup.bat when invoked like so: "setup MSC".
+
+    The Microsoft Visual C++ Professional compiler utilizes the same
+    Makefiles and instructions for compiling as Microsoft C version 7.0.
+
+Appendix D - DJGPP Compiler (gcc ported to msdos)
+
+    If you have a 386 or better machine, you are in luck.  You can compile
+    NetHack without spending money on a compiler.  DJGPP is available free
+    from many archive sites.
+    At the time of this release in August 2000, the URL
+       http://www.delorie.com/djgpp/zip-picker.html/
+    had information on how to obtain djgpp and what pieces to get.
+
+    Setting up DJGPP is more than adequately explained in the documentation
+    that comes with it.  Be sure to pick up the yacc and flex built with
+    DJGPP if you intend to do any modification of the special levels or
+    dungeon compilers.  They should be available at the same place you got
+    djgpp.
+
+    The latest version of djgpp, V2.03 will produce a binary that will run
+    under Microsoft Windows, or any other DPMI provider.  djgpp also comes
+    with a DPMI provider called CWSDPMI.  Place CWSDPMI.EXE in your path
+    and it will be used in the absence of any other DPMI provider.
+
+    If you want to use the built-in DJGPP screen routines, uncomment
+    SCREEN_DJGPPFAST in pcconf.h (the default for djgpp).
+    Note that some of these routines are broken under early versions
+    of the compiler, so we pick and choose the ones that work.
+    See video.c for details.
+
+Appendix E - Borland C++ Compiler
+
+    Officially, support is not provided for any version of Borland C++ or
+    Turbo C++ other than Borland C++ 3.1.  It does not work with Borland
+    C++ 4.5 yet, and versions 4.0 and 5.0 have not been tested.  We believe
+    that compiling with the version of Turbo C++ equivalent to Borland C++
+    3.1 should work.  For Borland C++ 3.1, a single Makefile is used, and it
+    is specific to Borland's MAKE version 3.6.  It is executed from the src
+    directory and makes several passes over the files in order to produce
+    overlays.
+
+  Borland C++ 3.1
+
+    Borland's VROOMM overlay facility is suitable for building overlaid
+    versions of NetHack.
+
+    A single Makefile is used, and it is MAKE 3.6 specific.  It is executed
+    from the src directory.  It is stored in the distribution as
+    sys/msdos/Makefile.BC.  It is moved to the src directory (with the
+    new name 'Makefile') by setup.bat.
+
+    Remember to type 'make -N install' rather than just 'make install'.  The
+    -N option is required.
+
+    Make sure to set the directories BCTOP and related directories in
+    Makefile. to the correct directory.  There are problems in running the
+    newest versions of flex and bison from the all-purpose Makefile so you
+    should leave DO_YACC and DO_LEX as is.
+
+  Turbo C++
+
+    As explained, this has not been tested.  However, if you want to test if
+    Turbo C++ works, provided that the copy of Borland's MAKE you have is
+    version 3.6 (you can check this by running MAKE in an empty directory),
+    you are welcome to try.  If Turbo C++ does not define __BORLANDC__,
+    just put the line:
+       #define __BORLANDC__    __TURBOC__
+    at the very very top of hack.h.  If it works, be sure to tell us.
+
+Appendix F - Microsoft C Compiler Warnings
+
+    If you are using MSC for your compile with any of the /W levels set,
+    you can expect warnings.  The list below are those warnings that we
+    are aware of and our recommendation for dealing with them.  You can
+    use the warning disable pragma to ignore them if you wish.  (NOTE:
+    this is not a complete list of all warnings you might receive, only
+    those for which we feel we can safely provide guidance on.)
+
+C4131 (function:uses old-style declarator)
+    You should ignore this warning.  In order to make the source code as
+    portable as possible, only old-style declarators are used so that as
+    many compilers as possible can use the same code.
+C4706 (Assignment within conditional expression)
+    This is a perfectly valid construction.  These warnings have not
+    produced any problems.
+C4761 (Integral size mismatch in argument; conversion supplied)
+    These should be no problem.  Prototyping compilers will do the con-
+    version, and non-prototyping compilers will go through int anyway.
+
+Appendix G - Additional Notes
+
+1)  Save files and bones files from previous versions of NetHack will not
+    work with this NetHack.  Don't bother trying to keep them.  Record
+    (score) files from before 3.0 patchlevel 7 will almost work, but you need
+    to make one change manually to them:  At the end of each line is a word or
+    phrase specifying what killed the player.  Change the string to start with
+    the words "killed by", "killed by a", or "killed by an" (whichever is
+    appropriate).  If the death was petrification, it should read "petrified
+    by" instead of "killed by".  Don't change "starvation", "quit", "escaped",
+    or "ascended".
+
+2)  To install an update of NetHack after changing something, type 'nmake'
+    for Microsoft C, 'make -N' for Borland C++, and 'make' for DJGPP
+    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 usually crashes.)
+
+    If you made changes to any of the level compiler software, you may have
+    to delete dgn_flex.c, dgn_yacc.c, lev_flex.c, and lev_yacc.c from the
+    util directory to ensure that they are remade.  This is not officially
+    supported for Borland C++.
+
+3)  During linking the Microsoft Overlay Linker will need temporary storage
+    space.  Make sure you have about a meg of free disk wherever you have
+    defined your temporary storage.
+
+Appendix H - Contacting the Development Team
+
+    If you discover a bug and wish to report it please send mail to:
+        nethack-bugs@nethack.org 
+
+    If you have comments or suggestions, feel free to drop us a line c/o
+        DevTeam@nethack.org
+
+