You can build either the TTY version of NetHack or the Windows Graphical
-version. In either case you will need one of the following build
+version. In either case you can use one of the following build
environments:
o A copy of Microsoft Visual C V6.0 SP3 or later. Things may work with
registration at:
http://www.borland.com/bcppbuilder/freecompiler/.
+Additionally, you can build a TTY version of NetHack with the following
+build environment:
+
+ o A copy of MinGW 1.0. MinGW is a collection of header files and import
+ libraries with which native Windows32 programs can be made; MinGW 1.0
+ ships with the GNU Compiler Collection.
+ You can download MinGW at
+ http://www.mingw.org/
+
FIRST STEP:
o Microsoft Visual C++ V6.0 SP3 or greater
o Borland C 5.5.1
+ o MinGW 1.0 with GCC 2.95.3-6
The Microsoft Visual C Makefile was created for use with MS NMAKE
which is provided with the Microsoft compiler. The supplied Makefile
The Borland C Makefile was created for use with Borland MAKE
which is provided with the Borland compiler.
+ The GCC Makefile was created for use with GNU Make version 3.79.1,
+ which comes with the MinGW package.
+
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
1. It almost goes without saying that you should make sure that your tools
are set up and running correctly. That includes ensuring that all the
necessary environment variables for the compiler environment
- are set correctly. ( Examples: For the Microsoft compiler by
+ are set correctly. (Examples: For the Microsoft compiler by
executing vcvars32.bat, which is probably in the bin directory of
your compilers directory tree. For the Borland Makefile, you can
simply invoke the Make utility from the Makefile's directory (For
the standard Borland compiler installation you can just
- use the explicit path "c:\borland\bcc55\bin\make /f Makefile.bcc")
+ use the explicit path "c:\borland\bcc55\bin\make /f Makefile.bcc".
+ For the GCC Makefile, add <mingw>\bin to your path, where <mingw> is
+ your MinGW root directory.)
2. Make sure all the NetHack files are in the appropriate directory
structure. You should have a main directory with subdirectories
For Borland compiler:
make /f Makefile.bcc install
- If you get any errors along the way then something has not been set
+ For GCC:
+ make -f Makefile.gcc install
+
+ If you get any errors along the way then something has not been set
up correctly. The time it takes to compile depends on your particular
machine of course, but you should be able to go for lunch and return
to find everything finished. The less memory, and slower your machine,
For Borland compiler:
make /f Makefile.bcc
- 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.)
+ For GCC:
+ make -f Makefile.gcc
+
+ 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
-@REM SCCS Id: @(#)nhsetup.bat 2002/03/06
+@REM SCCS Id: @(#)nhsetup.bat 2002/03/07
@REM Copyright (c) NetHack PC Development Team 1993, 1996, 2002
@REM NetHack may be freely redistributed. See license for details.
@REM Win32 setup batch file, see Install.nt for details
@REM
@echo off
-set _opt=
-set _donebor=
set _pause=
:nxtcheck
echo Checking to see if directories are set up properly
-if not exist ..\..\include\hack.h goto err_dir
-if not exist ..\..\src\hack.c goto err_dir
-if not exist ..\..\dat\wizard.des goto err_dir
-if not exist ..\..\util\makedefs.c goto err_dir
-if not exist ..\..\sys\winnt\winnt.c goto err_dir
+if not exist ..\..\include\hack.h goto :err_dir
+if not exist ..\..\src\hack.c goto :err_dir
+if not exist ..\..\dat\wizard.des goto :err_dir
+if not exist ..\..\util\makedefs.c goto :err_dir
+if not exist ..\..\sys\winnt\winnt.c goto :err_dir
echo Directories look ok.
:do_tty
-set _opt=NetHack for NT Console
if NOT exist ..\..\binary\*.* mkdir ..\..\binary
if NOT exist ..\..\binary\license copy ..\..\dat\license ..\..\binary\license >nul
echo Copying Microsoft Makefile - Makefile.msc to ..\..\src\Makefile.
+if NOT exist ..\..\src\Makefile goto :domsc
+copy ..\..\src\Makefile ..\..\src\Makefile-orig >nul
+echo Your existing
+echo ..\..\src\Makefile
+echo has been renamed to
+echo ..\..\src\Makefile-orig
+:domsc
copy Makefile.msc ..\..\src\Makefile >nul
echo Microsoft Makefile copied ok.
+
echo Copying Borland Makefile - Makefile.bcc to ..\..\src\Makefile.bcc
-if NOT exist ..\..\src\Makefile.bcc goto dobor
+if NOT exist ..\..\src\Makefile.bcc goto :dobor
copy ..\..\src\Makefile.bcc ..\..\src\Makefile.bcc-orig >nul
echo Your existing
echo ..\..\src\Makefile.bcc
echo has been renamed to
echo ..\..\src\Makefile.bcc-orig
-echo Borland Makefile copied ok.
:dobor
copy Makefile.bcc ..\..\src\Makefile.bcc >nul
-set _donebor=Y
+echo Borland Makefile copied ok.
+
+echo Copying MinGW Makefile - Makefile.gcc to ..\..\src\Makefile.gcc
+if NOT exist ..\..\src\Makefile.gcc goto :dogcc
+copy ..\..\src\Makefile.gcc ..\..\src\Makefile.gcc-orig >nul
+echo Your existing
+echo ..\..\src\Makefile.gcc
+echo has been renamed to
+echo ..\..\src\Makefile.gcc-orig
+:dogcc
+copy Makefile.gcc ..\..\src\Makefile.gcc >nul
+echo MinGW Makefile copied ok.
:do_win
-set _opt=Graphical NetHack for Windows
-if not exist ..\..\win\win32\nethack.dsw goto err_win
+if not exist ..\..\win\win32\nethack.dsw goto :err_win
echo.
echo Copying Visual C project files to ..\..\build directory
-REM copy ..\..\win\win32\winnt.dsw ..\.. >nul
echo Copying ..\..\win\win32\nethack.dsw ..\..\nethack.dsw
copy ..\..\win\win32\nethack.dsw ..\.. >nul
if NOT exist ..\..\binary\*.* echo Creating ..\..\binary directory
if NOT exist ..\..\binary\*.* mkdir ..\..\binary
if NOT exist ..\..\binary\license copy ..\..\dat\license ..\..\binary\license >nul
-if NOT exist ..\..\build\*.* echo Creating ..\..\binary directory
+if NOT exist ..\..\build\*.* echo Creating ..\..\build directory
if NOT exist ..\..\build\*.* mkdir ..\..\build
copy ..\..\win\win32\dgncomp.dsp ..\..\build >nul
copy ..\..\win\win32\dgnstuff.dsp ..\..\build >nul
copy ..\..\win\win32\tilemap.dsp ..\..\build >nul
copy ..\..\win\win32\uudecode.dsp ..\..\build >nul
copy ..\..\win\win32\nethackw.dsp ..\..\build >nul
-if "%_donebor%"=="Y" goto done
-if NOT exist ..\..\src\Makefile.bcc goto dobor
-copy ..\..\src\Makefile.bcc ..\..\src\Makefile.bcc-orig >nul
-echo Your existing
-echo ..\..\src\Makefile.bcc
-echo has been renamed to
-echo ..\..\src\Makefile.bcc-orig
-:dobor
-copy Makefile.bcc ..\..\src\Makefile.bcc >nul
-goto done
+goto :done
:err_win
echo Some of the files needed to build graphical NetHack
echo for Windows are not in the expected places.
echo Check "Install.nt" for a list of the steps required
echo to build NetHack.
-goto fini
+goto :fini
:err_data
echo A required file ..\..\dat\data.bas seems to be missing.
echo Check "Files." in the root directory for your NetHack distribution
echo and make sure that all required files exist.
-goto fini
+goto :fini
:err_dir
echo Your directories are not set up properly, please re-read the
echo documentation and sys/winnt/Install.nt.
-goto fini
+goto :fini
:done
echo done!
:fini
:end
-set _opt=
-set _donebor=
set _pause=Y
if "%0"=="nhsetup" set _pause=N
if "%0"=="NHSETUP" set _pause=N