aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorRoland Pesch <pesch@cygnus>1991-03-15 22:14:51 +0000
committerRoland Pesch <pesch@cygnus>1991-03-15 22:14:51 +0000
commit98ed7eaea92c1335b3739a0eec54d79a71098855 (patch)
treee259b310afd0a3c89cbeb7d45741c3e75692e186 /gas
parent09352a5d3df272f15a39b76b700a2cc9a1c4a828 (diff)
downloadgdb-98ed7eaea92c1335b3739a0eec54d79a71098855.zip
gdb-98ed7eaea92c1335b3739a0eec54d79a71098855.tar.gz
gdb-98ed7eaea92c1335b3739a0eec54d79a71098855.tar.bz2
Initial revision
Diffstat (limited to 'gas')
-rw-r--r--gas/doc/a29k.m43
-rw-r--r--gas/doc/i80386.m414
-rw-r--r--gas/doc/i960.m43
-rw-r--r--gas/doc/m680x0.m43
-rw-r--r--gas/doc/none.m413
-rw-r--r--gas/doc/pretex.m4222
-rw-r--r--gas/doc/sparc.m43
-rw-r--r--gas/doc/vax.m43
8 files changed, 264 insertions, 0 deletions
diff --git a/gas/doc/a29k.m4 b/gas/doc/a29k.m4
new file mode 100644
index 0000000..dbe0134
--- /dev/null
+++ b/gas/doc/a29k.m4
@@ -0,0 +1,3 @@
+_divert__(-1)
+_define__(<_AMD29K__>,<1>)
+_divert__<> \ No newline at end of file
diff --git a/gas/doc/i80386.m4 b/gas/doc/i80386.m4
new file mode 100644
index 0000000..b27243b
--- /dev/null
+++ b/gas/doc/i80386.m4
@@ -0,0 +1,14 @@
+_divert__(-1)
+
+_define__(<_I80386__>,<1>)
+
+_define__(<_ALL_ARCH__>,<0>)
+_define__(<_INTERNALS__>,<0>)
+
+_define__(<_AMD29K__>,<0>)
+_define__(<_I960__>,<0>)
+_define__(<_M680X0__>,<0>)
+_define__(<_SPARC__>,<0>)
+_define__(<_VAX__>,<0>)
+
+_divert__<> \ No newline at end of file
diff --git a/gas/doc/i960.m4 b/gas/doc/i960.m4
new file mode 100644
index 0000000..f4a950b
--- /dev/null
+++ b/gas/doc/i960.m4
@@ -0,0 +1,3 @@
+_divert__(-1)
+_define__(<_I960__>,<1>)
+_divert__<> \ No newline at end of file
diff --git a/gas/doc/m680x0.m4 b/gas/doc/m680x0.m4
new file mode 100644
index 0000000..93f9654
--- /dev/null
+++ b/gas/doc/m680x0.m4
@@ -0,0 +1,3 @@
+_divert__(-1)
+_define__(<_M680X0__>,<1>)
+_divert__<> \ No newline at end of file
diff --git a/gas/doc/none.m4 b/gas/doc/none.m4
new file mode 100644
index 0000000..92e97c3
--- /dev/null
+++ b/gas/doc/none.m4
@@ -0,0 +1,13 @@
+_divert__(-1)
+
+_define__(<_ALL_ARCH__>,<0>)
+_define__(<_INTERNALS__>,<0>)
+
+_define__(<_AMD29K__>,<0>)
+_define__(<_I80386__>,<0>)
+_define__(<_I960__>,<0>)
+_define__(<_M680X0__>,<0>)
+_define__(<_SPARC__>,<0>)
+_define__(<_VAX__>,<0>)
+
+_divert__<> \ No newline at end of file
diff --git a/gas/doc/pretex.m4 b/gas/doc/pretex.m4
new file mode 100644
index 0000000..826c128
--- /dev/null
+++ b/gas/doc/pretex.m4
@@ -0,0 +1,222 @@
+divert(-1) -*-Text-*-
+
+I. INTRODUCTION
+
+This collection of M4 macros is meant to help in pre-processing texinfo
+files to allow configuring them by hosts; for example, the reader of an
+as manual who only has access to a 386 may not really want to see crud about
+VAXen.
+
+A preprocessor is used, rather than extending texinfo, because this
+way we can hack the conditionals in only one place; otherwise we would
+have to write TeX macros, update makeinfo, and update the Emacs
+info-formatting functions.
+
+II. COMPATIBILITY
+
+These macros should work with GNU m4 and System V m4; they do not work
+with Sun or Berkeley M4.
+
+III. USAGE
+
+A. M4 INVOCATION
+Assume this file is called "pretex.m4". Then, to preprocess a
+document "mybook.texinfo" you might do something like the following:
+
+ m4 pretex.m4 none.m4 PARTIC.m4 mybook.texinfo >mybook-PARTIC.texinfo
+
+---where your path is set to find GNU or SysV "m4", and the other m4
+files mentioned are as follows:
+
+ none.m4: A file that defines, as 0, all the options you might
+ want to turn on using the conditionals defined below.
+ Unlike the C preprocessor, m4 does not default
+ undefined macros to 0. For example, here is a "none.m4"
+ I have been using:
+ _divert__(-1)
+
+ _define__(<_ALL_ARCH__>,<0>)
+ _define__(<_INTERNALS__>,<0>)
+
+ _define__(<_AMD29K__>,<0>)
+ _define__(<_I80386__>,<0>)
+ _define__(<_I960__>,<0>)
+ _define__(<_M680X0__>,<0>)
+ _define__(<_SPARC__>,<0>)
+ _define__(<_VAX__>,<0>)
+
+ _divert__<>
+
+ PARTIC.m4: A file that turns on whichever options you actually
+ want the manual configured for, in this particular
+ instance. Its contents are similar to one or more of
+ 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
+ that you want to expand to different text for
+ different configurations---for example, the name of
+ the program being described.
+
+Naturally, these are just suggested conventions; you could put your macro
+definitions in any files or combinations of files you like.
+
+These macros use the characters < and > as m4 quotes; if you need
+these characters in your text, you will also want to use the macros
+_0__ and _1__ from this package---see the description of "Quote
+Handling" in the "Implementation" section below.
+
+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
+_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
+is actually used in the _fi__ as well as the _if__ implementation.
+You should always give a _fi__ the same argument as its matching
+_if__. Other arguments may appear to work for a while, but are almost
+certain to produce the wrong output for some configurations.
+
+For example, here is an excerpt from the very beginning of the
+documentation for GNU as, to name the info file appropriately for
+different configurations:
+ _if__(_ALL_ARCH__)
+ @setfilename as.info
+ _fi__(_ALL_ARCH__)
+ _if__(_M680X0__ && !_ALL_ARCH__)
+ @setfilename as-m680x0.info
+ _fi__(_M680X0__ && !_ALL_ARCH__)
+ _if__(_AMD29K__ && !_ALL_ARCH__)
+ @setfilename as-29k.info
+ _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
+in the m4 manual.
+
+IV. IMPLEMENTATION
+
+A.PRIMITIVE RENAMING
+First, we redefine m4's built-ins to avoid conflict with plain text.
+The naming convention used is that our macros all begin with a single
+underbar and end with two underbars. The asymmetry is meant to avoid
+conflict with some other conventions (which we may want to document) that
+are intended to avoid conflict, like ANSI C predefined macros.
+
+define(`_undefine__',defn(`undefine'))
+define(`_define__',defn(`define'))
+define(`_defn__',defn(`defn'))
+define(`_ppf__',`_define__(`_$1__',_defn__(`$1'))_undefine__(`$1')')
+_ppf__(`builtin')
+_ppf__(`changecom')
+_ppf__(`changequote')
+_ppf__(`decr')
+_ppf__(`define')
+_ppf__(`defn')
+_ppf__(`divert')
+_ppf__(`dnl')
+_ppf__(`dumpdef')
+_ppf__(`errprint')
+_ppf__(`eval')
+_ppf__(`ifdef')
+_ppf__(`ifelse')
+_ppf__(`include')
+_ppf__(`incr')
+_ppf__(`index')
+_ppf__(`len')
+_ppf__(`m4exit')
+_ppf__(`m4wrap')
+_ppf__(`maketemp')
+_ppf__(`popdef')
+_ppf__(`pushdef')
+_ppf__(`shift')
+_ppf__(`sinclude')
+_ppf__(`substr')
+_ppf__(`syscmd')
+_ppf__(`sysval')
+_ppf__(`traceoff')
+_ppf__(`traceon')
+_ppf__(`translit')
+_ppf__(`undefine')
+_ppf__(`undivert')
+
+B. QUOTE HANDLING.
+
+The characters used as quotes by M4, by default, are unfortunately
+quite likely to occur in ordinary text. To avoid surprises, we will
+use the characters <> ---which are just as suggestive (more so to
+Francophones, perhaps) but a little less common in text (save for
+those poor Francophones. You win some, you lose some). Still, we
+expect also to have to set < and > occasionally in text; to do that,
+we define a macro to turn off quote handling (_0__) and a macro to
+turn it back on (_1__), according to our convention.
+
+ BEWARE: This seems to make < and > unusable as relational operations
+ in calls to the builtin "eval". So far I've gotten
+ along without; but a better choice may be possible.
+
+Note that we postponed this for a while, for convenience in discussing
+the issue and in the primitive renaming---not to mention in defining
+_0__ and _1__ themselves! However, the quote redefinitions MUST
+precede the _if__ / _fi__ definitions, because M4 will expand the text
+as given---if we use the wrong quotes here, we will get the wrong
+quotes when we use the conditionals.
+
+_define__(_0__,`_changequote__(,)')_define__(_1__,`_changequote__(<,>)')
+_1__
+
+C. CONDITIONALS
+
+We define two macros, _if__ and _fi__. BOTH take arguments! This is
+meant both to help the human reader match up a _fi__ with its
+corresponding _if__ and to aid in the implementation. You may use the
+full expression syntax supported by M4 (see docn of `eval' builtin in
+the m4 manual).
+
+The conditional macros are carefully defined to avoid introducing
+extra whitespace (i.e., blank lines or blank characters). One side
+effect exists---
+
+ BEWARE: text following an `_if__' on the same line is
+ DISCARDED even if the condition is true; text
+ following a `_fi__' on the same line is also
+ always discarded.
+
+The recommended convention is to always place _if__ and _fi__ on a
+line by themselves. This will also aid the human reader. TeX won't
+care about the line breaks; as for info, you may want to insert calls
+to `@refill' at the end of paragraphs containing conditionalized text,
+where you don't want line breaks separating unconditional from
+conditional text. info formatting will then give you nice looking
+paragraphs in the info file.
+
+Nesting: conditionals are designed to nest, in the following way:
+*nothing* is output between an outer pair of false conditionals, even
+if there are true conditionals inside. A false conditional "defeats"
+all conditionals within it. The counter _IF_FS__ is used to
+implement this; kindly avoid redefining it directly.
+
+_define__(<_IF_FS__>,<0>)
+_define__(
+ <_pushf__>,
+ <_define__(<_IF_FS__>,
+ _incr__(_IF_FS__))>)
+_define__(
+ <_popf__>,
+ <_ifelse__(0,_IF_FS__,
+ <<>_dnl__<>>,
+ <_define__(<_IF_FS__>,_decr__(_IF_FS__))>)>)
+
+_define__(
+ <_if__>,
+ <_ifelse__(1,_eval__( ($1) ),
+ <<>_dnl__<>>,
+ <_pushf__<>_divert__(-1)>)>)
+_define__(
+ <_fi__>,
+ <_ifelse__(1,_eval__( ($1) ),
+ <<>_dnl__<>>,
+ <_popf__<>_ifelse__(0,_IF_FS__,
+ <_divert__<>_dnl__<>>,<>)>)>)
+_divert__<>_dnl__<>
diff --git a/gas/doc/sparc.m4 b/gas/doc/sparc.m4
new file mode 100644
index 0000000..6e2e6d9
--- /dev/null
+++ b/gas/doc/sparc.m4
@@ -0,0 +1,3 @@
+_divert__(-1)
+_define__(<_SPARC__>,<1>)
+_divert__<> \ No newline at end of file
diff --git a/gas/doc/vax.m4 b/gas/doc/vax.m4
new file mode 100644
index 0000000..478c885
--- /dev/null
+++ b/gas/doc/vax.m4
@@ -0,0 +1,3 @@
+_divert__(-1)
+_define__(<_VAX__>,<1>)
+_divert__<> \ No newline at end of file