[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Automake-commit] [SCM] GNU Automake branch, ng/master, updated. v1.13b-925-g013d9ba,
Stefano Lattarini <=