platform/upstream/automake.git
12 years agoMerge branch 'maint'
Stefano Lattarini [Sat, 21 Jan 2012 19:52:43 +0000 (20:52 +0100)]
Merge branch 'maint'

* maint:
  fixup: distribute 'contrib/multilib/multi.m4'
  multilib: deprecate, will be moved to contrib
  fixlet: flags for Fortran77 compiler are in FFLAGS, not F77FLAGS
  cosmetics: fix a botched comment in a maintainer check

12 years agofixup: distribute 'contrib/multilib/multi.m4'
Stefano Lattarini [Sat, 21 Jan 2012 18:40:35 +0000 (19:40 +0100)]
fixup: distribute 'contrib/multilib/multi.m4'

This fix up a blunder in commit v1.11-665-gc5df21e of 2012-01-17,
"multilib: deprecate, will be moved to contrib".

* contrib/Makefile.am (EXTRA_DIST): Add 'multilib/multi.m4'.

12 years agomultilib: deprecate, will be moved to contrib
Stefano Lattarini [Tue, 17 Jan 2012 18:48:06 +0000 (19:48 +0100)]
multilib: deprecate, will be moved to contrib

As of 2012-01-17, according to Google codesarch, almost no active
package is using the 'multilib' feature offered by automake.

The only major exception seems to be GCC...  But on a closer look,
it become clear that GCC basically carries its own version of
multilib support.  In fact, Automake syncs its 'config-ml.in' and
'symlink-tree' scripts from GCC; and the GCC repository contains a
version of the 'multi.m4' file that is *more* updated than the one
in the automake repository (the former having being modified the
last time in 2008, the latter only in 2006).

The 'multilib' feature was anyway hardly documented at all, only
being briefly cited in the manual as an "obscure feature", "still
experimental", that was only for users "familiar with multilibs"
and which "can debug problems they might encounter".  We expect
such users to be motivated and knowledgeable enough to make the
minor adjustments required to start using the contrib version of
multilib, if they really need to.

* NEWS (Future backward incompatibility): Update.
* doc/automake.texi: Deprecate multilib support.  State that it
will be removed from automake core in the next major release.
* m4/multi.m4 (AM_ENABLE_MULTILIB): Deprecate.  If called, now
gives a proper warning in the 'obsolete' category (while still
retaining its former behaviour for the rest).
* tests/multilib.test: Update.
* contrib/multilib/multi.m4: New, verbatim copy of the earlier
version of multi.m4, without the new deprecation warning.
* Makefile.am (fetch): Don't sync the 'config-ml.in' file nor
the 'symlink-tree' script from GCC SVN repository anymore.
(FETCHFILES): Adjust.
(WGET_GCC): Remove, it's not needed anymore.

12 years agofixlet: flags for Fortran77 compiler are in FFLAGS, not F77FLAGS
Stefano Lattarini [Fri, 20 Jan 2012 19:52:02 +0000 (20:52 +0100)]
fixlet: flags for Fortran77 compiler are in FFLAGS, not F77FLAGS

This change fixes automake bug#10555.

Note that the bug was a minor one, since it didn't affect the
compilation rules generated by automake, but only only the "hints"
printed by automake in some error messages (e.g., "The usual way
to define `FFLAGS' is to add AC_PROG_F77 to configure.ac").

* lib/Automake/Variable.pm (%_ac_macro_for_var): The code generated
by AC_PROG_F77 uses FFLAGS, not F77FLAGS, as the variable where to
look for switches for the Fortran 77 compiler: adjust accordingly.

12 years agocosmetics: fix a botched comment in a maintainer check
Stefano Lattarini [Thu, 19 Jan 2012 14:09:23 +0000 (15:09 +0100)]
cosmetics: fix a botched comment in a maintainer check

* Makefile.am (sc_tests_make_without_am_makeflags): Adjust
botched description of this check.

12 years agoMerge branch 'maint'
Stefano Lattarini [Wed, 18 Jan 2012 17:42:46 +0000 (18:42 +0100)]
Merge branch 'maint'

* maint:
  cmdline parsing: move into a dedicated perl module

12 years agocmdline parsing: move into a dedicated perl module
Stefano Lattarini [Wed, 18 Jan 2012 16:55:40 +0000 (17:55 +0100)]
cmdline parsing: move into a dedicated perl module

With this change, we delegate most of the automake and aclocal code
for command-line options parsing to a new module "Automake::Getopt".
This allows better code sharing between automake and aclocal, and
also with Autoconf, which will sync the new module from us.  See
also autoconf commit 'v2.68-120-gf4be358' (2012-01-17, "getopt: new
Autom4te::Getopt module"), and this mailing list discussion:
<http://lists.gnu.org/archive/html/autoconf-patches/2012-01/msg00033.html>

This change might interact with the behaviour described in automake
bug#7434; for example, starting from now, "automake -Wfoo --version"
will cause automake to emit diagnostic like "unknown warning
category 'foo'" before actually printing the version number and
exiting.  This is not a big deal in practice, and the code sharing
and simplifications introduced by this patch is certainly worth it.
Still, we should revisited the issue in the future.

* lib/Automake/Getopt.pm: New module, basically a slightly-edited
copy of the 'lib/Autom4te/Getopt.pm' file from the autoconf devel
repository (commit v2.68-120-gf4be358).  It defines and exports ...
(parse_options): ... this new function.
* automake.in (parse_arguments): Use the new function.
* aclocal.in (parse_arguments): Likewise.
* lib/Automake/Makefile.am (dist_perllib_DATA): Add the new file.
* tests/getopt.test: Remove.
* tests/list-of-tests.mk: Update.

12 years agotests: don't use custom TAP diagnostic in our own tests
Stefano Lattarini [Wed, 18 Jan 2012 16:25:24 +0000 (17:25 +0100)]
tests: don't use custom TAP diagnostic in our own tests

We simply don't need it (yet), we are not actually using it (the
set up for using it is there in the Makefile, but no test script
makes actual use of that).

* tests/Makefile.am (TAP_LOG_DRIVER_FLAGS): Remove '-comments' and
'--diagnostic-string' options.
* tests/defs ($diag_string_): Remove redefinition.

12 years agotests: better name for a couple of tests
Stefano Lattarini [Wed, 18 Jan 2012 13:47:10 +0000 (14:47 +0100)]
tests: better name for a couple of tests

Two tests checking "make -n" behaviour with the parallel-tests
harness has been introduced in the Automake repository in the past:
one of them ('parallel-tests-dryrun.test') in the maint branch, the
other one ('parallel-tests-dry-run.test') in the master branch.

Needless to say, their too-much-similar names can be a great source
of confusion now.  Moreover, the two tests have been written during
distinct refactorings, and are meant to exercise different code
paths and/or usage scenarios, so that no one of them subsumes the
other, and they should be both kept.

Thus we simply rename both of them to avoid future confusion.

* tests/parallel-tests-dryrun.test: Renamed ...
* tests/parallel-tests-dry-run-1.test: .. to this.
* tests/parallel-tests-dry-run.test: Renamed ...
* tests/parallel-tests-dry-run-2.test: .. to this.
Add cross-reference among them.
* tests/list-of-tests.mk: Adjust.

12 years agobuild: simplify our top-level "recheck" target
Stefano Lattarini [Wed, 18 Jan 2012 13:15:03 +0000 (14:15 +0100)]
build: simplify our top-level "recheck" target

* Makefile.am (recheck): Now that all the test scripts are in
the 'tests/' directory, its recipe can be greatly simplified,
as we don't need to deal with recursion in multiple subdirectories
anymore.

12 years agoMerge branch 'maint'
Stefano Lattarini [Wed, 18 Jan 2012 13:08:57 +0000 (14:08 +0100)]
Merge branch 'maint'

* maint:
  cosmetics: move CheckListOfTests.am into tests/
  tests: move all under the same hierarchy ('tests/' directory)
  gitlog-to-changelog: update from upstream
  changelog: don't cluster multiple entries under the same "date line"

+ Extra non-trivial edits:

* tests/Makefile.am (XFAIL_TESTS): Update with the xfailing tests
that were in 'lib/Automake/tests'.  Add proper "FIXME" comment.

12 years agocosmetics: move CheckListOfTests.am into tests/
Stefano Lattarini [Wed, 18 Jan 2012 12:40:21 +0000 (13:40 +0100)]
cosmetics: move CheckListOfTests.am into tests/

After the previous change 'v1.11-660-gfbeda3d', the makefile
fragment 'CheckListOfTests.am' is used only by the Makefile.am
in 'tests'; so keeping them two nearer makes sense.  It also help
in reducing potential confusion, since (after that same change)
the whole Automake testsuite is expected to be (and remain)
contained into the 'tests' subdirectory.

* CheckListOfTests.am: Move ...
* tests/CheckListOfTests.am: ... to this.
* tests/Makefile.am (include): Adjust.

12 years agotests: move all under the same hierarchy ('tests/' directory)
Stefano Lattarini [Wed, 18 Jan 2012 11:17:11 +0000 (12:17 +0100)]
tests: move all under the same hierarchy ('tests/' directory)

This simplifies the organization of the Automake source tree and
reduces the (lamentably high) number of Makefiles in the Automake
build system by one.  It also makes the maintainer check that
verifies the consistency of list of tests more self-contained and
simpler.  Finally, it might be a first step forward the transition
to a non-recursive build system for automake (if we ever decide to
go down that road fully some day).

* lib/Automake/tests: All the '*.pl' tests in here moved ...
* tests/pm: ... into this new directory.
* lib/Automake/tests/Makefile.am: Remove, its meaningful
contents moved ...
* tests/Makefile.am: ... here, with obvious adjustments.
(test_subdirs): New variable, for the sake of the recipe
of 'maintainer-check-list-of-tests'.
* CheckListOfTests (maintainer-check-list-of-tests): Enhance
its recipe to make it able to deal with test script residing
in subdirectories.
* Makefile.am (maintainer-check-list-of-tests): Simplified.
(TEST_SUBDIRS): Remove, no more needed.
* tests/list-of-tests.mk (perl_TESTS): New variable, lists
the '.pl' tests just moved into 'tests/pm'.
(handwritten_TESTS): Add the contents of '$(perl_TESTS)'.
* lib/Automake/Makefile.am (SUBDIRS): Remove.
* configure.ac (AC_CONFIG_FILES): Update.
* .gitignore: Adjust.

12 years agogitlog-to-changelog: update from upstream
Stefano Lattarini [Wed, 18 Jan 2012 08:45:01 +0000 (09:45 +0100)]
gitlog-to-changelog: update from upstream

* lib/gitlog-to-changelog: Update from gnulib upstream.  The only
changes should be cosmetic and/or minor fixlets.

12 years agochangelog: don't cluster multiple entries under the same "date line"
Stefano Lattarini [Tue, 17 Jan 2012 22:31:19 +0000 (23:31 +0100)]
changelog: don't cluster multiple entries under the same "date line"

* lib/gitlog-to-changelog: Synced from gnulib.  The new version
has a new option '--no-cluster', that disables clustering of
adjacent commit messages under the same "date line".
* Makefile.am (gitlog_to_changelog_options): Add '--no-cluster'.
Also add a proper '--format' specification to ensure we have a
blank line between the summary line and the commit message body.

12 years agoMerge branch 'maint'
Stefano Lattarini [Tue, 17 Jan 2012 14:52:53 +0000 (15:52 +0100)]
Merge branch 'maint'

* maint:
  fixup: contrib: really integrate in automake build system

12 years agofixup: contrib: really integrate in automake build system
Stefano Lattarini [Tue, 17 Jan 2012 14:48:56 +0000 (15:48 +0100)]
fixup: contrib: really integrate in automake build system

* configure.ac (AC_CONFIG_FILES): Add 'contrib/Makefile'.
* Makefile.am (SUBDIRS): Add 'contrib'.

12 years agocheck: move ".log -> .html" conversion in contrib
Stefano Lattarini [Tue, 17 Jan 2012 14:06:05 +0000 (15:06 +0100)]
check: move ".log -> .html" conversion in contrib

That feature has been deprecated in the 1.11.x series, and marked
for removal from the automake core in the 1.12 release.  Here we
implement such removal.

Reference:
  <http://lists.gnu.org/archive/html/automake/2012-01/msg00005.html>

See also commit 'v1.11-650-g20f2ac9'.

* doc/automake.texi, NEWS: Update.
* lib/am/check.am: Don't include 'check-html.am' anymore.
* lib/am/check-html.am: Move ...
* contrib/check-html.am: ... to this, and adjust comments.
* lib/am/Makefile.am (dist_am_DATA): Update.
* contrib/Makefile.am (EXTRA_DIST): Likewise.
* tests/parallel-tests2.test: Adjust.
* tests/parallel-tests-dryrun.test: Remove checks on the
".log -> .html" conversion.
* tests/test-driver-custom-html.test: Remove as obsolete.
* tests/test-driver-custom-no-html.test: Likewise.
* tests/tap-html.test: Likewise.
* tests/list-of-tests.mk: Don't list removed tests anymore.

12 years agoMerge branch 'maint'
Stefano Lattarini [Tue, 17 Jan 2012 13:20:40 +0000 (14:20 +0100)]
Merge branch 'maint'

* maint:
  contrib: new, a directory for non-mainstream functionalities

12 years agotap: some makes in parallel mode unconditionally serialize output
Stefano Lattarini [Tue, 17 Jan 2012 12:46:11 +0000 (13:46 +0100)]
tap: some makes in parallel mode unconditionally serialize output

Some make implementations (among them, FreeBSD make, NetBSD make,
and Solaris Distributed Make), when run in parallel mode, serialize
the output from their targets' recipes unconditionally.  This has
the nasty side effect that the user won't see the partial results
of a TAP test until the test has terminated.  This is not something
our TAP driver script can work around unfortunately; in fact, the
driver is sending out its output progressively and "in sync" with
test execution -- it is make that is stowing such output away
instead of presenting it to the user as soon as it gets it.

So we content ourself with working around the issue in our
testsuite, to at least avoid failures we could do nothing to
prevent.

* tests/tap-realtime.test: Skip this test if the make program used
is a non-GNU make running in parallel mode.  And if Sun dmake is
being used, try to force it to run in serial mode, by exporting the
'DMAKE_MODE' environment variable to "serial".

12 years agocontrib: new, a directory for non-mainstream functionalities
Stefano Lattarini [Tue, 17 Jan 2012 12:55:00 +0000 (13:55 +0100)]
contrib: new, a directory for non-mainstream functionalities

This new 'contrib' hierarchy will be a good place were to move
implementation/support for obsolescent features we are not yet
ready to remove completely, or were to leave experimental or
third-party features to cook before their eventual inclusion in
the automake core.

* contrib: New directory.
* contrib/README: New file.
* contrib/Makefile.am: New file.
(EXTRA_DIST): Distribute README.

12 years agodocs: APIs for custom test drivers are highly experimental
Stefano Lattarini [Tue, 17 Jan 2012 10:14:32 +0000 (11:14 +0100)]
docs: APIs for custom test drivers are highly experimental

* doc/automake.texi (API for Custom Test Drivers): The APIs
described here are not "somewhat experimental", but rather
"highly experimental".  Don't promise the sure a sort of
backward-compatibility that we are very likely not going to
keep.

12 years agotests: avoid spurious failures with parallel make
Stefano Lattarini [Tue, 17 Jan 2012 10:07:01 +0000 (11:07 +0100)]
tests: avoid spurious failures with parallel make

Some tests are unprepared to be run with a make command that runs
in parallel mode by default.  This can happen e.g., if the user
explicitly run the tests with something like:

  AM_TESTSUITE_MAKE="gmake -j3" in the

in the environment, but also if the make used in the testsuite is
Sun Distributed Make, and the 'DMAKE_MODE' environment variable is
set to "parallel".

Fix some instances of this issue.

* tests/tap-doc.test (Makefile.am): Declare explicit dependencies
among the test cases, to ensure they are run in the correct order.
* tests/tap-doc2.test: Set the 'DMAKE_MODE' environment variable
to "serial", to prevent Sun dmake from trying to run in parallel.
Remove other now-superfluous workarounds for dmake.

12 years agotests: fix spurious failures with Solaris dmake
Stefano Lattarini [Tue, 17 Jan 2012 09:33:46 +0000 (10:33 +0100)]
tests: fix spurious failures with Solaris dmake

Solaris Distributed Make, when run in parallel mode, can sprinkle
its standard output with lines like:

  hostname --> 2 jobs
  ...
  hostname --> Job output
  ...

This behaviour was causing spurious errors in some tests where we
compare the output of make with a known, expected value.  Fix that.

* tests/tap-doc.test: Before comparing the output from make with its
expected value, remove extra lines that could have been printed by
Solaris dmake.
* tests/tap-doc2.test: Likewise.

12 years agoMerge branch 'maint'
Stefano Lattarini [Mon, 16 Jan 2012 19:06:08 +0000 (20:06 +0100)]
Merge branch 'maint'

* maint:
  recheck: fix interaction with "make -n"
  vala: avoid potential useless remakes (minor bugfix)
  vala: enhance tests
  recheck: behave better with non-GNU make
  check: separate .log -> .html conversion from core testsuite harness
  docs: deprecate .log -> .html conversion by parallel-tests
  tests: list some forgotten test cases in $(TESTS)
  maintcheck: consistency of list of test scripts
  build: explicitly declare some targets as .PHONY
  maint: remove obsolete/broken maintainer targets
  build: improve silencing of automake build system
  tests: move list of tests in its own Makefile fragment

+ Extra non-trivial edits:

* tests/parallel-tests2.test: Obvious edits to merge the slightly
inconsistent enhancements to coverage done in master with those
done in maint.
* lib/am/check.am (check-TESTS, recheck): Sweeping and rather
complex changes to merge the considerable divergences between
maint and master in a way that is meaningful and, where possible,
retains the semantic changes from both maint and master.

12 years agoMerge branch 'check-html-deprecate' into maint
Stefano Lattarini [Mon, 16 Jan 2012 17:35:50 +0000 (18:35 +0100)]
Merge branch 'check-html-deprecate' into maint

* check-html-deprecate:
  recheck: fix interaction with "make -n"
  recheck: behave better with non-GNU make
  check: separate .log -> .html conversion from core testsuite harness
  docs: deprecate .log -> .html conversion by parallel-tests

12 years agorecheck: fix interaction with "make -n"
Stefano Lattarini [Fri, 13 Jan 2012 21:39:47 +0000 (22:39 +0100)]
recheck: fix interaction with "make -n"

* lib/am/check.am (recheck): Ensure the recipe does not erroneously
remove '.log' files when running under "make -n".  For the sake of
NetBSD make, this also means that ...
(.MAKE): ... this cannot depend on 'recheck' anymore.
* tests/parallel-tests-dryrun.test: New test.
* tests/list-of-tests.mk: Add it.

12 years agovala: avoid potential useless remakes (minor bugfix)
Stefano Lattarini [Mon, 16 Jan 2012 15:42:25 +0000 (16:42 +0100)]
vala: avoid potential useless remakes (minor bugfix)

* automake.in (lang_vala_finish_target): Ensure the timestamp file
from which the C files generated from Vala sources depend on gets
created with a modification time that is truly older than those of
said generated C files.  This prevents make from attempting useless
rebuilds (which were bound to happen deterministically on systems
with sub-second timestamp resolutions).  It is worth noting that,
luckily, those useless rebuild ended up being a no-op, since the
Vala compiler is careful not to update the timestamp of an output
file if its content has not changed from the previous version.
Still, the useless rebuilds messed up "make -q" and "make -n"
invocations, and were technically incorrect (despite being, as
noted, inoffensive in practice).

Problem revealed by failure of tests vala-mix.test and vala5.test
on a fast Solaris 10 system whose filesystem had a sub-second
timestamp resolution.

12 years agovala: enhance tests
Stefano Lattarini [Mon, 16 Jan 2012 14:38:56 +0000 (15:38 +0100)]
vala: enhance tests

* tests/vala.test: Extend test.  Throw in some cosmetic and
consistency changes since we are at it.
* tests/vala5.test: Avoid uselessly requiring libtool.  Ensure a
failure happens in case VALAFLAGS are not supported as expected.
Extend test in some ways.  Throw in some cosmetic and consistency
changes since we are at it.
* tests/vala-mix.test: New test.
* tests/list-of-tests.mk: Add it.

12 years agorecheck: behave better with non-GNU make
Stefano Lattarini [Fri, 13 Jan 2012 17:53:43 +0000 (18:53 +0100)]
recheck: behave better with non-GNU make

* automake.in (handle_tests): Also substitute '%CHECK_DEPS%' with
the value of the '@check' array, containing the list of early
test dependencies like '$(check_SCRIPTS)', $(check_PROGRAMS)',
etc.
* lib/am/check.am (recheck): Explicitly depend on '%CHECK_DEPS%'.
(check, recheck): Unify the implementation of their recipes, with
different code paths taken depending on the name of the target.
This makes the implementation of "recheck" less brittle in the
process (especially when non-GNU make and AM_MAKEFLAGS overriding
are involved).
* lib/am/check-html.am (check-html, recheck-html): Likewise.
* tests/check.test: Adjust to avoid spurious failure.
* tests/parallel-tests2.test: Improve coverage.

12 years agocheck: separate .log -> .html conversion from core testsuite harness
Stefano Lattarini [Fri, 13 Jan 2012 16:56:13 +0000 (17:56 +0100)]
check: separate .log -> .html conversion from core testsuite harness

That feature is to be deprecated in the 1.11.x series, and removed
from the automake core in the 1.12 release, where it will instead
be offered in a semi-independent extra '*.am' fragment.  So let's
start better separating the .log -> .html conversion from the "core
code" of the parallel-tests harness.

Reference:
  <http://lists.gnu.org/archive/html/automake/2012-01/msg00005.html>

* lib/am/check.am (.log.html, check-html, recheck-html): Move these
targets ...
* automake.in (handle_tests): ... and the initialization of the
TEST_SUITE_HTML variable and the cleaning of the $(TEST_SUITE_HTML)
file ...
* lib/am/check-html.am: ... in this new file, with related (minor)
refactorings, enhancements and simplifications.
* lib/am/check.am (.MAKE. PHONY, AM_RECURSIVE_TARGETS): Adjust.
* lib/am/Makefile.am (dist_am_DATA): Add 'check-html.am'.
* tests/parallel-tests2.test: Improve coverage.

12 years agodocs: deprecate .log -> .html conversion by parallel-tests
Stefano Lattarini [Sun, 8 Jan 2012 18:26:18 +0000 (19:26 +0100)]
docs: deprecate .log -> .html conversion by parallel-tests

That feature is to be deprecated in the 1.11.x series, and
removed in the 1.12 release.

Reference:
  <http://lists.gnu.org/archive/html/automake/2012-01/msg00005.html>

* doc/automake.texi (Simple Tests using parallel-tests): Deprecate
the '.log' -> '.html' conversion and the targets 'check-html' and
'recheck-html'.  Related rewording and reformatting.
* NEWS (Future backward-incompatibilities): Update.

12 years agotests: list some forgotten test cases in $(TESTS)
Stefano Lattarini [Mon, 16 Jan 2012 09:18:06 +0000 (10:18 +0100)]
tests: list some forgotten test cases in $(TESTS)

This way, they will be properly executed by "make check", and
properly distributed.  Our previous commit 'v1.11-647-g27f1a1c'
is already paying its dividends!

* tests/list-of-tests.mk (handwritten_TESTS): Add check12.test,
dist-missing-included-m4.test, dist-missing-am.test, and
dist-missing-m4.test.

12 years agomaintcheck: consistency of list of test scripts
Stefano Lattarini [Mon, 16 Jan 2012 09:05:59 +0000 (10:05 +0100)]
maintcheck: consistency of list of test scripts

This is basically a backport of commit 'v1.11-358-g7b6ab07'
and its follow-ups.  The possibility of easily checking that
the list of test scripts listed in a Makefile equals that of
the tests on the filesystem has proved itself so useful that
it's worth taking the annoyance of backporting it to maint.

* CheckListOfTests.am: New file, backported from master (commit
'v1.11-1736-g083a75b') with minor adjustments.
(maintainer-check-list-of-tests): New target, check for consistency
between the list of tests defined in the including Makefile and the
list of tests on the filesystem.
(clean-maintcheck-testslist-tmp): New rule, to clean up temporary
files that might be left around by the rules associated with the
previous target.
(clean-local): Depend on it.
* lib/Automake/tests/Makefile.am: Include `CheckListOfTests.am'.
* tests/Makefile.am: Likewise.
* Makefile.am (maintainer-check-list-of-test): New target,
calling recursively into `tests/' and `lib/Automake/tests/',
using ...
(TEST_SUBDIRS): ... this new variable.
(maintainer-check): Added dependency from the new target
`maintainer-check-list-of-tests'.

12 years agomaintcheck: completeness check on list of tests simplified
Stefano Lattarini [Mon, 16 Jan 2012 08:40:21 +0000 (09:40 +0100)]
maintcheck: completeness check on list of tests simplified

* CheckListOfTests.am: Simplify the recipe, accordingly to the
assumption that all the entries in $(TEST_EXTENSIONS) and in
$(TESTS) have an associated real test script.  This was not the
case when we used to have some entries in $(TESTS) that were not
real files, but rather "parameters" (sort of) for the corresponding
$(LOG_COMPILER).  However, that usage had proven to be confusing
and brittle, and thus removed (see commit 'v1.11-1308-g375f23d' of
September 8 2011, "testsuite: revamp generation of autogenerated
tests").

12 years agobuild: explicitly declare some targets as .PHONY
Stefano Lattarini [Sun, 15 Jan 2012 22:45:31 +0000 (23:45 +0100)]
build: explicitly declare some targets as .PHONY

* Makefile.am (fetch, git-dist, git-release, maintainer-check):
Declare as ".PHONY".

12 years agomaint: remove obsolete/broken maintainer targets
Stefano Lattarini [Sun, 15 Jan 2012 22:38:58 +0000 (23:38 +0100)]
maint: remove obsolete/broken maintainer targets

* Makefile.am (git-diff): Remove.  First, we don't distribute diffs
between an automake version and the next one anyway, so this target
is pointless.   Moreover, its recipe has been broken for quite a
long time now, always generating an empty diff due to the spurious
'$(PACKAGE)' argument that was passed to the "git diff" invocation.
(path-check): Remove.  The 'pathchk' program running in this check
complains about any file with name longer than 14 characters, which
is a ridiculously low limit for today standards.  Also, we already
had several test scripts (no less than 195!) that were exceeding
that limit, and nobody ever complained (not even on MinGW/MSYS nor
Cygwin).

12 years agobuild: improve silencing of automake build system
Stefano Lattarini [Sun, 15 Jan 2012 22:08:21 +0000 (23:08 +0100)]
build: improve silencing of automake build system

In this change, we continue the silencing of the automake build
system that has been started in commit v1.11-642-g17542c3, but
which has been left incomplete there for an (absent-mindness)
mistake.

* Makefile.am (INSTALL): Silence the recipe.
(automake, aclocal): Likewise, and improve them a little since
we are at it.
* lib/Automake/Makefile.am (Config.pm): Likewise.

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 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