automake-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Automake-commit] [SCM] GNU Automake branch, ng/master, updated. v1.13b-


From: Stefano Lattarini
Subject: [Automake-commit] [SCM] GNU Automake branch, ng/master, updated. v1.13b-925-g013d9ba
Date: Thu, 13 Jun 2013 09:29:06 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Automake".

http://git.sv.gnu.org/gitweb/?p=automake.git;a=commitdiff;h=013d9ba640bd2f234bd62d1f4d92574a58773830

The branch, ng/master has been updated
       via  013d9ba640bd2f234bd62d1f4d92574a58773830 (commit)
       via  f61b6ef9255ada04114d0d1a3199297ed4ed0171 (commit)
       via  6febcd41b3dcf99a89aaf21329c00fdadcd68771 (commit)
       via  ddc755a63c4318f70e6743f9f0debd0614311699 (commit)
       via  3afe7a86408c6f6db5540626803f9aed64662847 (commit)
       via  4f7cc4fe88b5f802c9dc2ba78326819d2d62f2dc (commit)
       via  0164f83126647476cfb3112441185accdcb157fb (commit)
       via  9892eb7823b3fd0e552ab22b63f58d947e9de584 (commit)
       via  2d6fec692f032ab60c27f5c22391ae87e49c53c7 (commit)
       via  843fc2e5eb3557c04b960daa0b076b51cf1ebe9a (commit)
       via  004eba9b3c19747652fa9feab9846d646c83f5d8 (commit)
       via  f7492285d9d3ba73448d9946650df8e5dc041f85 (commit)
       via  b2b3692d37e9812a5895b5a054da597731d7eb08 (commit)
       via  fefd1876075f39aa085d1b48c535e1f5808217b1 (commit)
       via  d2d3b76a8e93a00c52df2bdda5489688498e5294 (commit)
       via  e9d79f111a43882d299ca9ee8d4783f4bc17b99a (commit)
       via  de1343a64dd80d931ba6c4f26e35c7db4919dc1f (commit)
       via  0ebaea2db692519209d739b54d051e11346ebb80 (commit)
       via  e166a135ee816d82829e59f669ca4d61a767adc0 (commit)
       via  14b9ec0ed59264f1c16b5cbff564cc4b2aaa868f (commit)
       via  6d03501bcae9249dd87dad2cb7feb78d5fcfd89a (commit)
       via  a7cf36aeb8a2f42108f16fd7de7131385bd7ca1c (commit)
       via  d6013ec5d75e2bf545fd2027c4b036800a265b86 (commit)
       via  9137db89c88d5fceed1c80beeb2969d36a9e72c9 (commit)
       via  b4eefc79759fcb2c5941a65759d242488af8ed1a (commit)
       via  b3bf07f7716a9bf965e9cfefa4131a478a188a27 (commit)
       via  4d7136edba60785b8591d76f038a60383a2b1fea (commit)
       via  fb3fe261459b68011c0a481d401517c55daae9d1 (commit)
       via  80238728ba190c0c9f84142db30531534dd7c850 (commit)
       via  4882d43ec7ae7d9d9d9b83c388a50ec660329258 (commit)
       via  8d579d6a852e177e1e8d11c7c0935307c25de7d9 (commit)
       via  765f951dac933a5e190c9e1ed5bd4e99f1936360 (commit)
       via  a24bfc3edd7d3999e260bb3a10bf2f5226e4234e (commit)
       via  a1e97a9f7fc5472404656cde483c6fc59478a625 (commit)
       via  f968f3c30d416ec730a21c11a1d95fdfad2825d1 (commit)
       via  0d9399f1efe69864f3295ada6325b14d953149c2 (commit)
       via  9f325eea27e41d868fbe020fe4034bec3c758fb0 (commit)
       via  d3b8ad219907393ac062537fd9f42609c3d6538a (commit)
       via  b4bfacb65624e070a25ad0d77f1353308ddccdf2 (commit)
       via  a8b0276b20fdc88a9a86a8d2eda208cf17adf456 (commit)
       via  eb33ae2b29f33bcf65afc036c9a92a61f77f75e3 (commit)
       via  625678d54b616bf5c2db6c803f4b0746f70e3e53 (commit)
       via  649c03b464cf55f50e696ebea482c65339ff4832 (commit)
       via  eefd01b3fb3f233bcaffdd0aedc611dd819634aa (commit)
       via  88b04360cdafe4c17832eade768224820b821aa6 (commit)
       via  aee79c539713a13e4e904d2acda938d5661337e0 (commit)
       via  d817a68e133f5bf41e1b5926d64ece7bc43ca8c3 (commit)
       via  a4598c57d3dded53851f1319f23d187b2c8132d3 (commit)
       via  455d0f33b1540e75006cbf267cd7bda1a70eb5bc (commit)
       via  7a57be384d484aef09de08038769985f32935f2f (commit)
       via  3492b7a83c4428da554213e5d84c11ea6a8c842f (commit)
       via  c98d5235fca742991504a7e85b9da02a08bba6dc (commit)
       via  080668642dcd66242fb5b29df39f4b0b164636c7 (commit)
       via  030255252171248ff02da20b3f3f8c54b7bb31f9 (commit)
       via  54858251ad2db124038978c9ce59540d94f5ba91 (commit)
       via  f7540da76860f13e534888ea1f8a2d3bcbf8fae1 (commit)
       via  a4c5b27bf4d2b4c0090a0c539e64f90f0b9ca703 (commit)
       via  f98ca06830cbb484476b0aa9f79f79907538db4b (commit)
       via  986ca6c0a3e8c0b34f0981a8eb938906fb8ebfbc (commit)
       via  1246ace661bcc9392f40333ce0f22107055d36b4 (commit)
       via  71e0af477d86153658433d24adfffcf7952f2892 (commit)
       via  6d4ffd8329ce1cd52d93406be25ff77367e23178 (commit)
       via  55f82a803e59ad68a56714ddf008b4f82baea3a3 (commit)
       via  4ba95192f272a39b2d659f13baa32c755b15c3ea (commit)
      from  eaed46c8d9fd18a517eee6ccd1dd56228fb5de7e (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 013d9ba640bd2f234bd62d1f4d92574a58773830
Merge: aee79c5 f61b6ef
Author: Stefano Lattarini <address@hidden>
Date:   Thu Jun 13 10:14:29 2013 +0200

    Merge branch 'master' into ng/master
    
    * master:
      THANKS: update e-mall address for Ralf Corsepius
      lang, suffix rules: don't require C stuff needlessly
      tests: expose automake bug#14560
      maint: add a missing copyright notice
      sync: update config.guess from upstream
      tests: expose automake bug#13928
      comments: fix some out-of-sync refs to test scripts
      tests: expose automake bug#13940
      fixup: botched merge for 'bin/automake.in'
      configure: remove an obsolete TODO comment
      post-release: micro version bump (1.13.3a)
      release: stable micro release 1.13.3
      typofix: fix grammaro in comments in t/tags-pr12372.sh
      NEWS: minor fixlets, re-wording, and better text wrapping
      tests: slightly stricter checks in t/cxx-demo.sh
      tests: fix spurious failure when 'etags' program is Exuberant Ctags
      tests: fix spurious failure due to missing sleeps
      maint: version bump after beta release 1.13b
      release: beta release 1.13b (will become 1.14)
      maint: support new Automake versioning scheme in tagging/uploading rules
      announcement: can be generated from development snapshots as well
      announcement: can be generated from development snapshots as well
      announcement: be less strict in the paring of NEWS
      maint: version bump after beta release 1.13.2b
      release: beta release 1.13.2b (will become 1.13.3)
      sync: update config.guess from upstream
      automake: assume we can always pass '-o' to the C compiler
      NEWS: document recent testsuite fixes (MinGW/MSYS related)
      depcomp: avoid trailing backslash in depfile for depmode=msvc7
      tests: prune some weed in a non-POSIX test
      tests: avoid a spurious failure on MSYS
      t/README: document "run_make", discourage "make -e"
      cosmetics: tiny whitespace fixlets
      tests: avoid a spurious failure with MSVC
      tests: avoid a spurious failure on non-POSIX systems
      tests: avoid a spurious failure when TeX is not installed.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

commit aee79c539713a13e4e904d2acda938d5661337e0
Merge: eaed46c 7a57be3
Author: Stefano Lattarini <address@hidden>
Date:   Wed May 29 13:08:59 2013 +0200

    Merge branch 'master' into ng/master
    
    * master:
      tests: avoid a spurious failure when $CC != cc
      NEWS: drop an idiomatic use of latinism 'sic'
      NEWS: fix typos and grammaros
      NEWS: fix Automake versions
      NEWS: document fix for bug#14441
      Automake::Rule: consistently prepend underscore to private variables
      Automake::Rule: rename: suffix_rule() -> next_in_suffix_chain()
      Automake::Rule: adjust comments and POD according to previous changes
      Automake::Rule: make private variables lexically scoped
      suffix rules: better distinction between builtin and user-derived
      Automake::Rule: expose suffix rules as a function, not a scalar
      tests: expose automake bug#14441
    
    Signed-off-by: Stefano Lattarini <address@hidden>
    
    + Extra non-trivial changes:
    
    * bin/automake.in, lib/Automake/Rule.pm: Drop changes related to
    user-defined source extensions, that are not supported in Automake-NG
    (see section "Source Files with Unknown Extensions" in NG-NEWS for
    details).
    t/suffix-custom-pr14441.sh: Remove, since this script tested features
    related to user-defined source.

-----------------------------------------------------------------------

Summary of changes:
 NEWS                                              |   70 +++++++---
 THANKS                                            |    4 +-
 configure.ac                                      |    3 -
 lib/Automake/Rule.pm                              |    7 +-
 lib/am/distdir.mk                                 |    2 +-
 lib/config.guess                                  |  144 +++++++++++---------
 lib/depcomp                                       |    3 +-
 maintainer/maint.mk                               |   39 +++++--
 t/Makefile.inc                                    |    2 +
 t/README                                          |   18 +++
 t/ax/deltree.pl                                   |   15 ++
 t/cxx-demo.sh                                     |    7 +-
 t/distcheck-pr10470.sh                            |    6 +-
 t/lex-header.sh                                   |    1 +
 t/no-extra-c-stuff.sh                             |   74 +++++++++++
 t/no-extra-makefile-code.sh                       |    7 +-
 t/{cond10.sh => override-conditional-pr13940.sh}  |   31 ++---
 t/remake-configure-dependencies.sh                |    3 +
 t/{suffix-chain.sh => subobj-indir-pr13928.sh}    |   42 +++----
 t/subobj-vpath-pr13928.sh                         |   60 +++++++++
 t/subpkg.sh                                       |    4 +-
 t/{f90only.sh => suffix-extra-c-stuff-pr14560.sh} |   23 ++--
 t/tags-pr12372.sh                                 |   12 ++-
 t/txinfo-no-split.sh                              |    7 +
 t/yacc-bison-skeleton.sh                          |    1 +
 25 files changed, 419 insertions(+), 166 deletions(-)
 create mode 100644 t/no-extra-c-stuff.sh
 copy t/{cond10.sh => override-conditional-pr13940.sh} (59%)
 copy t/{suffix-chain.sh => subobj-indir-pr13928.sh} (56%)
 create mode 100644 t/subobj-vpath-pr13928.sh
 copy t/{f90only.sh => suffix-extra-c-stuff-pr14560.sh} (64%)

diff --git a/NEWS b/NEWS
index 5172150..400372c 100644
--- a/NEWS
+++ b/NEWS
@@ -6,7 +6,7 @@ New in 2.0:
    object will *always* be put into the subdirectory named after the source
    file, rather than in the current directory.  For instance, 'src/file.c'
    and 'src/file.f90' will be compiled to 'src/file.o', and 'sub/dir/mu.cc'
-   will be compiled to 'sub/dir/mu.o'.  Put in another way, Automake 1.14
+   will be compiled to 'sub/dir/mu.o'.  Put in another way, Automake 2.0
    and later will *unconditionally* behave as older Automake versions did
    when the 'subdir-objects' option was given.
 
@@ -19,7 +19,7 @@ New in 2.0:
     hierarchy, a definition of the AM_PROG_VALAC macro found in file
     (say) '/usr/local/share/aclocal/my-vala.m4' should take precedence
     over the same-named automake-provided macro, as defined in file
-    '/usr/local/share/aclocal-1.14/vala.m4'.
+    '/usr/local/share/aclocal-2.0/vala.m4'.
 
 * Obsolescent features flagged:
 
@@ -90,7 +90,7 @@ New in 2.0:
     (the one that has until now been labelled as '1.14') will actually
     become "Automake 2.0".  Automake 1.14 will be the next minor version,
     which will introduce new features, deprecations and bug fixes, but
-    no real backward incompatibility.
+    no serious backward incompatibility.
 
   - See discussion about automake bug#13578 for more details and
     background: <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13578>
@@ -130,10 +130,10 @@ New in 2.0:
     to retire support for them in December 2013:
     <http://www.sgi.com/services/support/irix_mips_support.html>
 
-  - Future versions of Automake might remove support for MS-DOS and
-    Windows 95/98/ME (support for them was offered by relying on the
-    DJGPP project).  Note however that both Cygwin and MSYS/MinGW on
-    modern Windows versions will continue to be fully supported.
+  - Automake 2.0 will remove support for MS-DOS and Windows 95/98/ME
+    (support for them was offered by relying on the DJGPP project).
+    Note however that both Cygwin and MSYS/MinGW on modern Windows
+    versions will continue to be fully supported.
 
   - Automake-provided scripts and makefile recipes might (finally!)
     start assuming a POSIX shell in Automake 2.0.
@@ -190,8 +190,8 @@ New in 1.14:
 
       2. It caches the check result in the 'am_cv_prog_cc_c_o'variable,
          and not in a 'ac_cv_prog_cc_*_c_o' variable whose exact name
-         in only dynamically computed at configure runtime (sic!) from
-         the content of the '$CC' variable.
+         in only dynamically computed at configure runtime (really!)
+         from the content of the '$CC' variable.
 
       3. It no longer automatically AC_DEFINE the C preprocessor
          symbol 'NO_MINUS_C_MINUS_O'.
@@ -271,38 +271,64 @@ New in 1.14:
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
+New in 1.13.4:
+
+* Bugs fixed:
+
+  - Fix a minor regression introduced in Automake 1.13.3: when two or more
+    user-defined suffix rules were present in a single Makefile.am,
+    automake would needlessly include definition of some make variables
+    related to C compilation in the generated Makefile.in (bug#14560).
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
 New in 1.13.3:
 
 * Documentation fixes:
 
-  - The documentation no longer mistakenly report that the obsolete
+  - The documentation no longer mistakenly reports that the obsolete
     'AM_MKDIR_PROG_P' macro and '$(mkdir_p)' make variable are going
     to be removed in Automake 2.0.
 
 * Bugs fixed:
 
-  - Byte-compilation of Emacs lisp files could fail spuriously on Solaris,
-    when /bin/ksh or /usr/xpg4/bin/sh were used as shell.
+  - Byte-compilation of Emacs lisp files could fail spuriously on
+    Solaris,  when /bin/ksh or /usr/xpg4/bin/sh were used as shell.
+
+  - If the same user-defined suffixes were transformed into different
+    Automake-known suffixes in different Makefile.am files in the same
+    project, automake could get confused and generate inconsistent
+    Makefiles (automake bug#14441).
+    For example, if 'Makefile.am' contained a ".ext.cc:" suffix rule,
+    and 'sub/Makefile.am' contained a ".ext.c:" suffix rule, automake
+    would have mistakenly placed into 'Makefile.in' rules to compile
+    "*.c" files into object files, and into 'sub/Makefile.in' rules to
+    compile "*.cc" files into object files --- rather than the other
+    way around.  This is now fixed.
 
 * Testsuite work:
 
   - The test cases no longer have the executable bit set.  This should
     make it clear that they are not meant to be run directly; as
-    explained in t/README, the can only be run through the custom
+    explained in t/README, they can only be run through the custom
     'runtest' script, or by a "make check" invocation.
 
   - The testsuite has seen the introduction of a new helper function
     'run_make', and several related changes.  These serve a two-fold
     purpose:
 
-      1. Removing brittleness due to the use of "make -e" in test cases.
+     1. Remove brittleness due to the use of "make -e" in test cases.
+
+     2. Seamlessly allow the use of parallel make ("make -j...") in the
+        test cases, even where redirection of make output is involved
+        (see automake bug#11413 for a description of the subtle issues
+        in this area).
 
-      2. Seamlessly allowing the use of parallel make ("make -j...") in
-         the test cases, even where redirection of make output is involved
-         (see automake bug#11413 for a description of the subtle issues in
-         this area).
+  - Several spurious failures have been fixed (they hit especially
+    MinGW/MSYS builds).  See automake bugs #14493, #14494, #14495,
+    #14498, #14499, #14500, #14501, #14517 and #14528.
 
-   - Some other minor, miscellaneous changes and fixlets.
+  - Some other minor miscellaneous changes and fixlets.
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -312,14 +338,14 @@ New in 1.13.2:
 
   - The long-deprecated but still supported two-arguments invocation form
     of AM_INIT_AUTOMAKE is documented once again.  This seems the sanest
-    thing to do, given that support for such an usage might need to remain
-    in place for a unspecified amount of time in order to cater for people
+    thing to do, given that support for such usage might need to remain
+    in place for an unspecified amount of time in order to cater to people
     who want to define the version number for their package dynamically at
     configure runtime (unfortunately, Autoconf does not yet support this
     scenario, so we cannot delegate the work to it).
 
   - The serial testsuite harness is no longer reported as "deprecated",
-    but as "discouraged".  We have no plan to remove it, not to make its
+    but as "discouraged".  We have no plan to remove it, nor to make its
     use cause runtime warnings.
 
   - The parallel testsuite is no longer reported as "experimental"; it
diff --git a/THANKS b/THANKS
index 853c379..cc5e238 100644
--- a/THANKS
+++ b/THANKS
@@ -67,6 +67,7 @@ Christian Cornelssen            address@hidden
 Christina Gratorp               address@hidden
 Claudio Fontana                 address@hidden
 Clifford Wolf                   address@hidden
+Colin Watson                    address@hidden
 Dagobert Michelsen              address@hidden
 Daiki Ueno                      address@hidden
 Dalibor Topic                   address@hidden
@@ -119,6 +120,7 @@ Esben Haabendal Soerensen       address@hidden
 Ezra Peisach                    address@hidden
 Fabian Alenius                  address@hidden
 Federico Simoncelli             address@hidden
+Felix Salfelder                 address@hidden
 Flavien Astraud                 address@hidden
 Florian Briegel                 address@hidden
 Francesco Salvestrini           address@hidden
@@ -330,7 +332,7 @@ Rainer Orth                     address@hidden
 Rafael Laboissiere              address@hidden
 Rainer Tammer                   address@hidden
 Raja R Harinath                 address@hidden
-Ralf Corsepius                  address@hidden
+Ralf Corsepius                  address@hidden
 Ralf Menzel                     address@hidden
 Ralf Wildenhues                 address@hidden
 Ralph Schleicher                address@hidden
diff --git a/configure.ac b/configure.ac
index 097a19a..663f62c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -246,9 +246,6 @@ exit 77" >&AS_MESSAGE_LOG_FD 2>&1; test $? -eq 77; }
 # would emit "P=1" into file with /usr/xpg4/bin/sh from Solaris 10 and
 # /bin/sh from SunOS 5.11 and OpenBSD 4.7.
 #
-# Finally, we look for weird bugs and portability problems mentioned in
-# the Autoconf manual, and reject shells that suffers from them. (TODO)
-#
 # Use '$am_score' to indicate the degree of acceptability of the shell.
 # A score of "10" means that the shell is good enough for our needs;
 # a score of "9" means that the shell has some minor bugs or limitation,
diff --git a/lib/Automake/Rule.pm b/lib/Automake/Rule.pm
index 286dfba..d5c345c 100644
--- a/lib/Automake/Rule.pm
+++ b/lib/Automake/Rule.pm
@@ -93,6 +93,8 @@ non-object).
 
 =cut
 
+my %_rule_dict;
+
 =item C<%dependencies>
 
 Holds the dependencies of targets which dependencies are factored.
@@ -207,7 +209,6 @@ rules defined so far.)
 
 =cut
 
-use vars '%_rule_dict';
 sub rules ()
 {
   return values %_rule_dict;
@@ -438,7 +439,7 @@ sub _maybe_warn_about_duplicated_target ($$$$$$)
           ## from rules that only add dependencies.  E.g.,
           ##   .PHONY: foo
           ##   .PHONY: bar
-          ## is legitimate. (This is phony.test.)
+          ## is legitimate.  This is checked in the 'phony.sh' test.
 
           # msg ('syntax', $where,
           #      "redefinition of '$target'$condmsg ...", partial => 1);
@@ -544,7 +545,7 @@ sub _conditionals_for_rule ($$$$)
   # condition.  So for now we do our best *here*.  If 'foo:'
   # was already defined in condition COND1 and we want to define
   # it in condition TRUE, then define it only in condition !COND1.
-  # (See cond14.test and cond15.test for some test cases.)
+  # (See cond14.sh and cond15.sh for some test cases.)
   @conds = $rule->not_always_defined_in_cond ($cond)->conds;
 
   # No conditions left to define the rule.
diff --git a/lib/am/distdir.mk b/lib/am/distdir.mk
index a1a5be7..df8d05d 100644
--- a/lib/am/distdir.mk
+++ b/lib/am/distdir.mk
@@ -212,7 +212,7 @@ endif # am.conf.check-news
 ## is distributed from several Makefiles at once (see automake bug#9546
 ## and bug#9651, and the follow-up commits 'v1.11-1219-g326ecba',
 ## 'v1.11-1220-g851b1ae' and 'v1.11-1221-gdccae6a').  See also test
-## 't/dist-repeated.sh'.
+## 'dist-repeated.sh'.
            test -f "$(distdir)/$$file" \
            || cp -p $$d/$$file "$(distdir)/$$file" \
            || exit 1; \
diff --git a/lib/config.guess b/lib/config.guess
index 2055429..516ac6c 100755
--- a/lib/config.guess
+++ b/lib/config.guess
@@ -2,7 +2,7 @@
 # Attempt to guess a canonical system name.
 #   Copyright 1992-2013 Free Software Foundation, Inc.
 
-timestamp='2013-04-24'
+timestamp='2013-05-16'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -132,6 +132,27 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || 
UNAME_RELEASE=unknown
 UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
 
+case "${UNAME_SYSTEM}" in
+Linux|GNU|GNU/*)
+       # If the system lacks a compiler, then just pick glibc.
+       # We could probably try harder.
+       LIBC=gnu
+
+       eval $set_cc_for_build
+       cat <<-EOF > $dummy.c
+       #include <features.h>
+       #if defined(__UCLIBC__)
+       LIBC=uclibc
+       #elif defined(__dietlibc__)
+       LIBC=dietlibc
+       #else
+       LIBC=gnu
+       #endif
+       EOF
+       eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
+       ;;
+esac
+
 # Note: order is significant - the case branches are not exclusive.
 
 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
@@ -853,21 +874,21 @@ EOF
        exit ;;
     *:GNU:*:*)
        # the GNU system
-       echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo 
${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+       echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo 
${UNAME_RELEASE}|sed -e 's,/.*$,,'`
        exit ;;
     *:GNU/*:*:*)
        # other systems with GNU libc and userland
-       echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' 
| tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
+       echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' 
| tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
        exit ;;
     i*86:Minix:*:*)
        echo ${UNAME_MACHINE}-pc-minix
        exit ;;
     aarch64:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     aarch64_be:Linux:*:*)
        UNAME_MACHINE=aarch64_be
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     alpha:Linux:*:*)
        case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
@@ -880,67 +901,54 @@ EOF
          EV68*) UNAME_MACHINE=alphaev68 ;;
        esac
        objdump --private-headers /bin/sh | grep -q ld.so.1
-       if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
-       echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+       if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     arc:Linux:*:* | arceb:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     arm*:Linux:*:*)
        eval $set_cc_for_build
        if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
            | grep -q __ARM_EABI__
        then
-           echo ${UNAME_MACHINE}-unknown-linux-gnu
+           echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        else
            if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
                | grep -q __ARM_PCS_VFP
            then
-               echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+               echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
            else
-               echo ${UNAME_MACHINE}-unknown-linux-gnueabihf
+               echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
            fi
        fi
        exit ;;
     avr32*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     cris:Linux:*:*)
-       echo ${UNAME_MACHINE}-axis-linux-gnu
+       echo ${UNAME_MACHINE}-axis-linux-${LIBC}
        exit ;;
     crisv32:Linux:*:*)
-       echo ${UNAME_MACHINE}-axis-linux-gnu
+       echo ${UNAME_MACHINE}-axis-linux-${LIBC}
        exit ;;
     frv:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     hexagon:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     i*86:Linux:*:*)
-       LIBC=gnu
-       eval $set_cc_for_build
-       sed 's/^        //' << EOF >$dummy.c
-       #ifdef __dietlibc__
-       LIBC=dietlibc
-       #endif
-       #else
-       #include <features.h>
-       #ifdef __UCLIBC__
-       LIBC=uclibc
-       #endif
-EOF
-       eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
-       echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+       echo ${UNAME_MACHINE}-pc-linux-${LIBC}
        exit ;;
     ia64:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     m32r*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     m68*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     mips:Linux:*:* | mips64:Linux:*:*)
        eval $set_cc_for_build
@@ -959,59 +967,63 @@ EOF
        #endif
 EOF
        eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
-       test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+       test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
        ;;
     or1k:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     or32:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     padre:Linux:*:*)
-       echo sparc-unknown-linux-gnu
+       echo sparc-unknown-linux-${LIBC}
        exit ;;
     parisc64:Linux:*:* | hppa64:Linux:*:*)
-       echo hppa64-unknown-linux-gnu
+       echo hppa64-unknown-linux-${LIBC}
        exit ;;
     parisc:Linux:*:* | hppa:Linux:*:*)
        # Look for CPU level
        case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
-         PA7*) echo hppa1.1-unknown-linux-gnu ;;
-         PA8*) echo hppa2.0-unknown-linux-gnu ;;
-         *)    echo hppa-unknown-linux-gnu ;;
+         PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
+         PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
+         *)    echo hppa-unknown-linux-${LIBC} ;;
        esac
        exit ;;
     ppc64:Linux:*:*)
-       echo powerpc64-unknown-linux-gnu
+       echo powerpc64-unknown-linux-${LIBC}
        exit ;;
     ppc:Linux:*:*)
-       echo powerpc-unknown-linux-gnu
+       echo powerpc-unknown-linux-${LIBC}
+       exit ;;
+    ppc64le:Linux:*:*)
+       echo powerpc64le-unknown-linux-${LIBC}
+       exit ;;
+    ppcle:Linux:*:*)
+       echo powerpcle-unknown-linux-${LIBC}
        exit ;;
     s390:Linux:*:* | s390x:Linux:*:*)
-       echo ${UNAME_MACHINE}-ibm-linux
+       echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
        exit ;;
     sh64*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     sh*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     sparc:Linux:*:* | sparc64:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     tile*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     vax:Linux:*:*)
-       echo ${UNAME_MACHINE}-dec-linux-gnu
+       echo ${UNAME_MACHINE}-dec-linux-${LIBC}
        exit ;;
     x86_64:Linux:*:*)
-       LIBC=gnu
-       test -r /lib/libc.so && od -An -S13 /lib/libc.so | grep -q 
__uClibc_main && LIBC=uclibc
        echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     xtensa*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     i*86:DYNIX/ptx:4*:*)
        # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
@@ -1244,19 +1256,21 @@ EOF
        exit ;;
     *:Darwin:*:*)
        UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
-       case $UNAME_PROCESSOR in
-           i386)
-               eval $set_cc_for_build
-               if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
-                 if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo 
'#endif') | \
-                     (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
-                     grep IS_64BIT_ARCH >/dev/null
-                 then
-                     UNAME_PROCESSOR="x86_64"
-                 fi
-               fi ;;
-           unknown) UNAME_PROCESSOR=powerpc ;;
-       esac
+       eval $set_cc_for_build
+       if test "$UNAME_PROCESSOR" = unknown ; then
+           UNAME_PROCESSOR=powerpc
+       fi
+       if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+           if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+               (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+               grep IS_64BIT_ARCH >/dev/null
+           then
+               case $UNAME_PROCESSOR in
+                   i386) UNAME_PROCESSOR=x86_64 ;;
+                   powerpc) UNAME_PROCESSOR=powerpc64 ;;
+               esac
+           fi
+       fi
        echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
        exit ;;
     *:procnto*:*:* | *:QNX:[0123456789]*:*)
diff --git a/lib/depcomp b/lib/depcomp
index ad4729d..e61e6d1 100755
--- a/lib/depcomp
+++ b/lib/depcomp
@@ -1,7 +1,7 @@
 #! /bin/sh
 # depcomp - compile a program generating dependencies as side-effects
 
-scriptversion=2012-10-18.11; # UTC
+scriptversion=2013-05-30.07; # UTC
 
 # Copyright (C) 1999-2013 Free Software Foundation, Inc.
 
@@ -516,6 +516,7 @@ $ {
   G
   p
 }' >> "$depfile"
+  echo >> "$depfile" # make sure the fragment doesn't end with a backslash
   rm -f "$tmpdepfile"
   ;;
 
diff --git a/maintainer/maint.mk b/maintainer/maint.mk
index da821b2..305ef1c 100644
--- a/maintainer/maint.mk
+++ b/maintainer/maint.mk
@@ -107,10 +107,16 @@ GIT = git
 
 EXTRA_DIST += lib/gnupload
 
-base_version_rx = ^[1-9][0-9]*\.[0-9][0-9]*
-stable_major_version_rx = $(base_version_rx)$$
-stable_minor_version_rx = $(base_version_rx)\.[0-9][0-9]*$$
-beta_version_rx = $(base_version_rx)(\.[0-9][0-9]*)?[bdfhjlnprtvxz]$$
+# First component of a version number (mandatory).
+rx-0 = ^[1-9][0-9]*
+# Later components of a version number (optional).
+rx-1 = \.[0-9][0-9]*
+# Used in recipes to decide which kind of release we are.
+stable_major_version_rx = $(rx-0)\.0$$
+stable_minor_version_rx = $(rx-0)$(rx-1)$$
+stable_micro_version_rx = $(rx-0)$(rx-1)$(rx-1)$$
+beta_version_rx = $(rx-0)($(rx-1)){1,2}[bdfhjlnprtvxz]$$
+alpha_version_rx  = $(rx-0)($(rx-1)){1,2}[acegikmoqsuwy]$$
 match_version = echo "$(VERSION)" | $(EGREP) >/dev/null
 
 # Check that we don't have uncommitted or unstaged changes.
@@ -131,14 +137,28 @@ determine_release_type = \
     dest=ftp; \
   elif $(match_version) '$(stable_minor_version_rx)'; then \
     release_type='Minor release'; \
+    announcement_type='minor release'; \
+    dest=ftp; \
+  elif $(match_version) '$(stable_micro_version_rx)'; then \
+    release_type='Micro release'; \
     announcement_type='maintenance release'; \
     dest=ftp; \
   elif $(match_version) '$(beta_version_rx)'; then \
     release_type='Beta release'; \
     announcement_type='test release'; \
     dest=alpha; \
+  elif $(match_version) '$(alpha_version_rx)'; then \
+    echo "$@: improper version '$(VERSION)' for a release" >&2; \
+    if test -n '$(strip $(DEVEL_SNAPSHOT))'; then \
+      echo "$@: continuing anyway since DEVEL_SNAPSHOT is set" >&2; \
+      release_type='Development snapshot'; \
+      announcement_type='development snapshot'; \
+      dest=alpha; \
+    else \
+      exit 1; \
+    fi; \
   else \
-    echo "$@: invalid version '$(VERSION)' for a release" >&2; \
+    echo "$@: invalid version number '$(VERSION)'" >&2; \
     exit 1; \
   fi
 
@@ -146,7 +166,7 @@ determine_release_type = \
 print-release-type:
        @$(determine_release_type); \
         echo "$$release_type $(VERSION);" \
-             "it will be announced as a $$announcement_type"
+             "it will be announced as a \"$$announcement_type\""
 
 git-tag-release: maintainer-check
        @set -e -u; \
@@ -262,6 +282,7 @@ compare-autodiffs: autodiffs
 
 PACKAGE_MAILINGLIST = address@hidden
 
+announcement: DEVEL_SNAPSHOT = yes
 announcement: NEWS
        $(AM_V_GEN): \
          && rm -f $@ address@hidden \
@@ -294,8 +315,8 @@ announcement: NEWS
          && X "-*-*-*-" \
          && X \
          && $(AWK) '\
-               ($$0 == "New in $(VERSION):") { wait_for_end=1; } \
-               (/^~~~/ && wait_for_end) { exit(0) } \
+               ($$0 ~ /^New in .*:/) { wait_for_end=1; } \
+               (/^~~~/ && wait_for_end) { print; exit(0) } \
                { print } \
             ' <$(srcdir)/NEWS >> address@hidden \
          && mv -f address@hidden $@
@@ -391,7 +412,7 @@ web-manual:
 web-manual-update:
        $(AM_V_at)$(determine_release_type); \
        case $$release_type in \
-         [Mm]ajor\ release|[Mm]inor\ release);; \
+         [Mm]ajor\ release|[Mm]inor\ release|[Mm]icro\ release);; \
          *) echo "Cannot upload manuals from a \"$$release_type\"" >&2; \
             exit 1;; \
        esac
diff --git a/t/Makefile.inc b/t/Makefile.inc
index 87763e0..819ef7f 100644
--- a/t/Makefile.inc
+++ b/t/Makefile.inc
@@ -91,9 +91,11 @@ XFAIL_TESTS = \
   %D%/interp3.sh \
   %D%/java-nobase.sh \
   %D%/objext-pr10128.sh \
+  %D%/override-conditional-pr13940.sh \
   %D%/remake-timing-bug-pr8365.sh \
   %D%/remake-am-pr10111.sh \
   %D%/remake-m4-pr10111.sh \
+  %D%/subobj-vpath-pr13928.sh \
   %D%/var-undef-append.sh \
   $(perl_fake_XFAIL_TESTS)
  
diff --git a/t/README b/t/README
index f9c7f07..03850ca 100644
--- a/t/README
+++ b/t/README
@@ -204,6 +204,24 @@ Writing test cases
   $PERL, $MAKE, $EGREP, and $FGREP, instead of the corresponding
   commands.
 
+* When you want to redirect the output from a make invocation, use the
+  'run_make' function rather than calling $MAKE directly.  Not only is
+  this more idiomatic, but it also avoid possible spurious racy failures
+  when the make invocations in the testsuite are run in parallel mode
+  (as with "make check AM_TESTSUITE_MAKE='make -j4"').
+
+* Do not override Makefile variables using make arguments, as in e.g.:
+
+    $MAKE prefix=/opt install           # BAD
+
+  This is not portable for recursive targets (with non-GNU make,
+  targets that call a sub-make may not pass "prefix=/opt" along).
+  Instead, use the 'run_make' function, which automatically uses
+  the AM_MAKEFLAGS to propagate the variable definitions along to
+  sub-make:
+
+    run_make prefix=/opt install        # GOOD
+
 * Use '$sleep' when you have to make sure that some file is newer
   than another.
 
diff --git a/t/ax/deltree.pl b/t/ax/deltree.pl
index 7060766..9b638dd 100644
--- a/t/ax/deltree.pl
+++ b/t/ax/deltree.pl
@@ -2,6 +2,21 @@
 # deltree: recursively removes file and directory,
 # trying to handle permissions and other complications.
 
+# Copyright (C) 2013 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
 use strict;
 use warnings FATAL => 'all';
 use File::Path qw/rmtree/;
diff --git a/t/cxx-demo.sh b/t/cxx-demo.sh
index f6d568d..97a46ce 100644
--- a/t/cxx-demo.sh
+++ b/t/cxx-demo.sh
@@ -165,7 +165,12 @@ END
     Good morning, work.
 END
   for p in play work; do
-    ./$p > got.$p || { cat got.$p; exit 1; }
+    # The program must run correctly (exit status = 0).
+    ./$p
+    # And it must have the expected output.  Note that we strip extra
+    # CR characters (if any), to cater to MinGW programs on MSYS.
+    # See automake bug#14493.
+    ./$p | tr -d '\015' > got.$p || { cat got.$p; exit 1; }
     cat exp.$p
     cat got.$p
     diff exp.$p got.$p
diff --git a/t/distcheck-pr10470.sh b/t/distcheck-pr10470.sh
index 26cce1c..d210fd3 100644
--- a/t/distcheck-pr10470.sh
+++ b/t/distcheck-pr10470.sh
@@ -45,13 +45,13 @@ chmod a+x foo.test
 
 $ACLOCAL
 $AUTOCONF
-$AUTOMAKE
+$AUTOMAKE -a
 ./configure
 
 # We can build the distribution.
-run_make -E -e FAIL distcheck
+run_make -E distcheck
 # Sanity check: verify that our code has hit a problem removing
 # the distdir, but has recovered from it.
-grep "rm:.*$destdir" stderr || fatal_ "expected code path not covered"
+$EGREP "(^| )(rm|find):.*$distdir" output || fatal_ "expected code path not 
covered"
 
 :
diff --git a/t/lex-header.sh b/t/lex-header.sh
index e254614..60b78c2 100644
--- a/t/lex-header.sh
+++ b/t/lex-header.sh
@@ -55,6 +55,7 @@ cat > lexer.l << 'END'
 END
 
 cat > main.c <<'END'
+#define YY_NO_UNISTD_H 1
 #include "mylex.h"
 int main (void)
 {
diff --git a/t/no-extra-c-stuff.sh b/t/no-extra-c-stuff.sh
new file mode 100644
index 0000000..de0dd12
--- /dev/null
+++ b/t/no-extra-c-stuff.sh
@@ -0,0 +1,74 @@
+#! /bin/sh
+# Copyright (C) 2013 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Check that Automake doesn't generated rules or definitions related
+# to compilation of C sources for a project that doesn't use nor need
+# a C Compiler.  Inspired by the issues reported in automake bug#14560.
+
+am_create_testdir=empty
+. test-init.sh
+
+cat > configure.ac <<END
+AC_INIT([$me], [1.0])
+AC_CONFIG_AUX_DIR([.])
+AM_INIT_AUTOMAKE
+AC_CONFIG_FILES([
+    Makefile
+    sub/Makefile
+    sub2/Makefile
+])
+AC_PROG_CXX
+AC_PROG_F77
+AC_OUTPUT
+END
+
+cat > Makefile.am <<END
+SUBDIRS = sub sub2
+bin_PROGRAMS = bar
+bar_SOURCES = bar.cc
+END
+
+mkdir sub sub2
+
+cat > sub/Makefile.am <<END
+bin_PROGRAMS = foo
+foo_SOURCES = foo.f
+END
+
+cat > sub2/Makefile.am <<END
+bin_PROGRAMS = baz
+baz_SOURCES = baz.cxx
+END
+
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE --add-missing
+
+test   -f install-sh
+test ! -e compile
+
+# Sanity checks.
+$FGREP '$(CXX)' Makefile.in
+$FGREP '$(CXX)' sub2/Makefile.in
+$FGREP '$(F77)' Makefile.in sub2/Makefile.in && exit 1
+$FGREP '$(F77)' sub/Makefile.in
+$FGREP '$(CXX)' sub/Makefile.in && exit 1
+
+$EGREP '(^COMPILE|$\(CC\)|AM_V_CC)' \
+  Makefile.in sub/Makefile.in sub2/Makefile.in && exit 1
+
+:
diff --git a/t/no-extra-makefile-code.sh b/t/no-extra-makefile-code.sh
index 01891bf..51df42d 100644
--- a/t/no-extra-makefile-code.sh
+++ b/t/no-extra-makefile-code.sh
@@ -1,5 +1,5 @@
 #!/bin/sh
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Copyright (C) 2011-2013 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,9 +25,14 @@ echo AC_OUTPUT >> configure.ac
 
 : > Makefile.am
 
+# Automake shouldn't need nor require these.
 rm -f depcomp compile
 
 $ACLOCAL
+
+# Don't use '--add-missing' here, so that we can implicitly
+# check that the auxiliary scripts 'compile' and 'depcomp'
+# are not spuriously required by Automake.
 $AUTOMAKE
 
 $EGREP 'INCLUDE|-compile|\$\(OBJEXT\)|tab\.[ch]' Makefile.in && exit 1
diff --git a/t/cond10.sh b/t/override-conditional-pr13940.sh
similarity index 59%
copy from t/cond10.sh
copy to t/override-conditional-pr13940.sh
index 896ef61..4bc4128 100644
--- a/t/cond10.sh
+++ b/t/override-conditional-pr13940.sh
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+# Copyright (C) 2013 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -14,34 +14,31 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# Test for bug in conditionals.  From Raja R Harinath.
+# Expose automake bug#1394: automake erroneously think that a .PHONY
+# target's rule is overridden only because we declare dependencies
+# to such targets twice: one in an Automake conditional, and once
+# unconditionally.
 
 . test-init.sh
 
 cat >> configure.ac << 'END'
-AC_PROG_CC
-AM_CONDITIONAL([USE_A], [test x = y])
-AM_CONDITIONAL([USE_B], [test x = z])
+AM_CONDITIONAL([FOO], [true])
 AC_OUTPUT
 END
 
 cat > Makefile.am << 'END'
-if USE_A
-out=output_a.c
-else
-if USE_B
-out=output_b.c
-else
-out=output_c.c
+# The conditional here is important: Automake only appears to warn
+# when one of the all-local rules is inside a conditional and the
+# other is not.
+if FOO
+all-local: bar
+bar: ; @echo bar
 endif
-endif
-
-noinst_PROGRAMS=foo
-foo_SOURCES=foo.c $(out)
+all-local: baz
+baz: ; @echo baz
 END
 
 $ACLOCAL
 $AUTOMAKE -a
-grep 'USE_A_FALSE.*USE_B_FALSE.*output_c\...OBJEXT.' Makefile.in
 
 :
diff --git a/t/remake-configure-dependencies.sh 
b/t/remake-configure-dependencies.sh
index c24a8ca..0a45850 100644
--- a/t/remake-configure-dependencies.sh
+++ b/t/remake-configure-dependencies.sh
@@ -61,6 +61,7 @@ $AUTOMAKE
 ./configure
 $MAKE test-1
 
+$sleep
 (echo '#!/bin/sh' && echo 'printf %s 2.1') > print-version
 $MAKE test-2
 
@@ -69,6 +70,8 @@ mkdir build
 cd build
 ../configure
 $MAKE test-2
+
+$sleep
 (echo '#!/bin/sh' && echo 'printf %s 3.14') > ../print-version
 $MAKE test-3
 
diff --git a/t/suffix-chain.sh b/t/subobj-indir-pr13928.sh
similarity index 56%
copy from t/suffix-chain.sh
copy to t/subobj-indir-pr13928.sh
index 0601465..11b865c 100644
--- a/t/suffix-chain.sh
+++ b/t/subobj-indir-pr13928.sh
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Copyright (C) 2002-2013 Free Software Foundation, Inc.
+# Copyright (C) 2013 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -14,44 +14,36 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# Check that Automake can take advantage of GNU make ability to
-# automatically chain suffix-based pattern rules.
-# See automake bug#7824 and bug#7670.
+# Expose part of Automake bug#13928: config.status generates broken
+# makefiles if the subdir-objects option is used and a _SOURCES
+# variable lists sources whose directory part is specified as a
+# make variable ("foo_SOURCES = $(src)/foo.c").
 
 required=cc
 . test-init.sh
 
-cat >> configure.ac <<'END'
+cat >> configure.ac << 'END'
 AC_PROG_CC
+AM_PROG_CC_C_O
 AC_OUTPUT
 END
 
 cat > Makefile.am <<'END'
+AUTOMAKE_OPTIONS = subdir-objects
+src = s
 bin_PROGRAMS = foo
-nodist_foo_SOURCES = foo.c
-EXTRA_DIST = foo.c0
-%.c0: %.c1
-       (echo 'int main (void)' && echo '{' && cat $<) > $@
-%.c: %.c0
-       (cat $< && echo '}') > $@
-CLEANFILES = foo.c0 foo.c
+foo_SOURCES = $(src)/foo.c
 END
 
-echo 'return 0;' > foo.c1
+mkdir s
+echo 'int main(void) { return 0; }' > s/foo.c
+
+$ACLOCAL && $AUTOCONF && $AUTOMAKE -a || fatal_ "autotools failed"
 
-$ACLOCAL
-$AUTOMAKE
-$AUTOCONF
 ./configure
-$MAKE all
+$MAKE
+test -f s/.deps/foo.Po
+find . | $FGREP '$(src)' && exit 1
 $MAKE distcheck
 
-# Try with explicit dependencies as well.
-$MAKE clean
-cat >> Makefile <<'END'
-foo.c: foo.c0
-foo.c0: foo.c1
-END
-$MAKE all
-
 :
diff --git a/t/subobj-vpath-pr13928.sh b/t/subobj-vpath-pr13928.sh
new file mode 100644
index 0000000..96cb219
--- /dev/null
+++ b/t/subobj-vpath-pr13928.sh
@@ -0,0 +1,60 @@
+#! /bin/sh
+# Copyright (C) 2013 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Expose part of automake bug#13928: if the subdir-objects option is
+# in use and a source file is listed in a _SOURCES variable with a
+# leading $(srcdir) component, Automake will generate a Makefile that
+# tries to create the corresponding object file in $(srcdir) as well.
+
+required=cc
+. test-init.sh
+
+cat >> configure.ac << 'END'
+AC_PROG_CC
+AM_PROG_CC_C_O
+AC_OUTPUT
+END
+
+cat > Makefile.am <<'END'
+AUTOMAKE_OPTIONS = subdir-objects
+noinst_PROGRAMS = test
+test_SOURCES = $(srcdir)/test.c
+test-objs:
+       test ! -f $(srcdir)/test.$(OBJEXT)
+       test -f test.$(OBJEXT)
+END
+
+$ACLOCAL && $AUTOCONF && $AUTOMAKE -a || fatal_ "autotools failed"
+
+$EGREP 'test\.|DEPDIR|dirstamp|srcdir' Makefile.in || : # For debugging.
+$EGREP '\$.srcdir./test\.[o$]' Makefile.in && exit 1
+$FGREP '$(srcdir)/$(am__dirstamp)' Makefile.in && exit 1
+$FGREP '$(srcdir)/$(DEPDIR)' && exit 1
+
+cat > test.c << 'END'
+int main (void)
+{
+  return 0;
+}
+END
+
+mkdir build && cd build || fatal "preparation of build directory failed"
+../configure || fatal_ "./configure failed"
+
+$MAKE
+$MAKE test-objs
+
+:
diff --git a/t/subpkg.sh b/t/subpkg.sh
index 1333630..ea75d96 100644
--- a/t/subpkg.sh
+++ b/t/subpkg.sh
@@ -106,9 +106,7 @@ cd ..
 
 ./configure >stdout || { cat stdout; exit 1; }
 cat stdout
-# Don't pretend to know the name or path of the C compiler.  Also,
-# don't be too picky about the verb declension.
-$EGREP '^checking whether .* understands? -c and -o together' stdout
+$FGREP "checking whether $CC understands -c and -o together" stdout
 
 $MAKE
 $MAKE distcheck
diff --git a/t/f90only.sh b/t/suffix-extra-c-stuff-pr14560.sh
similarity index 64%
copy from t/f90only.sh
copy to t/suffix-extra-c-stuff-pr14560.sh
index 0ad4ff8..45fdd17 100644
--- a/t/f90only.sh
+++ b/t/suffix-extra-c-stuff-pr14560.sh
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Copyright (C) 1998-2013 Free Software Foundation, Inc.
+# Copyright (C) 2013 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -14,21 +14,24 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# Make sure programs with only Fortran 90 source are handled properly.
-# (copied from 'fonly.sh') Mike Nolta <address@hidden>
+# Automake bug#14560: if multiple user-specified suffix rules were
+# present, Automake could generate useless definitions and rules
+# related to C compilation.
 
 . test-init.sh
 
-cat >> configure.ac << 'END'
-AC_PROG_FC
-END
-
 cat > Makefile.am <<'END'
-bin_PROGRAMS = zardoz
-zardoz_SOURCES = zardoz.f90
+.foo.bar:
+       foo2bar -o $@ $<
+.baz.qux:
+       baz2qux -o $@ $<
+bin_SCRIPTS = a.bar b.qux
 END
 
 $ACLOCAL
+$AUTOCONF
 $AUTOMAKE
 
-grep 'zardoz.f90' Makefile.in
+$EGREP '\$\(CC\)|COMPILE|AM_V_CC|-compile|INCLUDES' Makefile.in && exit 1
+
+:
diff --git a/t/tags-pr12372.sh b/t/tags-pr12372.sh
index 0ddebd9..e652d9d 100644
--- a/t/tags-pr12372.sh
+++ b/t/tags-pr12372.sh
@@ -63,7 +63,17 @@ $AUTOMAKE
 
 ./configure
 
-$MAKE
+# Exuberant Ctags (at least version 5.8) doesn't generate any tags
+# for file extensions it doesn't recognize.  This can be fixed by
+# using the '--langmap' option.  But we must be careful, because
+# etags from Emacs (at least version 23.4) doesn't recognize that
+# option.
+if etags --help | grep '.*--langmap'; then
+  run_make ETAGSFLAGS="--langmap=c:+.pc"
+else
+  $MAKE
+fi
+
 cat TAGS
 cat sub/TAGS
 $FGREP foo-main.pc TAGS
diff --git a/t/txinfo-no-split.sh b/t/txinfo-no-split.sh
index aecf7e7..6a50f1c 100644
--- a/t/txinfo-no-split.sh
+++ b/t/txinfo-no-split.sh
@@ -34,6 +34,13 @@ check-local:
        test "`find $(srcdir) . | grep '\.info'`" = "$(srcdir)/foo.info"
 END
 
+# Systems lacking a working TeX installation cannot run "make dvi".
+if test -z "$TEX"; then
+  warn_ "TeX installation missing, \"make dvi\" will be skipped"
+  echo AUTOMAKE_OPTIONS = -Wno-override >> Makefile.am
+  echo 'dvi:; @echo Tex is missing, do nothing' >> Makefile.am
+fi
+
 cat > foo.texi << 'END'
 \input texinfo
 @setfilename foo.info
diff --git a/t/yacc-bison-skeleton.sh b/t/yacc-bison-skeleton.sh
index f41cdf4..1a7eed9 100644
--- a/t/yacc-bison-skeleton.sh
+++ b/t/yacc-bison-skeleton.sh
@@ -22,6 +22,7 @@ required='cc bison'
 
 cat >> configure.ac << 'END'
 AC_PROG_CC
+AC_C_INLINE    dnl Required by some pre-C99 compilers such as MSVC.
 AC_PROG_YACC
 AC_OUTPUT
 END


hooks/post-receive
-- 
GNU Automake



reply via email to

[Prev in Thread] Current Thread [Next in Thread]