1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450
|
Copyright (c) NetHack Development Team 1990-2002
NetHack may be freely redistributed. See license for details.
==============================================================
Instructions for compiling and installing
NetHack 3.4 on a Windows 9x, NT, 2000, or XP system
==============================================================
Last revision: $Date: 2003/10/14 01:31:25 $
Credit for the porting of NetHack to the Win32 Console Subsystem goes to
the NT Porting Team started by Michael Allison.
Credit for the Win32 Graphical version of NetHack (aka "NetHack for
Windows" or NetHackW) goes to Alex Kompel who initially developed and
contributed the port.
The PC Windows porting team consisting of Michael Allison, David Cohrs,
Alex Kompel, Dion Nicolaas, Yitzhak Sapir, and Janet Walz maintained the
tty and graphical win32 versions of NetHack 3.4.3.
You can build either the TTY version of NetHack or the Windows Graphical
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
an earlier version of the compiler, but the current code has not
been tested with an earlier version.
OR
o A copy of Borland C 5.5.1 command line tools. Borland has made a
version of its command line tools available for download after
registration at:
http://www.borland.com/bcppbuilder/freecompiler/
OR
o A copy of MinGW 2.0. MinGW is a collection of header files and import
libraries with which native Windows32 programs can be made; the
MinGW 2.0 distribution contains the GNU Compiler Collection.
You can download MinGW at
http://www.mingw.org/
Earlier versions of MinGW will not allow you to build the Windows
Graphical version.
In addition to the makefiles that allow you to build NetHack from the
command line, there is also a set of project files and a workspace file
that allow you to build the Windows Graphical version from Microsoft
Visual C's IDE (Integrated Development Environment.)
FIRST STEP
The first step in building either version of NetHack is to execute
sys\winnt\nhsetup.bat.
From the command prompt:
cd sys\winnt
nhsetup
From a Windows explorer window:
double-click on nhsetup.bat
A "binary" directory will be created off the top of the NetHack source
tree to house the completed build.
A build subdirectory will also be created off the top of the NetHack
source tree, and many files appropriate for a graphical build will be
moved there.
If you wish to build from the command line, proceed to "BUILDING FROM
THE COMMAND LINE."
If you wish to build using Visual C's IDE, proceed now to "BUILDING
USING VISUAL C'S IDE."
BUILDING FROM THE COMMAND LINE
You can built two different versions of NetHack for Win32 from the
command line:
A tty port utilizing the Win32 Console I/O subsystem, Console
NetHack;
A Win32 native port built on the Windows API, Graphical NetHack or
NetHackW.
The executable for Console NetHack will be named NetHack.exe. The
executable for Graphical NetHack will be named NetHackW.exe. You can opt
to build both; they will be able to use the same datafiles, save files
and bones files.
I. Dispelling the Myths:
Compiling NetHack for Win32 is not as easy as it sounds, nor as hard
as it looks, however it will behoove you to read this entire section
through before beginning the task.
We have provided a Makefile for each of the following compilers:
o Microsoft Visual C++ V6.0 SP3 or greater
o Borland C 5.5.1
o MinGW 2.0 (with GCC 3.2)
The Microsoft Visual C Makefile was created for use with MS NMAKE
which is provided with the Microsoft compiler. The supplied Makefile
may work with earlier versions of the Microsoft 32-bit compiler, but
that has not been tested.
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 compilers.
II. To compile your copy of NetHack on a Windows NT/2000/XP machine:
Setting Up
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
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". 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
dat, doc, include, src, sys\share, sys\winnt, util, and binary (The
"binary" directory was created by nhsetup.bat earlier if you
followed the steps appropriately).
For Console NetHack you need win\tty in addition to these; for
Graphical NetHack you need win\win32 in addition to these.
Other subdirectories may also be included in your distribution, but
they are not necessary for building the TTY version for the Win32
console subsystem. You can delete them to save space.
Required Directories for a Win32 Console NetHack:
top
|
----------------------------------------------------/ /-----
| | | | | | | |
util dat doc include src sys win binary
| |
------ -----
| | |
share winnt tty
Required Directories for a Win32 Graphical NetHack:
top
|
----------------------------------------------------/ /-----
| | | | | | | |
util dat doc include src sys win binary
| |
------ -----
| | |
share winnt win32
Check the file "Files" in your top level directory for an exact
listing of what file is 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 Windows. Some programs have
trouble with them, so you may need to convert them. The compiler
should not have any problems with them however.
3. 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 section 4 and
5.
You may include all or as few of the special game features as you
wish (they are located last in the file).
4. Edit your Makefile.
For building Console NetHack, ensure that GRAPHICAL is set to "N",
or commented out. For building Graphical NetHack, set GRAPHICAL to
"Y".
Optional step:
If you elected not to use the high-quality BSD random number
routines by commenting out RANDOM in ntconf.h, comment out (or
set equal to nothing) the RANDOM macro in your Makefile.
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
(or nmake) utility.
Compiling
5. Now that everything is set up, change your current directory to src.
For Microsoft compiler:
nmake install
For Borland compiler:
make /f Makefile.bcc install
For GCC:
mingw32-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, the longer the lunch you may take. :-)
In any case, it is likely that the command prompt window where you
are doing the compiling will be occupied for a while. If all goes
well, you will get an NetHack executable.
Notes:
1. To install an update of NetHack after changing something, change
your current directory to src and issue the appropriate command for
your compiler:
For Microsoft compiler:
nmake
For Borland compiler:
make /f Makefile.bcc
For GCC:
mingw32-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 util directory to ensure that they are remade.
2. The executable produced by the TTY build is a 32-bit, flat-address
space, non-overlayed .exe file, which should run on any true Win32
environment with console I/O support.
The executable built by the graphical built is a 32-bit,
flat-address space, non-overlayed .exe file, which should run on any
true Win32 graphical environment.
To run NetHack, proceed to RUNNING NETHACK.
BUILDING USING VISUAL C'S IDE
Only the Win32 native port built on the Windows API, or Graphical
NetHack, can be built using the Visual C IDE.
I. Dispelling the Myths:
Compiling NetHack using the Visual C IDE is straightforward, as long
as you have your compiler and tools correctly installed.
It is again assumed that you already changed your directory to
sys\winnt and executed:
nhsetup
as described at the top of this document. If you didn't, you must go
back and do so before proceeding.
II. To compile your copy of NetHack for Windows on a Windows NT/2000/XP
machine using the Visual C IDE:
Setting Up
1. It almost goes without saying that you should make sure that your
tools are set up and running correctly. (For the Microsoft Visual C
IDE it should correctly fire up when you choose it in your Start |
Programs menus.)
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\winnt, util, win\win32, and
at this point you should also have a build directory and a binary
directory (both created by nhsetup.bat executed from sys\winnt
earlier.)
Other subdirectories may also be included in your distribution, but
they are not necessary for building the graphical version of NetHack
(you can delete them to save space if you wish.)
Required Directories for building Graphical NetHack with the Visual
C IDE:
top
|
-----------------------------------------/ /---------------
| | | | | | | | |
util dat doc include src sys win build binary
| |
------ -----
| | |
share winnt win32
Those last two (build and binary) are created during the building
process. They are not disributed as part of the NetHack source
distribution. nhsetup.bat creates the build directory and moves a
few files into it, including the Visual C project files. The
"binary" directory will house everything you need to play the game
after building is complete.
Check the file "Files" in your top level directory for an exact
listing of what file is in which directory. In order for the build
process to work, all the source files must be in the proper
locations. Remember that nhsetup.bat moves/copies many files around
to their intended locations for building NetHack.
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 Windows. Visual C project files
and workspace files (dsp and dsw files) in particular need to have
their lines end in carriage-return-line-feed or they won't work
properly.
3. Ready your tool.
Note: It's possible to build a graphical version using the Makefile,
as explained above. However, the IDE build has full game
functionality and is the officially released build.
Start the Visual C IDE. In the Visual C IDE menus, choose:
File | Open Workspace
4. Set up for the build.
In the Visual C "Open Workspace" dialog box, navigate to the top of
your NetHack source directory.
In there, highlight "nethack.dsw" and click on Open.
Once the workspace has been opened, you should see the following
list in the Visual C selection window:
+ dgncomp files
+ dgnstuff files
+ dlb_main files
+ levcomp files
+ levstuff files
+ makedefs files
+ nethackw files
+ recover files
+ tile2bmp files
+ tilemap files
+ uudecode files
On the Visual C menus, choose:
Project | Set Active Project | NetHackW
On the Visual C menus again, choose either:
Build | Set Active Configuration | NetHackW - Win32 Release
or
Build | Set Active Configuration | NetHackW - Win32 Debug
The first will create the Release build of NetHackW which does not
contain all the debugging information and is smaller, and runs
quicker. The second will create the Debug build of NetHackW and
will spend a lot of time writing debug information to the disk as
the game is played. Unless you are debugging or enhancing NetHack
for Windows, choose the Release build.
Building
5. Start your build.
On the Visual C menus once again, choose:
Build | Build NetHackW.exe
This starts the build. It is likely that the IDE message window
where you are doing the compiling will be occupied for a while.
6. If all has gone well to this point, you should now have a NetHack
executable called NetHackW.exe in the "binary" directory, along with
all the support files that it needs.
RUNNING NETHACK
I. Checking the installation:
Make sure all of the support files -- Guidebook.txt, license,
Defaults.nh, NetHack.exe or NetHackW.exe, nhdat, and recover.exe --
were copied to the game directory. If not, move them there
yourself.
Edit Defaults.nh to reflect your particular setup and personal
preferences, by following the comments. As with all releases since
3.2.1, HACKDIR defaults to the same directory as that where the
NetHack.exe or NetHackW.exe executable resides. You only need to
set HACKDIR in defaults.nh if, for some reason, you wish to override
that (be careful).
II. Executing the game
1. Running from the command prompt:
If you add the directory containing the NetHack executable to your
PATH, you can just type "nethack" or "nethack -umike" or "nethackw"
or "nethackw -umike" to start it up. Alternatively, you can
explicitly invoke it with a command such as
"c:\nethack\binary\nethack.exe" or "c:\nethack\binary\nethackw.exe"
(specifying whatever drive and directory your NetHack executable
resides in) each time.
2. Running from a Windows shortcut.
If you will be running it by launching it from a shortcut, just use
the following information when setting up the shortcut.
Description : NetHack 3.4.3 Console version
Command Line : C:\NETHACK\BINARY\NETHACK.EXE
Description : NetHack 3.4.3 Graphical Interface
Command Line : C:\NETHACK\BINARY\NETHACKW.EXE
(changing the directory to the appropriate one of course)
III. Play NetHack. If it works, you're done!
PROBLEMS
If you discover a bug and wish to report it, or if you have comments
or suggestions we recommend using our "Contact Us" web page at:
http://www.nethack.org/common/contact.html
If you don't have access to the web, or you want to send us a patch
to the NetHack source code feel free to drop us a line c/o:
DevTeam (at) nethack.org
Happy NetHacking!
|