summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefano Lattarini <stefano.lattarini@gmail.com>2014-12-17 18:21:04 +0100
committerStefano Lattarini <stefano.lattarini@gmail.com>2014-12-17 18:21:04 +0100
commit4b4d63009aaa057a013cfc5c7e3c7cd0d55f7bfe (patch)
tree7f69880f86968333be277861c509b501a53c3972
parent9042530473b52251a4022cc0a0e02636b9a53211 (diff)
parent3f9fc60baa2e7f9324e17a26f592e92148b7117c (diff)
downloadautomake-4b4d63009aaa057a013cfc5c7e3c7cd0d55f7bfe.tar.gz
Merge branch 'minor'
* minor: Fix dumb logic error preventing $install_sh from being be overridden Automake docs: fix typos and use of British English Expose automake bug#19311 build: fix race in parallel builds build: fix race in parallel builds
-rw-r--r--THANKS1
-rw-r--r--doc/automake.texi12
-rw-r--r--lib/am/texi-vers.am18
-rw-r--r--m4/install-sh.m42
-rw-r--r--t/auxdir-pr19311.sh45
-rw-r--r--t/list-of-tests.mk2
6 files changed, 64 insertions, 16 deletions
diff --git a/THANKS b/THANKS
index eef67c353..6fd71150c 100644
--- a/THANKS
+++ b/THANKS
@@ -393,6 +393,7 @@ Theodoros V. Kalamatianos thkala@gmail.com
Thien-Thi Nguyen ttn@glug.org
Thomas Fitzsimmons fitzsim@redhat.com
Thomas Gagne tgagne@ix.netcom.com
+Thomas Jahns jahns@dkrz.de
Thomas Klausner tk@giga.or.at
Thomas Morgan tmorgan@pobox.com
Thomas Schwinge tschwinge@gnu.org
diff --git a/doc/automake.texi b/doc/automake.texi
index fa2251721..e566f7b71 100644
--- a/doc/automake.texi
+++ b/doc/automake.texi
@@ -1831,7 +1831,7 @@ variable definitions.
@cindex indentation in Makefile.am
Generally, Automake is not particularly smart in the parsing of unusual
Makefile constructs, so you're advised to avoid fancy constructs or
-``creative'' use of whitespaces.
+``creative'' use of whitespace.
@c Keep this in sync with doc-parsing-buglets-tabs.sh
For example, @key{TAB} characters cannot be used between a target name
and the following ``@code{:}'' character, and variable assignments
@@ -3276,7 +3276,7 @@ find third-party @file{.m4} files. When this option is given, normal
processing is suppressed. This option was used @emph{in the past} by
third-party packages to determine where to install @file{.m4} macro
files, but @emph{this usage is today discouraged}, since it causes
-@samp{$(prefix)} not to be thoroughly honoured (which violates the
+@samp{$(prefix)} not to be thoroughly honored (which violates the
GNU Coding Standards), and a similar semantics can be better obtained
with the @env{ACLOCAL_PATH} environment variable; @pxref{Extending aclocal}.
@@ -3474,7 +3474,7 @@ Also note that, if the @option{--install} option is used, any @file{.m4}
file containing a required macro that is found in a directory listed in
@env{ACLOCAL_PATH} will be installed locally.
@c Keep in sync with aclocal-path-installed-serial.sh
-In this case, serial numbers in @file{.m4} are honoured too,
+In this case, serial numbers in @file{.m4} are honored too,
@pxref{Serials}.
Conversely to @file{dirlist}, @env{ACLOCAL_PATH} is useful if you are
@@ -7854,7 +7854,7 @@ All of these targets can be extended using @samp{-local} rules
If the @file{.texi} file @code{@@include}s @file{version.texi}, then
that file will be automatically generated. The file @file{version.texi}
-defines four Texinfo flag you can reference using
+defines four Texinfo flags you can reference using
@code{@@value@{EDITION@}}, @code{@@value@{VERSION@}},
@code{@@value@{UPDATED@}}, and @code{@@value@{UPDATED-MONTH@}}.
@@ -8456,7 +8456,7 @@ dist-hook:
rm -rf `find $(distdir)/doc -type d -name .svn`
@end example
-@c The caveates described here should be documented in 'disthook.sh'.
+@c The caveats described here should be documented in 'disthook.sh'.
@noindent
Note that the @code{dist-hook} recipe shouldn't assume that the regular
files in the distribution directory are writable; this might not be the
@@ -9447,7 +9447,7 @@ The @file{.trs} file is used to register some metadata through the use
of custom reStructuredText fields. This metadata is expected to be
employed in various ways by the parallel test harness; for example, to
count the test results when printing the testsuite summary, or to decide
-which tests to re-run upon @command{make reheck}. Unrecognized metadata
+which tests to re-run upon @command{make recheck}. Unrecognized metadata
in a @file{.trs} file is currently ignored by the harness, but this might
change in the future. The list of currently recognized metadata follows.
diff --git a/lib/am/texi-vers.am b/lib/am/texi-vers.am
index b3a8d1239..ec91dfe02 100644
--- a/lib/am/texi-vers.am
+++ b/lib/am/texi-vers.am
@@ -31,25 +31,25 @@ DIST_COMMON += %VTEXI% %STAMPVTI%
## %STAMPVTI% is distributed and %DIRSTAMP% isn't: a distributed file
## should never be dependent upon a non-distributed built file.
## Therefore we ensure that %DIRSTAMP% exists in the rule.
+## Use cp + mv so that the update of %VTEXI% is atomic even if
+## the source directory is on a different file system.
?DIRSTAMP? @test -f %DIRSTAMP% || $(MAKE) $(AM_MAKEFLAGS) %DIRSTAMP%
@(dir=.; test -f ./%TEXI% || dir=$(srcdir); \
set `$(SHELL) %MDDIR%mdate-sh $$dir/%TEXI%`; \
echo "@set UPDATED $$1 $$2 $$3"; \
echo "@set UPDATED-MONTH $$2 $$3"; \
echo "@set EDITION $(VERSION)"; \
- echo "@set VERSION $(VERSION)") > %VTI%.tmp
-## Use cp and rm here because some older "mv"s can't move across
-## filesystems. Furthermore, GNU "mv" in the AmigaDOS environment
-## can't handle this.
- @cmp -s %VTI%.tmp %VTEXI% \
- || (echo "Updating %VTEXI%"; \
- cp %VTI%.tmp %VTEXI%)
- -@rm -f %VTI%.tmp
+ echo "@set VERSION $(VERSION)") > %VTI%.tmp$$$$ && \
+ (cmp -s %VTI%.tmp$$$$ %VTEXI% \
+ || (echo "Updating %VTEXI%" && \
+ cp %VTI%.tmp$$$$ %VTEXI%.tmp$$$$ && \
+ mv %VTEXI%.tmp$$$$ %VTEXI%)) && \
+ rm -f %VTI%.tmp$$$$ %VTEXI%.$$$$
@cp %VTEXI% $@
mostlyclean-am: mostlyclean-%VTI%
mostlyclean-%VTI%:
- -rm -f %VTI%.tmp
+ -rm -f %VTI%.tmp* %VTEXI%.tmp*
maintainer-clean-am: maintainer-clean-%VTI%
maintainer-clean-%VTI%:
diff --git a/m4/install-sh.m4 b/m4/install-sh.m4
index 094c10a85..16a3d9c33 100644
--- a/m4/install-sh.m4
+++ b/m4/install-sh.m4
@@ -10,7 +10,7 @@
# Define $install_sh.
AC_DEFUN([AM_PROG_INSTALL_SH],
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-if test x"${install_sh}" != xset; then
+if test x"${install_sh+set}" != xset; then
case $am_aux_dir in
*\ * | *\ *)
install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
diff --git a/t/auxdir-pr19311.sh b/t/auxdir-pr19311.sh
new file mode 100644
index 000000000..56c71a10a
--- /dev/null
+++ b/t/auxdir-pr19311.sh
@@ -0,0 +1,45 @@
+#! /bin/sh
+# Copyright (C) 2014 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/>.
+
+# Automake bug#19311: AC_PROG_CC called before AC_CONFIG_AUX_DIR can
+# silently force wrong $ac_aux_dir definition.
+
+am_create_testdir=empty
+required=cc
+. test-init.sh
+
+cat > configure.ac <<END
+AC_INIT([$me], [1.0])
+AC_PROG_CC
+AC_CONFIG_AUX_DIR([build-aux])
+AM_INIT_AUTOMAKE
+AC_OUTPUT([Makefile])
+END
+
+: > Makefile.am
+
+mkdir build-aux
+
+$ACLOCAL
+$AUTOMAKE -a
+$AUTOCONF
+
+test -f build-aux/compile
+test -f build-aux/install-sh
+
+./configure
+
+:
diff --git a/t/list-of-tests.mk b/t/list-of-tests.mk
index 75dda05cd..2616922d7 100644
--- a/t/list-of-tests.mk
+++ b/t/list-of-tests.mk
@@ -30,6 +30,7 @@ t/pm/Version3.pl
XFAIL_TESTS = \
t/all.sh \
+t/auxdir-pr19311.sh \
t/cond17.sh \
t/gcj6.sh \
t/override-conditional-2.sh \
@@ -186,6 +187,7 @@ t/auxdir-autodetect.sh \
t/auxdir-computed.tap \
t/auxdir-misplaced.sh \
t/auxdir-nonexistent.sh \
+t/auxdir-pr19311.sh \
t/auxdir-unportable.tap \
t/backcompat.sh \
t/backcompat2.sh \