]> git.ipfire.org Git - thirdparty/automake.git/commitdiff
Merge branch 'master' into ng/master
authorStefano Lattarini <stefano.lattarini@gmail.com>
Fri, 19 Dec 2014 23:01:15 +0000 (00:01 +0100)
committerStefano Lattarini <stefano.lattarini@gmail.com>
Fri, 19 Dec 2014 23:01:15 +0000 (00:01 +0100)
* 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 <stefano.lattarini@gmail.com>
31 files changed:
1  2 
HACKING
Makefile.am
bin/automake.in
configure.ac
contrib/tap-driver.pl
doc/automake-ng.texi
gen-testsuite-part
lib/Automake/Rule.pm
lib/Automake/Variable.pm
lib/Makefile.inc
lib/am/distcheck.mk
lib/am/python.am
lib/am/texi-vers.am
lib/missing
lib/tap-driver.sh
lib/test-driver
m4/init.m4
t/Makefile.inc
t/autohdr-subdir-pr12495.sh
t/ax/am-test-lib.sh
t/ax/test-lib.sh
t/dist-formats.tap
t/dist-install-sh.sh
t/dist-obsolete-opts.sh
t/lex-header.sh
t/silent-custom.sh
t/tap-bad-prog.tap
t/tap-doc2.sh
t/tap-signal.tap
t/test-driver-cond.sh
t/txinfo-unrecognized-extension-2.sh

diff --cc HACKING
Simple merge
diff --cc Makefile.am
index 35f1d003e9d1a217c6e84a22e75620ad776b0602,7e1c74800818e8be19e90a237afbb48f74fc1de1..ecd3a1a10e7f6f67293b835ebd086d8ab26a2cb2
@@@ -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 09da0ff24c004c2f8c9e63d133ddf3d3fcf4c798,4cee0d0be4a83dab38912f22e8313a2498a628aa..13b27d155b641182448939614dd941084d5c3457
@@@ -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 ad829902fd62d20ac51cc926314ddda4e587f5d5,3b6b07a6d9972b2462cf08e1c786b3603dfd61f9..b36c30bcde7e012e17dc1e584b990efe25be4cbd
@@@ -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])
  
Simple merge
index 11ae9c907e02edea0e65ce0e82c1ab04fcdeab1d,9e7f58201331c3474653e3d711c78b31328c9bc6..2c4b4479b95be555bd349b698d75c8f9c3cad5fd
@@@ -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
Simple merge
index 44ff72d4677a37535683085f3c3f4d3e9cbedb4a,5544fc042be8f83bd28204aee8c01b09bcbe3c64..cce69b7fa9aa2a7cc2da6d39c0b3ab17ead23d8a
@@@ -295,8 -340,10 +295,8 @@@ sub reset(
       # Tarballing.
       'dist-all'             => [],
  
-      # Phonying.
       '.PHONY'               => [],
 -     # Recursive install targets (so "make -n install" works for BSD Make).
 -     '.MAKE'              => [],
+      '.PRECIOUS'            => [],
       );
    %actions = ();
  }
Simple merge
Simple merge
index 6a05e3982e7c31c715d23865d7614cb1395bffa2,0000000000000000000000000000000000000000..9dfb5ad02dff0bbfb422fe075f934df89957fae7
mode 100644,000000..100644
--- /dev/null
@@@ -1,246 -1,0 +1,249 @@@
- ## 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.
 +## 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.
 +          $(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
index 8e29fca43b214ebae0a72088298dcc5921e2e88a,5c36a2cf4e154771ffe4d4687a185c10c8436386..1a5e6ee6164817221d7f1bf3acc3e906eed856d5
@@@ -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; \
index fb1b5964b5a1261cf765024bd50a34654fa2985d,ec91dfe02beb9b4fe3f6347a1be9c3cf52859cc0..5e8010b31340ded508b5aa9b241d873d4230d663
@@@ -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 d20e12217945cfc50315bb07bea49fc44003ad5f,f62bbae306c7e1bc28896aab8fe7bfb700a9a33e..4110bbab92222ad38b96cb7ace03287293bef8ac
@@@ -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 <pinard@iro.umontreal.ca>, 1996.
index 5ae459f59223352ea67d27707791cbebf6ee94e9,4254e2b3df1ba58cab562ca0208e46f4fe789844..865036683207337483a461366e5dc4ea3b54fd47
  # 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 <bug-automake@gnu.org> or send patches to
 -# <automake-patches@gnu.org>.
 +# <automake-ng@gnu.org>.
  
- 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 a4d123920ce5363e68108a1701aa5f7d034922ec,8e575b017d93702e9ec30bc6c3f0e08839e805e8..2eb2fe31925ef01369d4a1211a356da451e66fe6
@@@ -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='\e[0;31m' # Red.
    grn='\e[0;32m' # Green.
    lgn='\e[1;32m' # Light green.
diff --cc m4/init.m4
index 61c965ec4888e653f441feff5c47f4c26482f862,6a1d25e74874edc19a42aeef747ee7745175820b..4a00a90dcd216d2fbbcf80345e0a5a3d75c7f406
@@@ -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 9ba574a5ce6265a51b9c9c3982a720f086f2de61,5f10d90ef5e77c2c05d38724823f5b2d31f1395e..a7b3714399dc34ece496e788fcdb41e2224af87f
@@@ -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.
Simple merge
index 062ddeb70dd082b75d6dc1a56b2cbd665690b775,408ea1d7542a4ebf234fd1ea0e1fa3b73e762d57..4c1030caffe0d350412e45a4b18078817c963f53
@@@ -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 -? </dev/null \
+         || skip_all_ "Microsoft C compiler '$CC' not available"
        ;;
 -    etags)
 +    ${ETAGS-etags})
        # Exuberant Ctags will create a TAGS file even
        # when asked for --help or --version.  (Emacs's etags
        # does not have such problem.)  Use -o /dev/null
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc t/lex-header.sh
Simple merge
Simple merge
Simple merge
diff --cc t/tap-doc2.sh
Simple merge
Simple merge
Simple merge
index 5ddd408e1dfc0696a7f2be9147132824cd9276d1,9671287cff3723c67dd75c8fcf4797fd3cb36543..bf51b3fa3245e3e306b5cfa5141b90ceb987e39d
  . test-init.sh
  
  cat > 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
  
  :