makedefs - NetHack miscellaneous build-time functions
makedefs { -o | -d | -e | -m | -v |
-p | -q | -r | -h | -z }
makedefs --input file --output file
--command
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.
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 monster.c.
- -v
- 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 quest.dat.
- -r
- Generate the rumors file.
- -s
- Generate the bogusmon , engrave and epitaphfiles.
- -h
- Generate the oracles file.
- -z
- Generate vis_tab.c and vis_tab.h.
- --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 the file is
- standard input is read.
- --output file
- Specify the output file for the command (if needed). If the file is
- standard output is written.
- --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
FUNCTIONS 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-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.
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(6) configuration. This allows
certain changes such as embedding platform-specific documentation into the
master documentation files.
Rules:
- -
- The default conditional state is printing enabled.
- -
- Any line NOT starting with a caret (^) is either suppressed or
passed through unchanged depending on the current conditional state.
- -
- 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.
- -
- Conditionals may be nested.
- -
- 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.
- -
- Unknown identifiers are treated as both TRUE and as an error. Note that
--undef or #undef in the NetHack(6) 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
The NetHack Development Team
This file is Copyright (C) Kenneth Lorber and was last modified 2018/04/25
(version NetHack-3.6.0:1.10). NetHack may be freely redistributed. See license
for details.