Files
nethack/doc/makedefs.txt
T

151 lines
5.2 KiB
Plaintext

MAKEDEFS(6) Games Manual MAKEDEFS(6)
NAME
makedefs - NetHack miscellaneous build-time functions
SYNOPSIS
makedefs {-o|-d|-e|-m|-v|-p|-q|-r|-h}
makedefs --input file --output file --command
DESCRIPTION
Makedefs is a build-time tool used for a variety of nethack(6) source
file creation and modification tasks. For historical reasons, makedefs
takes two types of command lines. When invoked with a short option,
the files operated on are determined when makedefs is compiled. When
invoked with a long option, the --input and --output options are used
to specify the files for the --command. Each command is only available
in one of the two formats.
SHORT COMMANDS
Upper and lower case are both accepted for the short commands.
-o Generate onames.h.
-d Generate data.base.
-e Generate dungeon.pdf. The input file dungeon.def is passed
through the same logic as that used by the --grep command; see
the MDGREP FUNCTIONS section below for details.
-m Generate date.h and options file. It will read dat/gitinfo.txt,
only if it is present, to obtain githash= and gitbranch= info
and include related preprocessor #defines in date.h file.
-p Generate pm.h.
-q Generate the rumors file.
-s Generate the bogusmon, engrave, and epitaph files.
-1 Generate the epitaph file.
-2 Generate the engrave file.
-3 Generate the bogusmon file.
-h Generate the oracles file.
LONG COMMANDS
--debug
Show debugging output.
--make [command]
Execute a short command. Command is given without preceding
dash.
--input file
Specify the input file for the command (if needed). If file is
"-", makedefs reads the standard input stream.
--output file
Specify the output file for the command (if needed). If file is
"-", makedefs writes to the standard input stream.
--svs [delimiter]
Generate a version string to standard output without a trailing
newline. If specified, the delimiter is used between each part
of the version string.
--grep Filter the input file to the output file. See the MDGREP FUNC-
TIONS section below for information on controlling the filtering
operation.
--grep-showvars
Show the name and value for each variable known to the grep
option.
--grep-trace
Turn on debug tracing for the grep function ( --grep must be
specified as well).
--grep-defined symbol
Exit shell true (0) if symbol is known and defined, otherwise
exit shell false (1).
--grep-define symbol
Force the value of symbol to be "defined." Symbol must already
be known to makedefs.
--grep-undef symbol
Force the definition of symbol to be "undefined." Symbol must
already be known to makedefs.
MDGREP FUNCTIONS
The --grep command (and certain other commands) filter their input, on
a line-by-line basis, according to control lines embedded in the input
and on information gleaned from the nethack configuration. This allows
certain changes such as embedding platform-specific documentation into
the master documentation files.
Rules:
o The default conditional state is printing enabled.
o Any line NOT starting with a caret (^) is either suppressed or
passed through unchanged depending on the current conditional
state.
o Any line starting with a caret is a control line; as in C, zero
or more spaces may be embedded in the line almost anywhere
(except immediately after the caret); however the caret must be
in column 1.
o Conditionals may be nested.
o Makedefs will exit with an error code if any errors are
detected; processing will continue (if it can) to allow as many
errors as possible to be detected.
o Unknown identifiers are treated as both TRUE and as an error.
Note that --undef or #undef in the nethack configuration are
different from unknown.
Control lines:
^^ a line starting with a (single) literal caret
^# a comment
^?ID if the ID is defined set the conditional state to TRUE
^!ID if the ID is not defined set the conditional state to TRUE
^: else; invert the conditional state
^. end the most recent conditional
AUTHOR
The NetHack Development Team
COPYRIGHT
This file is Copyright (C) Kenneth Lorber, 2024 for version
NetHack-5:1.22. NetHack may be freely redistributed. See license for
details.
NETHACK 26 April 2026 MAKEDEFS(6)