Instructions for installing NetHack 3.7 using the new hints system ======================================= For the moment, we are maintaining two ways to configure NetHack. The traditional system, in which Makefiles and includes are edited, and the new hints system which should be easier for most users to configure. If you are using the traditional configuration system, see Install.unx. 1. Look in the sys/unix/hints directory for a file that matches your system. If there isn't one, build one from the other files; if you need more help see the traditional instructions (in Install.unx) for hints. When you get it right please submit it to us. 2. Check the hints file for anything that may need to be changed for your installation. Most of the time little or nothing will need to be changed. 3. Configure and build: "$Top" is the top level source directory (the one with README in it). cd $Top/sys/unix sh setup.sh hints/NAME_OF_HINTS_FILE cd ../.. make fetch-Lua make all If the build fails, remove all the generated files before retrying the build with: cd $Top; make spotless See the "User Interface Build Customizations" section below if you want to configure your build with support for interfaces beyond traditional TTY. The 'make fetch-Lua' step really only needs to be done one time unless your sources get refreshed, or the lib folder and its contents get removed. 4. Install: Depending on your configuration, this step may or may not need to be done as root; check the hints file. NB: "make install" deletes nethackdir and recreates it from scratch - so if you want the record, logfile, or sysconf files, you must save and restore them manually. cd $Top make install 5. If it all worked, you're done. If something went wrong, see Install.unx for information about the settings the hints file tried to automate. ======================================= * User Interface Build Customizations * ======================================= NetHack can support multiple user interfaces within the same binary on many platforms. The various interface options can be specified by defining specific variables, either on the make command line, or by setting environment variables prior to the "make all" and "make install" steps. If you don't specify any WANT_WIN_* customization, the build will only include traditional tty support. As an example, to build a binary with tty + curses + X11 support, you can use the following build command: make WANT_WIN_TTY=1 WANT_WIN_CURSES=1 WANT_WIN_X11=1 all make WANT_WIN_TTY=1 WANT_WIN_CURSES=1 WANT_WIN_X11=1 install To build a binary with tty + curses + X11 + Qt support (that is, all the interfaces that are available for unix), you can use the following shorthand build command: make WANT_WIN_ALL=1 all make WANT_WIN_ALL=1 install Alternatively, you can set the variables in the environment first, prior to issuing your make commands: export WANT_WIN_TTY=1 export WANT_WIN_X11=1 make all make install That example above will result in a build with support for tty + X11. Note that curses, X11, and Qt will almost certainly require the installation of prerequisite packages in order to successfully build with support for additional interfaces. See below. +----------+-------+-----------------+--------------------------------------+ | Platform |Interf.| Build Variable | Prerequisite package | |----------+-------+-----------------+--------------------------------------| | MacOS | tty | WANT_WIN_TTY | none | |----------+-------+-----------------+--------------------------------------| | MacOS | curses| WANT_WIN_CURSES | ncurses development libraries | |----------+-------+-----------------+--------------------------------------| | MacOS | X11 | WANT_WIN_X11 | You will need to obtain and | | | | | install XQuartz if you want X11 | | | | | support in your build. | | | | | (Attempting to run X11.app will | | | | | describe where to get it) | | | | | | | | | | One possible way: | | | | | brew install xquartz | |----------+-------+-----------------+--------------------------------------| | MacOS | Qt | WANT_WIN_QT | You will need to obtain and | | | | | install Qt if you want Qt | | | | | support in your build. | | | | | | | | | | One possible way: | | | | | brew install Qt | |----------+-------+-----------------+--------------------------------------| | Linux | tty | WANT_WIN_TTY | | | (Ubuntu) | | | | |----------+-------+-----------------+--------------------------------------| | Linux | curses|WANT_WIN_CURSES=1| If it isn't already included | | (Ubuntu) | | | in your distribution, here is one | | | | | possible way: | | | | | | | | | | sudo apt-get install libncurses-dev | |----------+-------+-----------------+--------------------------------------| | Linux | X11 | WANT_WIN_X11=1 | Here is one possible way to obtain | | (Ubuntu) | | | the required packages: | | | | | | | | | |sudo apt-get install libx11-dev | | | | |sudo apt-get install libmotif-dev | | | | |sudo apt-get install libxaw7-dev | | | | |sudo apt install xfonts-utils | | | | |(That last one is for bdftopcf and | | | | | mkfontdir utils) | | | | | | |----------+-------+-----------------+--------------------------------------| | Linux | Qt5 | WANT_WIN_QT=1 | Here is one possible way to obtain | | (Ubuntu) | | | the required packages: | | | | | | | | | |sudo apt-get install qtbase5-dev | | | | |sudo apt-get install qtmultimedia5-dev| | | | | | | | | |Another odd note about Qt on Linux is | | | | |that if you find you are getting the | | | | |following error trying to run NetHack | | | | |after you build it with Qt support: | | | | |"error while loading shared | | | | |libraries: libQt5Core.so.5: cannot | | | | |open shared object file: No such file | | | | |or directory", | | | | |you may have to fix that (one-time) | | | | |by issuing the command below: | | | | | | | sudo strip \ | | --remove-section=.note.ABI-tag/usr/lib/x86_64-linux-gnu/libQt5Core.so.5 | |----------+-------+-----------------+--------------------------------------| | Linux | Qt6 | WANT_WIN_QT6=1 | Here is one possible way to obtain | | (Ubuntu) | | | the required packages: | | | | | | | | | |sudo apt-get install qt6-base-dev | | | | |sudo apt-get install \ | | | | | qt6-multimedia-dev | +----------+-------+-----------------+--------------------------------------+ # NetHack 3.7 NewInstall.unx $NHDT-Date: 1652276817 2022/05/11 13:46:57 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.11 $ # Copyright (c) 2009 by Kenneth Lorber, Kensington, Maryland # NetHack may be freely redistributed. See license for details.