build doc updates and windows Makefile updates
This commit is contained in:
@@ -3,7 +3,7 @@
|
|||||||
==============================================================
|
==============================================================
|
||||||
Instructions for compiling and installing
|
Instructions for compiling and installing
|
||||||
NetHack 3.7 on a Windows system
|
NetHack 3.7 on a Windows system
|
||||||
(Windows 7/8.x/10 or later only)
|
(Windows 7/8.x/10/11 or later only)
|
||||||
==============================================================
|
==============================================================
|
||||||
Last revision: $NHDT-Date: 1594155895 2020/07/07 21:04:55 $
|
Last revision: $NHDT-Date: 1594155895 2020/07/07 21:04:55 $
|
||||||
|
|
||||||
@@ -18,22 +18,35 @@ Alex Kompel, Dion Nicolaas, Yitzhak Sapir, Derek S. Ray, Michael Allison,
|
|||||||
Pasi Kallinen, Bart House, and Janet Walz contributed to the maintainance
|
Pasi Kallinen, Bart House, and Janet Walz contributed to the maintainance
|
||||||
of the tty and graphical windows versions of NetHack 3.7.0.
|
of the tty and graphical windows versions of NetHack 3.7.0.
|
||||||
|
|
||||||
You can build a TTY version of NetHack and a Windows Graphical
|
The build Makefiles and procedures produce two executables:
|
||||||
version. You can use one of the following build environments:
|
a. A TTY and curses version of NetHack in nethack.exe
|
||||||
|
b. A Windows Graphical version in nethackw.exe.
|
||||||
|
|
||||||
|
You can use one of the following build environments:
|
||||||
o A copy of Microsoft Visual Studio 2017 Community Edition or
|
o A copy of Microsoft Visual Studio 2017 Community Edition or
|
||||||
a copy of Microsoft Visual Studio 2019 Community Edition or
|
a copy of Microsoft Visual Studio 2019 Community Edition or
|
||||||
a copy of Microsoft Visual Studio 2022 Community Edition
|
a copy of Microsoft Visual Studio 2022 Community Edition
|
||||||
|
|
||||||
OR
|
OR
|
||||||
|
|
||||||
o (Untested for 3.7) A copy of MinGW. MinGW is a collection of header
|
o An up-to-date copy of MinGW-w64. MinGW-w64 is a collection of
|
||||||
files and import libraries with which native Windows32 programs
|
GNU C Compiler (GCC) executables, headers, files and import
|
||||||
can be built; the MinGW distribution contains the GNU Compiler
|
libraries. The official site for MinGW-w64 is
|
||||||
Collection. You can download MinGW at
|
https://www.mingw-w64.org/
|
||||||
http://www.mingw.org/
|
There are a few packaged distributions of MinGW-w64. We've tried
|
||||||
Earlier versions of MinGW will not allow you to build the Windows
|
out these ones, but there are likely others that will work:
|
||||||
Graphical version.
|
|
||||||
|
MSYS2
|
||||||
|
- https://www.msys2.org/
|
||||||
|
- Download the installer, and start the appropriate bash shell.
|
||||||
|
|
||||||
|
MinGW-w64 - winlibs standalone build
|
||||||
|
- https://github.com/brechtsanders/winlibs_mingw
|
||||||
|
- Download one of the releases from
|
||||||
|
https://github.com/brechtsanders/winlibs_mingw/releases
|
||||||
|
and extract the contents into a folder (ideally in a folder
|
||||||
|
without spaces in the path), and add the location of the
|
||||||
|
subfolder containing gcc.exe to your PATH.
|
||||||
|
|
||||||
/---------------------------------------------\
|
/---------------------------------------------\
|
||||||
| Directories for a Win32 NetHack build |
|
| Directories for a Win32 NetHack build |
|
||||||
@@ -42,26 +55,88 @@ version. You can use one of the following build environments:
|
|||||||
|
|
||||||
(NetHack-top)
|
(NetHack-top)
|
||||||
|
|
|
|
||||||
+-----+-----+------+------+-----+-------------+--------~------+
|
+-----+-----+------+------+-----+-------------+------~------+
|
||||||
| | | | | | | |
|
| | | | | | | |
|
||||||
util dat doc include src sys win lib (external)
|
util dat doc include src sys win submodules
|
||||||
| | |
|
| | |
|
||||||
+------+ +------+ +-----------+
|
+------+ +------+ +-----------+
|
||||||
| | | | | |
|
| | | | | |
|
||||||
share windows tty win32 Lua-5.4.4 pdcurses
|
share windows tty win32 lua pdcurses
|
||||||
|
|
|
|
||||||
vs
|
vs
|
||||||
|
|
||||||
|
/-----------------------------------------------------------------------\
|
||||||
|
| Required components that are not bundled in the NetHack repository |
|
||||||
|
\-----------------------------------------------------------------------/
|
||||||
|
|
||||||
|
NetHack 3.7 for Windows requires some 3rd party sources that are not
|
||||||
|
directly distributed within the NetHack repository, but they are configured
|
||||||
|
as submodules if you are online and have git, or you can obtain them
|
||||||
|
yourself.
|
||||||
|
|
||||||
|
Via git (recommended)
|
||||||
|
|
||||||
|
If you obtained your NetHack sources by cloning from a git repository such
|
||||||
|
as https://github.com/NetHack/NetHack and you have git installed and
|
||||||
|
available and you are online, you simply need to execute the following
|
||||||
|
command from the top level NetHack folder to populate source code into the
|
||||||
|
submodules/lua and submodules/pdcurses folders:
|
||||||
|
|
||||||
|
git submodule init
|
||||||
|
git submodule update --remote
|
||||||
|
|
||||||
|
|
||||||
|
Via zip download
|
||||||
|
|
||||||
|
If you obtained your NetHack sources from a zip file or source other than
|
||||||
|
via git, you'll have to obtain Lua and pdcurses from their respective
|
||||||
|
locations (at the time of this writing).
|
||||||
|
Windows 10 or newer is assumed below, because wget and tar started to be
|
||||||
|
included in that version.
|
||||||
|
|
||||||
|
o obtain Lua
|
||||||
|
cd lib
|
||||||
|
wget http://www.lua.org/ftp/lua-5.4.4.tar.gz
|
||||||
|
tar -xvf lua-5.4.4.tar.gz
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
o obtain pdcurses
|
||||||
|
cd lib
|
||||||
|
wget --no-check-certificate ^
|
||||||
|
http://github.com/wmcbrine/PDCurses/archive/refs/tags/3.9.zip ^
|
||||||
|
--output-document=pdcurses3.9.zip
|
||||||
|
tar -xvf pdcurses3.9.zip
|
||||||
|
ren PDCurses-3.9 pdcurses
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
o update your Makefiles to reflect:
|
||||||
|
|
||||||
|
In sys/windows/Makefile.mingw32
|
||||||
|
change from
|
||||||
|
PDCURSES_TOP = ../submodules/pdcurses
|
||||||
|
to
|
||||||
|
PDCURSES_TOP = ../lib/pdcurses
|
||||||
|
|
||||||
|
change from
|
||||||
|
LUATOP = ../submodules/lua
|
||||||
|
to
|
||||||
|
LUATOP = ../lib/lua-5.4.4
|
||||||
|
|
||||||
|
In sys/windows/Makefile.msc
|
||||||
|
change from
|
||||||
|
PDCURSES_TOP = ..\submodules\pdcurses
|
||||||
|
to
|
||||||
|
PDCURSES_TOP = ..\lib\pdcurses
|
||||||
|
|
||||||
|
change from
|
||||||
|
LUATOP = ..\submodules\lua
|
||||||
|
to
|
||||||
|
LUATOP = ..\lib\lua-5.4.4
|
||||||
|
|
||||||
/-----------------------------------------------------------\
|
/-----------------------------------------------------------\
|
||||||
| Building And Running Using Visual Studio 2017, 2019, 2022 |
|
| Building And Running Using Visual Studio 2017, 2019, 2022 |
|
||||||
\-----------------------------------------------------------/
|
\-----------------------------------------------------------/
|
||||||
|
|
||||||
Before proceeding, please obtain the lua-5.4.4 sources and copy them to
|
|
||||||
the new directory lib\lua-5.4.4\src. This source can be obtained either from
|
|
||||||
http://www.lua.org/ftp/lua-5.4.4.tar.gz or from the git hub mirror
|
|
||||||
https://github.com/lua/lua.git using the tag 'v5.4.4'. The build expects
|
|
||||||
to find lua files such as 'lua.h' at 'lib\lua-5.4.4\src\lua.h'.
|
|
||||||
|
|
||||||
If you are NOT using Visual Studio IDE, or you prefer to build
|
If you are NOT using Visual Studio IDE, or you prefer to build
|
||||||
using a Make utility and a Makefile proceed to "Building Using Make".
|
using a Make utility and a Makefile proceed to "Building Using Make".
|
||||||
|
|
||||||
@@ -156,22 +231,16 @@ I. Dispelling the Myths:
|
|||||||
|
|
||||||
We have provided a Makefile for each of the following compilers:
|
We have provided a Makefile for each of the following compilers:
|
||||||
|
|
||||||
o Microsoft Visual Studio 2017 or 2019 C++ Compiler
|
o Microsoft Visual Studio 2017 or 2019 or 2022 C++ Compiler
|
||||||
The Community Editions are fine and available at no cost
|
The Community Editions are fine and available at no cost
|
||||||
o MinGW 2.0 (with GCC 3.2)
|
o MinGW-w64
|
||||||
|
|
||||||
The Microsoft Visual Studio makefile was created for use
|
The Microsoft Visual Studio makefile was created for use
|
||||||
with MS NMAKE which is provided with the Microsoft compiler.
|
with MS NMAKE which is provided with the Microsoft compiler.
|
||||||
The supplied Makefile may work with earlier versions of the Microsoft
|
The supplied Makefile may work with earlier versions of the Microsoft
|
||||||
compiler, but that has not been tested.
|
compiler, but that has not been tested.
|
||||||
|
|
||||||
The GCC Makefile was created for use with GNU Make version 3.79.1,
|
The GCC Makefile was created for use with GNU Make.
|
||||||
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 machine:
|
II. To compile your copy of NetHack on a Windows machine:
|
||||||
|
|
||||||
@@ -186,15 +255,6 @@ Setting Up
|
|||||||
source tree.
|
source tree.
|
||||||
cd src
|
cd src
|
||||||
|
|
||||||
GCC
|
|
||||||
|
|
||||||
For the GCC Makefile, add <mingw>\bin to your path, where <mingw>
|
|
||||||
is your MinGW root directory.).
|
|
||||||
|
|
||||||
Change your current directory to src subfolder of the nethack
|
|
||||||
source tree.
|
|
||||||
cd src
|
|
||||||
|
|
||||||
2. Since 3.6.2, the community patch for an optional curses window-port
|
2. Since 3.6.2, the community patch for an optional curses window-port
|
||||||
has been incorporated into the NetHack source code tree. That
|
has been incorporated into the NetHack source code tree. That
|
||||||
window-port, which evolved from work originally done by Karl Garrison,
|
window-port, which evolved from work originally done by Karl Garrison,
|
||||||
@@ -202,30 +262,14 @@ Setting Up
|
|||||||
on www.hardfought.org/nethack/. The optional curses window-port is
|
on www.hardfought.org/nethack/. The optional curses window-port is
|
||||||
available for Windows, Mac OS X, and Unix (and also DOS).
|
available for Windows, Mac OS X, and Unix (and also DOS).
|
||||||
|
|
||||||
If you want to include the optional curses window-port support in your
|
The Makefiles are configured by default to include the curses
|
||||||
command line Makefile build, you will have to first obtain the
|
window-port support in your command line Makefile build.
|
||||||
PDCurses sources from https://github.com/wmcbrine/PDCurses
|
|
||||||
and have that source code tree available prior to building NetHack.
|
|
||||||
Edit your Makefile and in Question 4 of the four decisions you can
|
|
||||||
make in there, uncomment these two lines:
|
|
||||||
ADD_CURSES=Y
|
|
||||||
PDCURSES_TOP=..\..\pdcurses
|
|
||||||
|
|
||||||
Adjust the PDCURSES_TOP macro so that it points to the correct
|
|
||||||
location for the top of the PDCurses source tree if it differs from
|
|
||||||
the path shown.
|
|
||||||
|
|
||||||
3. Make sure all the necessary files are in the appropriate directory
|
3. Make sure all the necessary files are in the appropriate directory
|
||||||
structure. You should have a main NetHack top directory with
|
structure. You should have a main NetHack top directory with
|
||||||
subdirectories dat, doc, include, src, sys\share, sys\windows,
|
subdirectories dat, doc, include, src, sys\share, sys\windows,
|
||||||
win\tty, util.
|
win\tty, util.
|
||||||
|
|
||||||
If you are including the optional Curses window port into your
|
|
||||||
build,then you will need the top of the PDCurses sources in a
|
|
||||||
folder parallel to the top of the NetHack folder (or you will need
|
|
||||||
to change the value of the PDCURSES_TOP macro in the Makefile to
|
|
||||||
specify the appropriate location.
|
|
||||||
|
|
||||||
(You can check the file "Files" in your top level directory for a
|
(You can check the file "Files" in your top level directory for a
|
||||||
more complete listing of what file is in which directory.)
|
more complete listing of what file is in which directory.)
|
||||||
|
|
||||||
@@ -238,27 +282,23 @@ Setting Up
|
|||||||
4. Edit your Makefile if you wish, but it is not required unless
|
4. Edit your Makefile if you wish, but it is not required unless
|
||||||
you are altering the build options.
|
you are altering the build options.
|
||||||
|
|
||||||
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 are remade,
|
|
||||||
lest potentially troublesome timestamps fool your make (or nmake)
|
|
||||||
utility.
|
|
||||||
|
|
||||||
Compiling
|
Compiling
|
||||||
|
|
||||||
5. Now that everything is set up...
|
5. Now that everything is set up...
|
||||||
|
|
||||||
For the Visual Studio compiler, as mentioned above, you should now be
|
Change your current directory to the NetHack src directory.
|
||||||
at the command prompt to carry out the build and your current
|
|
||||||
directory should be the src subdirectory in the NetHack source tree.
|
|
||||||
|
|
||||||
In the src subdirectory, issue this command:
|
For the Visual Studio compiler:
|
||||||
nmake install
|
Issue these commands:
|
||||||
|
copy ..\sys\windows\Makefile.msc Makefile
|
||||||
|
nmake install
|
||||||
|
|
||||||
For GCC:
|
For GCC:
|
||||||
Change your current directory to the NetHack src directory.
|
Issue these commands:
|
||||||
Issue this command:
|
cp ../sys/windows/Makefile.mingw32* .
|
||||||
mingw32-make -f Makefile.gcc install
|
mingw32-make -f Makefile.mingw32 clean
|
||||||
|
mingw32-make -f Makefile.mingw32 depend
|
||||||
|
mingw32-make -f Makefile.mingw32
|
||||||
|
|
||||||
If you get any errors along the way then something has not been set
|
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
|
up correctly. The time it takes to compile depends on your
|
||||||
@@ -280,29 +320,27 @@ Notes:
|
|||||||
nmake
|
nmake
|
||||||
|
|
||||||
For GCC:
|
For GCC:
|
||||||
mingw32-make -f Makefile.gcc
|
mingw32-make -f Makefile.mingw32
|
||||||
|
|
||||||
If you add, delete, or reorder monsters or objects, or you change
|
If you add, delete, or reorder monsters or objects, or you change
|
||||||
the format of saved level files, delete any save and bones files.
|
the format of saved level files, delete any save and bones files.
|
||||||
(Trying to use such files sometimes produces amusing confusions on
|
(Trying to use such files sometimes produces amusing confusions on
|
||||||
the game's part, but usually crashes.)
|
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. Depending on the build and compiler and tools used above, the
|
2. Depending on the build and compiler and tools used above, the
|
||||||
executable produced by the TTY build is either:
|
executable produced by the TTY build is either:
|
||||||
- a 32-bit (x86), flat-address space, non-overlayed .exe file,
|
- a 32-bit (x86) .exe file,
|
||||||
which should run on any recent Win32 environment.
|
which should run on any recent Win32 environment.
|
||||||
or
|
or
|
||||||
- a 64-bit (x64) .exe file,
|
- a 64-bit (x64) .exe file,
|
||||||
which should run on any 64-bit Windows O/S.
|
which should run on any 64-bit Windows O/S.
|
||||||
|
|
||||||
Note that saved games are NOT compatible between the 32-bit and the
|
**Note**: saved games are NOT compatible between the 32-bit and the
|
||||||
64-bit versions at this time.
|
64-bit versions at this time.
|
||||||
|
|
||||||
|
NetHack.exe is the tty plus curses version. NetHackW.exe is the windows
|
||||||
|
graphical version.
|
||||||
|
|
||||||
NetHack.exe is the tty version. NetHackW.exe is the graphical version.
|
|
||||||
Play NetHack.
|
Play NetHack.
|
||||||
|
|
||||||
PROBLEMS
|
PROBLEMS
|
||||||
|
|||||||
@@ -22,29 +22,6 @@
|
|||||||
# If you have any questions read the sys/windows/Install.windows file included
|
# If you have any questions read the sys/windows/Install.windows file included
|
||||||
# with the distribution.
|
# with the distribution.
|
||||||
#
|
#
|
||||||
#==============================================================================
|
|
||||||
# DECISIONS SECTION
|
|
||||||
#
|
|
||||||
# Build Options Decisions
|
|
||||||
#
|
|
||||||
# There are currently 4 decisions that you can choose to make.
|
|
||||||
# None of the 4 decisions are absolutely required because defaults are in place:
|
|
||||||
# 1. Do you have git commands in your path and NetHack in a git repository?
|
|
||||||
# 2. Where do you want your build results to end up?
|
|
||||||
# 3. Do you want debug information in the executable?
|
|
||||||
# 4. Do you want to explicitly override auto-detection of a 32-bit or 64-bit target?
|
|
||||||
# 5. Do you want to include any optional interfaces in the port?
|
|
||||||
# 5a) console without or with pdcurses
|
|
||||||
# 5b) Windows
|
|
||||||
#
|
|
||||||
# Mandatory LUA source Location
|
|
||||||
#
|
|
||||||
# LUA source code or is required to build NetHack-3.7.
|
|
||||||
# LUATOP must point to the location of the LUA sources.
|
|
||||||
#
|
|
||||||
#-----------------------------------------------------------------------------------------
|
|
||||||
#=========================================================================================
|
|
||||||
|
|
||||||
#==============================================================================
|
#==============================================================================
|
||||||
#
|
#
|
||||||
# The default make target (so just typing 'mingw32-make').
|
# The default make target (so just typing 'mingw32-make').
|
||||||
@@ -53,57 +30,33 @@
|
|||||||
default: install
|
default: install
|
||||||
|
|
||||||
#---------------------------------------------------------------
|
#---------------------------------------------------------------
|
||||||
# 1. Where do you want the game to be built (which folder)?
|
# Where do you want the game to be built (which folder)?
|
||||||
# If not present prior to compilation it gets created.
|
# If not present prior to compilation it gets created.
|
||||||
#
|
#
|
||||||
|
|
||||||
GAMEDIR = ../binary
|
GAMEDIR = ../binary
|
||||||
|
|
||||||
#
|
#
|
||||||
#---------------------------------------------------------------
|
#---------------------------------------------------------------
|
||||||
# 2. Do you want debug information in the executable?
|
# Do you want debug information in the executable?
|
||||||
#
|
#
|
||||||
|
|
||||||
DEBUGINFO = N
|
DEBUGINFO = N
|
||||||
|
|
||||||
#
|
#
|
||||||
#---------------------------------------------------------------
|
#---------------------------------------------------------------
|
||||||
# 3. Do you want to explicitly override auto-detection of a 32-bit
|
# Location of pdcurses
|
||||||
# or 64-bit executable (save files do not interchange currently)?
|
|
||||||
#
|
|
||||||
# It depends on which MSYS2 MinGW shell you are using.
|
|
||||||
#
|
|
||||||
#---------------------------------------------------------------
|
|
||||||
# 4. Do you want additional GUI interfaces in the executable?
|
|
||||||
# Make these Y to enable the GUIs. Win32 is always enabled,
|
|
||||||
# and is the default.
|
|
||||||
#
|
#
|
||||||
|
# NetHack obtained via git clone (default)
|
||||||
|
PDCURSES_TOP = ../submodules/pdcurses
|
||||||
|
|
||||||
#4a Curses window port support
|
# NetHack sources obtained by zip file download
|
||||||
|
#PDCURSES_TOP = ../lib/pdcurses
|
||||||
#
|
#
|
||||||
#
|
|
||||||
# 4. Uncomment these and set them appropriately if you want to
|
|
||||||
# include curses port support alongside TTY support in your
|
|
||||||
# NetHack.exe binary.
|
|
||||||
#
|
|
||||||
# You'll have to set PDCURSES_H to the correct location of the
|
|
||||||
# PDCurses header (.h) files and PDCURSES_C to the location
|
|
||||||
# of your PDCurses C files which must already be resident on
|
|
||||||
# your machine.
|
|
||||||
#
|
|
||||||
# ADD_CURSES=Y
|
|
||||||
# PDCURSES_TOP=../submodules/pdcurses
|
|
||||||
|
|
||||||
#---------------------------------------------------------------
|
#---------------------------------------------------------------
|
||||||
ifndef LUA_VERSION
|
# Location of LUA on this machine
|
||||||
LUAVER=5.4.4
|
|
||||||
else
|
|
||||||
LUAVER=$(LUA_VERSION)
|
|
||||||
endif
|
|
||||||
#---------------------------------------------------------------
|
|
||||||
# Location of LUA
|
|
||||||
#
|
#
|
||||||
# Original source needs to be obtained from:
|
# Original Lua source can be obtained from:
|
||||||
# http://www.lua.org/ftp/lua-5.4.4.tar.gz
|
# http://www.lua.org/ftp/lua-5.4.4.tar.gz
|
||||||
#
|
#
|
||||||
# This build assumes that the LUA sources are located
|
# This build assumes that the LUA sources are located
|
||||||
@@ -111,13 +64,11 @@ endif
|
|||||||
# you'll need to specify the correct spot below in order to
|
# you'll need to specify the correct spot below in order to
|
||||||
# successfully build NetHack-3.7.
|
# successfully build NetHack-3.7.
|
||||||
#
|
#
|
||||||
USE_LUADLL = Y
|
# NetHack obtained via git clone (default)
|
||||||
WANT_LUAC = N
|
|
||||||
LUATOP = ../submodules/lua
|
LUATOP = ../submodules/lua
|
||||||
#
|
|
||||||
#==============================================================================
|
# NetHack sources obtained by zip file download (see Install.windows)
|
||||||
# This marks the end of the BUILD DECISIONS section.
|
#LUATOP = ../lib/lua-5.4.4
|
||||||
#==============================================================================
|
|
||||||
#
|
#
|
||||||
#===============================================
|
#===============================================
|
||||||
#======= End of Modification Section ===========
|
#======= End of Modification Section ===========
|
||||||
@@ -132,6 +83,15 @@ LUATOP = ../submodules/lua
|
|||||||
#==============================================================================
|
#==============================================================================
|
||||||
|
|
||||||
SKIP_NETHACKW = N
|
SKIP_NETHACKW = N
|
||||||
|
USE_LUADLL = Y
|
||||||
|
WANT_LUAC = N
|
||||||
|
ADD_CURSES=Y
|
||||||
|
|
||||||
|
ifndef LUA_VERSION
|
||||||
|
LUAVER=5.4.4
|
||||||
|
else
|
||||||
|
LUAVER=$(LUA_VERSION)
|
||||||
|
endif
|
||||||
|
|
||||||
#==============================================================================
|
#==============================================================================
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# NetHack 3.7 Makefile.msc
|
# NetHack 3.7 Makefile.msc
|
||||||
# Copyright (c) NetHack PC Development Team 1993-2022
|
# Copyright (c) NetHack Development Team 1993-2022
|
||||||
#
|
#
|
||||||
#==============================================================================
|
#==============================================================================
|
||||||
# Build Tools Environment
|
# Build Tools Environment
|
||||||
@@ -21,71 +21,77 @@
|
|||||||
# A Win32 native port built on the Windows API, Graphical NetHack or
|
# A Win32 native port built on the Windows API, Graphical NetHack or
|
||||||
# NetHackW.exe
|
# NetHackW.exe
|
||||||
#
|
#
|
||||||
# If you want to find out more information about Lua or PDCurses
|
|
||||||
# here are the home page links for each at the time of this writing:
|
|
||||||
#
|
|
||||||
# Lua: https://www.lua.org/
|
|
||||||
# PDCurses: https://pdcurses.org/
|
|
||||||
#
|
|
||||||
# If you have any questions about building NetHack for the Windows platform
|
# If you have any questions about building NetHack for the Windows platform
|
||||||
# please read sys/windows/Install.windows file included in the distribution.
|
# please read sys/windows/Install.windows file included in the distribution.
|
||||||
#
|
#
|
||||||
#==============================================================================
|
#==============================================================================
|
||||||
# DECISIONS SECTION
|
|
||||||
#
|
#
|
||||||
# Build Options Decisions
|
# The default make target (so just typing 'nmake' is useful).
|
||||||
#
|
#
|
||||||
# There are currently 5 decisions that you can choose to make.
|
|
||||||
# none of the 5 decisions are absolutely required because defaults
|
default : install
|
||||||
# are in place:
|
|
||||||
#
|
|
||||||
# 1. Do you have git commands in your path and NetHack in a
|
|
||||||
# git repository?
|
|
||||||
# 2. Where do you want your build results to end up?
|
|
||||||
# 3. Do you want debug information in the executable?
|
|
||||||
# 4. Do you want to explicitly override auto-detection of
|
|
||||||
# a 32-bit or 64-bit target?
|
|
||||||
#
|
|
||||||
#------------------------------------------------------------------------------
|
|
||||||
#==============================================================================
|
|
||||||
|
|
||||||
#
|
#
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
# 1. Do you have git commands available and NetHack in a git repository.
|
# Where do you want the game to be built (which folder)?
|
||||||
# If not, such as if you obtained the NetHack sources in a zip file download,
|
|
||||||
# set GIT_AVAILABLE = 0
|
|
||||||
#
|
|
||||||
GIT_AVAILABLE = 1
|
|
||||||
#
|
|
||||||
#------------------------------------------------------------------------------
|
|
||||||
# 2. Where do you want the game to be built (which folder)?
|
|
||||||
#
|
#
|
||||||
|
|
||||||
GAMEDIR = ..\binary # Default game build directory
|
GAMEDIR = ..\binary # Default game build directory
|
||||||
|
|
||||||
#
|
#
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
# 3. Do you want debug information available to the executable?
|
# Do you want debug information available to the executable?
|
||||||
#
|
#
|
||||||
|
|
||||||
DEBUGINFO = Y
|
DEBUGINFO = Y
|
||||||
|
|
||||||
|
#
|
||||||
|
#---------------------------------------------------------------
|
||||||
|
# Location of pdcurses
|
||||||
|
#
|
||||||
|
# NetHack obtained via git clone (default)
|
||||||
|
PDCURSES_TOP = ../submodules/pdcurses
|
||||||
|
|
||||||
|
# NetHack sources obtained by zip file download
|
||||||
|
#PDCURSES_TOP = ../lib/pdcurses
|
||||||
|
#
|
||||||
|
#---------------------------------------------------------------
|
||||||
|
# Location of LUA on this machine
|
||||||
|
#
|
||||||
|
# Original Lua source can be obtained from:
|
||||||
|
# http://www.lua.org/ftp/lua-5.4.4.tar.gz
|
||||||
|
#
|
||||||
|
# This build assumes that the LUA sources are located
|
||||||
|
# at the specified location. If they are actually elsewhere
|
||||||
|
# you'll need to specify the correct spot below in order to
|
||||||
|
# successfully build NetHack-3.7.
|
||||||
|
#
|
||||||
|
# NetHack obtained via git clone (default)
|
||||||
|
LUATOP = ..\submodules\lua
|
||||||
|
|
||||||
|
# NetHack sources obtained by zip file download
|
||||||
|
#LUATOP = ..\lib\lua-5.4.4
|
||||||
#
|
#
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
# 4. This Makefile will attempt to auto-detect your selected target architecture
|
# This Makefile will attempt to auto-detect your selected target architecture
|
||||||
# based on Visual Studio command prompt configuration settins etc.
|
# based on Visual Studio command prompt configuration settins etc.
|
||||||
# However, if you want to manually override generation of a
|
# However, if you want to manually override generation of a
|
||||||
# 32-bit or 64-bit build target, you can uncomment the apppropriate
|
# 32-bit or 64-bit build target, you can uncomment the apppropriate
|
||||||
# TARGET_CPU line below.
|
# TARGET_CPU line below.
|
||||||
#
|
#
|
||||||
|
|
||||||
#TARGET_CPU=x64
|
#TARGET_CPU=x64
|
||||||
#TARGET_CPU=x86
|
#TARGET_CPU=x86
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
#==============================================================================
|
# Do you have git commands available and NetHack in a git repository.
|
||||||
#==============================================================================
|
# If not, such as if you obtained the NetHack sources in a zip file download,
|
||||||
# This marks the end of the BUILD DECISIONS section.
|
# set GIT_AVAILABLE = 0
|
||||||
#==============================================================================
|
|
||||||
#==============================================================================
|
|
||||||
#
|
|
||||||
#TEST_CROSSCOMPILE=Y
|
|
||||||
#
|
#
|
||||||
|
|
||||||
|
GIT_AVAILABLE = 1
|
||||||
#==============================================================================
|
#==============================================================================
|
||||||
#======================== End of Modification Section =========================
|
#======================== End of Modification Section =========================
|
||||||
#==============================================================================
|
#==============================================================================
|
||||||
@@ -96,6 +102,19 @@ DEBUGINFO = Y
|
|||||||
# # #
|
# # #
|
||||||
# #################################################
|
# #################################################
|
||||||
#
|
#
|
||||||
|
#==============================================================================
|
||||||
|
|
||||||
|
SKIP_NETHACKW = N
|
||||||
|
ADD_CURSES=Y
|
||||||
|
|
||||||
|
!IFNDEF LUA_VERSION
|
||||||
|
LUAVER=5.4.4
|
||||||
|
!ELSE
|
||||||
|
LUAVER=$(LUA_VERSION)
|
||||||
|
!ENDIF
|
||||||
|
|
||||||
|
#TEST_CROSSCOMPILE=Y
|
||||||
|
|
||||||
#==============================================================================
|
#==============================================================================
|
||||||
#
|
#
|
||||||
# The version of the game this Makefile was designed for
|
# The version of the game this Makefile was designed for
|
||||||
@@ -197,12 +216,6 @@ CROSSCOMPILE=
|
|||||||
# Source for the NetHack repository submodule in ../submodules/lua
|
# Source for the NetHack repository submodule in ../submodules/lua
|
||||||
# is https://github.com/lua/lua.git
|
# is https://github.com/lua/lua.git
|
||||||
#=================================================================
|
#=================================================================
|
||||||
!IFNDEF LUA_VERSION
|
|
||||||
LUAVER=5.4.4
|
|
||||||
!ELSE
|
|
||||||
LUAVER=$(LUA_VERSION)
|
|
||||||
!ENDIF
|
|
||||||
#==============================================================================
|
|
||||||
#
|
#
|
||||||
# Location of LUA
|
# Location of LUA
|
||||||
#
|
#
|
||||||
@@ -215,7 +228,6 @@ LUAVER=$(LUA_VERSION)
|
|||||||
# successfully build NetHack-3.7. You cannot build a functional
|
# successfully build NetHack-3.7. You cannot build a functional
|
||||||
# version of NetHack-3.7 Work-in-progress without including Lua.
|
# version of NetHack-3.7 Work-in-progress without including Lua.
|
||||||
#
|
#
|
||||||
LUATOP=..\submodules\lua
|
|
||||||
|
|
||||||
!IFNDEF LUAVER
|
!IFNDEF LUAVER
|
||||||
LUAVER=5.4.4
|
LUAVER=5.4.4
|
||||||
@@ -256,7 +268,6 @@ LUAOBJFILES = $(LUAOBJFILES) $(O)lbitlib.o
|
|||||||
# Source for the NetHack repository submodule in ../submodules/PDCurses
|
# Source for the NetHack repository submodule in ../submodules/PDCurses
|
||||||
# is https://github.com/wmcbrine/PDCurses.git
|
# is https://github.com/wmcbrine/PDCurses.git
|
||||||
#=================================================================
|
#=================================================================
|
||||||
ADD_CURSES=Y
|
|
||||||
!IF "$(ADD_CURSES)" == "Y"
|
!IF "$(ADD_CURSES)" == "Y"
|
||||||
PDCURSES_TOP = ..\submodules\pdcurses
|
PDCURSES_TOP = ..\submodules\pdcurses
|
||||||
PDCURSES_CURSES_H = $(PDCURSES_TOP)\curses.h
|
PDCURSES_CURSES_H = $(PDCURSES_TOP)\curses.h
|
||||||
@@ -823,11 +834,6 @@ DLB =
|
|||||||
#=============== TARGETS ==================
|
#=============== TARGETS ==================
|
||||||
#==========================================
|
#==========================================
|
||||||
|
|
||||||
#
|
|
||||||
# The default make target (so just typing 'nmake' is useful).
|
|
||||||
#
|
|
||||||
default : install
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# The game target.
|
# The game target.
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -3,9 +3,9 @@ INTRO
|
|||||||
|
|
||||||
The "curses" windowport is a new text-based interface for NetHack,
|
The "curses" windowport is a new text-based interface for NetHack,
|
||||||
using high-level curses routines to control the display. Currently, it
|
using high-level curses routines to control the display. Currently, it
|
||||||
has been compiled and tested on Linux and Windows, but it should also
|
has been compiled and tested on Linux, macOS, Windows, and msdos, but it
|
||||||
be portable to a number of other systems, such as other forms of UNIX,
|
should also be portable to a number of other systems, such as other
|
||||||
Mac OS X, MSDOS, and OS/2.
|
forms of UNIX and OS/2.
|
||||||
|
|
||||||
Some features of this interface compared to the traditional tty
|
Some features of this interface compared to the traditional tty
|
||||||
interface include:
|
interface include:
|
||||||
@@ -22,26 +22,26 @@ interface include:
|
|||||||
BUILDING
|
BUILDING
|
||||||
========
|
========
|
||||||
|
|
||||||
As of this writing code has been compiled on Linux and Windows.
|
UNIX/Linux/macOS build instructions:
|
||||||
|
|
||||||
UNIX/Linux build instructions: Follow the instructions in
|
Follow the instructions in
|
||||||
sys/unix/Install.unx. By default, the Makefile is setup to compile
|
sys/unix/Install.unx. By default, the Makefile is setup to compile
|
||||||
against ncurses. Edit Makefile.src if you wish to compile against a
|
against ncurses. Edit Makefile.src if you wish to compile against a
|
||||||
different curses library, such as PDCurses for SDL.
|
different curses library, such as PDCurses for SDL.
|
||||||
|
See sys/unix/NewInstall.unx for more information about building
|
||||||
|
NetHack 3.7 and above.
|
||||||
|
|
||||||
Windows build instructions: If you are using Mingw32 as your compiler,
|
Windows build instructions:
|
||||||
then follow the instructions in sys/windows/Install.windows with the
|
|
||||||
following changes:
|
|
||||||
|
|
||||||
* After running nhsetup, manually copy the file cursmake.gcc to the
|
By default, the Makefile.msc and Makefile.mingw32 are set up to build
|
||||||
src/ subdirectory
|
curses from the submodules/pdcurses submodules folder (assumes you
|
||||||
* Instead of typing "mingw32-make -f Makefile.gcc install" you will
|
obtained your NetHack sources via cloning a git repository),
|
||||||
type "mingw32-make -f cursmake.gcc install"
|
If you obtained your NetHack by another means, such as a zip download,
|
||||||
|
follow the instructions in sys/windows/Install.windows.
|
||||||
|
|
||||||
If you are using a different compiler, you will have to manually modify
|
If you are using a different compiler, you will have to manually modify
|
||||||
the appropriate Makefile to include the curses windowport files.
|
the appropriate Makefile to include the curses windowport files.
|
||||||
|
|
||||||
|
|
||||||
GAMEPLAY
|
GAMEPLAY
|
||||||
========
|
========
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user