Fix conflnk3.test to work with Solaris/Heirloom Sh.
* tests/conflnk3.test: Use `test -r FILE' and `test ! -r FILE'
instead of respectively `test -e FILE' and `test ! -e FILE',
since Solaris Sh doesn't grok the latter. Do not SKIP the test
if the shell doesn't support `test -e'.
* tests/badopt.test: Add call to `set -e'. Due to this change,
an unexpected failure in the call to `$ACLOCAL' (whose outcome
was previously unchecked) would cause the whole test to fail.
Also, bumped the copyright years.
Use `set -e' in confsub.test (avoid false negatives).
* tests/confsub.test: Enable shell `errexit' flag, and related
changes (this helps avoiding some possible minor false negatives).
Also, bumped copyright years.
Fix -Werror handling for presence of configure.in and configure.ac.
* lib/Automake/Variable.pm (Automake::Variable): Do not initialize
$configure_ac at the global level, before command-line arguments
have been parsed.
(require_variables): Initialize it here.
* tests/configure.test: New test.
* tests/Makefile.am: Update.
Report by Stefano Lattarini.
* tests/confh5.test: Enable shell `errexit' flag, and bumped
copyright years. Due to this change, any unexpected failure
in calls to $ACLOCAL, $AUTOMAKE, $AUTOCONF or $AUTOHEADER, or
a failure in grepping expected text in output files should now
cause the whole test to fail.
* tests/color.test: Tests using the expect program moved out to...
* tests/color2.test: ... this new file.
* tests/Makefile.am (TESTS): Extended accordingly.
Before this patch, 'AUTOMAKE_OPTIONS = -Werror' in one
Makefile.am would carry over to other Makefile.am files
treated afterwards by the same thread, causing inconsistent
and unstable exit status values.
* lib/Automake/Channels.pm (dup_channel_setup)
(drop_channel_setup): Save and restore the setting of
$warnings_are_errors.
* tests/werror3.test: New test.
* tests/Makefile.am: Adjust.
* NEWS: Update.
* tests/confh5.test: In the generated Makefile.am: do not use
`test ! -e FILE' to check for the non-existence of a file, since
that is not supported by Solarish/Heirloom Sh.
* Makefile.am (path-check): To be safe, do not use `chmod -R' on
$(distdir) before removing it (as Solaris `chmod -R' touches
symlink targets). Instead, use the cleanup strategy used in
distdir.am (which is also employed in tests/defs.in).
* tests/defs.in: In the generated `configure.in' snippet: call
`AM_INIT_AUTOMAKE' with the `parallel-tests' option if the shell
variable `parallel_tests' is set to `yes'.
* tests/Makefile.am (defs-p): Target removed.
(check_SCRIPTS): Removed `defs-p'.
(clean-local-check): Do not unlink `defs-p' anymore.
($(parallel_tests)): Transformation rules for the test scripts
adjusted.
* tests/gen-parallel-tests: Selection rules for the test
scripts adjusted.
* tests/parallel-tests.test: Set `$parallel_tests' to `yes'
then include `./defs' (rather than simply including `./defs-p').
* tests/parallel-tests2.test: Likewise.
* tests/parallel-tests3.test: Likewise.
* tests/parallel-tests4.test: Likewise.
* tests/parallel-tests5.test: Likewise.
* tests/parallel-tests6.test: Likewise.
* tests/parallel-tests7.test: Likewise.
* tests/parallel-tests8.test: Likewise.
* tests/parallel-tests9.test: Likewise.
* tests/parallel-tests10.test: Likewise.
* tests/README (Section "Writing Test Cases", subsection "Do"):
Adjusted the parts referring to tests checking `parallel-tests'
behaviour. Some other minor related improvements.
* tests/.gitignore (defs-p): Removed.
Ralf Wildenhues [Mon, 22 Feb 2010 17:53:51 +0000 (18:53 +0100)]
Deprecate dist-lzma in favor of dist-xz.
* doc/automake.texi (The Types of Distributions, Options):
Adjust text to reflect renaming of lzma to xz.
* NEWS: Update.
Missing deprecation noted by Antonio Diaz Diaz.
Add tests about support of wildcards in EXTRA_DIST.
* tests/extra10.test: New test, check basic support of wildcards
in EXTRA_DIST.
* tests/extra11.test: New test, check more complex usage of
wildcards in EXTRA_DIST.
* tests/extra11.test: New test, check usage of wildcards in
EXTRA_DIST when $builddir != $srcdir.
* tests/Makefile.am (TESTS): Updated accordingly.
Necessity of these new tests suggested by Braden McDaniel
and Ralf Wildenhues.
Dmitry V. Levin [Sat, 30 Jan 2010 19:21:19 +0000 (22:21 +0300)]
Fix exit status of signal handlers in shell scripts.
The value of `$?' on entrance to signal handlers in shell scripts
cannot be relied upon, so set the exit code explicitly to
128 + SIG<SIGNAL>.
* lib/am/check.am (am__check_pre): Use `exit 143' in signal handler.
* lib/elisp-comp: Likewise.
* lib/install-sh: Likewise.
* lib/ylwrap: Likewise. Also, fix script to trap signal 13, not 3.
* NEWS, THANKS: Update.
Bug report, analysis, and initial patch by Dmitry V. Levin.
Slighty improve tests acoutbs.test and acoutbs2.test.
* tests/acoutbs2.test: Enable `errexit' shell flag. Check that
autoconf and configure work, that the file `zot' is created by
configure, and that no file containing a backslash in its name is
created.
* tests/acoutbs.test: Likewise, plus updated copyright years.
* tests/acoutbs2: In the generated configure.in: add proper calls
to AC_INIT and AM_INIT_AUTOMAKE, and remove explicit definition of
PACKAGE and VERSION. Add a call to aclocal before calling automake.
Updated copyright years.
* tests/Makefile.am (XFAIL_TESTS): Removed acoutbs2.test.
* tests/Makefile.am (TESTS): Added test scripts present on the
filesystem, which were erroneously left out from $(TESTS):
acoutbs2.test, badopt.test, extra2.test.
(XFAIL_TESTS): Added acoutbs2.test.
Replace unlzma, gunzip, bunzip2 with pack tool -d invocation.
* lib/am/distdir.am (distcheck): Use lzma -d, gzip -d, bzip2 -d,
instead of the respective un$tool invocation, to avoid depending
on another tool.
* THANKS: Update.
Ralf Wildenhues [Sat, 5 Dec 2009 13:39:15 +0000 (14:39 +0100)]
Use $DJDIR rather than $DJGPP to detect running on DJGPP.
* automake.in (Language): Use $ENV{'DJDIR'} for the
$ENV{'SHELL'} override.
* bootstrap: Use $DJDIR for setting BOOTSTRAP_SHELL, to fix
bootstrapping under MinGW when $DJGPP has been set.
Ralf Wildenhues [Sat, 5 Dec 2009 13:13:43 +0000 (14:13 +0100)]
Do not rely on Perl symlink status, for MSYS perl.
* automake.in (require_file_internal): Ensure presence of
symlink target file; MSYS perl symlink doesn't return an error
status when the file could not be created (copied, on this
system). Fixes symlink.test failure.
* tests/vala4.test: New variable $cwd, holding the full path of the
current directory. Use it instead of `pwd` command substitution,
to avoid Heirloom/Solaris Sh bug with `set -e'.
Jim Meyering [Sat, 28 Nov 2009 20:05:33 +0000 (21:05 +0100)]
do not put world-writable directories in distribution tarballs
* lib/am/distdir.am (distdir): Do not make all directories
group- or world-writable. Instead, use 755.
* tests/subpkg4.test (test-distdir-is-readable): Check for new,
more restricted permissions.
Jim Meyering [Sat, 31 Oct 2009 16:47:58 +0000 (17:47 +0100)]
Don't let an envvar setting of "$fail" cause build failure.
Without this change, in a project using an automake-generated
Makefile, "make fail=anything" would fail inappropriately,
due to the `test -z "$$fail"' at the end of this emitted rule:
* lib/am/subdirs.am ($(RECURSIVE_TARGETS)): Initialize "fail=" to keep
an envvar setting of that variable from causing unwarranted failure.
($(RECURSIVE_CLEAN_TARGETS)): Likewise.
* tests/subdir10.test: New test.
* tests/Makefile.am: Update.
Ralf Wildenhues [Sun, 11 Oct 2009 14:58:27 +0000 (16:58 +0200)]
Fix race condition in werror2.test due to sanity sleep change.
* tests/werror2.test: Generate Makefile.in before configure so
that a Makefile.am update after configure has run is guaranteed
to be newer than Makefile.in.
* tests/subdir5.test: Document why this test does not need to be
fixed.
* tests/subdir8.test: Likewise.
Ralf Wildenhues [Sun, 11 Oct 2009 11:44:37 +0000 (13:44 +0200)]
Improve description of the various *LINK variables.
* doc/automake.texi (Program and Library Variables): _LINK also
receives libraries to link against. _LINK may be generated.
(Program Variables): Document reasons when per-target _LINK is
used instead of LINK.
(How the Linker is Chosen): Document how a per-target _LINK
variable and per-target link flags override linker selection.
* THANKS: Update.
Report by Dave Korn against gcc/libstdc++-v3.
Ralf Wildenhues [Sun, 11 Oct 2009 11:33:43 +0000 (13:33 +0200)]
Allow variable override of, rather than by, silent variables.
When overriding variables, check the VAR_SILENT status of the
old condition, not the new one: we allow non-silent overrides
of silent variables (these do not hit ordering bugs in the
automake output), but there is no use case for doing so the
other way round. Fixes conditional overrides of variables
annotated AM_SUBST_NOTMAKE in configure.ac.
* lib/Automake/Variable.pm (_check_ambiguous_condition): Check
for VAR_SILENT in $ambig_cond not $cond.
* tests/cond44.test, tests/cond45.test: New tests, analogous to
cond23.test and cond24.test.
* tests/Makefile.am: Update.
Spotted originally in binutils/bfd.
Ralf Wildenhues [Sun, 11 Oct 2009 11:23:11 +0000 (13:23 +0200)]
Fix in-tree `recheck' after failed test that runs `check'.
If a test like pr401b-p.test fails for some reason, a `make
recheck' would cause another reason for failure because it sets
AM_MAKEFLAGS which gets propagated into the test and causes its
`make check' to fail.
Testsuite: do not use `chmod -R' when cleaning up.
* tests/Makefile.am (clean-local-check): Do not use `chmod -R' on
the test directories, as that may change or try to change the mode
of installed files: the test directory may contain symlinks to
ltmain.sh files from a Libtool installation, and Solaris `chmod -R'
touches symlink targets. Instead, use the cleanup strategy used
in distdir.am (which is also employed in tests/defs.in).
Bruno Haible [Tue, 6 Oct 2009 20:03:33 +0000 (22:03 +0200)]
Fix 'compile' script to not call mv when target equals source.
* lib/compile: Don't attempt to move the generated file to its
target destination when it is already at the target destination.
Avoids an mv failure with subdir-objects.
* tests/ccnoco3.test: New test.
* tests/Makefile.am: Adjust.
* tests/README (Supported shells): Changed the recommended way
to run automake's test scripts with Zsh. Now we tell to use
the Zsh's command line option `-o no_function_argzero', not
`--no-function-argzero', since the latter does not work with
versions 3.x of Zsh.
Avoid sleeping for one second most of the time in sanity check.
* m4/sanity.m4 (AM_SANITY_CHECK): Try sanity check first without
sleeping for a second, and only if that failed, sleep and try
again, to avoid the delay in the common case of a configure
script that is older than a second, or a system with sub-second
time stamp granularity.
Report and different patch by Jim Meyering.
* tests/README (User interface, Getting details from failures):
Explicitly state that every test is a "shell script", not just
a "script", and that it's run by `/bin/sh' by default.
* tests/README (User interface, Supported shells): New subsection,
telling about expected portability of the automake test scripts,
describing a zsh incompatibility (w.r.t. $0), and a workaround to
it (with the `--no-function-argzero' option).
Ralf Wildenhues [Sun, 24 May 2009 07:03:00 +0000 (09:03 +0200)]
parallel-tests: avoid GNU make 3.80 substitution bug.
* lib/am/check.am [PARALLEL_TESTS] (check-TESTS): Remove any
`.log' entries from `$(TEST_LOGS)' even if the list is nonempty,
to work around GNU make 3.80 substitution reference issue with
trailing white space in the variable.
* tests/parallel-tests10.test: New test.
* tests/parallel-tests6.test: Update comment.
* tests/Makefile.am: Update.
* NEWS: Update.
Report by Bob Friesenhahn.
* tests/defs.in: Before test execution, be sure to unset all
installation directory variables, so they cannot have an effect
on a `make -e install' command within a test.
Report by Dagobert Michelsen.
Ralf Wildenhues [Sat, 23 May 2009 21:05:17 +0000 (23:05 +0200)]
testsuite: do not change the mode of installed Libtool files.
* tests/defs.in: Do not use `chmod -R' on the test directory, as
that may change or try to change the mode of installed files:
the test directory may contain symlinks to ltmain.sh files from
a Libtool installation, and Solaris `chmod -R' touches symlink
targets. Instead, use the cleanup strategy used in distdir.am.
* NEWS: Update.
Report by Dagobert Michelsen.
Ralf Wildenhues [Sat, 23 May 2009 20:54:15 +0000 (22:54 +0200)]
testsuite: do not fail in cleanup code.
* tests/defs.in: Turn off errexit in the cleanup trap, to avoid
a test failure due to a nonzero command.
* THANKS: Update.
Report by Dagobert Michelsen.
Peter O'Gorman [Sat, 23 May 2009 20:13:14 +0000 (22:13 +0200)]
python: do not install in system directories on Darwin 9.
On Darwin 9, get_python_lib returns a path below `/Library/Python'
regardless of the `prefix' argument it was passed, causing `make
install' to target the system directories regardless of `--prefix'
argument used. Work around this Darwin bug by ignoring the result
of get_python_lib if it points outside of the passed prefix, and
the prefix was not a system directory.
* m4/python.m4 (AM_PATH_PYTHON): If the prefix does not match the
initial portion of the pythondir returned by get_python_lib, then
ignore it unless the configured prefix is `/usr' or starts with
`/System'. Fixes instmany-python.test failure on Mac OS X 10.5.7.
* NEWS: Update.
Ralf Wildenhues [Sat, 23 May 2009 20:06:07 +0000 (22:06 +0200)]
Clarify how to enable `silent-rules' and other global options.
* doc/automake.texi (Options): When introducing options, be more
careful to note that not all of them can be specified in
AUTOMAKE_OPTIONS statements, and that some do not make sense in
subdirectories. Note more prominently that `silent-rules' can
only be specified in configure.ac.
* lib/Automake/Options.pm (_process_option_list): Improve error
message for `silent-rules', `tar-v7', `tar-ustar', `tar-pax'
options specified in Makefile.am files.
Report by Bruno Haible.
Ralf Wildenhues [Mon, 18 May 2009 18:57:05 +0000 (20:57 +0200)]
testsuite: also try `jot' as `seq' replacement.
* tests/instmany-mans.test: Try BSD `jot' before resorting to a
slow but portable shell loop.
* tests/instmany-python.test: Likewise.
* tests/instmany.test: Likewise.
Suggestion by Peter O'Gorman.
Ralf Wildenhues [Mon, 18 May 2009 18:52:59 +0000 (20:52 +0200)]
Fix test failure when pkg.m4 is not found, only pkg-config.
* tests/vala5.test: Update comment, this test is not expected to
fail any more. Require valac version 0.7.0. Skip if configure
fails, could be due to unexpanded PKG_CHECK_MODULES or too old
valac.
Report by Simon Josefsson.
Ralf Wildenhues [Sun, 17 May 2009 13:32:40 +0000 (15:32 +0200)]
Revert Automake license to GPLv2+.
Automake will move to GPLv3+ once the Exception statement has
been rewritten to use the new GPLv3 exception language. This
change does not impact the COPYING file that may be installed
by `automake --add-missing'.
* COPYING: Revert to GPLv2. All uses changed.
* NEWS: Update.
* Makefile.am (release-stats): Output stderr of pstops in
addition to catching it, for better debugging.
* doc/automake.texi (Releases): Add line for 1.10.2.
Ralf Wildenhues [Sun, 17 May 2009 10:03:47 +0000 (12:03 +0200)]
Cope with parallel BSD make -jN semantics.
When BSD `make -jN' is used without `-B' which enables backwards
compatible semantics, it may reuse the same shell for several
commands within a rule; so ensure we do not leave it in a
different directory, nor `exit 0' early in a multi-command rule.
* lib/am/distdir.am (distcheck): After running `distcleancheck',
change back to original working directory.
* lib/am/remake-hdr.am (%CONFIG_HIN%): Run autoheader in a
subshell.
* lib/am/mans.am (uninstall-man%SECTION%): Do not `exit 0' early
in a rule that consists of several shell invocations. Parallel
NetBSD `make -jN' without `-B' will use only one shell for all
commands, but won't respawn one after `exit 0'. Fixes
notrans.test failure.
* tests/makej2.test: New test.
* tests/Makefile.am: Update.