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

       -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 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 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-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(6) configuration.  This
       allows certain changes such as embedding  platform-specific  documenta-
       tion 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  condi-
                  tional 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  any-
                  where  (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) con-
                  figuration 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,   2022   for   version
       NetHack-3.7:1.18.   NetHack  may  be freely redistributed.  See license
       for details.



NETHACK                         8 February 2022                    MAKEDEFS(6)
