? diff.out Index: autoconf.texi =================================================================== RCS file: /cvs/autoconf/doc/autoconf.texi,v retrieving revision 1.444 diff -u -r1.444 autoconf.texi --- autoconf.texi 2001/04/13 15:09:49 1.444 +++ autoconf.texi 2001/04/13 18:22:03 @@ -384,16 +384,15 @@ @chapter Introduction @flushright -A physicist, an engineer, and a computer scientist were -discussing the nature of God. Surely a Physicist, said the -physicist, because early in the Creation, God made Light; and you -know, Maxwell's equations, the dual nature of electro-magnetic -waves, the relativist address@hidden An Engineer!, said the -engineer, because before making Light, God split the Chaos into -Land and Water; it takes a hell of an engineer to handle that big -amount of mud, and orderly separation of solids from address@hidden The computer scientist shouted: And the Chaos, -where do you think it was coming from, hmm? +A physicist, an engineer, and a computer scientist were discussing the +nature of God. ``Surely a Physicist,'' said the physicist, ``because +early in the Creation, God made Light; and you know, Maxwell's +equations, the dual nature of electromagnetic waves, the relativistic address@hidden'' ``An Engineer!,'' said the engineer, ``because +before making Light, God split the Chaos into Land and Water; it takes a +hell of an engineer to handle that big amount of mud, and orderly +separation of solids from address@hidden'' The computer scientist +shouted: ``And the Chaos, where do you think it was coming from, hmm?'' ---Anonymous @end flushright @@ -747,9 +746,9 @@ @end example You are now able to understand one of the constructs of Autoconf that -has been continually misunderstood... The rule of thumb is that +has been continually address@hidden The rule of thumb is that @emph{whenever you expect macro expansion, expect quote expansion}; -i.e., expect one level of quotes to be lost. For instance +i.e., expect one level of quotes to be lost. For instance: @example AC_COMPILE_IFELSE([char b[10];],, [AC_MSG_ERROR([you lose])]) @@ -771,7 +770,7 @@ address@hidden, you actually produce @samp{char b[10];} this time! The careful reader will notice that, according to these guidelines, the -"properly" quoted @code{AC_CHECK_HEADER} example above is actually +``properly'' quoted @code{AC_CHECK_HEADER} example above is actually lacking three pairs of quotes! Nevertheless, for the sake of readability, double quotation of literals is used only where needed in this manual. @@ -1426,7 +1425,7 @@ @c to split the macros in several files. In this case, Autoconf must be @c told which files to load, and in which order. @c address@hidden @defmac AC_INCLUDE (@var{file}...) address@hidden @defmac AC_INCLUDE (@address@hidden) @c @maindex INCLUDE @c @c FIXME: There is no longer shell globbing. @c Read the macro definitions that appear in the listed files. A list of @@ -1537,7 +1536,7 @@ @c Can't use @ovar here, Texinfo 4.0 goes lunatic and emits something @c awful. @example -AC_CONFIG_FOOS(@var{tag}..., address@hidden, address@hidden) +AC_CONFIG_FOOS(@address@hidden, address@hidden, address@hidden) @end example @noindent @@ -1571,8 +1570,8 @@ should avoid @example -... && my_foos="$my_foos fooo" -... && my_foos="$my_foos foooo" address@hidden && my_foos="$my_foos fooo" address@hidden && my_foos="$my_foos foooo" AC_CONFIG_FOOS($my_foos) @end example @@ -1580,8 +1579,8 @@ and use this instead: @example -... && AC_CONFIG_FOOS(fooo) -... && AC_CONFIG_FOOS(foooo) address@hidden && AC_CONFIG_FOOS(fooo) address@hidden && AC_CONFIG_FOOS(foooo) @end example The macro @code{AC_CONFIG_FILES} and @code{AC_CONFIG_HEADERS} use @@ -1762,8 +1761,8 @@ @ovindex ECHO_C @ovindex ECHO_N @ovindex ECHO_T -How to suppress the trailing newline from @code{echo} for -question... answer reports: +How does one suppress the trailing newline from @code{echo} for +question-answer message pairs? These variables provide a way: @example echo $ECHO_N "And the winner is... $ECHO_C" @@ -1772,8 +1771,9 @@ @end example @noindent -Some old and uncommon @code{echo} offer no means to achieve this, in -which case @code{ECHO_T} is set to tab. You might not want to use it. +Some old and uncommon @code{echo} implementations offer no means to +achieve this, in which case @code{ECHO_T} is set to tab. You might not +want to use it. @end defvar @defvar FFLAGS @@ -2210,7 +2210,7 @@ directly is all that is needed. But when things go wrong, you'll thank the Autoconf team for address@hidden address@hidden@dots{} The fact that the symbols are documented is important in order to @emph{check} that @file{config.h} makes sense. @@ -2220,7 +2220,7 @@ packages to environments where @command{configure} cannot be run: they just have to @emph{fill in the blanks}. -But let's come back to the point: @command{autoheader}'s invocation... +But let's come back to the point: @command{autoheader}'s address@hidden If you give @command{autoheader} an argument, it uses that file instead of @file{configure.ac} and writes the header file to the standard output @@ -5142,7 +5142,7 @@ leads to a permanent deadlock. Vendors don't want to break user's existant shell scripts, and there are some corner cases in the Bourne shell that are not completely compatible with a @sc{posix} shell. Thus, -vendors who have taken this route will @emph{never} (OK... ``never say +vendors who have taken this route will @emph{never} (address@hidden say never'') replace the Bourne shell (as @command{/bin/sh}) with a @sc{posix} shell. @end quotation @@ -5199,9 +5199,9 @@ It is worth noting that Zsh (but not Ash nor Bash) makes it possible in assignments though: @samp{foo=`cd /zorglub` 2>/dev/null}. -Most shells if not all (including Bash, Zsh, Ash) output traces on stderr -including for sub shells. This might result in undesired content if you -meant to capture the standard error of the inner command: +Most shells, if not all (including Bash, Zsh, Ash), output traces on +stderr, even for sub-shells. This might result in undesired content +if you meant to capture the standard-error output of the inner command: @example $ ash -x -c '(eval "echo foo >&2") 2>stderr' @@ -5223,10 +5223,10 @@ @end example @noindent -You'll appreciate the various levels of details... +You'll appreciate the various levels of address@hidden -One way out consists in grepping out uninteresting lines, hoping not to -remove good ones... +One workaround is to grep out uninteresting lines, hoping not to remove +good address@hidden @node File System Conventions, Shell Substitutions, File Descriptors, Portable Shell @subsection File System Conventions @@ -5372,8 +5372,8 @@ @noindent and in fact it is even @emph{more} portable: in the first case of the first attempt, the computation of @code{top_srcdir} is not portable, -since not all shells properly understand @samp{"`... "foo"... `"}. -Worse yet, not all shells understand @samp{"`... \"foo\"... `"} the same +since not all shells properly understand @samp{"address@hidden"foo"@dots{} `"}. +Worse yet, not all shells understand @samp{"address@hidden"foo\"@dots{} `"} the same way. There is just no portable way to use double-quoted strings inside double-quoted backquoted expressions (pfew!). @@ -5484,7 +5484,7 @@ @end example @noindent -...but beware of the @address@hidden bug from Solaris (see above). For safety, address@hidden beware of the @address@hidden bug from Solaris (see above). For safety, use: @example @@ -6045,11 +6045,11 @@ @end example Alas, negated character classes are probably not portable, although no -shell is known to not support the @sc{posix.2} syntax @samp{[!...]} +shell is known to not support the @sc{posix.2} syntax @address@hidden (when in interactive mode, @command{zsh} is confused by the address@hidden syntax and looks for an event in its history because of address@hidden@dots{}]} syntax and looks for an event in its history because of @samp{!}). Many shells do not support the alternative syntax address@hidden (Solaris, Digital Unix, etc.). address@hidden@dots{}]} (Solaris, Digital Unix, etc.). One solution can be: @@ -6263,7 +6263,7 @@ @quotation No, under some older flavors of Unix, leading @samp{//} is a special -path name: it refers to a "super-root" and is used to access other +path name: it refers to a ``super-root'' and is used to access other machines' files. Leading @samp{///}, @samp{////}, etc. are equivalent to @samp{/}; but leading @samp{//} is special. I think this tradition started with Apollo Domain/OS, an OS that is still in use on some older @@ -6414,7 +6414,7 @@ Don't use multiple regexps with @option{-e}, as some @code{grep} will only honor the last pattern (eg., IRIX 6.5 and Solaris 2.5.1). Anyway, -Stardent Vistra SVR4 @code{grep} lacks @option{-e}... Instead, use +Stardent Vistra SVR4 @code{grep} lacks @address@hidden Instead, use alternation and @code{egrep}. @@ -6583,7 +6583,7 @@ Make itself suffers a great number of limitations, only a few of which being listed here. First of all, remember that since commands are -executed by the shell, all its weaknesses are inherited... +executed by the shell, all its weaknesses are address@hidden @table @asis @item @code{VPATH} @@ -6674,7 +6674,7 @@ If given, @var{language} specifies the language we just @emph{quit}. It is a good idea to specify it when it's known (which should be the -case...), since Autoconf will detect inconsistencies. address@hidden), since Autoconf will detect inconsistencies. @example AC_LANG_PUSH(Fortran 77) @@ -7055,12 +7055,12 @@ For instance: @example address@hidden ... AC_INIT, etc. ...} address@hidden @dots{} AC_INIT, etc. @dots{}} @group # Checks for programs. AC_PROG_CC AC_PROG_GCC_TRADITIONAL address@hidden ... more program checks ...} address@hidden @dots{} more program checks @dots{}} AC_CACHE_SAVE @end group @@ -7068,7 +7068,7 @@ # Checks for libraries. AC_CHECK_LIB(nsl, gethostbyname) AC_CHECK_LIB(socket, connect) address@hidden ... more lib checks ...} address@hidden @dots{} more lib checks @dots{}} AC_CACHE_SAVE @end group @@ -7077,7 +7077,7 @@ AM_PATH_GTK(1.0.2,, (exit 1); exit) AM_PATH_GTKMM(0.9.5,, (exit 1); exit) @end group address@hidden ... AC_OUTPUT, etc. ...} address@hidden @dots{} AC_OUTPUT, etc. @dots{}} @end example @node Printing Messages, , Caching Results, Results @@ -7305,7 +7305,7 @@ @c FIXME: Grmph, yet another quoting myth: quotation has *never* @c prevented `expansion' of $1. Unless it refers to the expansion address@hidden of the value of $1? Anyway, we need a rewrite here... address@hidden of the value of $1? Anyway, we need a rewrite address@hidden The most common brokenness of existing macros is an improper quotation. This section, which users of Autoconf can skip, but which macro writers @@ -7444,7 +7444,7 @@ @end example With this in mind, we can explore the cases where macros invoke -macros... address@hidden @node Quotation and Nested Macros, Quotation Rule Of Thumb, One Macro Call, Quoting @@ -7809,10 +7809,10 @@ @example @group -if ...; then +if @dots{}; then AC_REQUIRE([SOME_CHECK]) fi -... address@hidden SOME_CHECK @end group @end example @@ -7914,7 +7914,7 @@ But since there is a macro named @code{AC_SUBST_FILE}, it was just impossible to @samp{AC_SUBST(FILE)}! In this case, @code{AC_SUBST(@var{symbol})} or @code{_AC_SUBST(@var{symbol})} should -have been used (yes, with the parentheses)...or better yet, high-level +have been used (yes, with the parentheses)@dots{}or better yet, high-level macros such as @code{AC_EXPAND_ONCE}. No Autoconf macro should ever enter the user-variable name space; i.e., @@ -8037,7 +8037,7 @@ AC_DEFUN([AC_PATH_X], [AC_MSG_CHECKING([for X]) AC_REQUIRE_CPP() address@hidden ...omitted...} address@hidden @address@hidden AC_MSG_RESULT([libraries $x_libraries, headers $x_includes]) fi]) @end example @@ -8049,7 +8049,7 @@ AC_DEFUN([AC_PATH_X], [AC_REQUIRE_CPP()[]dnl AC_MSG_CHECKING([for X]) address@hidden ...omitted...} address@hidden @address@hidden AC_MSG_RESULT([libraries $x_libraries, headers $x_includes]) fi[]dnl ])# AC_PATH_X @@ -8783,7 +8783,7 @@ Synopsis: @example -./config.status @var{option}... address@hidden@dots{}] +./config.status @address@hidden address@hidden@dots{}] @end example It configures the @var{files}, if none are specified, all the templates @@ -9184,7 +9184,7 @@ @defmac AC_CHECKING (@var{feature-description}) @maindex CHECKING -Same as @samp{AC_MSG_NOTICE([checking @var{feature-description}...]}. +Same as @samp{AC_MSG_NOTICE([checking @address@hidden @end defmac @defmac AC_COMPILE_CHECK (@var{echo-text}, @var{includes}, @var{function-body}, @var{action-if-found}, @ovar{action-if-not-found})