Merge branch 'branch-1.13.2' into maint
authorStefano Lattarini <stefano.lattarini@gmail.com>
Fri, 26 Apr 2013 18:39:40 +0000 (20:39 +0200)
committerStefano Lattarini <stefano.lattarini@gmail.com>
Fri, 26 Apr 2013 18:39:40 +0000 (20:39 +0200)
* branch-1.13.2:
  docs: issues with configure substitutions in TESTS
  tests: avoid possible autotools caching issues (automake bug#13832)
  docs: add myself and Ralf Wildenhues as authors
  authors: add myself
  dry-run: don't get confused by '-I' option
  tests: avoid a spurious failure with the Korn Shell
  dry-run: with GNU make, prefer $(MFLAGS) over $(MAKEFLAGS)
  header vars: can determine whether we are running under GNU make
  NEWS: improve wording for automake bug#13514 fix
  NEWS: document fix for automake bug#13514

1  2 
NEWS
doc/automake.texi
t/list-of-tests.mk

diff --combined NEWS
--- 1/NEWS
--- 2/NEWS
+++ b/NEWS
  
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  
 -New in 1.13.2:
 -
 -* Obsolescent features:
 +New in 1.14:
 +
 +* C compilation, and the AC_PROG_CC and AM_PROG_CC_C_O macros:
 +
 +  - The 'compile' script is now unconditionally required for all
 +    packages that perform C compilation (note that if you are using
 +    the '--add-missing' option, automake will fetch that script for
 +    you, so you shouldn't need any explicit adjustment).
 +    This new behaviour is needed to avoid obscure errors when the
 +    'subdir-objects' option is used, and the compiler is an inferior
 +    one that doesn't grasp the combined use of both the "-c -o"
 +    options; see discussion about automake bug#13378 for more details:
 +    <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13378#35>
 +    <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13378#44>
 +
 +  - Automake will automatically enhance the AC_PROG_CC autoconf macro
 +    to make it check, at configure time, that the C compiler supports
 +    the combined use of both the "-c -o" options.  This "rewrite" of
 +    AC_PROG_CC is only meant to be temporary, since future Autoconf
 +    versions should provide all the features Automake needs.
 +
 +  - The AM_PROG_CC_C_O is no longer useful, and its use is a no-op
 +    now.  Future Automake versions might start warning that this
 +    macro is obsolete.  For better backward-compatibility, this macro
 +    still sets a proper 'ac_cv_prog_cc_*_c_o' cache variable, and
 +    define the 'NO_MINUS_C_MINUS_O' C preprocessor symbol, but you
 +    should really stop relying on that.
 +
 +* Texinfo support:
 +
 +  - Automake can now be instructed to place '.info' files generated from
 +    Texinfo input in the builddir rather than in the srcdir; this is done
 +    specifying the new automake option 'info-in-builddir'.  This feature
 +    was requested by the developers of GCC, GDB, GNU binutils and the GNU
 +    bfd library.  See the extensive discussion about automake bug#11034
 +    for more details.
 +
 +  - For quite a long time, Automake has been implementing an undocumented
 +    hack which ensured that '.info' files which appeared to be cleaned
 +    (by e.g. being listed in the CLEANFILES or DISTCLEANFILES variables)
 +    were built in the builddir rather than in the srcdir; this hack was
 +    introduced to ensure better backward-compatibility with packages such
 +    as Texinfo, which did things like:
 +
 +        info_TEXINFOS = texinfo.txi info-stnd.texi info.texi
 +        DISTCLEANFILES = texinfo texinfo-* info*.info*
 +        # Do not create info files for distribution.
 +        dist-info:
 +            @:
 +
 +    in order not to distribute generated '.info' files.
 +
 +    Now that we have the 'info-in-builddir' option that explicitly causes
 +    generated '.info' files to be placed in the builddir, this hack should
 +    be longer necessary, so we deprecate it with runtime warnings.  It will
 +    likely be removed altogether in Automake 1.14.
 +
 +* Relative directory in Makefile fragments:
 +
 +  - The special Automake-time substitutions '%reldir%' and '%canon_reldir%'
 +    (and their short versions, '%D%' and '%C%' respectively) can now be used
 +    in an included Makefile fragment.  The former is substituted with the
 +    relative directory of the included fragment (compared to the top level
 +    including Makefile), and the latter with the canonicalized version of
 +    the same relative directory:
 +
 +        bin_PROGRAMS += %reldir%/foo
 +        %canon_reldir%_foo_SOURCES = %reldir%/bar.c
  
 -  - Use of suffix-less info files (that can be specified through the
 -    '@setfilename' macro in Texinfo input files) is discouraged, and
 -    its use will raise warnings in the 'obsolete' category.
 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  
 -  - Use of Texinfo input files with '.txi' or '.texinfo' extensions
 -    is discouraged, and its use will raise warnings in the 'obsolete'
 -    category.  You are advised to simply use the '.texi' extension
 -    instead.
 +New in 1.13.2:
  
  * Documentation fixes:
  
    - Other minor miscellaneous fixes and improvements; in particular,
      some improvements in cross-references.
  
 +* Obsolescent features:
 +
 +  - Use of suffix-less info files (that can be specified through the
 +    '@setfilename' macro in Texinfo input files) is discouraged, and
 +    its use will raise warnings in the 'obsolete' category.  Simply
 +    use the '.info' extension for all your info files, transforming
 +    usages like:
 +
 +        @setfilename myprogram
 +
 +    into:
 +
 +        @setfilename myprogram.info
 +
 +  - Use of Texinfo input files with '.txi' or '.texinfo' extensions
 +    is discouraged, and its use will raise warnings in the 'obsolete'
 +    category.  You are advised to simply use the '.texi' extension
 +    instead.
 +
  * Bugs fixed:
  
    - The obsolete macros AM_CONFIG_HEADER or AM_PROG_CC_STDC work once
      Automake 1.13, has turned out to be a similarly very bad idea,
      for exactly the same reason.
  
-   - Aclocal no longer error out if the first local m4 directory (as
-     specified by the '-I' option or the 'AC_CONFIG_MACRO_DIRS' or
-     'AC_CONFIG_MACRO_DIR' macros) doesn't exist; it merely report a
-     warning in the 'unsupported' category.  This is done to support
-     some pre-existing real-world usages; refer to automake bug#13514
-     for more details.
+   - aclocal will no longer error out if the first local m4 directory
+     (as specified by the '-I' option or the 'AC_CONFIG_MACRO_DIRS' or
+     'AC_CONFIG_MACRO_DIR' macros) doesn't exist; it will merely report
+     a warning in the 'unsupported' category.  This is done to support
+     some pre-existing real-world usages.  See automake bug#13514.
+   - aclocal will no longer consider directories for extra m4 files more
+     than once, even if they are specified multiple times.  This ensures
+     packages that specify both
+         AC_CONFIG_MACRO_DIR([m4])       in configure.ac
+         ACLOCAL_AMFLAGS = -I m4         in Makefile.am
+     will work correctly, even when the 'm4' directory contains no
+     package-specific files, but is used only to install third-party
+     m4 files (as can happen with e.g., "libtoolize --install").
+     See automake bug#13514.
  
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  
diff --combined doc/automake.texi
@@@ -53,6 -53,8 +53,8 @@@ section entitled ``GNU Free Documentati
  @author David MacKenzie
  @author Tom Tromey
  @author Alexandre Duret-Lutz
+ @author Ralf Wildenhues
+ @author Stefano Lattarini
  @page
  @vskip 0pt plus 1filll
  @insertcopying
@@@ -1496,7 -1498,6 +1498,7 @@@ command as follows
  ~/amhello % @kbd{autoreconf --install}
  configure.ac: installing './install-sh'
  configure.ac: installing './missing'
 +configure.ac: installing './compile'
  src/Makefile.am: installing './depcomp'
  @end example
  
@@@ -3995,9 -3996,10 +3997,9 @@@ choose the assembler for you (by defaul
  @item AM_PROG_CC_C_O
  @acindex AM_PROG_CC_C_O
  @acindex AC_PROG_CC_C_O
 -This is like @code{AC_PROG_CC_C_O}, but it generates its results in
 -the manner required by Automake.  You must use this instead of
 -@code{AC_PROG_CC_C_O} when you need this functionality, that is, when
 -using per-target flags or subdir-objects with C sources.
 +This is an @emph{obsolete wrapper} around @code{AC_PROG_CC_C_O}.
 +New code needs not use this macro.  It might be deprecated and
 +@emph{retired in future Automake versions}.
  
  @item AM_PROG_LEX
  @acindex AM_PROG_LEX
@@@ -4068,13 -4070,6 +4070,13 @@@ Invocation, , Using @command{autoupdate
  
  @table @code
  
 +@item AM_PROG_CC_C_O
 +@acindex AM_PROG_CC_C_O
 +@acindex AC_PROG_CC_C_O
 +This is an @emph{obsolete wrapper} around @code{AC_PROG_CC_C_O}.  New
 +code needs not to use this macro.  It will be deprecated, and then
 +removed, in future Automake versions.
 +
  @item AM_PROG_MKDIR_P
  @acindex AM_PROG_MKDIR_P
  @cindex @code{mkdir -p}, macro check
@@@ -5817,7 -5812,9 +5819,7 @@@ different name for the intermediate obj
  like @file{sample.c} will be compiled to produce @file{sample.o}.
  However, if the program's @code{_CFLAGS} variable is set, then the
  object file will be named, for instance, @file{maude-sample.o}.  (See
 -also @ref{Renamed Objects}.)  The use of per-target compilation flags
 -with C sources requires that the macro @code{AM_PROG_CC_C_O} be called
 -from @file{configure.ac}.
 +also @ref{Renamed Objects}).
  
  In compilations with per-target flags, the ordinary @samp{AM_} form of
  the flags variable is @emph{not} automatically included in the
@@@ -6248,10 -6245,10 +6250,10 @@@ rebuild rule for distributed Yacc and L
  @cindex Multiple @command{lex} lexers
  @cindex @command{lex}, multiple lexers
  
 -When @command{lex} or @command{yacc} sources are used, @code{automake
 --i} automatically installs an auxiliary program called
 -@command{ylwrap} in your package (@pxref{Auxiliary Programs}).  This
 -program is used by the build rules to rename the output of these
 +When @command{lex} or @command{yacc} sources are used, @code{automake -a}
 +automatically installs an auxiliary program called @command{ylwrap} in
 +your package (@pxref{Auxiliary Programs}).
 +This program is used by the build rules to rename the output of these
  tools, and makes it possible to include multiple @command{yacc} (or
  @command{lex}) source files in a single directory.  (This is necessary
  because yacc's output file name is fixed, and a parallel make could
@@@ -7840,11 -7837,6 +7842,11 @@@ install} (unless you use @option{no-ins
  Furthermore, @file{.info} files are automatically distributed so that
  Texinfo is not a prerequisite for installing your package.
  
 +It is worth noting that, contrary to what happens with the other formats,
 +the generated @file{.info} files are by default placed in @code{srcdir}
 +rather than in the @code{builddir}.  This can be changed with the
 +@option{info-in-builddir} option.
 +
  @trindex dvi
  @trindex html
  @trindex pdf
@@@ -8423,9 -8415,7 +8425,9 @@@ You can also mention a directory in @co
  entire directory will be recursively copied into the distribution.
  Please note that this will also copy @emph{everything} in the directory,
  including, e.g., Subversion's @file{.svn} private directories or CVS/RCS
 -version control files.  We recommend against using this feature.
 +version control files; thus we recommend against using this feature
 +as-is.  However, you can use the @code{dist-hook} feature to
 +ameliorate the problem; @pxref{The dist Hook}.
  
  @vindex SUBDIRS
  @vindex DIST_SUBDIRS
@@@ -9099,6 -9089,12 +9101,12 @@@ followed by any number of alphabetic ch
  For example, @samp{.sh}, @samp{.T} and @samp{.t1} are valid extensions,
  while @samp{.x-y}, @samp{.6c} and @samp{.t.1} are not.
  
+ @cindex Configure substitutions in @code{TESTS}
+ It is important to note that, due to current limitations (unlikely to be
+ lifted), configure substitutions in the definition of @code{TESTS} can
+ only work if they will expand to a list of tests that have a suffix listed
+ in @code{TEST_EXTENSIONS}.
  @vindex _LOG_COMPILE
  @vindex _LOG_COMPILER
  @vindex _LOG_FLAGS
@@@ -10122,14 -10118,6 +10130,14 @@@ options below.  This option should be u
  @file{configure.ac}, it will be ignored otherwise.  It will also be
  ignored in sub-packages of nested packages (@pxref{Subpackages}).
  
 +@item @option{info-in-builddir}
 +@cindex Option, @option{info-in-builddir}
 +@opindex info-in-builddir
 +Instruct Automake to place the generated @file{.info} files in the
 +@code{builddir} rather than in the @code{srcdir}.  Note that this
 +might make VPATH builds with some non-GNU make implementations more
 +brittle.
 +
  @item @option{no-define}
  @cindex Option, @option{no-define}
  @opindex no-define
@@@ -10265,6 -10253,9 +10273,6 @@@ the source file.  For instance, if the 
  @file{subdir/file.cxx}, then the output file would be
  @file{subdir/file.o}.
  
 -In order to use this option with C sources, you should add
 -@code{AM_PROG_CC_C_O} to @file{configure.ac}.
 -
  @anchor{tar-formats}
  @item @option{tar-v7}
  @itemx @option{tar-ustar}
@@@ -10519,26 -10510,6 +10527,26 @@@ condition applies to the entire content
  Makefile fragments included this way are always distributed because
  they are needed to rebuild @file{Makefile.in}.
  
 +Inside a fragment, the construct @code{%reldir%} is replaced with the
 +directory of the fragment relative to the base @file{Makefile.am}.
 +Similarly, @code{%canon_reldir%} is replaced with the canonicalized
 +(@pxref{Canonicalization}) form of @code{%reldir%}.  As a convenience,
 +@code{%D%} is a synonym for @code{%reldir%}, and @code{%C%}
 +is a synonym for @code{%canon_reldir%}.
 +
 +A special feature is that if the fragment is in the same directory as
 +the base @file{Makefile.am} (i.e., @code{%reldir%} is @code{.}), then
 +@code{%reldir%} and @code{%canon_reldir%} will expand to the empty
 +string as well as eat, if present, a following slash or underscore
 +respectively.
 +
 +Thus, a makefile fragment might look like this:
 +
 +@example
 +bin_PROGRAMS += %reldir%/mumble
 +%canon_reldir%_mumble_SOURCES = %reldir%/one.c
 +@end example
 +
  @node Conditionals
  @chapter Conditionals
  
diff --combined t/list-of-tests.mk
@@@ -71,10 -71,10 +71,10 @@@ t/get-sysconf.sh 
  $(perl_TESTS) \
  t/instspc.tap \
  t/aclocal.sh \
 -t/acloca10.sh \
  t/aclocal-I-order-1.sh \
  t/aclocal-I-order-2.sh \
  t/aclocal-I-order-3.sh \
 +t/aclocal-I-and-install.sh \
  t/aclocal-acdir.sh \
  t/aclocal-amflags.sh \
  t/aclocal-autoconf-version-check.sh \
@@@ -132,7 -132,6 +132,7 @@@ t/aminit-moreargs-deprecation.sh 
  t/amassign.sh \
  t/am-config-header.sh \
  t/am-prog-cc-stdc.sh \
 +t/am-prog-cc-c-o.sh \
  t/am-macro-not-found.sh \
  t/amopt.sh \
  t/amopts-location.sh \
@@@ -208,8 -207,8 +208,8 @@@ t/canon7.sh 
  t/canon8.sh \
  t/canon-name.sh \
  t/ccnoco.sh \
 -t/ccnoco2.sh \
  t/ccnoco3.sh \
 +t/ccnoco4.sh \
  t/check.sh \
  t/check2.sh \
  t/check4.sh \
@@@ -569,7 -568,6 +569,7 @@@ t/lex-header.sh 
  t/lex-lib.sh \
  t/lex-lib-external.sh \
  t/lex-libobj.sh \
 +t/lex-multiple.sh \
  t/lex-noyywrap.sh \
  t/lex-clean-cxx.sh \
  t/lex-clean.sh \
@@@ -666,8 -664,9 +666,9 @@@ t/makej.sh 
  t/makej2.sh \
  t/maken.sh \
  t/maken3.sh \
- t/make-dryrun.tap \
  t/makevars.sh \
+ t/make-dryrun.tap \
+ t/make-is-gnu.sh \
  t/man.sh \
  t/man2.sh \
  t/man3.sh \
@@@ -865,10 -864,6 +866,10 @@@ t/pr401.sh 
  t/pr401b.sh \
  t/pr401c.sh \
  t/prefix.sh \
 +t/preproc-basics.sh \
 +t/preproc-c-compile.sh \
 +t/preproc-demo.sh \
 +t/preproc-errmsg.sh \
  t/primary.sh \
  t/primary2.sh \
  t/primary3.sh \
@@@ -957,9 -952,7 +958,9 @@@ t/remake-macrodir.sh 
  t/remake-timing-bug-pr8365.sh \
  t/reqd2.sh \
  t/repeated-options.sh \
 +t/rm-f-probe.sh \
  t/rulepat.sh \
 +t/self-check-cc-no-c-o.sh \
  t/self-check-configure-help.sh \
  t/self-check-dir.tap \
  t/self-check-exit.tap \
@@@ -999,7 -992,7 +1000,7 @@@ t/spell.sh 
  t/spell2.sh \
  t/spell3.sh \
  t/spelling.sh \
 -t/spy.sh \
 +t/spy-double-colon.sh \
  t/spy-rm.tap \
  t/stdinc.sh \
  t/stamph2.sh \
@@@ -1156,9 -1149,9 +1157,9 @@@ t/tags.sh 
  t/tags2.sh \
  t/tagsub.sh \
  t/tags-pr12372.sh \
 -t/tar.sh \
 -t/tar2.sh \
 -t/tar3.sh \
 +t/tar-ustar.sh \
 +t/tar-pax.sh \
 +t/tar-opts-errors.sh \
  t/tar-override.sh \
  t/target-cflags.sh \
  t/targetclash.sh \
@@@ -1167,14 -1160,12 +1168,14 @@@ t/tests-environment-and-log-compiler.s
  t/txinfo-absolute-srcdir-pr408.sh \
  t/txinfo-add-missing-and-dist.sh \
  t/txinfo-bsd-make-recurs.sh \
 +t/txinfo-builddir.sh \
  t/txinfo-clean.sh \
  t/txinfo-dvi-recurs.sh \
  t/txinfo-info-in-srcdir.sh \
  t/txinfo-makeinfo-error-no-clobber.sh \
  t/txinfo-many-output-formats.sh \
  t/txinfo-many-output-formats-vpath.sh \
 +t/txinfo-nodist-info.sh \
  t/txinfo-no-clutter.sh \
  t/txinfo-no-extra-dist.sh \
  t/txinfo-no-installinfo.sh \
@@@ -1246,10 -1237,10 +1247,10 @@@ t/werror3.sh 
  t/werror4.sh \
  t/whoami.sh \
  t/xsource.sh \
 -t/yacc4.sh \
 -t/yaccdry.sh \
 -t/yaccpp.sh \
 -t/yaccvpath.sh \
 +t/yacc-misc.sh \
 +t/yacc-dry.sh \
 +t/yacc-cxx-grepping.sh \
 +t/yacc-vpath.sh \
  t/yacc-auxdir.sh \
  t/yacc-basic.sh \
  t/yacc-cxx.sh \