Files
nethack/sys/unix/README.hints
T
nhmall 0bf0498155 add dirs-perms.500 and a default build change
The directories and permissions portion of the linux.500 and macOS.500
hints files and their included files has been consolidated to
dirs-perms.500.

The builder can edit that one file now, to identify
the folders that will be utilised as part of the build.

Alternatively, you can set those folders and permissions in a
make.perms file in the top of the NetHack folder tree and
they should take precedence over the ones in dirs-perms.500
because dirs-perms.500 uses '?=' variable assignment, which
means "set the value of the variable if no value has been set."

* NOTE: BUILD CHANGE *

This also makes WANT_SOURCE_INSTALL=1 the default over
WANT_SHARED_INSTALL=1, if neither is explicitly set.
The new default is the safer and less-impacting default,
but it will change where things get installed over earlier
Makefile builds. You can be explicit with WANT_SHARED_INSTALL=1
in your make command to get that..

These are the differences between the two:

make WANT_SHARED_INSTALL=1    Place the results of the install/update portion
                              of the build into a shared area on a multiuser
                              system.

make WANT_SOURCE_INSTALL=1    Place the results of the install/update portion
                              of the build into a subfolder of the source
                              tree, rather than in a system-wide shared area.

Also note that the macOS hints file behaves slightly differntly depending
on whether WANT_SOURCE_INSTALL=1 was set versus letting it be the default.
That's not new, it behaved that way before.
2026-05-27 19:32:40 -04:00

96 lines
4.8 KiB
Plaintext

The sys/unix/hints subfolder contains Makefile content building blocks
for various platforms and purposes.
The sys/unix/hints/include subfolder contains Makefile content that
is included in the distributed Makefiles.
[.500 hints]
There are two .500 series hints files provided with NetHack:
linux.500 for use on Linux
macOS.500 for use on macOS
Those will also pull in content from sys/unix/hints/include/*.370,
that is shared between the linux.500 and macOS.500 hints files.
[.500 make build options]
Here are some options that can be specified on the make command
line to trigger specific build behavior. These are not mutually
exclusive and multiple build options can be specified in many
cases to include support for multiple features. Some of the options
require prerequisite packages to be available on your build machine.
make WANT_WIN_TTY=1 Include support for the TTY interface (default).
make WANT_WIN_CURSES=1 Include support for the curses interface.
make WANT_WIN_X11=1 Include support for the X11 interface.
make WANT_WIN_Qt=1 Include support for Qt interface, defaults to Qt5.
make WANT_WIN_QT5=1 Include support for Qt5 interface.
make WANT_WIN_QT6=1 Include support for Qt6 interface. Only one Qtx
option can be specified.
make WANT_WIN_ALL=1 Include support for TTY,curses,X11, and Qt.
make WANT_WINCHAIN=1 Include support for WINCHAIN.
make WANT_LIBNH=1 Include support for libnh NetHack library.
make WANT_DEFAULT=tty Make tty the default interface if multiple window
interfaces were specified.
make WANT_DEFAULT=curses Make curses the default interface if multiple window
interfaces were specified.
make WANT_DEFAULT=X11 Make X11 the default interface if multiple window
interfaces were specified.
make WANT_DEFAULT=Qt Make Qt the default interface if multiple window
interfaces were specified.
make musl=1 Build with settings appropriate for linking with
musl libc, instead of glibc. This causes
NOCRASHREPORT to be defined, and avoids the use
of 'col' during the build.
make WANT_SYSTEM_LUA=1 Attempt to use an existing Lua package already
on the system (initially for Alpine Linux).
make resp=1 Place the majority of the compiler switches into
a response file to de-clutter the build compiler
command lines and eliminate some of the
unsightly wrapping that occurs.
make CROSS_TO_MSDOS=1 package Cross-compile for an MSDOS target package.
make CROSS_TO_WASM=1 Cross-compile for a WASM target.
make CROSS_TO_MIPS=1 Cross-compile for a mips target.
make WANT_BUNDLE=1 For macOS.500 only, place the build results into
a macOS bundle layout.
make WANT_MACSOUND=1 For macOS.500, include support for built-in macOS
sound libraries.
make WANT_SPEECH=1 If one of the sound libraries was included, also
include speech synthesis support (Recent macOS
build that also includes WANT_MACSOUND=1).
make WANT_ASAN=1 Include support for the address sanitizer in the
build.
make WANT_UBSAN=1 Include support for the undefined behaviour
sanitizer in the build.
make WANT_SHARED_INSTALL=1 Place the results of the install/update portion
of the build into a shared area on a multiuser
system.
make WANT_SOURCE_INSTALL=1 Place the results of the install/update portion
of the build into a subfolder of the source
tree, rather than in a system-wide shared area.
(This is now the default if WANT_SHARED_INSTALL=1
wasn't specified)
make WANT_NHUUID=1 Include support for a unique game identifier.
On Linux, libuuid and its headers must be installed
and available for this to build and link correctly.
sudo apt install uuid-dev on Debian/Ubuntu
or
sudo dnf install libuuid-devel on Fedora
make VIEWDEPRECATIONS=1 Turn off the suppression of -Wdeprecated and
-Wdeprecated-declarations warnings