[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Automake-commit] [SCM] GNU Automake branch, master, updated. v1.13.1-13
From: |
Stefano Lattarini |
Subject: |
[Automake-commit] [SCM] GNU Automake branch, master, updated. v1.13.1-132-g2c72b15 |
Date: |
Tue, 22 Jan 2013 12:48:53 +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=2c72b157e7c37964f6854d7b5c29c97957b02e36
The branch, master has been updated
via 2c72b157e7c37964f6854d7b5c29c97957b02e36 (commit)
via 94c28cc5e9e28d1215619721901d3e0580a758ef (commit)
via bb7e8f79d92f0030ad538ecac06fad0cfdddc407 (commit)
via f479a4a3da2fae6c257dbc3dd65860f830532418 (commit)
via 63fe125a2e835955b8d0ba0d658208ebf63285f2 (commit)
via 655e268ddfae52ec1eef5558f95cd1c72c362649 (commit)
via af633f5c7f110fa0ddc1f8163506c62c2549d526 (commit)
via ad4e856e1f3e568f400be99188fa190901bb9fbd (commit)
via 18cb8eb2a52df73618b8484948b1040b770d4f0f (commit)
via 4d32ebdd74545bd0cd729c9aaabe3a8c2e992feb (commit)
via eada7ef7dfdee457c7e773ae96f435de81c2f0ce (commit)
via 2c0fe206d94f1b2a8ee4d40e5b1841d003fd7319 (commit)
via 81527ed5b4f5742bd01d69c7e556f63bf30fb6c8 (commit)
via a7b2069b891f6abcba194cd7fc7790307d47576d (commit)
via b49ebac3b84cf27c5398cad9db0ae0c000532135 (commit)
via a787b9caa6b6970e48e3a2f512077446386fc838 (commit)
via ae4d4fcfa5a9401737568f897cd71d1f5a0e7faa (commit)
via f78b0f0b2741fcdd4e21151758a8a75ddaa8aa17 (commit)
from bba21ec30fcc603765b39c296fa6bf79b07c420c (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 2c72b157e7c37964f6854d7b5c29c97957b02e36
Merge: b49ebac 94c28cc
Author: Stefano Lattarini <address@hidden>
Date: Mon Jan 21 15:48:48 2013 +0100
Merge branch 'maint'
* maint:
tests: more information about Lex and Yacc programs
lint: fix spurious failure for 'sc_rm_minus_f' syntax check
maint: bump version 1.13.1a -> 1.13.2a
maint: update copyright in files generated by automake and aclocal
tests: avoid a spurious failure when running inside Emacs
tests: make two new test executable
m4: rename an m4 file to a more appropriate name
NEWS: update w.r.t. recent documentation fixes
compat: reinstate AM_CONFIG_HEADER and AM_PROG_CC_STDC
docs: parallel-tests is no longer experimental
docs: serial-tests are not deprecated, just discouraged
plans: we are not going to remove AM_PROG_MKDIR_P in Automake 1.14
NEWS: we are not going to remove AM_PROG_MKDIR_P in Automake 1.14
init.m4: add probe to check "rm -f" without args work
Signed-off-by: Stefano Lattarini <address@hidden>
commit b49ebac3b84cf27c5398cad9db0ae0c000532135
Author: Stefano Lattarini <address@hidden>
Date: Fri Jan 18 11:24:38 2013 +0100
NEWS (master): we are not going to remove AM_PROG_MKDIR_P in 1.14
See commit v1.13.1-109-g030ecb4 of 2013-01-16, "compat: restore
AM_PROG_MKDIR, again", for the rationale.
Signed-off-by: Stefano Lattarini <address@hidden>
-----------------------------------------------------------------------
Summary of changes:
Makefile.am | 2 +-
NEWS | 93 +++++++++++---------
PLANS/obsolete-removed/am-prog-mkdir-p.txt | 63 +++++++++++++
PLANS/rm-f-without-args.txt | 8 +-
THANKS | 2 +
doc/automake.texi | 19 ++--
m4/init.m4 | 43 +++++++++-
m4/{obsolete-err.m4 => obsolete.m4} | 20 +++--
maintainer/syntax-checks.mk | 2 +-
t/am-config-header-no-more.sh | 43 ---------
...rs-user-no-top-level.sh => am-config-header.sh} | 38 ++++----
t/am-prog-cc-stdc-no-more.sh | 43 ---------
...urs-user-no-top-level.sh => am-prog-cc-stdc.sh} | 34 +++----
t/ansi2knr-no-more.sh | 2 +-
t/backcompat6.sh | 2 +-
t/get-sysconf.sh | 8 ++
t/lisp-flags.sh | 4 +
t/list-of-tests.mk | 5 +-
t/rm-f-probe.sh | 74 ++++++++++++++++
t/spy-rm.tap | 8 +-
20 files changed, 313 insertions(+), 200 deletions(-)
rename m4/{obsolete-err.m4 => obsolete.m4} (66%)
delete mode 100755 t/am-config-header-no-more.sh
copy t/{recurs-user-no-top-level.sh => am-config-header.sh} (62%)
delete mode 100755 t/am-prog-cc-stdc-no-more.sh
copy t/{recurs-user-no-top-level.sh => am-prog-cc-stdc.sh} (66%)
create mode 100755 t/rm-f-probe.sh
diff --git a/Makefile.am b/Makefile.am
index 21d21c0..8990648 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -279,7 +279,7 @@ dist_automake_ac_DATA = \
m4/make.m4 \
m4/minuso.m4 \
m4/missing.m4 \
- m4/obsolete-err.m4 \
+ m4/obsolete.m4 \
m4/options.m4 \
m4/python.m4 \
m4/runlog.m4 \
diff --git a/NEWS b/NEWS
index d24771d..b06c01c 100644
--- a/NEWS
+++ b/NEWS
@@ -22,13 +22,6 @@ New in 1.14:
* Obsolete features removed:
- - The long-obsolete (since automake 1.10) AM_PROG_MKDIR m4 macro has
- been removed. The $(mkdir_p) make variable and the @mkdir_p@
- substitutionl still remains available for the moment, as aliases
- of $(MKDIR_P), for better backward compatibility; but you are
- advised to stop using ASAP, as they might be removed in future
- Automake versions.
-
- Support for the long-deprecated name 'configure.in' for the Autoconf
input file has been removed altogether. Just use the modern name
'configure.ac' instead.
@@ -66,12 +59,6 @@ New in 1.13.2:
name for the Autoconf input file. You are advised to start using
recommended name 'configure.ac' instead, ASAP.
- - The long-obsolete (since automake 1.10) AM_PROG_MKDIR m4 macro will
- be removed in Automake 1.14. The $(mkdir_p) make variable and the
- @mkdir_p@ substitution will still remain available (as aliases of
- $(MKDIR_P)) for the moment, for better backward compatibility; but
- you are advised to stop using ASAP.
-
- The ACLOCAL_AMFLAGS special make variable will be fully deprecated
in Automake 1.14 (where it will raise warnings in the "obsolete"
category). You are advised to start relying on the new Automake
@@ -131,35 +118,6 @@ New in 1.13.2:
define the 'NO_MINUS_C_MINUS_O' C preprocessor symbol, but you
should really stop relying on that.
-* Obsolescent features:
-
- - Use of suffix-less info files (that can be specified through the
- '@setfilename' macro in Texinfo input files) is discouraged, and
- its use will raise warnings in the 'obsolete' category. Simply
- use the '.info' extension for all your info files, transforming
- usages like:
-
- @setfilename myprogram
-
- into:
-
- @setfilename myprogram.info
-
- - Use of Texinfo input files with '.txi' or '.texinfo' extensions
- is discouraged, and its use will raise warnings in the 'obsolete'
- category. You are advised to simply use the '.texi' extension
- instead.
-
-* Documentation fixes:
-
- - 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
- 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).
-
* Texinfo support:
- Automake can now be instructed to place '.info' files generated from
@@ -191,6 +149,57 @@ New in 1.13.2:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+New in 1.13.2:
+
+* Documentation fixes:
+
+ - 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
+ 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
+ use cause runtime warnings.
+
+ - The parallel testsuite is no longer reported as "experimental"; it
+ is well tested, ans should be stable now.
+
+* Obsolescent features:
+
+ - Use of suffix-less info files (that can be specified through the
+ '@setfilename' macro in Texinfo input files) is discouraged, and
+ its use will raise warnings in the 'obsolete' category. Simply
+ use the '.info' extension for all your info files, transforming
+ usages like:
+
+ @setfilename myprogram
+
+ into:
+
+ @setfilename myprogram.info
+
+ - Use of Texinfo input files with '.txi' or '.texinfo' extensions
+ is discouraged, and its use will raise warnings in the 'obsolete'
+ category. You are advised to simply use the '.texi' extension
+ instead.
+
+
+* Bugs fixed:
+
+ - The obsolete macros AM_CONFIG_HEADER or AM_PROG_CC_STDC work once
+ again, as they did in Automake 1.12.x (albeit printing runtime
+ warnings in the 'obsolete' category). Removing them has turned
+ out to be a very bad idea, because it complicated distro packing
+ enormously. Making them issue fatal warnings, as we did in
+ Automake 1.13, has turned out to be a similarly very bad idea,
+ for exactly the same reason.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
New in 1.13.1:
* Bugs fixed:
diff --git a/PLANS/obsolete-removed/am-prog-mkdir-p.txt
b/PLANS/obsolete-removed/am-prog-mkdir-p.txt
index 4143fac..40bc69f 100644
--- a/PLANS/obsolete-removed/am-prog-mkdir-p.txt
+++ b/PLANS/obsolete-removed/am-prog-mkdir-p.txt
@@ -7,3 +7,66 @@ That planned removal has already proven source of countless
headaches and
backward-compatibility issues, which vastly outweigh any "clean-up benefit"
we would get from the removal of that obsolescent but unobtrusive cruft.
+-*-*-*-
+
+Let's see a bit of history.
+
+I had already scheduled the removal of the long-deprecated AM_PROG_MKDR_P
+macro (superseded by the Autoconf-provided one AC_PROG_MKDIR_P) for
+Automake 1.13 -- see commit 'v1.12-20-g8a1c64f'.
+
+Alas, it turned out the latest Gettext version at the time (0.18.1.1) was
+still using that macro:
+
+ <http://lists.gnu.org/archive/html/automake/2012-09/msg00010.html>
+
+And since the maintenance of Gettext was stalled, I couldn't get a fix
+committed and released in time for the appearance of Automake 1.13:
+
+ <http://lists.gnu.org/archive/html/bug-gettext/2012-04/msg00018.html>
+ <http://lists.gnu.org/archive/html/bug-gettext/2012-06/msg00012.html>
+ <http://lists.gnu.org/archive/html/bug-gettext/2012-10/msg00001.html>
+
+So, on strong advice by Jim Meyering, in commit 'v1.12.4-158-gdf23daf'
+I re-introduced AM_PROG_MKDIR_P in Automake (thanks to Jim for having
+convinced me to do so in time!)
+
+But then, Gettext (as said, the greatest "offender" in the use of
+AM_PROG_MKDIR_P), in its latest release 0.18.2, finally removed all the
+uses of that macro still present in its code base. Yay. So I thought
+we could finally and quite safely remove AM_PROG_MKDIR_P in Automake 1.14;
+and I proceeded to do so, see commit 'v1.13-30-gd01834b' and the merge
+commit 'v1.13-5-gb373ad9'. Well, it turned out I was wrong, again, and
+in a trickier and sublter way this time. Let's see the details.
+
+If a package's 'configure.ac' contains a call like:
+
+ AM_GNU_GETTEXT_VERSION([0.18])
+
+then the 'autopoint' script will bring the data files from the Gettext
+release *1.18* into the package's tree -- yes, even even if the developer
+has installed *and is using* Gettext 1.18.2! Now, these data files
+comprise m4 files (that will be seen by subsequent aclocal and autoconf
+calls), and of course, the pre-0.18.2 version of some of these files
+still contains occurrences of AM_PROG_MKDIR_P -- so Automake 1.13 errors
+out, and we lose. That already happened in practice:
+
+ <http://lists.gnu.org/archive/html/bug-grep/2013-01/msg00003.html>
+
+Moreover, while I might see it as not unreasonable to ask a developer
+using Automake 1.14 to also update Gettext to 1.18.2, that would not
+be enough; in order for gettext to use the correct data files, that
+developer would have to update his configure.ac to read:
+
+ AM_GNU_GETTEXT_VERSION([0.18.2])
+
+thus requiring *all* of his co-developers to install Gettext 1.18.2,
+even if they are still using, say, Automake 1.13. Bad.
+
+So I decided to re-instate this macro as a simple alias for AC_PROG_MKDIR_P
+(plus a non-fatal runtime warning in the 'obsolete' category), and drop
+any plan to remove it (see how much good those plans have done us so far).
+See commit v1.13.1-109-g030ecb4.
+
+Similarly, the obsolete '@mkdir_p@' substitution and '$(mkdir_p)' make
+variable are still supported, as simple aliases to '$(MKDIR_P)'.
diff --git a/PLANS/rm-f-without-args.txt b/PLANS/rm-f-without-args.txt
index 5d39e22..5362f98 100644
--- a/PLANS/rm-f-without-args.txt
+++ b/PLANS/rm-f-without-args.txt
@@ -13,13 +13,13 @@ accordingly, to get rid of the awful idiom:
See automake bug#10828.
-For Automake 1.13.2 (or 1.13.3)
--------------------------------
+For Automake 1.13.2 (DONE)
+--------------------------
Add a temporary "probe check" in AM_INIT_AUTOMAKE that verifies that
the no-args "rm -f" usage is supported on the system configure is
-being run on; complain loudly (but not with a fatal error) if this is
-not the case, and tell the user to report the situation to us.
+being run on; complain loudly if this is not the case, and tell the
+user to report the situation to us.
For Automake 1.14
-----------------
diff --git a/THANKS b/THANKS
index 58745e7..66498d4 100644
--- a/THANKS
+++ b/THANKS
@@ -49,6 +49,7 @@ Bob Proulx address@hidden
Bob Rossi address@hidden
Bobby Jack address@hidden
Braden N. McDaniel address@hidden
+Brandon Black address@hidden
Brendan O'Dea address@hidden
Brian Cameron address@hidden
Brian Ford address@hidden
@@ -331,6 +332,7 @@ Reuben Thomas address@hidden
Rich Wales address@hidden
Richard Boulton address@hidden
Richard Dawe address@hidden
+Richard W.M. Jones address@hidden
Rob Savoye address@hidden
Robert Bihlmeyer address@hidden
Robert Boehne address@hidden
diff --git a/doc/automake.texi b/doc/automake.texi
index 5eaa277..2488aeb 100644
--- a/doc/automake.texi
+++ b/doc/automake.texi
@@ -320,7 +320,7 @@ Support for test suites
Simple Tests
* Scripts-based Testsuites:: Automake-specific concepts and terminology
-* Serial Test Harness:: Older (and obsolescent) serial test harness
+* Serial Test Harness:: Older (and discouraged) serial test harness
* Parallel Test Harness:: Generic concurrent test harness
Using the TAP test protocol
@@ -8799,7 +8799,7 @@ terminology)?
@menu
* Scripts-based Testsuites:: Automake-specific concepts and terminology
-* Serial Test Harness:: Older (and obsolescent) serial test harness
+* Serial Test Harness:: Older (and discouraged) serial test harness
* Parallel Test Harness:: Generic concurrent test harness
@end menu
@@ -8972,12 +8972,16 @@ by the tests, not the tests themselves. Of course you
can set
@code{TESTS = $(check_PROGRAMS)} if all your programs are test cases.
@node Serial Test Harness
address@hidden Older (and obsolescent) serial test harness
address@hidden Older (and discouraged) serial test harness
@cindex @option{serial-tests}, Using
address@hidden harness is obsolescent}, and kept for backward-compatibility
-reasons only. The user is strongly advised to just use the parallel test
-harness instead (@pxref{Parallel Test Harness}).
+First, note that today the use of this harness is strongly discouraged in
+favour of the parallel test harness (@pxref{Parallel Test Harness}).
+Still, there are @emph{few} situations when the advantages offered by
+the parallel harness are irrelevant, and when test concurrency can
+even cause tricky problems. In those cases, it might make sense to
+still use the serial harness, for simplicity and reliability (we still
+suggest trying to give the parallel harness a shot though).
The serial test harness is enabled by the Automake option
@option{serial-tests}. It operates by simply running the tests serially,
@@ -9019,9 +9023,6 @@ files, concurrent execution of tests with @code{make -j},
specification
of inter-test dependencies, lazy reruns of tests that have not completed
in a prior run, and hard errors for exceptional failures.
-This harness is still somewhat experimental and may undergo changes in
-order to satisfy additional portability requirements.
-
@anchor{Basics of test metadata}
@vindex TEST_SUITE_LOG
@vindex TESTS
diff --git a/m4/init.m4 b/m4/init.m4
index d7d4013..f9b0965 100644
--- a/m4/init.m4
+++ b/m4/init.m4
@@ -111,7 +111,48 @@ dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see
below.
AC_CONFIG_COMMANDS_PRE(dnl
[m4_provide_if([_AM_COMPILER_EXEEXT],
[AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
-])
+
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes. So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+ cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present. This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell address@hidden about your system, including the value
+of your $PATH and any error possibly output before this message. This
+can help us improve future automake versions.
+
+END
+ if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+ echo 'Configuration will proceed anyway, since you have set the' >&2
+ echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+ echo >&2
+ else
+ cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <http://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+ AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
+ fi
+fi])
dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
diff --git a/m4/obsolete-err.m4 b/m4/obsolete.m4
similarity index 66%
rename from m4/obsolete-err.m4
rename to m4/obsolete.m4
index 1ba6df3..28151d8 100644
--- a/m4/obsolete-err.m4
+++ b/m4/obsolete.m4
@@ -15,19 +15,21 @@ AC_DIAGNOSE([obsolete],
You should use the Autoconf-provided 'AC][_PROG_MKDIR_P' macro instead,
and use '$(MKDIR_P)' instead of '$(mkdir_p)' in your Makefile.am files.])])
-dnl TODO: Remove in Automake 1.15.
AC_DEFUN([AM_CONFIG_HEADER],
-[AC_FATAL(['$0': this macro is obsolete.
- You should use the 'AC][_CONFIG_HEADERS' macro instead.])])
+[AC_DIAGNOSE([obsolete],
+['$0': this macro is obsolete.
+You should use the 'AC][_CONFIG_HEADERS' macro instead.])dnl
+AC_CONFIG_HEADERS($@)])
-dnl TODO: Remove in Automake 1.15.
AC_DEFUN([AM_PROG_CC_STDC],
-[AC_FATAL(['$0': this macro is obsolete.
- You should simply use the 'AC][_PROG_CC' macro instead.
- Also, your code should no longer depend upon 'am_cv_prog_cc_stdc',
- but upon 'ac_cv_prog_cc_stdc'.])])
+[AC_PROG_CC
+am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc
+AC_DIAGNOSE([obsolete],
+['$0': this macro is obsolete.
+You should simply use the 'AC][_PROG_CC' macro instead.
+Also, your code should no longer depend upon 'am_cv_prog_cc_stdc',
+but upon 'ac_cv_prog_cc_stdc'.])])
-dnl TODO: Remove in Automake 1.14.
AC_DEFUN([AM_C_PROTOTYPES],
[AC_FATAL([automatic de-ANSI-fication support has been removed])])
AU_DEFUN([fp_C_PROTOTYPES], [AM_C_PROTOTYPES])
diff --git a/maintainer/syntax-checks.mk b/maintainer/syntax-checks.mk
index 80e4e7e..e1d5e6b 100644
--- a/maintainer/syntax-checks.mk
+++ b/maintainer/syntax-checks.mk
@@ -111,7 +111,7 @@ sc_no_brace_variable_expansions:
## Make sure 'rm' is called with '-f'.
sc_rm_minus_f:
@if grep -v '^#' $(ams) $(xtests) \
- | grep -vE '/(spy-rm\.tap|subobj-clean.*-pr10697\.sh):' \
+ | grep -vE
'/(rm-f-probe\.sh|spy-rm\.tap|subobj-clean.*-pr10697\.sh):' \
| grep -E '\<rm ([^-]|\-[^f ]*\>)'; \
then \
echo "Suspicious 'rm' invocation." 1>&2; \
diff --git a/t/am-config-header-no-more.sh b/t/am-config-header-no-more.sh
deleted file mode 100755
index 577ce05..0000000
--- a/t/am-config-header-no-more.sh
+++ /dev/null
@@ -1,43 +0,0 @@
-#! /bin/sh
-# Copyright (C) 2012-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 any attempt to use the obsolete macro AM_CONFIG_HEADER
-# elicits clear and explicit fatal errors.
-
-. test-init.sh
-
-geterr ()
-{
- "$@" -Wnone 2>stderr && { cat stderr >&2; exit 1; }
- cat stderr >&2
- grep "^configure\.ac:4:.*'AM_CONFIG_HEADER'.*obsolete" stderr
- grep "'AC_CONFIG_HEADERS'.* instead" stderr
-}
-
-$ACLOCAL
-mv aclocal.m4 aclocal.sav
-
-echo AM_CONFIG_HEADER >> configure.ac
-
-geterr $ACLOCAL
-test ! -f aclocal.m4
-
-cat aclocal.sav "$am_automake_acdir"/obsolete-err.m4 > aclocal.m4
-
-geterr $AUTOCONF
-geterr $AUTOMAKE
-
-:
diff --git a/t/recurs-user-no-top-level.sh b/t/am-config-header.sh
similarity index 62%
copy from t/recurs-user-no-top-level.sh
copy to t/am-config-header.sh
index 8de3ec2..49410e8 100755
--- a/t/recurs-user-no-top-level.sh
+++ b/t/am-config-header.sh
@@ -14,37 +14,37 @@
# 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 user recursion works even for targets that don't exist
-# in the top-level Makefile.
+# Check that the obsolete macro AM_CONFIG_HEADER still works.
. test-init.sh
+cat > Makefile.am <<'END'
+check-local:
+ test -f oldconf.h
+ test -f $(srcdir)/oldconf.in
+END
+
cat >> configure.ac <<'END'
-AC_CONFIG_FILES([sub/Makefile])
-AM_EXTRA_RECURSIVE_TARGETS([foo-bar])
+AM_CONFIG_HEADER([oldconf.h:oldconf.in])
AC_OUTPUT
END
-mkdir sub
+$ACLOCAL -Wno-obsolete
-cat > Makefile.am <<'END'
-SUBDIRS = sub
-all-local: foo-bar
-END
+$AUTOCONF -Werror -Wall 2>stderr && { cat stderr >&2; exit 1; }
+cat stderr >&2
+grep "^configure\.ac:4:.*'AM_CONFIG_HEADER'.*obsolete" stderr
+grep "'AC_CONFIG_HEADERS'.* instead" stderr
-cat > sub/Makefile.am <<'END'
-foo-bar-local:
- : > foo-bar
-MOSTLYCLEANFILES = foo-bar
-END
+$AUTOCONF -Werror -Wall -Wno-obsolete
+
+$AUTOHEADER
+test -f oldconf.in
-$ACLOCAL
-$AUTOCONF
$AUTOMAKE
./configure
-
-$MAKE foo-bar
-test -f sub/foo-bar
+$MAKE check-local
+$MAKE distcheck
:
diff --git a/t/am-prog-cc-stdc-no-more.sh b/t/am-prog-cc-stdc-no-more.sh
deleted file mode 100755
index a43e2d1..0000000
--- a/t/am-prog-cc-stdc-no-more.sh
+++ /dev/null
@@ -1,43 +0,0 @@
-#! /bin/sh
-# Copyright (C) 2012-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 any attempt to use the obsolete macro AM_CONFIG_HEADER
-# elicits clear and explicit fatal errors.
-
-. test-init.sh
-
-geterr ()
-{
- "$@" -Wnone 2>stderr && { cat stderr >&2; exit 1; }
- cat stderr >&2
- grep "^configure\.ac:4:.*'AM_PROG_CC_STDC'.*obsolete" stderr
- grep "'AC_PROG_CC'.* instead" stderr
-}
-
-$ACLOCAL
-mv aclocal.m4 aclocal.sav
-
-echo AM_PROG_CC_STDC >> configure.ac
-
-geterr $ACLOCAL
-test ! -f aclocal.m4
-
-cat aclocal.sav "$am_automake_acdir"/obsolete-err.m4 > aclocal.m4
-
-geterr $AUTOCONF
-geterr $AUTOMAKE
-
-:
diff --git a/t/recurs-user-no-top-level.sh b/t/am-prog-cc-stdc.sh
similarity index 66%
copy from t/recurs-user-no-top-level.sh
copy to t/am-prog-cc-stdc.sh
index 8de3ec2..e3e469c 100755
--- a/t/recurs-user-no-top-level.sh
+++ b/t/am-prog-cc-stdc.sh
@@ -14,37 +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/>.
-# Check that user recursion works even for targets that don't exist
-# in the top-level Makefile.
+# Check that the obsolete macro the obsolete macro AM_PROG_CC_STDC
+# still works.
+required=gcc
. test-init.sh
cat >> configure.ac <<'END'
-AC_CONFIG_FILES([sub/Makefile])
-AM_EXTRA_RECURSIVE_TARGETS([foo-bar])
+AM_PROG_CC_STDC
AC_OUTPUT
END
-mkdir sub
-
-cat > Makefile.am <<'END'
-SUBDIRS = sub
-all-local: foo-bar
-END
-
-cat > sub/Makefile.am <<'END'
-foo-bar-local:
- : > foo-bar
-MOSTLYCLEANFILES = foo-bar
-END
+echo bin_PROGRAMS = foo > Makefile.am
$ACLOCAL
-$AUTOCONF
$AUTOMAKE
-./configure
+$AUTOCONF -Wnone -Wobsolete -Werror 2>stderr && { cat stderr >&2; exit 1; }
+cat stderr >&2
+grep "^configure\.ac:4:.*'AM_PROG_CC_STDC'.*obsolete" stderr
+grep "'AC_PROG_CC'.* instead" stderr
+
+echo 'int main (void) { return 0; }' > foo.c
-$MAKE foo-bar
-test -f sub/foo-bar
+./configure
+$MAKE
+$MAKE distcheck
:
diff --git a/t/ansi2knr-no-more.sh b/t/ansi2knr-no-more.sh
index 910066b..b2b5752 100755
--- a/t/ansi2knr-no-more.sh
+++ b/t/ansi2knr-no-more.sh
@@ -32,7 +32,7 @@ $ACLOCAL -Wnone 2>stderr && { cat stderr >&2; exit 1; }
cat stderr >&2
grep "^configure\\.ac:5:.*$warn_rx" stderr
-cat aclocal.sav "$am_automake_acdir"/obsolete-err.m4 > aclocal.m4
+cat aclocal.sav "$am_automake_acdir"/obsolete.m4 > aclocal.m4
$AUTOCONF -Wnone 2>stderr && { cat stderr >&2; exit 1; }
cat stderr >&2
grep "^configure\\.ac:5:.*$warn_rx" stderr
diff --git a/t/backcompat6.sh b/t/backcompat6.sh
index 6036980..e9e14cc 100755
--- a/t/backcompat6.sh
+++ b/t/backcompat6.sh
@@ -37,7 +37,7 @@ AC_SUBST(two, $two)
three=3
AC_SUBST(three)
AC_PROG_CC
-AC_CONFIG_HEADERS(config.h:config.hin)
+AM_CONFIG_HEADER(config.h:config.hin)
AM_CONDITIONAL(CROSS_COMPILING, test "$cross_compiling" = yes)
AC_OUTPUT(Makefile foo.got:foo1.in:foo2.in:foo3.in)
END
diff --git a/t/get-sysconf.sh b/t/get-sysconf.sh
index 4c68108..bd4932f 100755
--- a/t/get-sysconf.sh
+++ b/t/get-sysconf.sh
@@ -46,6 +46,14 @@ $PERL -V || st=1
# happen with older perl installation, or on MinGW/MSYS.
$PERL -e 'use TAP::Parser; print $TAP::Parser::VERSION, "\n"' || :
+# It's OK if the selected Lex and Yacc programs don't know how to print
+# the version number or the help screen; those are usually available only
+# for Flex and Bison.
+$LEX --version || :
+$LEX --help || :
+$YACC --version || :
+$YACC --help || :
+
cat "$am_top_builddir/config.log" || st=1
cat "$am_top_builddir/t/wrap/aclocal-$APIVERSION" || st=1
cat "$am_top_builddir/t/wrap/automake-$APIVERSION" || st=1
diff --git a/t/lisp-flags.sh b/t/lisp-flags.sh
index f55b18f..a31bcfd 100755
--- a/t/lisp-flags.sh
+++ b/t/lisp-flags.sh
@@ -18,6 +18,10 @@
. test-init.sh
+# Don't get fooled when running as an Emacs subprocess. This is
+# for the benefit of the "make -e" invocation below.
+unset EMACS
+
cat > Makefile.am << 'EOF'
lisp_LISP = foo.el
AM_ELCFLAGS = __am_elcflags__
diff --git a/t/list-of-tests.mk b/t/list-of-tests.mk
index 70f1535..af78211 100644
--- a/t/list-of-tests.mk
+++ b/t/list-of-tests.mk
@@ -130,9 +130,9 @@ t/amhello-cross-compile.sh \
t/amhello-binpkg.sh \
t/aminit-moreargs-deprecation.sh \
t/amassign.sh \
-t/am-config-header-no-more.sh \
+t/am-config-header.sh \
+t/am-prog-cc-stdc.sh \
t/am-prog-cc-c-o.sh \
-t/am-prog-cc-stdc-no-more.sh \
t/am-prog-mkdir-p.sh \
t/am-macro-not-found.sh \
t/amopt.sh \
@@ -952,6 +952,7 @@ t/remake-macrodir.sh \
t/remake-timing-bug-pr8365.sh \
t/reqd2.sh \
t/repeated-options.sh \
+t/rm-f-probe.sh \
t/rulepat.sh \
t/self-check-cc-no-c-o.sh \
t/self-check-configure-help.sh \
diff --git a/t/rm-f-probe.sh b/t/rm-f-probe.sh
new file mode 100755
index 0000000..1cb220a
--- /dev/null
+++ b/t/rm-f-probe.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/>.
+
+# Verify our probe that checks that "rm -f" doesn't complain if called
+# without file operands works as expected. See automake bug#10828.
+
+. test-init.sh
+
+echo AC_OUTPUT >> configure.ac
+: > Makefile.am
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE
+
+mkdir bin
+cat > bin/rm <<'END'
+#!/bin/sh
+set -e; set -u;
+PATH=$original_PATH; export PATH
+rm_opts=
+while test $# -gt 0; do
+ case $1 in
+ -*) rm_opts="$rm_opts $1";;
+ *) break;;
+ esac
+ shift
+done
+if test $# -eq 0; then
+ echo "Oops, fake rm called without arguments" >&2
+ exit 1
+else
+ exec rm $rm_opts "$@"
+fi
+END
+chmod a+x bin/rm
+
+original_PATH=$PATH
+PATH=$(pwd)/bin$PATH_SEPARATOR$PATH
+export PATH original_PATH
+
+rm -f && exit 99 # Sanity check.
+
+./configure 2>stderr && { cat stderr >&2; exit 1; }
+cat stderr >&2
+
+grep "'rm' program.* unable to run without file operands" stderr
+$FGREP "tell address@hidden about your system" stderr
+$FGREP "install GNU coreutils" stderr
+$EGREP "(^| |')ACCEPT_INFERIOR_RM_PROGRAM($| |')" stderr
+
+ACCEPT_INFERIOR_RM_PROGRAM=yes; export ACCEPT_INFERIOR_RM_PROGRAM
+
+./configure
+$MAKE
+$MAKE distcheck
+
+# For the sake of our exit trap.
+PATH=$original_PATH; export PATH
+
+:
diff --git a/t/spy-rm.tap b/t/spy-rm.tap
index 29840ab..3b8dd2d 100755
--- a/t/spy-rm.tap
+++ b/t/spy-rm.tap
@@ -19,10 +19,10 @@
# to hold on all non-museum systems, and will soon be mandated
# by POSIX as well) in future version of automake, to simplify
# automake-provided cleanup rules.
-# References:
-# <http://lists.gnu.org/archive/html/bug-autoconf/2012-02/msg00002.html>
-# <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10819>
-# <http://austingroupbugs.net/view.php?id=542>
+# See automake bug#10828.
+# Other references:
+# <http://lists.gnu.org/archive/html/bug-autoconf/2012-02/msg00002.html>
+# <http://austingroupbugs.net/view.php?id=542>
am_create_testdir=empty
. test-init.sh
hooks/post-receive
--
GNU Automake
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Automake-commit] [SCM] GNU Automake branch, master, updated. v1.13.1-132-g2c72b15,
Stefano Lattarini <=