
                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 dont 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.
