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.
Ralf Wildenhues [Sun, 24 Jan 2010 11:36:47 +0000 (12:36 +0100)]
Fix silent-rules output for disabled dependency tracking.
* lib/am/depend2.am [!%FASTDEP%]: Rework silent-rules variable
expansion code to also work in the case where %AMDEP% expands
to FALSE at config.status time, using new substitution string
%VERBOSE-NODEP%.
* automake.in (verbose_nodep_flag): New function, appending
`@am__nodep@' to the verbose-variable name.
(handle_languages): If dependencies are not disabled, use it to
set %VERBOSE-NODEP%.
* m4/depend.m4: Substitute am__nodep as '_no', so the second
verbose-variable will always expand to an empty string, if
dependencies are enabled.
* tests/silent5.test: Also test --disable-dependency-tracking;
also test per-target flags for non-C language files.
* tests/silent9.test: New test, like silent4.test but disable
dependency tracking.
* tests/Makefile.am: Adjust.
* NEWS, THANKS: Update.
Report by Dmitry V. Levin <ldv@altlinux.org>.
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.
Ralf Wildenhues [Sun, 15 Nov 2009 19:32:29 +0000 (20:32 +0100)]
Merge branch 'perl-coverage'
* perl-coverage:
Coverage for corner cases in derive_suffix.
Coverage for user-provided _LINK variables.
Coverage: warn about substitutions that need EXTRA_PRIMARY.
Coverage: warn about configure substitution in EXTRA_PRIMARY.
Coverage for syntax errors with conditionals in included fragments.
Coverage: diagnose variables with forbidden dist_ prefix.
Coverage for conditional `else' and `endif' arguments.
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, 18 Oct 2009 15:38:55 +0000 (17:38 +0200)]
Merge branch 'perl-coverage'
* perl-coverage:
Simplify Variable::_check_ambiguous_condition.
Coverage for DisjConditions.pm.
Coverage and fixes for Condition.pm.
Coverage for Wrap.pm.
Coverage for Version.pm.
Pod coverage for Perl modules.
Ralf Wildenhues [Sun, 18 Oct 2009 10:05:43 +0000 (12:05 +0200)]
Simplify Variable::_check_ambiguous_condition.
* lib/Automake/Variable.pm (_check_ambiguous_condition): No need
to check for $def since ambiguous_p returns an empty $message if
there is no other condition which is ambiguous to $cond.
Ralf Wildenhues [Sun, 18 Oct 2009 10:03:29 +0000 (12:03 +0200)]
Coverage for DisjConditions.pm.
* lib/Automake/tests/DisjConditions.pl (test_basics): Increase
test coverage: test ->human, ->merge, ->simplify, ->multiply.
* lib/Automake/tests/DisjConditions-t.pl (test_basics): Likewise
changes, but including state copies across thread creation.
* lib/Automake/tests/DisjCon2.pl: New test.
* lib/Automake/tests/DisjCon3.pl: Likewise.
* lib/Automake/tests/Makefile.am (TESTS, XFAIL_TESTS): Adjust.
Ralf Wildenhues [Sun, 18 Oct 2009 10:01:46 +0000 (12:01 +0200)]
Coverage and fixes for Condition.pm.
* lib/Automake/Condition.pm (new): Catch common programming
errors better by checking type of passed argument before
munging them to all be strings through split.
* lib/Automake/tests/Condition.pl (test_basics): Also test
->human.
(test_merge): New function, test ->merge, ->merge_conds,
->strip.
* lib/Automake/tests/Condition-t.pl (test_basics, test_merge):
Likewise changes, but including state copies across thread
creation.
* lib/Automake/tests/Cond2.pl: New test for programming error.
* lib/Automake/tests/Cond3.pl: Likewise.
* lib/Automake/tests/Makefile.am (TESTS, XFAIL_TESTS): Update.
Ralf Wildenhues [Sun, 18 Oct 2009 09:55:10 +0000 (11:55 +0200)]
Coverage for Wrap.pm.
* lib/Automake/tests/Wrap.pl (@tests): Add test for word with
trailing space.
(test_makefile_wrap, @makefile_tests): New function, new list of
tests, to test makefile_wrap.
Ralf Wildenhues [Sun, 18 Oct 2009 09:46:14 +0000 (11:46 +0200)]
Coverage for Version.pm.
* lib/Automake/tests/Version.pl (test_version_compare): Also
try Automake::Version::check for the version pairs, taking into
account the special-case naming of code forks.
(@tests): Add more test cases.
(test_bad_versions, @bad_versions): New function, new test cases,
to ensure bad version strings are rejected.
* lib/Automake/tests/Version2.pl: New test.
* lib/Automake/tests/Version3.pl: Likewise.
* lib/Automake/tests/Makefile.am (TESTS): Add tests here ...
(XFAIL_TESTS): ... and here, new.
Ralf Wildenhues [Sun, 18 Oct 2009 08:00:28 +0000 (10:00 +0200)]
Pod coverage for Perl modules.
* lib/Automake/ChannelDefs.pm (parse_warnings): Fix
typo in Pod documentation.
* lib/Automake/Condition.pm: Add a couple of missing `=back'
lines.
(_has): Renamed from ...
(has): ... this, as this is an internal method.
(strip, false, true_when): Adjust callers.
* lib/Automake/Configure_ac.pm: Add Pod `Functions' section with
documentation for find_configure_ac and require_configure_ac.
* lib/Automake/Location.pm: Fix typo in Pod. Add `Methods'
section, document methods.
* lib/Automake/RuleDef.pm: New `Methods' Pod section.
* lib/Automake/VarDef.pm: Document `raw_value'.
* lib/Automake/Wrap.pm (_tab_length): Rename from ...
(tab_length): ... this, as this is an internal method.
(wrap): Adjust callers.
* lib/Automake/XFile.pm: Reorganize Pod a bit, add `Methods'
section.
Ralf Wildenhues [Sat, 17 Oct 2009 16:14:33 +0000 (18:14 +0200)]
Perl coverage support using Devel::Cover.
This introduces makefile rules to run the testsuite with Perl
coverage enabled. It skips tests that use perl ithreads, by
unsetting AUTOMAKE_JOBS and setting WANT_NO_THREADS to make the
threaded tests skip.
* Makefile.am (PERL_COVERAGE_DB, PERL_COVERAGE_FLAGS)
(PERL_COVER): New variables.
(check-coverage, recheck-coverage, clean-coverage): New phony
targets.
(check-coverage-run, recheck-coverage-run): New phony helper
targets.
(clean-local): New, depend on clean-coverage.
* lib/Automake/tests/Condition-t.pl: Skip if WANT_NO_THREADS is
set.
* lib/Automake/tests/DisjConditions-t.pl: Likewise.
* tests/defs.in: New required entry 'perl-threads'.
* tests/parallel-am.test: Use it to skip if WANT_NO_THREADS is
set.
* tests/parallel-am2.test: Likewise.
* tests/parallel-am3.test: Likewise.
Ralf Wildenhues [Sat, 17 Oct 2009 06:00:02 +0000 (08:00 +0200)]
dist: allow running several compressors in parallel.
* lib/am/distdir.am (am__post_remove_distdir): New internal
variable.
(DIST_TARGETS): New variable, set to list of chosen distribution
formats. Order formats by expected duration, slowest first, for
better parallelism.
(dist-gzip, dist-bzip2, dist-lzma, dist-xz, dist-tarZ)
(dist-shar, dist-zip): Use $(am__post_remove_distdir).
(dist, dist-all): Do not depend on distdir. Instead of
replicating each compression command, use a recursive invocation
to allow running all $(DIST_TARGETS) in parallel.
* NEWS: Update.
Report by Peter Breitenlohner.
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.
It seems cscope is not able to take into account relative
file names of included cscope.files files, but it is able to
canonicalize file names containing '../' sequences.
This patch makes the cscope references relative again, and
fixes some corner cases.
* .gitignore: Ignore files generated by `make cscope'.
* NEWS: Reword a bit.
* THANKS: Update.
* automake.in (handle_tags): Use $(am__cd). Provide default
empty rule for the `cscope' target, for empty sources.
* lib/am/tags.am (cscopelist): Construct relative path to files
in $(srcdir) if $(srcdir) is relative.
[TOPDIR_P] (cscope): Do not depend on cscope-clean. Only invoke
$(CSCOPE) if cscope.files is nonemtpy.
(clean-cscope): Rename from ...
(cscopeclean): ... this.
(cscope.files): Depend on clean-cscope.
(distclean-tags) [!TOPDIR_P]: No need to remove cscope files
here.
* tests/cscope.test, tests/cscope2.test, tests/cscope3.test: New
tests.
* tests/Makefile.am: Adjust.
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.