This failures have been introduced by the recent merging of
master.
* lib/am/check.am: Don't use '$(AM_MAKEFLAGS)' in recursive make
invocations.
* tests/make-dryrun.test: Likewise. Also, avoid code to determine
whether $MAKE is GNU make or supports the required make features:
we can assume that unconditionally.
* lib/am/header-vars.am: Remove references to NetBSD and Solaris
make from the comments.
* master: (29 commits)
tests: avoid wrong skips in dist-formats.tap
tests: few tweakings and cosmetic changes
tests: remove a couple of redundant 'set -e' calls
tests: check if 'compress' is real or fake
depcomp tests: avoid spurious failures with 'dashXmstdout' depmode
depcomp: try to prevent whitespace regressions
depcomp: recognize tabs as whitespace in the dashmstdout mode
depcomp: quote 'like this', not `like this'
tests: check the depmodes 'msvisualcpp' and 'msvcmsys'
tests: better way to compare lists in Makefile rules
tests: improve and rework tests on dependency tracking
tests: fix a timestamp-related spurious failures
dryrun: fix regression with '$(am__make_dryrun)'
test defs: avoid spurious XPASS results with NetBSD make
cosmetics: few whitespace fixlets
cosmetics: various typofixes
cosmetics: convert encoding from ISO-8859 to UTF-8 in some tests
test defs: remove obsolete requirement 'rst2html'
tests: workaround for shells with broken 'set -e'
cosmetics: fix a typo in comments
...
* tests/dist-formats.tap: The test checking whether the 'compress'
program is actually capable of compressing files relied on the
assumption that 'compress' exits with status zero if no problem
occurs; alas, this reasonable assumption doesn't hold in practice,
since 'compress' does (and is documented to) exit with status 2 if
the output is larger than the input after (attempted) compression!
Fix this by using and input that 'compress' can actually reduce in
size when compressing.
Do some related reformatting of surrounding code since we are at it.
* maint:
tests: fix a timestamp-related spurious failures
dryrun: fix regression with '$(am__make_dryrun)'
test defs: function 'is_newest' now works also with directories
Peter Rosin [Thu, 9 Feb 2012 09:25:20 +0000 (10:25 +0100)]
tests: check if 'compress' is real or fake
On Cygwin, 'compress' is provided by sharutils and is just a
dummy script that is not able to actually compress (it can
only decompress). This fake 'compress' is not usable for
our purpose - to create compressed tarballs.
* tests/dist-formats.tap (missing_compressors): Count 'compress'
as missing if it does not support the -c option.
Peter Rosin [Wed, 8 Feb 2012 14:12:40 +0000 (15:12 +0100)]
Merge branch 'msvc'
* msvc:
depcomp: try to prevent whitespace regressions
depcomp: recognize tabs as whitespace in the dashmstdout mode
depcomp: quote 'like this', not `like this'
depcomp tests: avoid spurious failures with 'dashXmstdout' depmode
* tests/gen-testsuite-part: The 'dashXmstdout' depmode cannot be
truly forced on gcc (like we were trying to do, causing spurious
failures in the process); so don't do that. This change shouldn't
actually reduce coverage anyway, since, as the comments in
'lib/depcomp' say, the 'dashXmstdout' depmode is just like
the 'dashmstdout' one, only with a different argument for the
compiler.
Peter Rosin [Wed, 8 Feb 2012 12:35:32 +0000 (13:35 +0100)]
tests: check the depmodes 'msvisualcpp' and 'msvcmsys'
* tests/defs (cygpath): New requirement, checking that cygpath
is working.
(mingw): New requirement, checking that the build system is
MSYS (in its normal MinGW mode).
* tests/gen-testsuite-part (depmodes): Add entries for depmodes
'msvisualcpp' and 'msvcmsys'.
tests: better way to compare lists in Makefile rules
With this commit, we introduce a new helper shell script for use
in the testsuite, which is meant to allow the test cases to easily
check whether two whitespace-separated lists are equal; this ability
is particularly useful to check for equality of the contents of make
variables that are expected to contain multiple whitespace-separated
words, and are defined through line continuations (or are rewritten
by automake in this way), or that contain expansion of potentially
empty variables.
Before this change, a test checking that an usage like this one:
VAR = valA
if COND1
VAR += val1 # com1
endif COND1
VAR += valC
worked as expected, couldn't use rules like:
## Doesn't work because $(VAR) expands to multiple words
verify:
test $(VAR) = "valA val1 valC"
nor like:
## Doesn't work because the final expansion of $(VAR) contains
## repeated contiguous whitespace characters (it actually
## equals "valA val1 valC", not "valA val1 valC"), and this
## is an internal detail which might change and which we don't
## want to explicitly rely on.
verify:
test "$(VAR)" = "valA val1 valC"
Instead, we had to rely on cumbersome workaround such as:
## This works, but is ugly.
verify:
test "`echo $(VAR)`" = "valA val1 valC"
or:
## This works, but is even uglier.
verify:
echo BEG: $(VAR) :END | grep "BEG: valA val1 valC :END"
Now, with the help of the new 'is' script, we can perform such a
check in a clearer and more straightforward way, as in:
## Works, and reads clearly.
verify:
is $(VAR) == valA val1 valC
* tests/is: New helper shell script, telling whether two whitespace
separated lists are equal.
* Makefile.am (EXTRA_DIST): Add it.
* tests/colneq2.test: Use the new helper script, and accordingly
get rid of older, more cumbersome idioms.
* tests/cond11.test: Likewise.
* tests/cond16.test: Likewise.
* tests/cond18.test: Likewise.
* tests/cond22.test: Likewise.
* tests/cond31.test: Likewise.
* tests/cond38.test: Likewise.
* tests/test-logs-repeated.test: Likewise.
* tests/objext-pr10128.test: Likewise.
* tests/programs-primary-rewritten.test: Likewise.
* tests/substre2.test: Likewise. Also ...
(configure.in, Makefile.am): Add a couple of hack to avoid having
to require (and run) a C compiler; accordingly ...
($required): ... remove this.
* tests/exeext4.test: Likewise.
* tests/substref.test: Likewise. Also ...
(hello.c): Use ": >" rather than "cat <<EOF" to generate it,
since it's meant to be empty anyway.
* tests/cond4.test: Use the new helper script, and accordingly
get rid of older, more cumbersome idioms. Avoid some unnecessary
uses of "make -e" since we are at it.
* tests/cond19.test: Likewise.
* tests/cond32.test: Likewise.
* tests/cond6.test: Use the new helper script, and accordingly
move some checks in the Makefile.am.
Avoid unnecessary execution of automake remake rules by manually
"touching" aclocal.m4
tests: improve and rework tests on dependency tracking
Fixes automake bug#10434. Suggestion by Peter Rosin.
The 'depcomp.tap' test case worked by trying to unconditionally
force the compiler in use by the testsuite to use, one by one, *all*
the dependency modes known by the 'depcomp' script, and, for each
such forced mode that was compatible enough with said compiler not
to cause breakage in the basic compilation rules, checking that it
was *also* good enough not to break remake rules in VPATH builds.
This seemed a good approach when this test was first introduced, as
it apparently increased coverage for the less used and less tested
dependency-tracking modes. But in the log run it turned out the
approach was actually in part too brittle, causing some annoying
spurious failures (as with the Tru64 depmode forced on GCC, see
automake bug#10434), and partly too forgiving, since, for some of
the more corner-case dependency modes, the 'depcomp' script simply
reverts to silently disabling dependency tracking when an error is
encountered (this happened e.g., with the Tru64 depmode forced on
the Sun C compiler 5.9), so that a passing test means nothing, and
only gives a false sense of security.
As Peter Rosin put it, "it's just dead wrong to assume that feeding
-M or -xM to the compiler (or whatever other random stuff 'depcomp'
might do) and not get an error is the same as dependencies magically
appearing".
So we get rid of this wrong approach, and in the process proceed to
a complete overhaul of many of the tests on automatic dependency
tracking, extending the offered coverage and rationalizing their
organization.
* tests/depcomp.sh: New helper script, used by several new
autogenerated tests.
* tests/gen-testsuite-part: Generate several tests based on the
new 'depcomp.sh' script. Emit makefile code that declares their
dependency on that script, and that extends EXTRA_DIST in order
to distribute it.
* tests/depmod.tap: Remove.
* tests/depend2.test: Remove, it has been subsumed by the new
autogenerated test 'depcomp-disabled.tap'.
* tests/depcomp3.test: Remove, it has been subsumed by the new
autogenerated test 'depmod-dashmstdout.tap'.
* tests/depcomp3.test: Remove, it has been subsumed by the new
autogenerated test 'depmod-lt-makedepend.tap'.
* tests/depcomp6.test: Remove, it has been subsumed by the new
autogenerated test 'depmod-auto.tap'.
* tests/depcomp7.test: Remove, it has been subsumed by the new
autogenerated test 'depmod-lt-auto.tap'.
* tests/depcomp5.test: Remove as obsolescent.
* test/list-of-tests.mk: Adjust.
* .gitignore: List the new autogenerated tests.
Fixes automake bug#10737. Report from Larry Daniel.
See also automake bug#8365 and commit 'v1.11-329-gd4df619' of
30-03-2011, "tests: fix timestamp-related failures".
* tests/aclocal5.test: Sleep before modifying m4 files that should
trigger remake rules. This fixes an hard-to-hit timestamp-related
race condition.
* THANKS: Update.
In commit v1.11-683-gda0964e of 05-02-2012, we introduced a new
variable '$(am__make_dryrun)' that could be used in recipes to
determine whether make is running in dry mode (e.g., as with
"make -n"). Unfortunately, the idiom we used fails to take into
account the case in which $(MAKEFLAGS) contains one or more variable
definitions whose value is a whitespace-separated list; for example,
if we invoke make as:
make check TESTS="n1.test n2.test"
then the better make implementations out there (at least modern
GNU make and BSD make) will export MAKEFLAGS to the following
value:
TESTS=n1.test\ n2.test
So a shell loop like the one we used in $(am__make_dryrun):
for flag in $$MAKEFLAGS; do ...
won't behave as expected: the shell word-splitting rules will break
up the entry for TESTS into the two distinct entries "TESTS=n1.test\"
and "n2.test", and this second entry will goad our $(am__make_dryrun)
code into thinking that make is performing a dry run!
So now we simply loop over the expanded value of $(MAKEFLAGS).
This solves the regression, but alas, is more brittle in case the
users passes on the command line a macro value containing unbalanced
" or ' quotes, or shell metacharacters like, say, '`' or '('. This
should almost never happen though, so we don't worry about it now;
we will revisit the issue only when and if we receive bug reports in
this area.
* lib/am/header-vars.am (am__make_dryrun): Fix.
* tests/make-dryrun.test: New test.
* tests/list-of-tests.mk: Add it.
test defs: avoid spurious XPASS results with NetBSD make
* tests/defs (make_can_chain_suffix_rules): Ensure to properly
declare the '.SUFFIXES:' in the temporary Makefile used to check
whether $MAKE is able to automatically chain suffix rules. This
avoids spurious XPASS results with (at least) NetBSD make in some
'suffix*.tap' tests; in a sense also, this also makes the probing
of $MAKE capabilities more faithful, since the Automake-generated
Makefiles are expected to properly declare the '.SUFFIXES:' as
well.
Several typofixes in documentation and comments, as
suggested by the "codespell.py" script. Reference:
<http://git.profusion.mobi/cgit.cgi/lucas/codespell/>
* tests/defs (rst2html): Remove, it's not needed anymore now that
the old code supporting the ".log -> .html" conversion for the
parallel-tests harness has been moved in contrib. This removal
should have actually be done in commit v1.11-1757-g0a9d201 of
17-01-2012, 'check: move ".log -> .html" conversion in contrib'.
* tests/defs (gmake, native, rst2html): Some versions of the BSD
shell wrongly bail out when the 'errexit' shell flag is active and
the left-hand command in a "&&" list fails, if that list is the
*last* command of a "for" or "while" loop. Work around this issue.
* tests/lex3.test: Likewise.
* tests/check12.test: Likewise.
* tests/yacc-basic.test: Likewise.
* tests/lex-noyywrap.test: Likewise.
* tests/parallel-tests2.test: Likewise.
* tests/lex-lib-external.test: Likewise.
* tests/check-no-test-driver.test: Likewise.
* tests/test-metadata-recheck.test: Likewise.
* tests/parallel-tests-dry-run-1.test: Likewise.
* tests/parallel-tests-dry-run-2.test: Likewise.
* tests/parallel-tests-unreadable.test: Likewise.
* tests/test-driver-custom-no-extra-driver.test: Likewise.
Problem revealed by spurious testsuite failures on a NetBSD 5.1
system and an OpenBSD 5.0 system.
test defs: function 'is_newest' now works also with directories
Reported by Jim Meyering against automake master (see bug#9147) and
by Adam Sampson against automake 1.11.3 (see bug#10730).
* tests/defs (is_newest): Call 'find' with the '-prune' option,
so that it won't descend in the directories (which could cause
spurious results).
* THANKS: Update.
parallel-tests: more uses for '$(am__make_dryrun)'
With this change we refactor some recipes of the parallel-tests
harness to make them use, where appropriate, the new internal
variable '$(am__make_dryrun)' (introduced in the 'maint' branch)
when they need to determine whether make is running in "dry mode",
i.e., with "make -n". This allows for some simplifications and
for improved uniformity.
* lib/am/check.am (check-TESTS recheck): Use $(am__make_dryrun) and
simplify accordingly.
(am--redo-logs): Delete this internal helper recipe, merged into ...
($(TEST_SUITE_LOG)): ... this, with the help of $(am__make_dryrun).
recipe accordingly.
refactor: new variable telling whether make is running in "dry mode"
We define a new variable '$(am__make_dryrun)', that can be used
in recipes to determine whether make is running in "dry mode" (as
with "make -n") or not. This is useful in rules that invoke make
recursively, and are thus executed also with "make -n" -- either
because they are declared as dependencies to '.MAKE' (NetBSD make)
or because their recipes contain the "$(MAKE)" string (GNU and
Solaris make).
* lib/am/header-vars.am (am__make_dryrun): New variable.
* lib/am/check.am (check-TESTS recheck): Use it, and simplify
recipe accordingly.
* lib/am/distdir.am (distdir): Likewise.
* lib/am/lisp.am ($(am__ELCFILES)): Likewise.
Peter Rosin [Thu, 2 Feb 2012 20:08:46 +0000 (21:08 +0100)]
tests: do not clobber the modified CC
If CC is originally a losing compiler, AM_PROG_CC_C_O will
modify CC. "$MAKE -e" will then clobber this modified CC
and reintroduce the raw losing compiler causing the test
to fail, as subdir-objects is in effect.
tests/check8.test: Drop -e from the $MAKE invocation, since
AM_COLOR_TESTS is not specified in the Makefile and -e is
therefore not needed.
tap/perl: handle missing or non-executable scripts better
This change improves how our Perl-based TAP driver handles
non-runnable test scripts (meaning they might be not executable,
or not readable, or even not exist). In particular, it makes the
driver deterministically display a clear "ERROR" result instead
of possibly dying with diagnostic from 'TAP::Parser' internals,
and prevents it from displaying spurious "missing TAP plan" errors.
Moreover, with this change, some testsuite failures present only
with newer perl versions (e.g., 5.14) are fixed. See automake
bug#10418.
* tests/tap-bad-prog.tap: When testing the perl implementation of
the TAP driver, and when the perl interpreter offers a good-enough
'IPC::Open3::open3' function, expect it not to display spurious
"missing TAP plan" diagnostic if the error is actually due to a
non-runnable test script.
* lib/tap-driver.pl (start): Removed, broken up into ...
(setup_io): ... this ...
(setup_parser): ... and this, which now tries to catch and report
errors in launching the test scripts.
(finish): New, used by both 'main' and 'setup_parser'.
(main): Adjust.
[ng] yacc, lex, compiling: better use of '$<' (simplify and fix bug)
With GNU make (at least since version 3.78), the automatic variable
'$<' automatically undergoes VPATH rewrites when needed. We can use
this fact to simplify some of our recently-touched rules even more.
This change is also a bug fix, since without it the two tests
'yacc-subobj-nodep.test' and 'lex-subobj-nodep.test' were failing
with at least GNU make 3.81 (while passing with GNU make 3.82),
probably due to some incompatibility between those two versions
that was affecting our '$(am__vpath_rewrite)' function.
* lib/am/yacc.am, lib/am/lex.am: Take advantage of the described
'$<' behaviour.
* lib/am/depend2.am: Likewise. Accordingly, ...
(am__cooked_source_0, am__cooked_source_1): ... remove these
variables, which are not needed anymore.
* tests/spy-vpath-rewrite.test: New test, verifying that our
expectations about '$<' really hold.
* tests/list-of-tests.mk: Add the new test.
Starting with recent changes, the automake-generated configure
code does not create the '.Po' files for dependency tracking
anymore. This is good and proper, but unfortunately, when the
'subdir-objects' option is in use *and* a VPATH build is being
performed, it breaks some rules that *implicitly* relied on that
shell code having already created the subdirectory where the
generated files were to be placed. This happened in particular
with Yacc and Lex rules. So fix them to instead explicitly
create the required directories, if not already present.
Bug revealed by failures of 'lex5.test' and 'yacc8.test' with
GNU make 3.82 (on all of Debian, Fedora and Solaris).
* lib/am/yacc.am, lib/am/lex.am: Update.
* tests/Makefile.am (XFAIL_TESTS): Remove 'lex-subobj-nodep.test',
as the test now passes.
* tests/yacc-subobj-nodep.test: New test.
* tests/list-of-tests.mk: Add it.
Peter Rosin [Wed, 1 Feb 2012 14:47:45 +0000 (15:47 +0100)]
tests: put AM_PROG_CC_C_O before AC_OUTPUT to help losing compilers
When AM_PROG_CC_C_O is after AC_OUTPUT, the compile script
is not used even if needed, causing testsuite fails if
libtool is not used.
* tests/depcomp8a.test: Uncomment the AM_PROG_CC_C_O macro
in its correct location, as indicated...
(configure.in): ...with this comment.
* tests/depcomp8b.test: Sync with tests/depcomp8a.test.
[ng] vpath: define generic make function for VPATH rewrites
This change generalizes and makes available to all the Automake
generated Makefiles a common idiom dealing with VPATH rewrites.
This idiom was introduced in recent commits (see in particular
'v1.11-1835-gcf93724').
* lib/am/depend2.am (am__vpath_rewrite): Move ...
* lib/am/header-vars.am: ... here.
* tests/vpath-rewrite.test: New test.
* tests/list-of-tests.mk: Add it.
[ng] compiling: remove some code duplication in depend2.am
* lib/am/depend2.am (am__cooked_source_0, am__cooked_source_1): New
helper variables.
Use them in several compilation rules to avoid code duplication.
* tests/subobj4.test: Adjust.
* tests/fort2.test: Likewise.
[ng] compiling: implement VPATH rewrites using GNU make primitives
This will shave off extra forks from compilation rules. No semantic
change is expected from this commit. Suggestion from Eric Bake.
* lib/am/depend2.am (am__vpath_rewrite): New internal macro,
implements VPATH rewrites only using GNU make primitives.
Use it in several compilation rules.
* lib/am/comp-vars.am: Remove. This file has stopped being useful
since commit 'Release-1-4d-206-g3334f9a' of 09-04-2001, and should
have been removed back then. But apparently only its contents were
removed, leaving the file empty but still present in the repository.
Or maybe this situation is the consequence of a minor blunder in
the conversion from CVS to Git; either way, this is not a big deal.
[ng] general: GNU make doesn't support the '.MAKE' special target
The '.MAKE' special target can be used on NetBSD make to ensure
that the recipes for the targets declared as its dependencies are
executed also with "make -n". This special target does not work
with GNU make though, so it's pointless to use it. To obtain a
similar effect on GNU make, one can either prepend a recipe with
the '+' modifier, or use the string '$(MAKE)' somewhere in the
recipe text).
* syntax-checks.mk (sc_no_dotmake_target): New syntax check,
ensuring we don't use the '.MAKE' special target.
(syntax_check_rules): Add it.
* lib/am/install.am: Don't use the '.MAKE' target.
* lib/am/subdirs.am: Likewise.
* contrib/multilib/multilib.am: Likewise.
* contrib/check-html.am: Likewise.
* automake.in: Likewise.
* tests/conffile-leading-dot.test ($required): Remove "GNUmake".
* tests/gmake-vars.test: Use 'AUTOMAKE_run' instead of redirecting
the automake stderr by hand. Use "$MAKE", not bare "make".
* Makefile.am, doc/Makefile.am, tests/Makefile.am,
contrib/check-html.am: Don't use '$(AM_MAKEFLAGS)' in recursive
make invocations.
* master:
ar-lib: ignore the verbose modifier instead of erroring out
scripts: cherry-pick recent changes from master
maintcheck: fix real and spurious warnings
maintcheck: take advantage of some GNU make features
build: require GNU make in order to run the maintainer checks
maintcheck: refactor rules checking '*.am' files
tests: do not assume the object file extension is .o
tests: fetch the 'compile' script for subdir objects
tests: fetch the 'ar-lib' script for archiver usage
tests: avoid spurious failure of 'transform2.test' on Cygwin
tests: avoid spurious failure of deleted-am.test with FreeBSD make
tests: avoid possibly undeserved PASS from check8.test
tests: work around MinGW/MSYS issue in fd redirections
warnings: more precise category and message for one warning
release: revamp rules to tag and upload the releases
amversion: add missing dependency
hacking: update advice w.r.t. synced files
hacking: don't reference ChangeLog anymore
tests: add missing dependency for some 'ar-lib*.test' tests
+ Extra edits:
* Makefile.am: Move maintainer checks that are in 'ng/master' and
not in 'master' from here ...
* syntax-checks.mk: ... to this file. Similarly, delete maintainer
checks that have been obsoleted in 'ng/master'. Also, prefer use
of '$(ams)' over '$(srcdir)/lib/am/*.am' where possible.
* tests/suffix8.tap: Remove new workaround for VPATH rewrites, since
those are not performed by GNU make.
* lib/am/depcomp2.am: Remove some comments describing the why and
the how of the verbosity and organization of the recipes. Since we
are heavily refactoring and re-organizing the code, such comments
are doomed to get out-of-sync with the new layout and/or behaviour
of the code. If the need arises, we will re-introduce an updated
version of the comments in a future changeset.
And since we are at it, improve another unrelated comment.
[ng] deptrack: simplify by assuming more GNU make semantics
GNU make supports a "laxer" variant of the 'include' directive that,
when passed non-existing files, simply ignores them instead of
complaining and erroring out. The use of this directive allows us
to simplify the code for automake dependency tracking yet a little
more.
* NG-NEWS: Update.
* automake.in (handle_single_transform): Don't try anymore to emit
explicit dependencies ensuring that each $(DEPDIR) is always created
before any compilation command that might require it. The relevant
compile rules in 'depend2.am' will take care of this directly.
(handle_languages): Use "-include", not "include", to include the
'.Po' files generated by the automatic dependency tracking support.
Don't define anymore the makefile variable 'am__depfiles_maybe',
that is now superfluous. Accordingly, ...
* lib/am/configure.am (%MAKEFILE%): ... don't pass its contents to
the 'config.status' invocation anymore.
* lib/am/depend2.am: In all the relevant compile rules, take care
of creating the $(DEPDIR) directory if it doesn't already exists.
* m4/depout.m4: Delete this file, in particular removing ...
(AM_OUTPUT_DEPENDENCY_COMMANDS, _AM_OUTPUT_DEPENDENCY_COMMANDS):
... these macros.
* doc/automake.texi (Private Macros): Remove reference to deleted
macro 'AM_OUTPUT_DEPENDENCY_COMMANDS'.
* m4/depend.m4 (_AM_DEPENDENCIES): Don't AC_REQUIRE the deleted
macro 'AM_OUTPUT_DEPENDENCY_COMMANDS' anymore.
* m4/Makefile.am (dist_automake_ac_DATA): Don't list the deleted
file 'depout.m4' anymore.
* tests/depend.test: Adjust grepping checks.
* tests/depend4.test: Likewise.
* tests/exsource.test: Likewise.
* tests/subobj11c.test: Likewise.
* tests/subobj11a.test: Adjust: we must now run "make", not only
config.status, in order to create the $(DEPDIR).
* tests/depend5.test: Remove, it's obsolete now.
* tests/depend6.test: Likewise.
* tests/postproc.test: Likewise.
* tests/pr243.test: Likewise.
* tests/pr266.test: Likewise.
* tests/list-of-tests.mk: Update.
* tests/Makefile.am (XFAIL_TESTS): Remove 'depcomp-recover.test':
this test passes now.
* lib/am/depcomp2.am: Use more GNU make capabilities in the rules
implementing fast dependency tracking. This change nicely reduce
the size and complexity of the existing code.
* automake.in (handle_languages): Simplify accordingly.
This will be useful in the soon-to-appear refactoring to the code
supporting automatic dependency tracking.
* tests/depcomp-recover.test: New test, still xfailing.
* tests/Makefile.am (XFAIL_TESTS): Add it.
* tests/depcomp-shuffle.sh: New helper script, sourced by ...
* tests/depcomp-shuffle-so.test, tests/depcomp-shuffle-vpath.test,
* tests/depcomp-shuffle.test, tests/depcomp-shuffle-so-vpath.test:
... these new tests.
* tests/list-of-tests.mk: Add all the new tests.
* tests/gen-testsuite-part ($deps_extractor[depcomp_shuffle]): Also
compute dependencies for the new tests.
* maint:
tests: do not assume the object file extension is .o
tests: avoid spurious failure of 'transform2.test' on Cygwin
tests: avoid spurious failure of deleted-am.test with FreeBSD make
tests: avoid possibly undeserved PASS from check8.test
warnings: more precise category and message for one warning
release: revamp rules to tag and upload the releases
amversion: add missing dependency
hacking: update advice w.r.t. synced files
hacking: don't reference ChangeLog anymore
+ Extra non-trivial edits:
* tests/suffix8.tap: Copy in (by hand) the modifications done
to 'suffix8.test' on maint, i.e., the addition of an explicit
'.y_.obj:' suffix rule to Makefile.am.
Peter Rosin [Mon, 30 Jan 2012 22:27:06 +0000 (23:27 +0100)]
Merge branch 'msvc'
* msvc:
ar-lib: ignore the verbose modifier instead of erroring out
scripts: cherry-pick recent changes from master
tests: add missing dependency for some 'ar-lib*.test' tests
* lib/Makefile.am (install-data-hook): Correctly quote $(DESTDIR)
occurrences.
* Makefile.am (install-exec-hook, uninstall-hook): Likewise.
(autodiffs): Prefer '$(am__cd)' to plain 'cd', where warranted.
* doc/Makefile.am ($(srcdir)/amhello-1.0.tar.gz): Likewise. Also,
prefer using AC_SUBST'd $(abs_top_builddir) over obtaining it at
runtime from $(top_builddir).
* syntax-check.mk (sc_mkinstalldirs): Tweak to whitelist known
harmless occurrences of the checked-against usages.
(sc_no_for_variable_in_macro): Likewise.
* tests/CheckListOfTests.am (maintainer-check-list-of-tests): Tweak
to avoid spuriously triggering the 'sc_no_for_variable_in_macro'
maintainer check. Prefer '$(am__cd)' to plain 'cd' when warranted.
maintcheck: take advantage of some GNU make features
We can do so now that our maintainer checks require GNU make
unconditionally.
* syntax-check.mk (ams, xtests): Redefine as "immediate variables",
using the GNU make $(shell ...) builtin.
(maintainer-check-list-of-tests): Take advantage of GNU make "-C"
option. Don't use $(AM_MAKEFLAGS), we shouldn't need it with GNU
make.
build: require GNU make in order to run the maintainer checks
This is not a real regression in portability, since most maintainer
check rules already assumed GNU grep, and were anyway only meant to
run on the developers' systems (where we can safely assume the
presence of GNU make).
This change will allow us to take advantage, in future changes, of
more GNU make features, thus simplifying or optimizing some of our
maintainer rules.
* GNUmakefile: New, including 'Makefile' and 'syntax-checks.mk'.
* configure.ac (AC_CONFIG_LINKS): Link it in the builddir.
* Makefile.am (EXTRA_DIST): Distribute 'GNUmakefile' and
'syntax-checks.mk'.
Move all syntax-check rules and auxiliary variables into ...
* syntax-checks.mk: ... this new file, with some adjustments.
A small refactoring in our syntax-check to avoid code duplication
and to ensure more uniform checking. This change introduces some
new failures in syntax-check rules (both real and spurious), that
will be fixed in follow-up changes and code reorganizations.
* Makefile.am (ams): New variable, holding the list of all the
'*.am' fragments in he automake source tree.
(sc_no_brace_variable_expansions): Use it.
(sc_rm_minus_f): Likewise.
(sc_no_for_variable_in_macro): Likewise.
(sc_mkinstalldirs): Likewise.
(sc_pre_normal_post_install_uninstall): Likewise.
(sc_cd_in_backquotes): Likewise.
(sc_cd_relative_dir): Likewise.
(sc_tests_make_without_am_makeflags): Likewise.
(sc_tests_plain_egrep_fgrep): Likewise.
(sc_mkdir_p): Likewise.
Peter Rosin [Mon, 30 Jan 2012 19:57:12 +0000 (20:57 +0100)]
tests: do not assume the object file extension is .o
* tests/specflg7.test: Dig out the object file extension from the
OBJEXT makefile variable.
* tests/substref.test: Likewise.
* tests/specflg8.test: Likewise. Also check that the false-true
object is created instead of checking the true-true object twice.
* tests/suffix8.test: Add a chain rule for the case where the
object file extension is .obj.
tests: avoid spurious failure of 'transform2.test' on Cygwin
On newer Cygwin versions (at least 1.7.x), the 'transform2.test'
test has been failing spuriously; the gist is the following:
some *purposefully* rigged install rules there try something
like:
and the second install command fails (trying to overwrite the
'.../inst/bin/foo.exe' file, likely due to overly aggressive
appending of '.exe' suffix when copying/renaming Windows
executables). Since this is a Cygwin issue rather than an
Automake one (and since the use case we are testing is a really
corner-case anyway, making it unworthy to attempt to work
around it in automake proper), we simply hack the test case
to avoid the failure.
tests: avoid spurious failure of deleted-am.test with FreeBSD make
* tests/deleted-am.test: Sleep between the removal of the included
'.am' fragments and the subsequent "make" calls, to ensure that the
remake rules kick in. This is required to avoid racy spurious
failures (~ 60% of the time) with FreeBSD make.
tests: avoid possibly undeserved PASS from check8.test
* tests/check8.test: Strengthen grepping of "make check" output
where we know no problem with VPATH rewrites can take place. This
has the advantage of ensuring that we won't match also "sub/bar"
when looking for "bar" during the uncolorized tests.
tests: work around MinGW/MSYS issue in fd redirections
Some checks on $(AM_TESTS_FD_REDIRECT) were failing on MSYS, likely
because system calls like "write(9, ...)" simply doesn't work for
MinGW-compiled programs. Similar usages work for the shell scripts
though, since /bin/sh is an MSYS program and thus is a lot more
POSIX-ish than most MinGW-compiled programs.
The best fix for this issue is to separate the checks using shell
scripts as dummy test cases from the checks using compiled programs
for the same purpose, and skip these latter checks on MinGW.
This change fixes automake bug#10466. Report by Peter Rosin.
* tests/parallel-tests-fd-redirect.test: Move checks using compiled
C programs as test cases to ...
* tests/parallel-tests-fd-redirect-exeext.test: ... this new test.
* tests/list-of-tests.mk: Update.
warnings: more precise category and message for one warning
If automake detected an usage like "AC_CONFIG_FILES([./Makefile])"
in configure.ac, it warned that such an usage was unportable to
non-GNU make implementations. But the truth is actually worse:
that is actually *unportable to GNU make* itself, since it breaks
the automatic remake rules in subtle ways.
So we now reveal this breakage in a new test case, and enhance
the warning by giving it a more precise and correct wording, and
by moving it from the category 'portability' to the category
'unsupported'.
* automake.in (scan_autoconf_config_files): Improve the warning.
* tests/conffile-leading-dot.test: New test.
* tests/list-of-tests.mk: Add it.
[ng] docs: we assume GNU make now; update accordingly
* doc/automake.texi: Update and adjust. Add some FIXME comments for
more delicate passages that should be re-worked and addressed in the
future.
* tests/interp3.test: New test, exposing a known Automake limitation
that is particularly annoying for GNU make users.
* tests/Makefile.am (XFAIL_TESTS): Add it.
* tests/list-of-tests.mk: Likewise.
[ng] warnings: remove some obsolete portability warnings
With this change, we remove some more portability warnings that were
only relevant for non-GNU make implementations. We also add some
test cases that ensure such warnings stay gone (as improper merges
from master might bring them back), and to ensure the issues they
warned about are actually not present with GNU make.
* automake.in (check_directory): Do not check against directories
named 'obj' (unportable to BSD make).
* tests/objdir.test: New test.
* tests/subdir7.test: Remove as obsolete.
* lib/Automake/Rule.pm (define): Don't warn about ':=' variable
assignments (unportable to e.g., Solaris make).
* tests/vars-assign.test: New test.
* tests/colneq.test: Remove as obsolete.
* tests/colneq3.test: Remove as redundant.
* tests/amopts-variable-expansion.test: Adjust not to assume
occurrences of the obsolete warning anymore.
* tests/warnings-override.test: Likewise.
* tests/warnings-precedence.test: Likewise.
* tests/warnings-strictness-interactions.test: Likewise.
* tests/warnings-win-over-strictness.test: Likewise.
* tests/warning-groups-win-over-strictness.test: Likewise.
* lib/Automake/Rule.pm (define): Don't warn about pattern rules.
Adjust comments.
* tests/percent.test: Remove as obsolete.
* tests/pattern-rules.test: New test.
* tests/percent2.test: Renamed ...
* tests/pattern-rules2.test: ... to this, and adjusted.
* tests/list-of-tests.mk: Adjust.
* NG-NEWS: Update.
* master:
multilib: move to contrib
tests: improve diagnostics when write(2) fails
readme: how to run the testsuite with cross-compilers
tests: no need to unset CFLAGS in tests requiring 'gcc' anymore
test defs: allow compilers to be auto-selected on user's request
test defs: substitute compilers and flags found at configure time
test defs: setup `*FLAGS' variables for GNU compilers
configure: search generic compilers for use in the tests
tests: remove redundant 'set -e' calls
tests: fix spurious failure due to autom4te caching
dist tests: missing 'compress' program was causing spurious failures
vala: fix name of temporary file used in vala rules
vala tests: add missing 'valac' requirement, and other minor fixlets
news: fix grammaro
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
+ Extra edits:
* contrib/multilib/multilib.am: Don't use $(AM_MAKEFLAGS) in
recursive make invocations.
[ng] deptrack: GNU make always supports the 'include' directive
Now that we assume GNU make, there is no need to check whether
and how the target make program supports an "include" directive.
In particular, the AC_SUBST'd variables 'am__include' and
'am__quote', as well as the autoconf macro 'AM_MAKE_INCLUDE',
are redundant, and shouldn't be used anymore.
* m4/make.m4: Delete, it's not needed anymore. In particular,
this removes the definition of ...
(AM_MAKE_INCLUDE): ... this internal macro.
* m4/depend.m4 (_AM_DEPENDENCIES): Assume make can always include
files at runtime with the "include FILE" syntax. Don't require
the 'AM_MAKE_INCLUDE' macro anymore.
* m4/depout.m4 (_AM_OUTPUT_DEPENDENCY_COMMANDS): We don't need to
extract the definition of 'am__include' and 'am__quote' from the
makefile anymore; simplify accordingly.
* m4/Makefile.am (dist_automake_ac_DATA): Remove it.
* doc/automake.texi (Private Macros): Remove mention of the
obsolete macro 'AM_MAKE_INCLUDE'.
* Makefile.am (sc_make_simple_include): New maintainer check.
(sc_tests_make_simple_include): Likewise.
(syntax_check_rules): Add them.
(sc_grep_for_bad_make_include): New helper variable used by the
two new checks.
* tests/make.test: Remove, it's obsolete.
* tests/subobj11b.test: Likewise.
* tests/list-of-tests.mk: Don't list the deleted tests.
* tests/exsource.test: Update.
* tests/depend.test: Likewise.
* tests/depend4.test: Likewise.
* tests/subobj11a.test: Likewise.
* tests/subobj11c.test: Likewise.
[ng] silent: GNU make understands nested variable expansions
So there's no need to check at configure time whether nested
variable expansion is supported. That check that was introduced
in commit 'v1.11-598-g8493499' of 2011-12-25 ("silent-rules:
fallback for makes without nested vars) in response to automake
bugs #9928 and #10237.
This commit basically reverts patch 'v1.11-598-g8493499' and some
of its follow-ups.
release: revamp rules to tag and upload the releases
The older Makefile rules used to create and tag the releases were
based on an approach we now consider flawed: they over-mechanized
some delicate operations that are better performed manually *and*
double-checked by a developer, and at the same time they did not
run enough safety checks.
* Makefile.am (GIT, version_rx, stable_version_rx, beta_version_rx,
match_version, git_must_have_clean_workdir, determine_release_type):
New variables.
(git-release, git-dist): Remove, they are superseded by ...
(git-tag-release, git-upload-release): ... these new targets.
* HACKING: Update and improve advices and explanations about files
in the automake repository that are now owned by automake, but
mirrored from other upstreams. Also, don't list these files
explicitly, rather point the reader to the $(FETCHFILES) variable
in Makefile.am.
* Makefile.am (FETCHFILES): Don't state that "there should be a
lot more here", as this is not true anymore today. Only 'COPYING'
must be synced by hand.
* HACKING: Don't reference the ChangeLog file anymore, since that
is now generated from the git commit messages, not maintained by
hand. So remove advice that is obsolete, and speak about "git
commit message" instead of "ChangeLog entry" for advice that is
still relevant.
This follows up on commit v1.11-665-gc5df21e of 2012-01-17,
"multilib: deprecate, will be moved to contrib". See also:
<http://lists.gnu.org/archive/html/automake-patches/2012-01/msg00109.html>
* NEWS: Update.
* automake.in ($seen_multilib): Remove.
(scan_autoconf_traces): Don't trace 'AM_ENABLE_MULTILIB', and don't
handle it anymore.
(handle_multilib): Remove.
(generate_makefile): Don't call it anymore.
* doc/automake.texi: Remove documentation about multilib support,
related macros, and helper files.
* m4/multi.m4: Delete.
* m4/Makefile.am (dist_automake_ac_DATA): Remove it.
* lib/am/multilib.am: Delete.
* lib/am/Makefile.am (dist_am_DATA): Remove it.
* contrib/multilib/multilib.am: New file, adapted from extracts of
a Makefile.in generated with automake multilib support. We did
this instead of moving and editing 'lib/am/multilib.am' because it
allows us to license this file with a liberal license that will
permit users to copy-and-paste it in non-GPLed Makefile.am files
too).
* lib/symlink-tree, lib/config-ml.in: Move ...
* contrib/multilib: ... in here.
* lib/Makefile.am (dist_script_DATA, dist_pkgvdata_DATA): Update.
* contrib/multilib/README: New file.
* contrib/Makefile.am (EXTRA_DIST): Add the files created or moved
in 'contrib/multlib'.
* tests/multilib.test: Update and enhance a little.
* tests/help-multilib.test: Likewise.
* compilers-for-testsuite:
readme: how to run the testsuite with cross-compilers
tests: no need to unset CFLAGS in tests requiring 'gcc' anymore
test defs: allow compilers to be auto-selected on user's request
test defs: substitute compilers and flags found at configure time
test defs: setup `*FLAGS' variables for GNU compilers
configure: search generic compilers for use in the tests
readme: how to run the testsuite with cross-compilers
* tests/README: Suggest a better way to run the automake testsuite
with cross-compilers -- that is, configuring the Automake source
tree with proper `--build' and `--host' configure option. And
yes, specifying both these options (not only `--host') is indeed
required to avoid spurious failures in corner cases.
When you call configure with the `--host' option but without the
`--build' option, configure tries to auto-detect whether you are
cross-compiling or not, by trying to run a generated executable.
That test might spuriously "succeed" in some corner cases (e.g.,
Cygwin is able to run non-Cygwin apps). In fact, generally, it
can be the case that a cross-compilation is not detected as a
cross anymore just because someone has installed an emulator; as
an example, think of what can happen on a GNU/Linux system that
is configured (through the use of the binfmt_misc kernel module)
to execute PE executables (compiled for MS-DOS or Windows) through
Wine *automatically*. In conclusion, configure needs to be used
as recommended in the documentation (i.e., by specifying *both*
`--host' and `--build' instead of just one of them) to not have
the build fall into any of a number of weird traps.
* tests/defs (cross_compiling): Improve comments.
tests: no need to unset CFLAGS in tests requiring 'gcc' anymore
* tests/ccnoco.test: Since this test have "gcc" in $required,
there is no need to manually nullify the CFLAGS variable, since
now `tests/defs' should automatically re-define that to a value
appropriate for gcc.
* tests/ccnoco3.test: Likewise.
test defs: allow compilers to be auto-selected on user's request
In the recent changes, by pre-setting the required compilers for
the `configure' scripts launched by the test scripts, we have
slightly reduced the coverage of autoconf/automake code aimed at
automatically detecting said compilers. This commit restore such
coverage, by allowing the user to instruct the testsuite *not* to
preset the testsuite compiler(s).
* tests/defs (cc): If $CC is set to the special value "autodetect"
or "autodetected", don't export the configure-detected CC, CFLAGS
and CPPFLAGS variables; rather, unset them.
(c++): Likewise, but for CXX, CXXFLAGS and CPPFLAGS instead.
(fortran): Likewise, but for FC and FCFLAGS instead.
(fortran77): Likewise, but for F77 and FFLAGS instead.
(require_compiler_): New function, to reduce code duplication.
test defs: substitute compilers and flags found at configure time
* tests/Makefile.am (do_subst): Also substitute CC, CXX, F77, FC,
CPPFLAGS, CFLAGS, CXXFLAGS, FCFLAGS and FFLAGS.
* tests/defs-static.in: Define those variables, allowing for
overrides from the environment.
* tests/defs (for tool in $required): Export (subsets of) those
variables when the stuff in `$required' calls for it.
Add related explanatory comments.
test defs: setup `*FLAGS' variables for GNU compilers
* configure.ac: Setup some `*FLAGS' variables for use by the
GNU compilers in our testsuite. For example, use `GNU_CFLAGS'
instead of `CFLAGS', and so on for similar variables. This
is especially useful in case the compilers found or defined
at configure time are not the GNU ones.
* tests/defs-static.in: Initialize those same variables with
the values set at configure time, but allowing overrides
from the environment.
* tests/Makefile.am (do_subst): Process configure-style
substitutions of those variables (e.g., `@GNU_CFLAGS@').
* tests/defs: When a GNU compiler is required, override the
corresponding generic `*FLAGS' variable with the GNU-specific
variant (e.g., redefine `$CFLAGS' to take the value of
`$GNU_CFLAGS').
configure: search generic compilers for use in the tests
* configure.ac: Look for "generic" C, C++ and Fortran compilers,
with the aim of starting to use them in the testsuite (this will
be done in future changes). This is more tricky than it seems,
since we don't want to abort the whole configure script even if
no one of those compilers is available (after all, they're only
needed by the testsuite, not to build automake), but currently
autoconf doesn't offer an easy way to obtain this behaviour.
We prefer non-GNU compilers to the GNU ones, to ensure better
coverage "in the wild".
* tests/aclocal-install-absdir.test: Do not set the 'errexit' shell
flag, as it is already set by 'tests/defs'.
* tests/distcheck-pr10470.test: Likewise.
* tests/objext-pr10128.test: Likewise.
* tests/parallel-tests-dry-run-1.test: Likewise.
* tests/silent-nested-vars.test: Likewise.
* tests/tar-override.test: Likewise.
* tests/vala-mix.test: Likewise.
* tests/vala-vpath.test: Likewise.
* maint:
tests: fix spurious failure due to autom4te caching
vala: fix name of temporary file used in vala rules
vala tests: add missing 'valac' requirement, and other minor fixlets
news: fix grammaro
tests: fix spurious failure due to autom4te caching
* tests/lzma.test: Remove stale autom4te.cache directories, to
prevent racy, spurious failures (using 'aclocal --force' was
not enough, since the cache was still picked up by the following
automake call).
dist tests: missing 'compress' program was causing spurious failures
Fixes automake bug#10575.
The compress(1) tool is becoming anachronistic, and thus is not
installed by default on modern distros (e.g., Fedora 16). We
can't thus unconditionally assume it exists on every reasonable
portability target.
* tests/dist-formats.tap ($missing_compressors): When defining
this, don't assume anymore that compress(1) is unconditionally
available.
(Parallel compression): Skip this sub-test if compress(1) is
unavailable.
Since we are at it, fix a couple of unrelated buglets: a typo
in a test name (s/distcheck/ark-exists/), and some attempts to
remove directories with "rm -f".
vala: fix name of temporary file used in vala rules
Unquoted `@' characters in a "..." string in the automake script
were causing slightly wrong rules to be emitted in the generated
Makefile.in; i.e., rules like:
vala tests: add missing 'valac' requirement, and other minor fixlets
See also automake bug#10575.
* tests/vala-mix.test ($required): Add 'valac'; this will avoid
spurious failures on systems lacking a Vala compiler.
Add some explicative comments for a couple of non-obvious make
calls.
Make grepping of "make -n" slightly stricter, to avoid potential
false positives.
* 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
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.
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.
Now that we can assume macros redefined on the command line get
correctly passed down to sub-make invocations, there's no need
to prefer "FOO=bar make -e" over "make FOO=bar" in our testsuite.
In fact, "make -e" is brittle and unsafe, since it let *all* the
environment win over the macro definitions in the Makefiles; so,
since we are at it, let's prohibit the use of "make -e" altogether.
* tests/README: Don't give advice about using "make -e" for
non-GNU make implementations.
* doc/automake.texi: Likewise.
* Makefile.am (sc_tests_no_make_e): New maintainer check.
(sc_docs_no_make_e): Likewise.
(syntax_check_rules): Add them.
* Many tests: Adjust.
GNU make is smart enough to correctly pass the values of macros
redefined on the command line to sub-make invocations. So there's
no need to document this usage as unportable, nor to avoid it in
the testsuite, nor to provide the AM_MAKEFLAGS special variable
as a workaround for the sake of lesser make implementations.
* Makefile.am (sc_tests_make_without_am_makeflags): Remove.
(sc_tests_overriding_macros_on_cmdline): Likewise.
(sc_tests_make_without_am_makeflags): New maintainer check,
verifies hat AM_MAKEFLAGS is never used in test case, *.am
fragments, automake generated rules, nor documentation.
(syntax_check_rules): Adjust.
* doc/automake.texi: Update.
* automake.in: Likewise.
* Some tests and various lib/am/*.am fragments: Likewise.
* tests/remake-all-2.test: Remove.
* tests/remake-subdir2.test: Likewise.
* tests/list-of-tests.mk: Adjust.
[ng] tests: GNU make doesn't perform VPATH rewrites
* tests/parallel-tests8.test: Remove extra hacks that accounted
for the possibility of VPATH rewrites, since GNU make performs
none.
* tests/suffix10.tap: Likewise.
* tests/suffix11.tap: Likewise.
* tests/suffix12.test: Likewise.
* tests/suffix13.test: Likewise.
* tests/suffix3.tap: Likewise.
* tests/suffix5.test: Likewise.
* tests/suffix8.tap: Likewise.
* tests/java-compile-run-flat.test: Likewise, and simplify by
assuming that the special make variable `$<' is available also
in common rules, not only in suffix rules.
* tests/java-compile-run-nested.test: Likewise.
[ng] test: don't unset variables not influential on GNU make
* tests/defs (__MKLVL__): Don't unset, it was influential only
for BSD make, not GNU make.
(MAKE_JOBS_FIFO): Likewise.
(DMAKE_CHILD): Don't unset, it was influential only for Solaris
dmake, not GNU make.
(DMAKE_DEF_PRINTED): Likewise.
(DMAKE_MAX_JOBS): Likewise.
* tests/tap-doc2.test (DMAKE_MODE): Likewise.