_divert__(-1)
+<$Id$>
Switches:
-_define__(<_ALL_ARCH__>,<0>)
+_define__(<_ALL_ARCH__>,<0>) (Meant as most inclusive; file turning
+ it on is expected to also turn on
+ all arch-related switches including
+ "_GENERIC__")
+_define__(<_GENERIC__>,<1>) (may not be quite all configs;
+ meant for "most vanilla" manual)
_define__(<_INTERNALS__>,<0>)
-_define__(<_AOUT__>,<1>)
+_define__(<_AOUT__>,<1>) Object formats. Note we turn on one.
_define__(<_BOUT__>,<0>)
_define__(<_COFF__>,<0>)
_define__(<_ELF__>,<0>)
-_define__(<_AMD29K__>,<0>)
-_define__(<_I80386__>,<0>)
+_define__(<_AMD29K__>,<0>) Specific architectures. Note none
+_define__(<_I80386__>,<0>) starts out on.
_define__(<_I960__>,<0>)
_define__(<_M680X0__>,<0>)
_define__(<_SPARC__>,<0>)
_define__(<_VAX__>,<0>)
+_define__(<_VXWORKS__>,<0>)
Text:
-Default names for assembler, compiler, linker, debugger;
- individual configs may override
+Default names; individual configs may override
+Assembler:
_define__(<_AS__>,<as>)
+C Compiler:
_define__(<_GCC__>,<gcc>)
+Linker:
_define__(<_LD__>,<ld>)
-_define__(<_GDB__>,<gdb>)
+Debugger name:
+_define__(<_GDBN__>,<GDB>)
+Debugger program:
+_define__(<_GDBP__>,<gdb>)
+Debugger init file:
+_define__(<_GDBINIT__>,<.gdbinit>)
Text for host; individual configs *should* override, but this may
catch some flubs
divert(-1) -*-Text-*-
+` Copyright (c) 1991 Free Software Foundation, Inc.'
+` This file defines and documents the M4 macros used '
+` to preprocess some GNU manuals'
+` $Id$'
I. INTRODUCTION
the lines in "none.m4", but of course the second
argument to _define__ is <1> rather than <0>.
- This is also a convenient place to define any macros
+ This is also a convenient place to _define__ any macros
that you want to expand to different text for
different configurations---for example, the name of
the program being described.
B. WHAT GOES IN THE PRE-TEXINFO SOURCE
For the most part, the text of your book. In addition, you can
-include text that is included only conditionally, using the macros
+have text that is included only conditionally, using the macros
_if__ and _fi__ defined below. They BOTH take an argument! This is
primarily meant for readability (so a human can more easily see what
conditional end matches what conditional beginning), but the argument
_fi__(_AMD29K__ && !_ALL_ARCH__)
Note that you can use Boolean expressions in the arguments; the
-expression language is that of the builtin m4 macro "eval", described
+expression language is that of the built-in m4 macro `eval', described
in the m4 manual.
IV. IMPLEMENTATION
_ppf__(`define')
_ppf__(`defn')
_ppf__(`divert')
+_ppf__(`divnum')
_ppf__(`dnl')
_ppf__(`dumpdef')
_ppf__(`errprint')
+_ppf__(`esyscmd')
_ppf__(`eval')
+_ppf__(`format')
_ppf__(`ifdef')
_ppf__(`ifelse')
_ppf__(`include')
_ppf__(`m4exit')
_ppf__(`m4wrap')
_ppf__(`maketemp')
+_ppf__(`patsubst')
_ppf__(`popdef')
_ppf__(`pushdef')
+_ppf__(`regexp')
_ppf__(`shift')
_ppf__(`sinclude')
_ppf__(`substr')
_ppf__(`translit')
_ppf__(`undefine')
_ppf__(`undivert')
+_ppf__(`unix')
B. QUOTE HANDLING.
implement this; kindly avoid redefining it directly.
_define__(<_IF_FS__>,<0>)
+
+NOTE: The definitions for our "pushf" and "popf" macros use eval
+rather than incr and decr, because GNU m4 (0.75) tries to call eval
+for us when we say "incr" or "decr"---but doesn't notice we've changed
+eval's name.
+
_define__(
<_pushf__>,
<_define__(<_IF_FS__>,
- _incr__(_IF_FS__))>)
+ _eval__((_IF_FS__)+1))>)
_define__(
<_popf__>,
<_ifelse__(0,_IF_FS__,
<<>_dnl__<>>,
- <_define__(<_IF_FS__>,_decr__(_IF_FS__))>)>)
+ <_define__(<_IF_FS__>,_eval__((_IF_FS__)-1))>)>)
_define__(
<_if__>,