platform/upstream/automake.git
12 years agoMerge branch 'maint'
Stefano Lattarini [Sun, 15 Jan 2012 21:42:34 +0000 (22:42 +0100)]
Merge branch 'maint'

* maint:
  tests: move list of tests in its own Makefile fragment
  build: silence automake build system

12 years agotests: move list of tests in its own Makefile fragment
Stefano Lattarini [Sun, 15 Jan 2012 20:07:44 +0000 (21:07 +0100)]
tests: move list of tests in its own Makefile fragment

This change will make it easier to merge maint into master, which
has a similar Makefile setup in the testsuite.

* tests/Makefile.am (include): Inclusion of ...
* tests/list-of-tests.mk: ... this new file.
* tests/Makefile.am (TESTS): Move most of its content into,
and redefine in function of ...
* tests/list-of-tests.mk (handwritten_TESTS): ... this new
variable.
* tests/gen-parallel-tests: Update.

12 years agobuild: silence automake build system
Stefano Lattarini [Sun, 15 Jan 2012 19:46:43 +0000 (20:46 +0100)]
build: silence automake build system

* configure.ac (AM_SILENT_RULES): Invoke with "yes" as a parameter,
to activate silent rules by default.
* NEWS: Update.
* Makefile.am (sc_perl_syntax): Silence its recipe unconditionally,
similarly to what is done for other syntax checks.
(release-stats): Be silent by default *but not unconditionally*,
thanks to the use of $(AM_V_GEN).
(path-check, git-diff): Be silent by default, thanks to the use
of $(AM_V_GEN).
* m4/Makefile.am ($(top_srcdir)/m4/amversion.m4): Likewise.
* doc/Makefile.am ($(srcdir)/amhello-1.0.tar.gz): Likewise.
* tests/Makefile.am ($(srcdir)/parallel-tests.am): Likewise.
($(parallel_tests)): Likewise.

12 years agoMerge branch 'maint'
Stefano Lattarini [Sun, 15 Jan 2012 16:40:09 +0000 (17:40 +0100)]
Merge branch 'maint'

* maint:
  gnupload: moved to gnulib
  sync: gitlog-to-changelog from gnulib upstream
  test defs: backport optimized 'using_gmake' implementation
  tests: unify some tests on "make -n", reducing duplication
  vala: use "$(am__cd) $(srcdir)", not "cd $(srcdir)"

+ Extra edits:

* tests/maken3.test: Carry over (with necessary adjustments) the
code from maken4.test that determines whether $MAKE supports the
special '.MAKE' target.

12 years agognupload: moved to gnulib
Stefano Lattarini [Sun, 15 Jan 2012 16:14:04 +0000 (17:14 +0100)]
gnupload: moved to gnulib

Since the gnupload script is not required by automake-generated
code (be it configure or Makefile content), and is not specifically
tied to automake in any way, it is better to have its master copy
installed in the gnulib repository, as is already done for similar
generally-useful, maintainer-oriented scripts.  We can them sync it
from there.

See also gnulib commit v0.0-6822-gf8b7120, and:
<http://lists.gnu.org/archive/html/bug-gnulib/2012-01/msg00222.html>

* Makefile.am (FETCHFILES): Added 'gnupload'.
(fetch): Also sync 'gnupload' from the gnulib repository.
* lib/gnupload: Synced from gnulib.
* NEWS: Update.

12 years agosync: gitlog-to-changelog from gnulib upstream
Stefano Lattarini [Sun, 15 Jan 2012 16:10:21 +0000 (17:10 +0100)]
sync: gitlog-to-changelog from gnulib upstream

* lib/gitlog-to-changelog: Synced from upstream, by "make fetch".

12 years agotest defs: backport optimized 'using_gmake' implementation
Stefano Lattarini [Sat, 14 Jan 2012 09:32:13 +0000 (10:32 +0100)]
test defs: backport optimized 'using_gmake' implementation

* tests/defs.in (using_gmake): Backport optimized, result-caching
implementation from master.

12 years agotests: unify some tests on "make -n", reducing duplication
Stefano Lattarini [Fri, 13 Jan 2012 20:56:54 +0000 (21:56 +0100)]
tests: unify some tests on "make -n", reducing duplication

* tests/maken2.test: Merge into ...
* tests/maken.test: ... this test, to avoid unnecessary code
duplication.  Make checks depending on GNU make conditional to
the actual presence of GNU make.
* tests/maken4.test: Similarly, merge into ...
* tests/maken3.test: ... this test.
* tests/Makefile.am (TESTS): Remove maken2.test and maken4.test.

12 years agovala: use "$(am__cd) $(srcdir)", not "cd $(srcdir)"
Stefano Lattarini [Sat, 14 Jan 2012 08:57:55 +0000 (09:57 +0100)]
vala: use "$(am__cd) $(srcdir)", not "cd $(srcdir)"

* automake.in (lang_vala_finish_target): In the generated rules,
use '$(am__cd)', not bare 'cd', to chdir into $(scdir).  Issue
revealed by the maintainer check 'sc_cd_relative_dir'.

12 years agoMerge branch 'maint'
Stefano Lattarini [Fri, 13 Jan 2012 12:20:34 +0000 (13:20 +0100)]
Merge branch 'maint'

* maint:
  dist: avoid $(distdir) removal failure on MSYS/MinGW
  tests: fix spurious failure of 'get-sysconf.test'
  coverage: expose automake bug#10470 (distcheck-related)
  tests: make 'aclocal-install-absdir.test' executable
  tests: require GNU make in 'vala-vapth.test'
  vala: fix VPATH builds
  tests: fix some bugs in the vala-vpath test

12 years agoMerge branch 'fix-pr10470' into maint
Stefano Lattarini [Fri, 13 Jan 2012 11:42:36 +0000 (12:42 +0100)]
Merge branch 'fix-pr10470' into maint

* fix-pr10470:
  dist: avoid $(distdir) removal failure on MSYS/MinGW
  coverage: expose automake bug#10470 (distcheck-related)

12 years agodist: avoid $(distdir) removal failure on MSYS/MinGW
Stefano Lattarini [Wed, 11 Jan 2012 17:09:07 +0000 (18:09 +0100)]
dist: avoid $(distdir) removal failure on MSYS/MinGW

This change fixes automake bug#10470.

On MSYS (1.0.17) it is not possible to remove a directory that is
in use, and this, together with timing issues, could cause spurious
failures in the cleanup code of the "distcheck" recipe.  In fact,
it should be noted that assuming a directory can be removed while
it the CWD of a running process is a POSIX violation:

  "If the directory is the root directory or the current working
   directory of any process, it is unspecified whether the function
   succeeds, or whether it shall fail and set errno to [EBUSY]."

* lib/am/distdir.am (am__remove_distdir): If rm fails, sleep some
seconds and retry, to give potential "pending" processes some time
to exit and "release" the directory.
* tests/Makefile.am (XFAIL_TESTS): Remove 'distcheck-pr10470.test'.

Report and suggestions by Peter Rosin and Eric Blake.

12 years agotests: fix spurious failure of 'get-sysconf.test'
Stefano Lattarini [Sun, 1 Jan 2012 18:06:00 +0000 (19:06 +0100)]
tests: fix spurious failure of 'get-sysconf.test'

* tests/get-sysconf.test: Do not assume that a ChangeLog file exists
in $(srcdir): now that the ChangeLog is autogenerated and not under
version control anymore, this is not necessary true.  Instead, if we
are running from a git checkout, use "git log" to get information on
the version of the automake snapshot being tested (and fall back on
extracting the first ChangeLog entry otherwise).

Reported by Jim Meyering in automake bug#10418.

Cherry picked from commit v1.11-1675-g104f302.

12 years agocoverage: expose automake bug#10470 (distcheck-related)
Stefano Lattarini [Thu, 12 Jan 2012 09:06:14 +0000 (10:06 +0100)]
coverage: expose automake bug#10470 (distcheck-related)

* tests/distcheck-pr10470.test: New test.
* tests/Makefile.am (TESTS, XFAIL_TESTS): Add it.

Report and suggestions by Peter Rosin and Eric Blake.

12 years agotests: make 'aclocal-install-absdir.test' executable
Stefano Lattarini [Thu, 12 Jan 2012 08:41:06 +0000 (09:41 +0100)]
tests: make 'aclocal-install-absdir.test' executable

* tests/aclocal-install-absdir.test: Make it executable.

12 years agodist: distdir not unconditionally removed anymore for xz and lzip
Stefano Lattarini [Fri, 6 Jan 2012 22:37:09 +0000 (23:37 +0100)]
dist: distdir not unconditionally removed anymore for xz and lzip

This change fixes automake bug#10444 a.k.a. bug#10448.

The 'dist-xz' and 'dist-lzip' recipes were erroneously using
'$(am__remove_distdir)' instead of '$(am__post_remove_distdir)'
to cleanup the '$(distdir)'; so a "make dist" issued in a package
using (say) gzip and xz compression would have failed to properly
created the gzip tarball, since the distdir was unconditionally
removed by "make dist-xz" upon its completion, instead of being
left populated for the following "make dist-gzip".

The problem with 'dist-xz' was introduced in the merge commit
`v1.11-1142-g47587d1', and the problem with 'dist-lzip' was
introduced in the merge commit `v1.11-1673-gc1b14e9'

* lib/am/distdir.am (dist-xz): Use '$(am__post_remove_distdir)',
not '$(am__remove_distdir)'.
(dist-lzip): Likewise.

12 years agocoverage: archive and compression formats used by "make dist"
Stefano Lattarini [Sat, 7 Jan 2012 10:25:12 +0000 (11:25 +0100)]
coverage: archive and compression formats used by "make dist"

This change exposes automake bug#10444 a.k.a. bug#10448.

* tests/dist-formats.tap: New test.
* tests/lzip.test: Remove, it's obsolete now.
* tests/nogzip.test: Likewise.
* tests/nogzip2.test: Likewise.
* tests/xz.test: Likewise.
* tests/list-of-tests.mk: Update.

12 years agotap/awk: avoid redirection issues with bash 3.2 and earlier
Peter Rosin [Tue, 10 Jan 2012 09:01:29 +0000 (10:01 +0100)]
tap/awk: avoid redirection issues with bash 3.2 and earlier

Fixes automake bug#10465.

* lib/tap-driver.sh: Add workaround for bash 3.2 and earlier, which
sometimes does not properly set '$?' when failing to write redirected
output of a compound command.  See the Autoconf manual for more details.

The workaround was pointed out by Eric Blake.

12 years agotests: detect that MSYS lacks symlinks
Peter Rosin [Mon, 9 Jan 2012 11:43:30 +0000 (12:43 +0100)]
tests: detect that MSYS lacks symlinks

* tests/self-check-cleanup.tap: Also check if "ln -s" really created a
symlink to cater for MSYS falling back to an ordinary copy.  Also, don't
chmod the symlinks if they were never created.

12 years agotests: avoid many spurious failures on MSYS due to lack of symlinks
Stefano Lattarini [Sun, 8 Jan 2012 12:36:46 +0000 (13:36 +0100)]
tests: avoid many spurious failures on MSYS due to lack of symlinks

Fixes automake bug#10441.

* tests/add-missing.tap: Do not assume the system supports real
symlinks, as this is not the case for MinGW/MSYS.  Skip checks
that would spuriously fail in that situation.
* tests/copy.test: Likewise.

Reported by Peter Rosin.

12 years agotests: require GNU make in 'vala-vapth.test'
Stefano Lattarini [Sun, 8 Jan 2012 11:49:57 +0000 (12:49 +0100)]
tests: require GNU make in 'vala-vapth.test'

* vala-vpath.test ($required): Add the "GNUmake" requirement, since
rules generated by vala support are expected to work with GNU make
only.

12 years agovala: fix VPATH builds
Ryan Lortie [Sat, 7 Jan 2012 06:08:11 +0000 (01:08 -0500)]
vala: fix VPATH builds

This change fixes automake bug#9859.

* automake.in (lang_vala_finish_target): Create the stamp file
'${derived}_vala.stamp' in $(srcdir), not in $(builddir).
Also, don't try to chdir to the $(srcdir) to trigger the rebuild
rules, since that is just wrong in a VPATH setup.
* tests/vala-vpath.test, tests/vala2.test: Extend to catch more
possible VPATH issues.
* tests/Makefile.am (XFAIL_TESTS): Remove 'vala-vpath.test'.
* NEWS, THANKS: Update.

Co-authored-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Copyright-paperwork-exempt: yes

12 years agotests: fix some bugs in the vala-vpath test
Ryan Lortie [Sat, 7 Jan 2012 06:06:37 +0000 (01:06 -0500)]
tests: fix some bugs in the vala-vpath test

* tests/vala-vpath.test: There are (trivial) problems in this
testcase that would cause the build to fail even if the core
issue were resolved.  Fix those.

Copyright-paperwork-exempt: yes

12 years agofixup: list forgotten test case in $(TESTS)
Stefano Lattarini [Fri, 6 Jan 2012 19:23:05 +0000 (20:23 +0100)]
fixup: list forgotten test case in $(TESTS)

* tests/list-of-tests.mk: Also list 'tar-override.test'.

12 years agoscripts: quote 'like this', not `like this'
Paul Eggert [Fri, 6 Jan 2012 18:46:09 +0000 (10:46 -0800)]
scripts: quote 'like this', not `like this'

This change follows up on recent changes to the GNU coding standards.
They now suggest that we should quote 'like this' or "like this" instead
of `like this'; see:
 <http://www.gnu.org/prep/standards/html_node/Quote-Characters.html>.

Gnulib is being changed accordingly, and Gnulib imports some files
directly from Automake master, so change those files to use the
straight-up style.  This affects only commentary and quoting in
diagnostics.

12 years agotests: safer declarations of test dependencies
Stefano Lattarini [Wed, 4 Jan 2012 10:14:52 +0000 (11:14 +0100)]
tests: safer declarations of test dependencies

To declare prerequisites common to all the tests, we now prefer to
use the special `check_DATA' and `check_SCRIPTS' variables rather
than "lazy" dependency declaration like "$(TEST_LOGS): DEPS ...";
this because the latter, allowing run-time overriding of the
TEST_LOGS variable, turned out to be subtly incomplete in some
situations involving non-trivial inter-test dependencies.  For
example, if the user issued a:

    make check TESTS=libtool.test

before the `defs-static' file was created (either explicitly or
implicitly), a spurious errors followed, along these lines:

 1. $(TEST_LOGS) got dynamically defined to `libtool.log';

 2. make saw that, in the Makefile, `libtool.log' was explicitly
    declared depending on `libtool-macros.log' and `defs-static';

 3. somehow, make considered the dependency on `libtool-macros.log'
   *before* considering the one on `defs-static' (which BTW is
   perfectly legitimate on make's part);

 4. to satisfy such a dependency, make set out to execute the
    test `libtool-macros.test' in order to create the file
    `libtool-macros.log';

 5. since `libtool-macros.log' was *not* in $(TEST_LOGS), it
    didn't appear to depend on the `defs-static' file, so make
    didn't consider necessary to build `defs-static' before
    running the `libtool-macros.test' script;

 6. but that script sources `./defs-static' in order to work;
    thus the test `libtool-macros.test' failed spuriously.

* tests/Makefile.am ($(TEST_LOGS)): Remove explicit declaration
of dependency on the required files/scripts; instead use ...
(check_SCRIPTS, check_DATA): ... these new variables.

12 years agotests: skip tests on perl TAP driver if TAP::Parser is not available
Stefano Lattarini [Fri, 6 Jan 2012 11:39:24 +0000 (12:39 +0100)]
tests: skip tests on perl TAP driver if TAP::Parser is not available

We had so far taken for granted that all the perl installations
modern enough to correctly run automake also came with a built-in
TAP::Parser module; unfortunately, testing on MinGW/MSYS has
shown that this is not always true, and that a lot of spurious
testsuite failures would take place in such a situation (see
automake bug#10440).

Luckily, the perl implementation of the Automake TAP driver is
only meant to be used for prototyping and consistency checks, the
"real" Automake TAP driver being the portable one implemented in
awk.  So we can simply skip the affected tests on systems lacking
TAP::Parser.

* tests/defs (fetch_tap_driver): Skip the whole test case if
the desired tap driver implementation is the perl one but the
TAP::Parser module is unavailable.
* tests/tap-bad-prog.tap: Adjust order of calls to `plan_' and
`fetch_tap_driver', to ensure the test is not skipped after the
TAP plan has been outputted (which would lead to a spurious
error).
* tests/tap-bad-signal.tap: Tweak to avoid the need to source the
`tap-setup.sh' script, as that might cause a test skip too late,
i.e., after a TAP plan has been already printed.
* tests/tap-test-number-0.test: Do not force the test to skip
when the tested TAP driver implementation is not the perl one.
On the other hand, when it *is* the perl one, skip the test if
the TAP::Parser module is unavailable.
* tests/test-driver-cond.test: Skip the part of the test actually
running "make check" if the TAP::Parser module is unavailable.
* tests/get-sysconf.test: Also print the version of the
`TAP::Parser' module, if available.

Reported by Peter Rosin.

12 years agoMerge branch 'maint'
Stefano Lattarini [Fri, 6 Jan 2012 14:01:26 +0000 (15:01 +0100)]
Merge branch 'maint'

* maint:
  dist: do not wrap calls to 'tar' with the 'missing' script
  fixup: previous commit v1.11-627-g1e0aedc
  tests: fix spurious failures due to autom4te caching

12 years agodist: do not wrap calls to 'tar' with the 'missing' script
Stefano Lattarini [Tue, 3 Jan 2012 15:12:46 +0000 (16:12 +0100)]
dist: do not wrap calls to 'tar' with the 'missing' script

The `missing' script is meant to allow non-developers to build a
package in the face of slightly-skewed timestamps (as might happen
e.g. when the package is obtained from a VCS checkout rather than
from a distribution tarball).  It is *not* the business of the
`missing' script to try to provide wrappers for all the maintainer
tools (in this case, to tool being a decent tar program).  Such
wrapping of `tar' was not only inappropriate, but it was also
preventing the legitimate overriding (at make runtime) of the
`tar' program used in the creation of the distribution tarballs.

See also automake bug#9822.

* lib/missing: Don't try to specially wrap `tar' invocations
anymore.
* m4/tar.m4 (_AM_PROG_TAR): In the definitions of the `AMTAR'
variable, do not wrap the `tar' invocation with the `missing'
script anymore.  Instead, allow the user to override the intended
tar program at make runtime, by defining the `TAR' environment
variable.
[$1 == v7]: Similarly for the definitions of the `am__tar' and
`am__untar' variables.  Since we are at it, don't make them depend
anymore on the definition of the obsolescent `AMTAR' variable.
* NEWS: Update.
* tests/missing-tar.test: Remove, it's obsolete.
* tests/tar-override.test: New test.
* tests/Makefile.am (TESTS): Update.

Reported by Akim Demaille.

12 years agofixup: previous commit v1.11-627-g1e0aedc
Stefano Lattarini [Fri, 6 Jan 2012 13:51:55 +0000 (14:51 +0100)]
fixup: previous commit v1.11-627-g1e0aedc

* tests/acloca18.test: Do not remove an aclocal.m4 file that is
needed by a later autoconf invocation.

12 years agotests: fix spurious failures due to autom4te caching
Stefano Lattarini [Fri, 6 Jan 2012 12:15:17 +0000 (13:15 +0100)]
tests: fix spurious failures due to autom4te caching

* tests/aclocal9.test: Call aclocal and autoconf with the `--force'
option.
* tests/acloca10.test: Sleep between re-runs of aclocal and autoconf.
* tests/acloca18.test: Explicitly remove also the configure script
and the aclocal.m4 before re-invoking aclocal and autoconf.

12 years agoparallel-tests: avoid trailing backslashes in make recipes
Stefano Lattarini [Thu, 5 Jan 2012 12:41:13 +0000 (13:41 +0100)]
parallel-tests: avoid trailing backslashes in make recipes

The new testsuite-harness could generate recipes with a trailing
backslash character (possibly followed by blank characters only),
in the very common case where the user hadn't defined the special
$(AM_TESTS_FD_REDIRECT) variable.  This caused spurious syntax
errors with at least older bash versions (e.g., bash 2.05b), and
could be potentially unportable to other weaker shells.

See automake bug#10436:
  <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10436>
and coreutils bug#10427:
  <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10427#8>

* lib/am/check2.am: Rework line breaks so that no backslash can
be at the end of a line.
* tests/parallel-tests-trailing-bslash.test: New test.
* tests/list-of-tests.mk: Add it.

Report and diagnosis by Paul Eggert.

12 years agoMerge branch 'maint'
Stefano Lattarini [Thu, 5 Jan 2012 19:09:24 +0000 (20:09 +0100)]
Merge branch 'maint'

* maint:
  parallel-tests: avoid issue with overly long lines in sed input

Additional edits:
* NEWS: Remove entry from merged commit, since that will also be
present in the NEWS file of automake 1.11.3.
* lib/am/check.am (check-TESTS, recheck, recheck-html): Rework
merged changes to adapt them to the different form these recipes
has assumed in the master branch (w.r.t. the maint branch).

12 years agoparallel-tests: avoid issue with overly long lines in sed input
Stefano Lattarini [Thu, 5 Jan 2012 14:13:30 +0000 (15:13 +0100)]
parallel-tests: avoid issue with overly long lines in sed input

See automake bug#10437:
  <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10437>
and coreutils bug#10427:
  <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10427#8>

* lib/am/check.am (recheck, recheck-html): In order to strip
trailing whitespace from the definition of the `$list' variable,
we used to invoke sed in a way that could cause it to get passed
overly long input lines, causing spurious failures.  So rework
the logic of the recipe to avoid any sed invocation, relying on
simpler shell idioms instead.
(check-TESTS): Reorganize the recipe to be more similar to the
one of `recheck', for consistency and simplicity.
* NEWS: Update.

Report and analysis by Paul Eggert.

12 years agotests: work around strangeness in MSYS
Peter Rosin [Thu, 5 Jan 2012 09:45:16 +0000 (10:45 +0100)]
tests: work around strangeness in MSYS

MSYS mishandles carriage returns and behaves very strangely for
directories with colon in them.  It seems that colon-directories are
somehow mixed up with drive letters.

Fixes automake bug#7849.

* tests/instspc.tap: Skip instead of erroring out when $test_string
is empty for the carriageret case, as that is expected on MSYS.  Also,
for similar reasons, skip instead of erroring out when it is not
possible to cd into the just created directory, and the directory
name contains a colon.  Update copyright years.

12 years agocosmetics: prefer the term "Windows" over "Win32"
Paul Eggert [Wed, 4 Jan 2012 15:53:02 +0000 (07:53 -0800)]
cosmetics: prefer the term "Windows" over "Win32"

Microsoft has renamed the Win32 API to "Windows API":
  <http://msdn.microsoft.com/en-us/library/aa383723.aspx>

Also, after some discussion on bug-gnulib, when talking about hosts and
platforms we believe it's better to talk about "Windows" or "native
Windows" instead:
  <https://lists.gnu.org/archive/html/bug-gnulib/2012-01/msg00009.html>
  <https://lists.gnu.org/archive/html/bug-gnulib/2012-01/msg00027.html>

* doc/automake.texi: Mention "Windows", not "Win32".
* lib/Automake/XFile.pm: Likewise.
* lib/ar-lib: Likewise.
* lib/compile: Likewise.
* tests/compile2.test: Mention "Windows", not "w32".

12 years agotest defs: skip all tests when the lib requirement isn't fulfilled
Peter Rosin [Wed, 4 Jan 2012 18:46:29 +0000 (19:46 +0100)]
test defs: skip all tests when the lib requirement isn't fulfilled

* tests/defs (lib): Use skip_all_ instead of skip_, in order to support
TAP-based test scripts.

12 years agotests: be sure to list all test cases in $(TESTS)
Stefano Lattarini [Wed, 4 Jan 2012 09:39:56 +0000 (10:39 +0100)]
tests: be sure to list all test cases in $(TESTS)

* tests/list-of-tests.mk: Due to slightly botched merges, the test
scripts `objext-pr10128.test' and `silent-nested-vars.test' weren't
being correctly listed in $(TESTS); fix this.

12 years agoMerge branch 'maint'
Stefano Lattarini [Wed, 4 Jan 2012 09:26:07 +0000 (10:26 +0100)]
Merge branch 'maint'

* maint:
  sync: auxiliary files from upstream synced
  sync: fix syncing of 'gitlog-to-changelog' script
  maintcheck: avoid false positive in sc_tests_plain_make

12 years agosync: auxiliary files from upstream synced
Stefano Lattarini [Wed, 4 Jan 2012 09:21:57 +0000 (10:21 +0100)]
sync: auxiliary files from upstream synced

* lib/texinfo.tex: Synced from upstream, by "make fetch".
* lib/gitlog-to-changelog: Likewise.
* lib/config.guess: Likewise.
* lib/config.sub: Likewise.

12 years agosync: fix syncing of 'gitlog-to-changelog' script
Stefano Lattarini [Wed, 4 Jan 2012 09:18:15 +0000 (10:18 +0100)]
sync: fix syncing of 'gitlog-to-changelog' script

* Makefile.am (FETCHFILES): Also list 'gitlog-to-changelog'.

12 years agomaintcheck: avoid false positive in sc_tests_plain_make
Stefano Lattarini [Wed, 4 Jan 2012 09:09:25 +0000 (10:09 +0100)]
maintcheck: avoid false positive in sc_tests_plain_make

* Makefile.am (sc_tests_plain_make): Ensure to only match full
`make' words.  Avoid false positive in `silent-nested-vars.test'.

12 years agoMerge branch 'maint'
Stefano Lattarini [Tue, 3 Jan 2012 22:26:56 +0000 (23:26 +0100)]
Merge branch 'maint'

* maint:
  install: pkglibexec_SCRIPTS is a valid prefix/primary combination
  coverage: expose automake bug#10128
  progs, libs: implement EXTRA_foo_DEPENDENCIES
  tests: fix spurious failures in 'pr300*.test'

12 years agoinstall: pkglibexec_SCRIPTS is a valid prefix/primary combination
Stefano Lattarini [Tue, 3 Jan 2012 08:06:09 +0000 (09:06 +0100)]
install: pkglibexec_SCRIPTS is a valid prefix/primary combination

It makes little sense for `libexec_SCRIPTS' to be accepted as valid
while `pkglibexec_SCRIPTS' is not.  So fix this inconsistency by
explicitly allowing `pkglibexec_SCRIPTS' as well.  It is worth
noting that the inconsistency has been there for a long time,
but only the quite recent commit `v1.11-373-g9ca6326' "Warnings
about primary/prefix mismatch fixed and extended" has made it
noisy enough to be noticed.

* automake.in (handle_scripts): Also list `pkglibexec' among the
prefixes valid for the `SCRIPTS' primary.
* doc/automake.texi (Scripts): Likewise.
* tests/primary-prefix-valid-couples.test: Update.
* THANKS: Likewise.
* NEWS: Likewise.

Reported by Dennis Schridde on the automake list:
<http://lists.gnu.org/archive/html/automake/2012-01/msg00002.html>

12 years agocoverage: expose automake bug#10128
Stefano Lattarini [Mon, 2 Jan 2012 19:32:54 +0000 (20:32 +0100)]
coverage: expose automake bug#10128

* tests/objext-pr10128.test: New test, still expected to fail.
* tests/Makefile.am (TESTS, XFAIL_TESTS): Add it.

12 years agoprogs, libs: implement EXTRA_foo_DEPENDENCIES
Stefano Lattarini [Mon, 2 Jan 2012 08:40:13 +0000 (09:40 +0100)]
progs, libs: implement EXTRA_foo_DEPENDENCIES

Backported from commit `v1.11-377-g6edafbb'.

The feature implemented by that change is quite unobtrusive, so
adding it to a maintenance release is acceptable.  Also, there
have been requests from real-world users for this feature since
it has been implemented in master; see automake bug#9320:
 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9320>
and this short discussion on the automake list:
 <http://lists.gnu.org/archive/html/automake/2010-11/msg00099.html>
It would be a pity to make such users wait even more (until
Automake 1.12 is out) before they could start using this feature.
Thus we backport it, so that it will appear in the next maintenance
version of automake (1.11.3).

* automake.in (handle_programs, handle_libraries)
(handle_ltlibraries): Mark EXTRA_*_DEPENDENCIES as recognized.
* doc/automake.texi (Linking, Program and Library Variables)
(LIBOBJS): Document EXTRA_*_DEPENDENCIES.
* lib/am/library.am (%LIBRARY%): Also depend on
$(EXTRA_%XLIBRARY%_DEPENDENCIES).
* lib/am/ltlibrary.am (%LTLIBRARY%): Also depend on
(%XLTLIBRARY%_DEPENDENCIES).
* lib/am/program.am (%PROGRAM%%EXEEXT%): Also depend on
$(EXTRA_%XPROGRAM%_DEPENDENCIES).
* tests/extradep.test, tests/extradep2.test: New tests.
* tests/Makefile.am (TESTS): Update.
* NEWS: Update.

12 years agotests: fix spurious failures in 'pr300*.test'
Stefano Lattarini [Tue, 3 Jan 2012 12:56:17 +0000 (13:56 +0100)]
tests: fix spurious failures in 'pr300*.test'

This change fixes automake bug#10426.

* tests/pr300-lib.test: Call configure with an explicit '--libdir'
option, to avoid spurious failures due to users possibly overriding
'${libdir}' in ther config.site files.
* tests/pr300-ltlib.test: Likewise.

Reported by Bruno Haible.

12 years agotests: fix spurious failure due to I/O buffering
Stefano Lattarini [Sun, 1 Jan 2012 20:45:52 +0000 (21:45 +0100)]
tests: fix spurious failure due to I/O buffering

* tests/parallel-tests-interrupt.tap: Ensure the dummy test script
`foo.test' flushes its standard output before starting to grep the
log file where such output is being redirected by the parallel test
harness.  Since we are at it, improve this same dummy script to
better catch unexpected behaviours and results.

Reported by Jim Meyering in automake bug#10418.

12 years agonews: fix botched merges, rebase on 1.11.2a NEWS version
Stefano Lattarini [Sun, 1 Jan 2012 13:22:35 +0000 (14:22 +0100)]
news: fix botched merges, rebase on 1.11.2a NEWS version

The NEWS file is unfortunately written in a format that doesn't
lend itself very well to automatic merges; the recent merges of
maint into master have left it full of blunders and in a somewhat
inconsistent state.

Another orthogonal issue is that the current version of NEWS
still reports all the changes since the last 1.11 version, rather
than since the latest maintenance version 1.11.2, or, even better,
since the planned next maintenance version 1.11.3.

* NEWS: Fix blunders and errors from botched merges.  Rebase the
file on the NEWS file from branch-1.11 (from which automake 1.11.3
is expected to be released).

12 years agoMerge branch 'msvc'
Stefano Lattarini [Sun, 1 Jan 2012 18:44:24 +0000 (19:44 +0100)]
Merge branch 'msvc'

* msvc:
  tests: fix spurious failure due to autom4te caching
  news: fix suboptimal wording
  tests: various minor tweakings, mostly related to AM_PROG_AR

12 years agotests: fix spurious failure due to autom4te caching
Stefano Lattarini [Sun, 1 Jan 2012 18:35:44 +0000 (19:35 +0100)]
tests: fix spurious failure due to autom4te caching

* tests/ar-lib3.test: Remove stale autom4te.cache directory, to
prevent racy, spurious failures.

Reported by Jim Meyering in automake bug#10418.

12 years agoMerge branch 'maint' into msvc
Stefano Lattarini [Sun, 1 Jan 2012 18:20:04 +0000 (19:20 +0100)]
Merge branch 'maint' into msvc

* maint:
  tests: make 'lzip.test' executable
  dist: obsolete support for lzma (superseded by xz and lzip)
  test defs: more granular overriding of the make program
  docs: fix a couple broken anchors
  dist: add support for lzip compression
  docs: fix paragraph names for automake and aclocal invocations
  tests: fix spurious failure due to autom4te caching
  fix: last entry in ChangeLog
  tests: tweak tests on silent-rules for makes without nested vars
  silent-rules: fallback for makes without nested vars

12 years agotests: fix spurious failure of 'get-sysconf.test'
Stefano Lattarini [Sun, 1 Jan 2012 18:06:00 +0000 (19:06 +0100)]
tests: fix spurious failure of 'get-sysconf.test'

* tests/get-sysconf.test: Do not assume that a ChangeLog file exists
in $(srcdir): now that the ChangeLog is autogenerated and not under
version control anymore, this is not necessary true.  Instead, if we
are running from a git checkout, use "git log" to get information on
the version of the automake snapshot being tested (and fall back on
extracting the first ChangeLog entry otherwise).

Reported by Jim Meyering in automake bug#10418.

12 years agodist: remove support for lzma (superseded by xz and lzip)
Stefano Lattarini [Sun, 1 Jan 2012 12:23:19 +0000 (13:23 +0100)]
dist: remove support for lzma (superseded by xz and lzip)

See also commit `v1.11-611-ge637fa2' (from maint), where support
for lzma compression of distribution archive had been deprecated.

* NEWS: Update.
* lib/Automake/Options.pm: Error out if the `dist-lzma' option
is used.
* lib/am/distdir.am: Remove all support for the creation of a
lzma-compressed distribution archive.
* tests/lzma.test: Update.

12 years agoMerge branch 'maint'
Stefano Lattarini [Sun, 1 Jan 2012 10:14:27 +0000 (11:14 +0100)]
Merge branch 'maint'

* maint:
  tests: make 'lzip.test' executable
  dist: obsolete support for lzma (superseded by xz and lzip)
  test defs: more granular overriding of the make program
  docs: fix a couple broken anchors
  dist: add support for lzip compression
  docs: fix paragraph names for automake and aclocal invocations
  tests: fix spurious failure due to autom4te caching
  fix: last entry in ChangeLog
  tests: tweak tests on silent-rules for makes without nested vars
  silent-rules: fallback for makes without nested vars

12 years agotests: make 'lzip.test' executable
Stefano Lattarini [Sun, 1 Jan 2012 09:42:34 +0000 (10:42 +0100)]
tests: make 'lzip.test' executable

* tests/lzip.test: Make it executable.

12 years agoMerge branch 'deprecate-lzma' into maint
Stefano Lattarini [Sun, 1 Jan 2012 09:39:10 +0000 (10:39 +0100)]
Merge branch 'deprecate-lzma' into maint

* deprecate-lzma:
  dist: obsolete support for lzma (superseded by xz and lzip)

12 years agodist: obsolete support for lzma (superseded by xz and lzip)
Stefano Lattarini [Fri, 30 Dec 2011 14:54:40 +0000 (15:54 +0100)]
dist: obsolete support for lzma (superseded by xz and lzip)

The lzma utilities are today superseded by the xz utilities; in
fact, the official site at <http://tukaani.org/lzma/> reads:

  ``LZMA Utils are legacy data compression software with high
    compression ratio.  LZMA Utils are no longer developed, ...
    Users of LZMA Utils should move to XZ Utils.''

and the existing automake manual (as of 1.11.2) already says:

  ``dist-xz
    Generate an 'xz' tar archive of the distribution. xz archives
    are frequently smaller than bzip2-compressed archives. The 'xz'
    format will soon (early 2009) displace the 'lzma' format''

Also, the `dist-lzma' target still suffers of never-solved bugs,
due to the too-high compression ratio its uses by default, which
might cause an unacceptable memory consumption when one tries to
compress or, worse, decompress the created tarballs; see also:

  <http://lists.gnu.org/archive/html/automake/2011-12/msg00025.html>
  <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9658>

* NEWS: Update.
* doc/automake.texi (Dist, Options): State that `dist-lzma' will
go away in the next major automake version.
* lib/Automake/Options.pm (_process_option_list): Deprecate
`dist-lzma'.
* tests/lzma.test: Update.

12 years agomaintcheck: fix a couple of typos in error messages
Stefano Lattarini [Sat, 31 Dec 2011 19:14:38 +0000 (20:14 +0100)]
maintcheck: fix a couple of typos in error messages

* Makefile.am (sc_tests_plain_autoheader): Fix the message to
report a bad use of "autocheader", not of "automake."
(sc_tests_plain_autom4te): Likewise, but for "autom4te" instead.
(sc_tests_plain_autoreconf): Likewise, but for "autoreconf"
instead.

12 years agomaintcheck: be sure to look at all the test cases
Stefano Lattarini [Sat, 31 Dec 2011 18:57:21 +0000 (19:57 +0100)]
maintcheck: be sure to look at all the test cases

Many maintainer checks in the top-level Makefile.am did some
unwarranted assumptions about the test cases, i.e., they assumed
that all the test scripts matched the wildcard `$(srcdir)/*.test'.

This failed to properly take into account VPATH builds (where some
generated tests might be in ${builddir} rather than in ${srcdir}),
TAP-based tests script (which have a `.tap' extension) and helper
scripts used by other test cases (which have a `.sh' extension).

Fixes automake bug#9299.

* Makefile.am (xtests): New variable, containing a (dynamically
computed) of files that looks like test cases of the automake
testsuite.
Update many rules to use this new variable instead of blindly
assuming that all the testcases matches the $(srcdir)/tests/*.test
wildcard.
* tests/tap-bad-prog.tap: Do a minor formatting change to
avoid spuriously triggering a match from the syntax check
`sc_tests_overriding_macros_on_cmdline'.

12 years agoMerge branch 'dist-lzip' into maint
Stefano Lattarini [Sat, 31 Dec 2011 07:47:34 +0000 (08:47 +0100)]
Merge branch 'dist-lzip' into maint

* dist-lzip:
  dist: add support for lzip compression

12 years agotest defs: more granular overriding of the make program
Stefano Lattarini [Fri, 30 Dec 2011 18:22:55 +0000 (19:22 +0100)]
test defs: more granular overriding of the make program

Before this change, the only way the user could override the make
program used in the automake test cases was to override the $MAKE
variable in the environment.  This had the annoying side effect of
requiring that, whenever a non-default make program was to be used
in the test cases, that same make program had to be used to drive
the execution of the automake testsuite; otherwise, the recursive
make invocations could pick up $MAKE from the environment, and use
that instead of re-executing with the correct make.

So, for example, if one wanted to try how Solaris /usr/ccs/bin/make
behaved in the automake test cases, he couldn't run the testsuite
in parallel mode, because that make lacks support for concurrent
execution of recipes; on fast machines, this easily meant a 4x or
higher slow-down.

Once the problem is clear, the solution is pretty simple: allow
the use of another variable, besides $MAKE, to override the make
program to be used in the test cases.

See also commit `v1.11-1318-g3ceeef4', that introduced a more
general version of this change to the master branch.

* tests/defs.in: Allow the make implementation to be used by the
test cases to be overridden by the `$AM_TESTSUITE_MAKE' variable,
in preference to the `$MAKE' variable.

12 years agodocs: fix a couple broken anchors
Stefano Lattarini [Fri, 30 Dec 2011 17:13:28 +0000 (18:13 +0100)]
docs: fix a couple broken anchors

* doc/automake.texi: In previous commit v1.11-605-g5f71f2b (related
to automake bug#8071), we had renamed the chapters about aclocal
and automake invocation, and added anchors to the old names as not
to break hyperlinks to our on-line manual.  Unfortunately, these
anchors had been erroneously placed *before* the relevant `@node'
commands, instead that just after, so that they ended up pointing
to the wrong chapters.  Fix this.  Since we are at it, tweak the
wording of the comments to the anchors to better match that used
in the autoconf manual.

Report and suggestion by Eric Blake.

12 years agodist: add support for lzip compression
Antonio Diaz Diaz [Fri, 30 Dec 2011 13:35:18 +0000 (14:35 +0100)]
dist: add support for lzip compression

* NEWS: Update.
* automake.in (handle_dist): Recognize dist-lzip.
(make_paragraphs): Map LZIP to dist-lzip.
* doc/automake.texi (Dist, Options): Describe dist-lzip.
* lib/Automake/Options.pm (_process_option_list): Recognize
`dist-lzip'.
* lib/am/distdir.am (dist-lzip): New target.
(DIST_ARCHIVES) [?LZIP?]: Add `dist-lzip'.
(dist, dist-all) [?LZIP?]: Add command to create an lzip-compressed
tarball.
(distcheck): Handle lzip-compressed tarballs just like the others.
* tests/lzip.test: New test.
* tests/Makefile.am (TESTS): Add it.

12 years agoMerge remote-tracking branch 'silent-fixes' into maint
Stefano Lattarini [Fri, 30 Dec 2011 12:47:57 +0000 (13:47 +0100)]
Merge remote-tracking branch 'silent-fixes' into maint

* origin/silent-fixes:
  fix: last entry in ChangeLog
  tests: tweak tests on silent-rules for makes without nested vars
  silent-rules: fallback for makes without nested vars

12 years agodocs: fix paragraph names for automake and aclocal invocations
Stefano Lattarini [Wed, 28 Dec 2011 19:28:29 +0000 (20:28 +0100)]
docs: fix paragraph names for automake and aclocal invocations

All the other autotools entitle their invocation nodes
"autofoo Invocation", whereas automake used to call its
"Invoking Automake" and "Invoking aclocal".  So let's
try to be more consistent.

This change is related to automake bug#8071.

Suggestion by Reuben Thomas and Eric Blake.

* doc/automake.texi (Invoking Automake): Node renamed ...
(automake Invocation): ... to this.
(Invoking aclocal): Node renamed ...
(aclocal Invocation): ... to this.
Add proper @anchor directives to avoid breaking existing web
hyperlinks still using the old names of the renamed nodes.

12 years agotests: fix spurious failure due to autom4te caching
Stefano Lattarini [Wed, 28 Dec 2011 14:15:50 +0000 (15:15 +0100)]
tests: fix spurious failure due to autom4te caching

* tests/acloca18.test: Remove stale autom4te.cache directories, to
prevent racy, spurious failures.
* tests/python11.test: Likewise.  Fix a typo in comments since we
are at it.

12 years agoMerge branch 'maint' into msvc
Stefano Lattarini [Wed, 28 Dec 2011 10:47:20 +0000 (11:47 +0100)]
Merge branch 'maint' into msvc

* maint:
  maint: autogenerate ChangeLog

12 years agoMerge branch 'maint' into silent-fixes
Stefano Lattarini [Wed, 28 Dec 2011 09:54:47 +0000 (10:54 +0100)]
Merge branch 'maint' into silent-fixes

* maint:
  maint: autogenerate ChangeLog
  fix: last ChangeLog entry
  tests: drop unnecessary requirement in 'subpkg.test'
  gitlog-to-changelog: new auxiliary script, synced from gnulib
  docs: "aclocal --install -I /abs/dir" actually copies files
  docs: fix node names for automake and aclocal invocations

12 years agoMerge branch 'maint'
Stefano Lattarini [Wed, 28 Dec 2011 09:50:37 +0000 (10:50 +0100)]
Merge branch 'maint'

* maint:
  maint: autogenerate ChangeLog

12 years agomaint: autogenerate ChangeLog
Stefano Lattarini [Wed, 28 Dec 2011 09:17:30 +0000 (10:17 +0100)]
maint: autogenerate ChangeLog

Following the practice set by various other GNU projects, we start
to automatically generate the ChangeLog file from the git commit
messages.  This will avoid duplication (as the ChangeLog entries
were always inserted both in the git commit message and in the
version-controlled ChangeLog file), and potential problems with
spurious merge conflicts (which, although greatly mitigated by
Bruno Haible's `git-merge-changelog' helper program, have never
been completely solved).

* ChangeLog: Moved ...
* ChangeLog.11:... to this.
* Makefile.am (EXTRA_DIST): Add it.
(gitlog_to_changelog_command, gitlog_to_changelog_options): New
variables.
(ChangeLog, am--changelog-regen-hook): New targets.
* .gitignore: Add ChangeLog.

12 years agoMerge branch 'maint'
Stefano Lattarini [Tue, 27 Dec 2011 22:24:39 +0000 (23:24 +0100)]
Merge branch 'maint'

* maint:
  fix: last ChangeLog entry
  tests: drop unnecessary requirement in 'subpkg.test'
  gitlog-to-changelog: new auxiliary script, synced from gnulib
  docs: "aclocal --install -I /abs/dir" actually copies files
  docs: fix node names for automake and aclocal invocations

12 years agoregex: remove obsolete macro AM_WITH_REGEX
Stefano Lattarini [Sat, 24 Dec 2011 11:40:19 +0000 (12:40 +0100)]
regex: remove obsolete macro AM_WITH_REGEX

Today, practically nobody uses the GNU rx library, which, according
to its own website <http://www.gnu.org/software/rx/rx.html>, has
been "decommissioned".  Consequently, the automake-provided macro
AM_WITH_REGEX is not used nor required anymore.

See also commits `v1.11-587-g5f335be' and `v1.11-433-g37b0aee',
where that macro had been deprecated.

* m4/regex.m4: Delete.
* m4/Makefile.am (dist_automake_ac_DATA): Do not list it anymore.
* doc/automake.texi (Obsolete Macros): Remove description, and in
fact any mention, of `AM_WITH_REGEX'.
* tests/regex.test: Delete.
* tests/help-regex.test: Likewise.
* tests/regex-obsolete.test: Likewise.
* tests/Makefile.am (TESTS): Do not list them anymore.
* NEWS: Update.

12 years agoMerge branch 'maint' into msvc
Stefano Lattarini [Tue, 27 Dec 2011 21:50:21 +0000 (22:50 +0100)]
Merge branch 'maint' into msvc

* maint:
  fix: last ChangeLog entry

12 years agofix: last ChangeLog entry
Stefano Lattarini [Tue, 27 Dec 2011 21:45:23 +0000 (22:45 +0100)]
fix: last ChangeLog entry

Spotted by Dave Hart.

12 years agocosmetics: be more consistent in copyright notices in tests
Stefano Lattarini [Tue, 27 Dec 2011 12:31:15 +0000 (13:31 +0100)]
cosmetics: be more consistent in copyright notices in tests

* tests/cond39.test: Update the heading copyright notice, to be
consistent with the formulation used in the other files.
* tests/cond40.test: Likewise.
* tests/cond41.test: Likewise.
* tests/cond42.test: Likewise.
* tests/cond43.test: Likewise.
* tests/conflnk4.test: Likewise.
* tests/extra8.test: Likewise.
* tests/extra9.test: Likewise.
* tests/suffix13.test: Likewise.
* tests/vala.test: Likewise.
* tests/vala1.test: Likewise.
* tests/vala2.test: Likewise.
* tests/vala3.test: Likewise.
* tests/vala4.test: Likewise.
* tests/vala5.test: Likewise.
* lib/Automake/tests/Condition.pl: Likewise.
* lib/Automake/tests/Condition-t.pl: Likewise.
* lib/Automake/tests/DisjConditions.pl: Likewise.
* lib/Automake/tests/DisjConditions-t.pl: Likewise.
* lib/Automake/tests/Version.pl: Likewise.
* lib/Automake/tests/Wrap.pl: Likewise.
* lib/Automake/tests/Cond2.pl: Add copyright notice.
* lib/Automake/tests/Cond3.pl: Likewise.
* lib/Automake/tests/DisjCon2.pl: Likewise.
* lib/Automake/tests/DisjCon3.pl: Likewise.
* lib/Automake/tests/Version2.pl: Likewise.
* lib/Automake/tests/Version3.pl: Likewise.

12 years agoMerge branch 'maint' into msvc
Stefano Lattarini [Tue, 27 Dec 2011 21:14:53 +0000 (22:14 +0100)]
Merge branch 'maint' into msvc

* maint:
  tests: drop unnecessary requirement in 'subpkg.test'
  gitlog-to-changelog: new auxiliary script, synced from gnulib
  docs: "aclocal --install -I /abs/dir" actually copies files
  docs: fix node names for automake and aclocal invocations

12 years agotests: drop unnecessary requirement in 'subpkg.test'
Stefano Lattarini [Tue, 27 Dec 2011 18:31:03 +0000 (19:31 +0100)]
tests: drop unnecessary requirement in 'subpkg.test'

* tests/subpkg.test ($required): Drop "bison", it is not required
anymore since commit `v1.11-502-g7e5ae80'.

12 years agogitlog-to-changelog: new auxiliary script, synced from gnulib
Stefano Lattarini [Tue, 27 Dec 2011 18:12:46 +0000 (19:12 +0100)]
gitlog-to-changelog: new auxiliary script, synced from gnulib

We have plans to stop maintaining a version-controlled ChangeLog
file in the Automake repository, and instead begin to generate it
automatically from the git log messages.  To do so, we will use
the `gitlog-to-changelog' script from gnulib.

* lib/gitlog-to-changelog: New, synced from gnulib.
* Makefile.am (fetch): Fetch and sync it.
* lib/Makefile.am (EXTRA_DIST): Distribute it.

12 years agotap/awk: "Bail out!" recognized also after leading whitespace
Stefano Lattarini [Tue, 27 Dec 2011 10:45:59 +0000 (11:45 +0100)]
tap/awk: "Bail out!" recognized also after leading whitespace

Newer versions of TAP::Harness (e.g., 3.23 on Perl 5.14.1)
recognize a "Bail out!" directive also when it is prepended by
leading whitespace; this was not the case for older TAP:Harness
versions, (e.g., for version 3.17 on Perl 5.12.4), and for our
TAP driver implemented in awk.

* lib/tap-driver.sh: Handle the "Bail out!" directive also when
it is preceded by leading whitespace.
* tests/tap-spurious.test: Remove the tests checking that a
"Bail out!" string coming right after leading whitespace does
not trigger a bailout action.
* tests/tap-bailout-leading-space.test: New test.
* tests/list-of-tests.mk: Add it.

Problem reported by Jim Meyering in automake bug#10374.

12 years agotests: fix spurious failure of cond29.test
Stefano Lattarini [Tue, 27 Dec 2011 09:40:57 +0000 (10:40 +0100)]
tests: fix spurious failure of cond29.test

* tests/cond29.test: Limit the amount of virtual memory available
to the automake process to ~ 150 MB, rather than only ~ 20 MB, to
account for higher (but still acceptable) memory usages on some
systems (in this case, a Fedora 16 distro on ppc64).  To be
sure not to reduce coverage, increase the number of potential
combinations of automake conditionals from 2**22 = 4194304 to
2**24 = 16777216.

We have actually verified that the new version of the test case
catches the Automake 1.7 it is intended to check against, using
the Automake 1.7.9 tarball downloaded from:
  <http://ftp.gnu.org/gnu/automake/automake-1.7.9.tar.gz>

Reported by Jim Meyering in automake bug#10374.

12 years agodocs: "aclocal --install -I /abs/dir" actually copies files
Stefano Lattarini [Tue, 27 Dec 2011 13:55:41 +0000 (14:55 +0100)]
docs: "aclocal --install -I /abs/dir" actually copies files

This change is for automake bug#8407.

In the past, there had been some debate and confusion about
whether "aclocal --install" should copy third-party .m4 files
in the first directory passed to the `-I' option even when
such directory was given as an absolute path, or whether it
was better to do so only for directories specified with a
relative path.

The rationale for this latter behaviour was that, before the
existence of the `ACLOCAL_PATH' variable, the only way (a poor
way, I might add) for a common user to extend the search path
of a system-wide installation of aclocal was to export something
like ACLOCAL="aclocal -I /my/extra/macros" in the environment.
Today, the correct way to proceed is undoubtedly through the
use of ACLOCAL_PATH, so we can settle the question once and for
all, and start verifying the correct behaviour of `-I' with a
new test.

* tests/aclocal-install-absdir.test: New test.
* tests/Makefile.am (TESTS): Add it.
* doc/automake.texi (aclocal Options): Be more explicit about
this part of `--install' semantics.

12 years agoMerge branch 'testsuite-work' into master
Stefano Lattarini [Mon, 26 Dec 2011 21:49:22 +0000 (22:49 +0100)]
Merge branch 'testsuite-work' into master

At last!

Keeping the `master' and `testsuite-work' separated was becoming
quite artificial, since there is no way we are going to release
a 1.12 version of Automake that doesn't include the support for
the TAP test protocol and for user-defined test drivers -- which
are all implemented into the testsuite-work branch.

Moreover, keeping those two branches separated was causing more
maintenance and double-checking work than were warranted, was
making the automake git repository even more contorted, and, on
the top of all that, was actually *reducing coverage* by making
all the important changes in testsuite-work less visible (less
on-field testing by developers that routinely use bleeding edge
versions, less automated testing by services like Hydra/NixOS,
et cetera).

12 years agofix: last entry in ChangeLog
Stefano Lattarini [Mon, 26 Dec 2011 21:38:58 +0000 (22:38 +0100)]
fix: last entry in ChangeLog

12 years agotests: tweak tests on silent-rules for makes without nested vars
Stefano Lattarini [Mon, 26 Dec 2011 17:23:24 +0000 (18:23 +0100)]
tests: tweak tests on silent-rules for makes without nested vars

* tests/silent-nested-vars.test: Define $MAKE to `./mymake' in
the environment, so that it will be automatically picked up by
configure.  Related tweaks and simplifications.
Remove the checks verifying that silent rules are respected also
when the 'subdir-objects' option is set, the checks testing the
old syntax for user-defined silent rules, and the tests using
the default $MAKE programs: they are redundant w.r.t. other test
cases.  Related simplifications.
Remove the temporary files used in a sanity check as soon as they
are not needed anymore.
Do not capture also the standard error of configure: we only want
to grep its standard output.
Consistently use `stdout' for the name of files where to save the
standard output captured from make and configure, for consistency
with other tests.
Make grepping of configure output and of the generated Makefile
stricter.
Improve and tweak the `mymake' script a little.
* tests/silent6.test: Make grepping of make stdout slightly
stricter.  After having configured with silent rules disabled,
try to force the use silent rules with `make V=1'.

12 years agodocs: fix node names for automake and aclocal invocations
Stefano Lattarini [Mon, 26 Dec 2011 19:08:23 +0000 (20:08 +0100)]
docs: fix node names for automake and aclocal invocations

With the older node names, an "info automake" command issued
from the command line would have opened the node about the
invocation of the automake program, rather than the Top node
of the automake documentation.  To invoke the Top node, one
had to issue the command "info Automake" instead (note the
different capitalization).  This was suboptimal, and certainly
confusing.

With this change, "info automake" will open the Top node of the
automake documentation; to access the nodes about the invocation
of the automake and aclocal program, one has now to issue "info
automake-invocation" and "info aclocal-invocation" respectively.

This change fixes automake bug#8071.

See also commits `v2.61a-22-ge9215d1' and `v2.61a-72-g8c07b48' in
the autoconf git repository, which tackled a similar issue.

* doc/automake.texi (@direntry): Rename nodes `aclocal' and
`automake' to `aclocal-invocation' and `automake-invocation'
respectively.
* NEWS: Update.

12 years agosilent-rules: fallback for makes without nested vars
Paul Eggert [Sun, 25 Dec 2011 17:56:44 +0000 (09:56 -0800)]
silent-rules: fallback for makes without nested vars

This fixes two problems reported for Automake (Bug#9928, Bug#10237)
and is in response to a bug report for building coreutils on HP
NonStop OS (Bug#10234).  The problem is that HP NonStop 'make'
treats a line like "AM_V_CC = $(am__v_CC_$(V))" as one that
expands a macro with the funny name am__v_CC_$(V instead of the
desired name am__v_CC_1 or am__v_CC_0, and since the funny macro
is not defined the line is equivalent to "AM_V_CC = )"; this
inserts a stray ")" when $(AM_V_CC) is used, which eventually
causes 'make' to fail.

The basic idea is that instead of generating Makefile.in lines like
"AM_V_CC = $(am__v_CC_$(V))", we generate
"AM_V_CC = $(am__v_CC_@AM_V@)".  We then AC_SUBST $(V) for @AM_V@
in the usual case where `make' supports nested variables,
and substitute 1 (or 0) otherwise.  Similarly for usages like
$(am__v_CC_$(AM_DEFAULT_VERBOSITY)).

With this change, make implementations that doesn't grasp nested
variable expansions will still be able to run Makefiles generated
using the silent-rules option.  They won't allow the user to
override the make verbosity at runtime through redefinition of
$(V) (as in "make V=0"); but this is still an improvement over not
being able to work at all.

* NEWS: Document this.
* automake.in (define_verbose_var): When defining the variables,
use @AM_V@ rather than $(V), and use @AM_DEFAULT_V@ rather than
$(AM_DEFAULT_VERBOSITY).
* doc/automake.texi (Automake silent-rules Option): Explain new system.
* m4/silent.m4 (AM_SILENT_RULES): Check whether `make' supports
nested variables, and substitute AM_V and AM_DEFAULT_V accordingly.
* tests/silent-nested-vars.test: New test.
* tests/Makefile.am (TESTS): Add it.

12 years agoMerge branch 'master' into testsuite-work
Stefano Lattarini [Sat, 24 Dec 2011 10:05:24 +0000 (11:05 +0100)]
Merge branch 'master' into testsuite-work

* master:
  gitignore: use only one .gitignore file, in the top-level directory
  tests: one more fixlet for gettext macros requirement
  tests: fix handling of gettext macros requirement

12 years agoMerge branch 'maint'
Stefano Lattarini [Sat, 24 Dec 2011 09:53:41 +0000 (10:53 +0100)]
Merge branch 'maint'

* maint:
  gitignore: use only one .gitignore file, in the top-level directory
  tests: one more fixlet for gettext macros requirement
  tests: fix handling of gettext macros requirement
  tests: fix failure due to debugging code forgotten into a test

12 years agoMerge branch 'maint' into msvc
Stefano Lattarini [Sat, 24 Dec 2011 09:45:46 +0000 (10:45 +0100)]
Merge branch 'maint' into msvc

* maint:
  gitignore: use only one .gitignore file, in the top-level directory
  tests: one more fixlet for gettext macros requirement
  tests: fix handling of gettext macros requirement

12 years agogitignore: use only one .gitignore file, in the top-level directory
Stefano Lattarini [Sat, 24 Dec 2011 09:43:26 +0000 (10:43 +0100)]
gitignore: use only one .gitignore file, in the top-level directory

* doc/.gitignore, doc/amhello/.gitignore, lib/Automake/.gitignore,
lib/Automake/tests/.gitignore, tests/.gitignore: Deleted, their
contents merged into ...
* .gitignore: ... this top-level file.  Since we are at it, improve
it by anchoring files where it makes sense.

12 years agoMerge branch 'tests-gettext-macros-require' into maint
Stefano Lattarini [Sat, 24 Dec 2011 08:58:17 +0000 (09:58 +0100)]
Merge branch 'tests-gettext-macros-require' into maint

* tests-gettext-macros-require:
  tests: one more fixlet for gettext macros requirement

12 years agotests: one more fixlet for gettext macros requirement
Stefano Lattarini [Sat, 24 Dec 2011 08:56:49 +0000 (09:56 +0100)]
tests: one more fixlet for gettext macros requirement

* tests/gettext-macros.test (configure.in): Add calls to
AC_INIT and AC_PROG_CC, to avoid a spurious failure in the
later aclocal invocation.
Luckily, this wart wasn't causing any spurious SKIP or FAIL,
but only the redundant addition to the `-Wno-syntax' option
to some aclocal invocations in the gettext tests.

12 years agoMerge branch 'tests-gettext-macros-require' into maint
Stefano Lattarini [Sat, 24 Dec 2011 08:29:15 +0000 (09:29 +0100)]
Merge branch 'tests-gettext-macros-require' into maint

* tests-gettext-macros-require:
  tests: fix handling of gettext macros requirement

12 years agotests: fix handling of gettext macros requirement
Stefano Lattarini [Sat, 24 Dec 2011 08:25:00 +0000 (09:25 +0100)]
tests: fix handling of gettext macros requirement

The code introduced in the earlier change `v1.11-581-gb7d67d5'
and aimed at automatically fetching all the .m4 files provided by
gettext has proven inadequate, since it hasn't managed to truly
and always get *all* the required .m4 files.  For example, it has
failed to fetch the file `intldir.m4' (present in gettext 0.18.1,
and where the macro `AM_GNU_GETTEXT_INTL_SUBDIR' is defined),
which in turn has caused spurious SKIPs of at least the test
`gettext3.test'.

The reason for this debacle is that autopoint looks at the version
specified in AM_GNU_GETTEXT_VERSION to decide which version of the
gettext infrastructure to bring in; since we were unconditionally
specifying the older 0.10.35 version, the newer `.m4' files weren't
brought in.

* tests/gettext-macros.test: In AM_GNU_GETTEXT_VERSION, instead
of unconditionally specifying the older 0.10.35 version, specify
the version of the available `gettextize' or `autopoint' program,
dynamically extracted with the help of ...
(extract_program_version):... this new function, and saved ...
($autopoint_version): ... in this new variable.

12 years agotests: automatically handle deps also for generated tests
Stefano Lattarini [Fri, 23 Dec 2011 21:14:50 +0000 (22:14 +0100)]
tests: automatically handle deps also for generated tests

* tests/gen-testsuite-part: The test scripts are now scanned for
automatic dependency generation *after* the auto-generated tests
have been created, so they too will be scanned.  It is a little
tricky to ensure that the freshly-generated tests are correctly
scanned, and we do that with the help of ...
(@generated_tests): ... this new variable.
Other related minor changes and refactorings.

12 years agotests: auto-generate deps for tests requiring libtool/gettext
Stefano Lattarini [Fri, 23 Dec 2011 20:21:08 +0000 (21:21 +0100)]
tests: auto-generate deps for tests requiring libtool/gettext

* tests/gen-testsuite-part: Tests requiring libtool (or related
programs) will need libtool-provided m4 macros, so they should
be run after `libtool-macros.test'.  Similarly for gettext tests.
So, generate proper declarations of such dependencies.
* tests/Makefile.am: Remove now-unneeded hand-written declaration
of those dependencies.

12 years agotests: remove FIXME comments from tricks to pacify syntax checks
Stefano Lattarini [Fri, 23 Dec 2011 20:01:59 +0000 (21:01 +0100)]
tests: remove FIXME comments from tricks to pacify syntax checks

Originally, I myself had insisted on adding those "FIXME" comments
near every unusual construct or use of "creative quoting" whose
only purpose was to avoid false positive from out syntax checks.
I did that with the expectation that we could have easily and soon
added a whitelisting capability to our maintainer-specific syntax
checks.  This hasn't been the case unfortunately, and now those
"FIXME" in the comments are just distracting noise, making it more
difficult to grep the test cases for stuff that could really use a
fix or an improvement.  So just get rid of them.

* tests/instdir-ltlib.test: Remove that extra "FIXME".
* tests/instdir-prog.test: Likewise.
* tests/parallel-tests3.test: Likewise.
* tests/parallel-tests-dry-run.test: Likewise.
* tests/parallel-tests-console-output.test: Likewise.
* tests/parallel-tests-no-color-in-log.test: Likewise.
* tests/tap-realtime.test: Likewise.
* tests/test-trs-recover.test: Likewise.
* tests/tap-deps.test: Likewise.

12 years agotests: few minor fixlets, improvements and tweakings
Stefano Lattarini [Fri, 23 Dec 2011 19:39:46 +0000 (20:39 +0100)]
tests: few minor fixlets, improvements and tweakings

* tests/defs-static.in ($top_testbuilddir): New, for consistency
and completeness.
* tests/Makefile.am (do_subst): Substitute @abs_top_testbuilddir@
as well.
* tests/java-compile-run-mested.test: Prefer AM_TESTS_ENVIRONMENT
over TESTS_ENVIRONMENT, now that the former has become available.
* tests/java-compile-run-flat.test: Correct a botched "FIXME"
comment.
* tests/tap-realtime.test: Remove extra whitespace in comments.
* tests/missing-tar.test: Use `get_shell_script' to bring in the
`missing' script, to increase coverage.  Remove redundant call to
`set -e'.  Fix a typo in comments.
* tests/get-sysconf.test: Remove redundant definitions of
`$top_testsrcdir', `testbuilddir' and `$top_testbuilddir'.

12 years agotests: remove redundant uses of `set -e'
Stefano Lattarini [Fri, 23 Dec 2011 17:02:21 +0000 (18:02 +0100)]
tests: remove redundant uses of `set -e'

* tests/deleted-am.test: Do not set the `errexit' shell flag, as
it is already set by `tests/defs'.
* tests/deleted-m4.test: Likewise.
* tests/dist-missing-am.test: Likewise.
* tests/dist-missing-am.test: Likewise.
* tests/dist-missing-m4.test: Likewise.
* tests/dist-missing-included-m4.test: Likewise.
* tests/get-sysconf.test: Likewise.
* tests/makefile-deps.test: Likewise.
* tests/remake-m4-pr10111.test: Likewise.
* tests/remake-am-pr10111.test: Likewise.
* tests/remake-deleted-am.test: Likewise.
* tests/remake-deleted-am2.test: Likewise.
* tests/remake-deleted-am-subdir.test: Likewise.
* tests/remake-renamed-am.test: Likewise.