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 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 op-
              tion.

       --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(6) configuration.  This al-
       lows  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 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 de-
                  tected; 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 er-
                  ror.  Note that --undef or #undef in the NetHack(6) configu-
                  ration 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.22.  NetHack may be freely  redistributed.   See  license
       for details.



NETHACK                         8 February 2022                    MAKEDEFS(6)
