From: Stefano Lattarini Date: Fri, 19 Dec 2014 23:01:15 +0000 (+0100) Subject: Merge branch 'master' into ng/master X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=064a6d543a3735d93b5902ffe79ae0ec14a63b15;p=thirdparty%2Fautomake.git Merge branch 'master' into ng/master * master: Fix stupid typo in test, causing spurious failure sync: update third-part files from upstream Make sure AM_INIT_AUTOMAKE has a trailing newline dist: adjust warning messages about shar and tarZ deprecation docs: improve description of ${PACKAGE}, ${VERSION}, and similar variables 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 init: ensure $ac_aux_dir is defined before being used plans: enabling subdir-object by default is blocked on bug#13928 maint: update copyright (for files in 'master' only) maint: update copyright years maint: sync files from upstream ("make fetch") Typofixes in warning messages and manual doc: fix encoding error with UTF-8 characters NEWS: a typofix, and better word wrapping parallel-tests: avoid possible implicit "make all" in test-suite.log rule Allow user to extend .PRECIOUS target cosmetics: remove a couple of extra trailing white spaces tests: fix a spurious failure on Mac OS X docs: make clear the JAVA primary is frozen install-sh: a slightly better diagnostic, and tests enhancements install-sh: be stricter in catching invalid usages tests: more significant names for some tests tests: some cosmetic fixes tests: more significant names for a test docs: drop a few obsolescent FIXME/TODO comments, and associated text testsuite harness: report test exit status in log file TAP driver: no need to invoke AC_PROG_AWK directly TAP driver: remove perl implementation (move it into contrib/) NEWS: stop reporting "new" Automake versioning scheme post-release: micro version bump to 1.14.1a devel version release: stable micro release 1.14.1 HACKING: minor clarification tests: make install-info-dir.sh print more debugging info tests: remove too-brittle test tap-realtime.sh maintainer: am-ft: add option to cater to clock skews sync: update INSTALL, config.guess and config.sub from upstream TAP driver: cosmetic fixes cosmetics: fix typo in a user-facing message in tests automake: account for perl hash order randomization tests: avoid use of intervals to capitalize letters cosmetics: untabify the install-sh script install-sh: assume that "set -f" and "set +f" work... install-sh: assume ${var:-value} works as expected install-sh: assume 'dirname' is available and working correctly distcheck: don't allow overriding of --prefix and --srcdir by the user tests: expose bug#14991 (relates to 'distcheck') tests: fix spurious failure when zip is present but unzip is not tests: fix spurious failure due to localization issues NEWS: update with the changes since v1.14 docs: correct typos in the fix-timestamp.sh script python: byte-compile nobase_*_PYTHON files only once cosmetics: typofix in the 'missing' script test: avoid false positives in 'cc-no-c-o' script test harness: improve catching of usage errors in script 'test-driver' tests: fix a spurious failure on NetBSD-current am-ft: make the environment available earlier NEWS: post-release tweaks (for 1.14.x series) tests: avoid a spurious failure on MacOS X 10.6.8 tests: don't risk hanging on the 'cl' requirement post-release: micro version bump (1.14a) post-release: micro version bump (1.14.0a) release: stable minor release 1.14 Signed-off-by: Stefano Lattarini --- 064a6d543a3735d93b5902ffe79ae0ec14a63b15 diff --cc Makefile.am index 35f1d003e,7e1c74800..ecd3a1a10 --- a/Makefile.am +++ b/Makefile.am @@@ -86,7 -92,13 +86,8 @@@ ChangeLog # Third-party, obsolescent or experimental stuff. EXTRA_DIST += \ + contrib/tap-driver.pl \ contrib/check-html.am \ - contrib/multilib/README \ - contrib/multilib/config-ml.in \ - contrib/multilib/symlink-tree \ - contrib/multilib/multilib.am \ - contrib/multilib/multi.m4 \ contrib/README # Older files, kept mostly for historical interest. diff --cc bin/automake.in index 09da0ff24,4cee0d0be..13b27d155 --- a/bin/automake.in +++ b/bin/automake.in @@@ -3778,8 -4526,9 +3778,9 @@@ sub handle_factored_dependencies ( # to append dependencies. This would not work if Automake # refrained from defining its own .PHONY target as it does # with other overridden targets. - # Likewise for '.MAKE' and '.PRECIOUS'. ++ # Likewise for '.PRECIOUS'. my @undefined_conds = (TRUE,); - if ($_ ne '.PHONY') - if ($_ ne '.PHONY' && $_ ne '.MAKE' && $_ ne '.PRECIOUS') ++ if ($_ ne '.PHONY' && $_ ne '.PRECIOUS') { @undefined_conds = Automake::Rule::define ($_, 'internal', diff --cc configure.ac index ad829902f,3b6b07a6d..b36c30bcd --- a/configure.ac +++ b/configure.ac @@@ -39,11 -39,11 +39,11 @@@ AC_SUBST([am_AUTOUPDATE], ["${AUTOUPDAT dnl We call AC_PROG_CC in an unusual way, and only for use in our dnl testsuite, so also use 'no-dependencies' and 'no-define' among dnl the automake options to avoid bloating and potential problems. -AM_INIT_AUTOMAKE([-Wall -Werror dist-xz filename-length-max=99 +AM_INIT_AUTOMAKE([ng -Wall -Werror filename-length-max=99 no-define no-dependencies]) - ## Keep this on a line of its own, since it must be found and processed - ## by the 'update-copyright' rule in our Makefile. + # Keep this on a line of its own, since it must be found and processed + # by the 'update-copyright' rule in our Makefile. RELEASE_YEAR=2014 AC_SUBST([RELEASE_YEAR]) diff --cc doc/automake-ng.texi index 11ae9c907,9e7f58201..2c4b4479b --- a/doc/automake-ng.texi +++ b/doc/automake-ng.texi @@@ -1,7 -1,9 +1,9 @@@ \input texinfo @c -*-texinfo-*- @c %**start of header -@setfilename automake.info -@settitle automake +@setfilename automake-ng.info +@settitle automake-ng + @documentencoding UTF-8 + @documentlanguage en @setchapternewpage off @c %**end of header @@@ -9098,15 -9109,14 +9109,15 @@@ AM_LOG_FLAGS = - @end example @noindent -will invoke @samp{$(PERL) -w foo.pl}, @samp{$(PYTHON) -v bar.py}, +The above will invoke @samp{$(PERL) -w foo.pl}, @samp{$(PYTHON) -v bar.py}, and @samp{./wrapper-script -d baz} to produce @file{foo.log}, -@file{bar.log}, and @file{baz.log}, respectively. The @file{foo.trs}, -@file{bar.trs} and @file{baz.trs} files will be automatically produced -as a side-effect. +@file{bar.log}, and @file{baz.log}, respectively, and will ensure +the python module @file{mymod.py} is built before the @file{bar.py} +test is run. The @file{foo.trs}, @file{bar.trs} and @file{baz.trs} +files will be automatically produced as a side-effect. It's important to note that, differently from what we've seen for the - serial test harness (@pxref{Parallel Test Harness}), the + serial test harness (@pxref{Serial Test Harness}), the @code{AM_TESTS_ENVIRONMENT} and @code{TESTS_ENVIRONMENT} variables @emph{cannot} be use to define a custom test runner; the @code{LOG_COMPILER} and @code{LOG_FLAGS} (or their extension-specific diff --cc lib/Automake/Rule.pm index 44ff72d46,5544fc042..cce69b7fa --- a/lib/Automake/Rule.pm +++ b/lib/Automake/Rule.pm @@@ -295,8 -340,10 +295,8 @@@ sub reset( # Tarballing. 'dist-all' => [], - # Phonying. '.PHONY' => [], + '.PRECIOUS' => [], - # Recursive install targets (so "make -n install" works for BSD Make). - '.MAKE' => [], ); %actions = (); } diff --cc lib/am/distcheck.mk index 6a05e3982,000000000..9dfb5ad02 mode 100644,000000..100644 --- a/lib/am/distcheck.mk +++ b/lib/am/distcheck.mk @@@ -1,246 -1,0 +1,249 @@@ +## automake - create Makefile.in from Makefile.am +## Copyright (C) 2001-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. + + +# ---------------------------------------- # +# Building various distribution flavors. # +# ---------------------------------------- # + +# ---------------------------------------------------------------------- +# FIXME: how and where are these old comments still relevant? +# ---------------------------------------------------------------------- +# Note that we don't use GNU tar's '-z' option. One reason (but +# not the only reason) is that some versions of tar (e.g., OSF1) +# interpret '-z' differently. +# +# The -o option of GNU tar used to exclude empty directories. This +# behavior was fixed in tar 1.12 (released on 1997-04-25). But older +# versions of tar are still used (for instance NetBSD 1.6.1 ships +# with tar 1.11.2). We do not do anything specific w.r.t. this +# incompatibility since packages where empty directories need to be +# present in the archive are really unusual. +# ---------------------------------------------------------------------- + +# TODO: this definition-oriented interface is almost good enough to offer +# as a public API allowing the user to define and use new archive formats. +# However, we must think carefully about possible problems before setting +# the API in stone. So, for the moment, we keep this internal and +# private; there will be time to make it public, once (and if) there's +# any request from the user base. + +am.dist.all-formats = + +am.dist.all-formats += gzip +am.dist.ext.gzip = tar.gz +am.dist.compress-cmd.gzip = GZIP=$(GZIP_ENV) gzip -c +am.dist.uncompress-cmd.gzip = GZIP=$(GZIP_ENV) gzip -dc + +am.dist.all-formats += bzip2 +am.dist.ext.bzip2 = tar.bz2 +am.dist.compress-cmd.bzip2 = BZIP2=$${BZIP2--9} bzip2 -c +am.dist.uncompress-cmd.bzip2 = bzip2 -dc + +am.dist.all-formats += lzip +am.dist.ext.lzip = tar.lz +am.dist.compress-cmd.lzip = lzip -c $${LZIP_OPT--9} +am.dist.uncompress-cmd.lzip = lzip -dc + +am.dist.all-formats += xz +am.dist.ext.xz = tar.xz +am.dist.compress-cmd.xz = XZ_OPT=$${XZ_OPT--e} xz -c +am.dist.uncompress-cmd.xz = xz -dc + +am.dist.all-formats += zip +am.dist.ext.zip = zip +am.dist.create-cmd.zip = \ + rm -f $(distdir).zip && zip -rq $(distdir).zip $(distdir) +am.dist.extract-cmd.zip = \ + unzip $(distdir).zip + +# This is namespace-safe, so it's OK to accept values from +# the environment. +AM_DIST_FORMATS ?= gzip + +am.dist.bad-targets := \ + $(filter-out $(am.dist.all-formats),$(AM_DIST_FORMATS)) +ifdef am.dist.bad-targets + $(call am.fatal,Invalid distribution formats: $(am.dist.bad-targets)) +endif + +am.dist.all-targets = $(patsubst %,.am/dist-%,$(am.dist.all-formats)) +am.dist.default-targets = $(patsubst %,.am/dist-%,$(AM_DIST_FORMATS)) + +am.dist.default-archives = \ + $(foreach x,$(AM_DIST_FORMATS),$(distdir).$(am.dist.ext.$x)) + +define am.dist.create-archive-for-format.aux +$(or $(am.dist.create-cmd.$1), \ + tardir=$(distdir) && $(am__tar) \ + | $(am.dist.compress-cmd.$1) >$(distdir).$(am.dist.ext.$1)) +endef +am.dist.create-archive-for-format = $(call $0.aux,$(strip $1)) + +define am.dist.extract-archive-for-format.aux +$(or $(am.dist.extract-cmd.$1), \ + $(am.dist.uncompress-cmd.$1) $(distdir).$(am.dist.ext.$1) \ + | $(am__untar)) +endef +am.dist.extract-archive-for-format = $(call $0.aux,$(strip $1)) + +# The use of this option to pass arguments to the 'gzip' invocation is +# not only documented in the manual and useful for better compatibility +# with mainline Automake, but also actively employed by some important +# makefile fragments (e.g., Gnulib's 'top/maint.mk', at least up to +# commit v0.0-7569-gec58403). So keep it. +GZIP_ENV = --best + +.PHONY: $(am.dist.all-targets) +$(am.dist.all-targets): .am/dist-%: distdir + $(call am.dist.create-archive-for-format,$*) + +ifdef SUBDIRS +AM_RECURSIVE_TARGETS += dist dist-all +endif + +.PHONY: dist dist-all +dist dist-all: $(am.dist.default-targets) + $(am.dist.post-remove-distdir) + + +# ---------------------------- # +# Checking the distribution. # +# ---------------------------- # + +ifdef SUBDIRS +AM_RECURSIVE_TARGETS += distcheck +endif + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +.PHONY: distcheck +distcheck: dist + $(call am.dist.extract-archive-for-format, \ + $(firstword $(AM_DIST_FORMATS))) +## Make the new source tree read-only. Distributions ought to work in +## this case. However, make the top-level directory writable so we +## can make our new subdirs. + chmod -R a-w $(distdir) + chmod u+w $(distdir) + mkdir $(distdir)/_build $(distdir)/_inst +## Undo the write access. + chmod a-w $(distdir) +## With GNU make, the following command will be executed even with "make -n", +## due to the presence of '$(MAKE)'. That is normally all well (and '$(MAKE)' +## is necessary for things like parallel distcheck), but here we don't want +## execution. To avoid MAKEFLAGS parsing hassles, use a witness file that a +## non-'-n' run would have just created. + test -d $(distdir)/_build || exit 0; \ +## Compute the absolute path of '_inst'. Strip any leading DOS drive +## to allow DESTDIR installations. Otherwise "$(DESTDIR)$(prefix)" would +## expand to "c:/temp/am-dc-5668/c:/src/package/package-1.0/_inst". + dc_install_base=`cd $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ +## We will attempt a DESTDIR install in $dc_destdir. We don't +## create this directory under $dc_install_base, because it would +## create very long directory names. + && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ + $(if $(am.dist.handle-distcheck-hook),&& $(MAKE) distcheck-hook) \ + && cd $(distdir)/_build \ + && ../configure --srcdir=.. --prefix="$$dc_install_base" \ + $(if $(am.dist.handle-gettext),--with-included-gettext) \ - ## Additional flags for configure. Keep this last in the configure - ## invocation so the developer and user can override previous options, - ## and let the user's flags take precedence over the developer's ones. ++## Additional flags for configure. + $(AM_DISTCHECK_CONFIGURE_FLAGS) \ + $(DISTCHECK_CONFIGURE_FLAGS) \ ++## At the moment, the code doesn't actually support changes in these --srcdir ++## and --prefix values, so don't allow them to be overridden by the user or ++## the developer. That used to be allowed, and caused issues in practice ++## (in corner-case usages); see automake bug#14991. ++ --srcdir=.. --prefix="$$dc_install_base" \ + && $(MAKE) \ + && $(MAKE) dvi \ + && $(MAKE) check \ + && $(MAKE) install \ + && $(MAKE) installcheck \ + && $(MAKE) uninstall \ + && $(MAKE) distuninstallcheck_dir="$$dc_install_base" \ + distuninstallcheck \ +## Make sure the package has proper DESTDIR support (we could not test this +## in the previous install/installcheck/uninstall test, because it's reasonable +## for installcheck to fail in a DESTDIR install). +## We make the '$dc_install_base' read-only because this is where files +## with missing DESTDIR support are likely to be installed. + && chmod -R a-w "$$dc_install_base" \ +## The logic here is quite convoluted because we must clean $dc_destdir +## whatever happens (it won't be erased by the next run of distcheck like +## $(distdir) is). + && ({ \ +## Build the directory, so we can cd into it even if "make install" +## didn't create it. Use mkdir, not $(MKDIR_P) because we want to +## fail if the directory already exists (PR/413). + (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ + && $(MAKE) DESTDIR="$$dc_destdir" install \ + && $(MAKE) DESTDIR="$$dc_destdir" uninstall \ + && $(MAKE) DESTDIR="$$dc_destdir" \ + distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ + } || { rm -rf "$$dc_destdir"; exit 1; }) \ + && rm -rf "$$dc_destdir" \ + && $(MAKE) dist \ +## Make sure to remove the dists we created in the test build directory. + && rm -f $(am.dist.default-archives) \ + && $(MAKE) distcleancheck + $(am.dist.post-remove-distdir) + @(echo "$(distdir) archives ready for distribution: "; \ + list='$(am.dist.default-archives)'; \ + for i in $$list; do echo $$i; done; \ + ) | sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' + +# Define distuninstallcheck_listfiles and distuninstallcheck separately +# from distcheck, so that they can be overridden by the user. +.PHONY: distuninstallcheck +distuninstallcheck_listfiles = find . -type f -print +# The 'dir' file (created by install-info) might still exist after +# uninstall, so we must be prepared to account for it. The following +# check is not 100% strict, but is definitely good enough, and even +# accounts for overridden $(infodir). +am.dist.uninstallcheck-listfiles = $(distuninstallcheck_listfiles) \ + | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' +distuninstallcheck: + @test -n '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: trying to run $@ with an empty' \ + '$$(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + cd '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + test `$(am.dist.uninstallcheck-listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left after uninstall:" ; \ + if test -n "$(DESTDIR)"; then \ + echo " (check DESTDIR support)"; \ + fi ; \ + $(distuninstallcheck_listfiles) ; \ + exit 1; } >&2 + +# Define '$(distcleancheck_listfiles)' and 'distcleancheck' separately +# from distcheck, so that they can be overridden by the user. +ifeq ($(call am.vars.is-undef,distcleancheck_listfiles),yes) + distcleancheck_listfiles := find . -type f -print +endif +.PHONY: distcleancheck +distcleancheck: distclean + @if test '$(srcdir)' = . ; then \ + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ + exit 1 ; \ + fi + @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left in build directory after distclean:" ; \ + $(distcleancheck_listfiles) ; \ + exit 1; } >&2 diff --cc lib/am/python.am index 8e29fca43,5c36a2cf4..1a5e6ee61 --- a/lib/am/python.am +++ b/lib/am/python.am @@@ -46,7 -62,11 +46,7 @@@ if %?BASE else :; fi else !%?BASE% @list='$(%DIR%_PYTHON)'; test -n "$(%NDIR%dir)" || list=; \ - $(am__nobase_list) | while read dir files; do \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(%NDIR%dir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(%NDIR%dir)" || exit 1; \ - fi; \ + $(am__nobase_list) | { while read dir files; do \ xfiles=; for p in $$files; do \ ## A file can be in the source directory or the build directory. if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \ diff --cc lib/am/texi-vers.am index fb1b5964b,ec91dfe02..5e8010b31 --- a/lib/am/texi-vers.am +++ b/lib/am/texi-vers.am @@@ -32,13 -39,20 +32,13 @@@ am.dist.common-files += %VTEXI% %STAMPV echo "@set UPDATED $$1 $$2 $$3"; \ echo "@set UPDATED-MONTH $$2 $$3"; \ echo "@set EDITION $(VERSION)"; \ - echo "@set VERSION $(VERSION)") > %VTI%.tmp - @if cmp -s %VTI%.tmp %VTEXI%; then \ - 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%.$$$$ ++ echo "@set VERSION $(VERSION)") > %VTI%.$$$$.tmp ++ @if cmp -s %VTI%.$$$$.tmp %VTEXI%; then \ ++ rm -f %VTI%.$$$$.tmp; \ + else \ - echo "Updating %VTEXI%" && mv -f %VTI%.tmp %VTEXI%; \ ++ echo "Updating %VTEXI%" && mv -f %VTI%.$$$$.tmp %VTEXI%; \ + fi; @cp %VTEXI% $@ - am.clean.mostly.f += %VTI%.tmp -mostlyclean-am: mostlyclean-%VTI% -mostlyclean-%VTI%: - -rm -f %VTI%.tmp* %VTEXI%.tmp* - -maintainer-clean-am: maintainer-clean-%VTI% -maintainer-clean-%VTI%: -%MAINTAINER-MODE% -rm -f %STAMPVTI% %VTEXI% - -.PHONY: mostlyclean-%VTI% maintainer-clean-%VTI% ++am.clean.mostly.f += %VTI%.[0-9]*.tmp +am.clean.maint.f += %STAMPVTI% %VTEXI% diff --cc lib/missing index d20e12217,f62bbae30..4110bbab9 --- a/lib/missing +++ b/lib/missing @@@ -1,7 -1,7 +1,7 @@@ #! /bin/sh # Common wrapper for a few potentially missing GNU programs. - scriptversion=2012-06-27.11; # UTC -scriptversion=2013-10-28.13; # UTC ++scriptversion=2014-12-20.00; # UTC # Copyright (C) 1996-2014 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard , 1996. diff --cc lib/tap-driver.sh index 5ae459f59,4254e2b3d..865036683 --- a/lib/tap-driver.sh +++ b/lib/tap-driver.sh @@@ -19,11 -19,11 +19,11 @@@ # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. -# This file is maintained in Automake, please report +# This file is maintained in Automake-NG, please report # bugs to or send patches to -# . +# . - scriptversion=2011-12-27.17; # UTC + scriptversion=2013-12-23.17; # UTC # Make unconditional expansion of undefined variables an error. This # helps a lot in preventing typo-related bugs. diff --cc lib/test-driver index a4d123920,8e575b017..2eb2fe319 --- a/lib/test-driver +++ b/lib/test-driver @@@ -73,8 -73,20 +73,20 @@@ while test $# -gt 0; d shift done + missing_opts= + test x"$test_name" = x && missing_opts="$missing_opts --test-name" + test x"$log_file" = x && missing_opts="$missing_opts --log-file" + test x"$trs_file" = x && missing_opts="$missing_opts --trs-file" + if test x"$missing_opts" != x; then + usage_error "the following mandatory options are missing:$missing_opts" + fi + + if test $# -eq 0; then + usage_error "missing argument" + fi + if test $color_tests = yes; then - # Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'. + # Keep in sync with 'lib/am/color-tests.am:$(am.test-suite.tty-colors)'. red='' # Red. grn='' # Green. lgn='' # Light green. diff --cc m4/init.m4 index 61c965ec4,6a1d25e74..4a00a90dc --- a/m4/init.m4 +++ b/m4/init.m4 @@@ -83,9 -87,10 +83,9 @@@ AM_MISSING_PROG([MAKEINFO], [makeinfo] AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl - # We need awk for the "check" target. The system "awk" is bad on - # some platforms. + # We need awk for the "check" target (and possibly the TAP driver). The + # system "awk" is bad on some platforms. AC_REQUIRE([AC_PROG_AWK])dnl -AC_REQUIRE([AC_PROG_MAKE_SET])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) @@@ -149,8 -160,18 +149,12 @@@ to "yes", and re-run configure END AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) fi - fi]) + fi + dnl The trailing newline in this macro's definition is deliberate, for + dnl backward compatibility and to allow trailing 'dnl'-style comments + dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. + ]) -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 -dnl mangled by Autoconf and run in a shell conditional statement. -m4_define([_AC_COMPILER_EXEEXT], -m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) - # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. diff --cc t/Makefile.inc index 9ba574a5c,5f10d90ef..a7b371439 --- a/t/Makefile.inc +++ b/t/Makefile.inc @@@ -33,72 -33,11 +33,72 @@@ TAP_LOG_DRIVER = AM_TAP_AWK='$(AWK)' $( AM_TAP_LOG_DRIVER_FLAGS = --merge EXTRA_DIST += %D%/README %D%/ax/is %D%/ax/is_newest %D%/ax/deltree.pl - + -## Will be updated later. -TESTS = +# Hand-written tests for stuff in 'contrib/'. +include $(srcdir)/contrib/%D%/Makefile.inc +# All tests, both hand-written and autogenerated. +# IMPORTANT: This assumes that the autogenerated tests are placed +# in the $(srcdir) as well! +all_TESTS = \ + $(wildcard $(srcdir)/%D%/*.sh) \ + $(wildcard $(srcdir)/%D%/*.tap) \ + $(wildcard $(srcdir)/%D%/pm/*.pl) + +# This is to ensure longer-running tests will be run earlier, which is +# useful when running the testsuite in parallel on multicore machines. +# Here too we assume that the autogenerated tests are placed in $(srcdir). +long_running_TESTS = \ + $(srcdir)/%D%/dist-many.sh \ + $(srcdir)/%D%/parallel-tests-many.sh \ + $(srcdir)/%D%/add-missing.tap \ + $(srcdir)/%D%/instspc.tap \ + $(wildcard $(srcdir)/%D%/depcomp-*.tap) \ + $(wildcard $(srcdir)/%D%/*libtool*.sh) \ + $(wildcard $(srcdir)/%D%/lt*.sh) \ + $(wildcard $(srcdir)/%D%/remake*.sh) + +TESTS = \ + $(long_running_TESTS) \ + $(filter-out $(long_running_TESTS), $(all_TESTS)) \ + $(contrib_TESTS) + +EXTRA_DIST += $(TESTS) + +# FIXME: this "expected failures" are in truth an hack used to +# FIXME: to verify that some incorrect usages of our perl libraries +# FIXME: raise an error. We should find a cleaner way to check that. +perl_fake_XFAIL_TESTS = \ + %D%/pm/Cond2.pl \ + %D%/pm/Cond3.pl \ + %D%/pm/DisjCon2.pl \ + %D%/pm/DisjCon3.pl \ + %D%/pm/Version2.pl \ + %D%/pm/Version3.pl + +XFAIL_TESTS = \ + %D%/all.sh \ + %D%/override-suggest-local.sh \ + %D%/comments-in-var-def.sh \ + %D%/cond17.sh \ + %D%/dist-srcdir2.sh \ + %D%/gcj6.sh \ + %D%/txinfo-nodist-info.sh \ + %D%/override-conditional-2.sh \ + %D%/dist-pr109765.sh \ + %D%/instdir-cond2.sh \ + %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) + # Some testsuite-influential variables should be overridable from the # test scripts, but not from the environment. # Keep this in sync with the similar list in ax/runtest.in. diff --cc t/ax/am-test-lib.sh index 062ddeb70,408ea1d75..4c1030caf --- a/t/ax/am-test-lib.sh +++ b/t/ax/am-test-lib.sh @@@ -630,9 -773,13 +615,13 @@@ require_tool ( # in the environment "by hand" before calling the testsuite. export CC CPPFLAGS echo "$me: running $CC -?" - $CC -? || skip_all_ "Microsoft C compiler '$CC' not available" + # The IRAF package (http://iraf.noao.edu/) contains a 'cl' program + # which is interactive, and which could cause the testsuite to hang + # if its standard input is not redirected. See automake bug#14707. + $CC -? Makefile.am << 'END' -# initial comment -variable = value-before-comment \ -# - -# comment -SUBDIRS = foo \ -# bar - +info_TEXINFOS = foo.texi bar.texi baz.texi END - echo '@setfilename foo.inf' > foo.texi - echo '@setfilename bar' > bar.texi - echo '@setfilename baz.texi' > baz.texi -mkdir foo ++echo '@setfilename foo.inf' > foo.texi ++echo '@setfilename bar' > bar.texi ++echo '@setfilename baz.texi' > baz.texi +: > texinfo.tex $ACLOCAL AUTOMAKE_fails -grep '^Makefile\.am:3:.*backslash' stderr -grep '^Makefile\.am:7:.*backslash' stderr + - grep "foo\.texi:.* 'foo.inf'.*unrecognized extension" stderr ++grep "foo\.texi:.* 'foo\.inf'.*unrecognized extension" stderr +grep "bar\.texi:.* 'bar'.*unrecognized extension" stderr - grep "baz\.texi:.* 'baz.texi'.*unrecognized extension" stderr ++grep "baz\.texi:.* 'baz\.texi'.*unrecognized extension" stderr :