Ralf Wildenhues [Wed, 19 Jan 2011 18:46:27 +0000 (19:46 +0100)]
Allow _AM_DEPENDENCIES to be used later in configure.
* m4/depend.m4 (_AM_DEPENDENCIES): Remove a previously existing
conftest.dir before recreating it.
Fixes bug#7864.
Report by Eric Blake, from report by Scott McCreary against M4.
Ralf Wildenhues [Sun, 16 Jan 2011 21:27:37 +0000 (22:27 +0100)]
tests: allow double-colon spy.test to work with HP-UX make.
* tests/spy.test: Fix comment typos. Ensure prerequisites we
do not want to depend on are strictly older than the target.
Also test with a target out of date wrt. more than one rule.
Ralf Wildenhues [Sun, 16 Jan 2011 12:48:17 +0000 (13:48 +0100)]
parallel-tests: work around Tru64/OSF 5.1 sh read bugs.
* lib/am/check.am ($(TEST_SUITE_LOG), recheck, recheck-html):
Test file readability before redirecting input from it, to avoid
exiting Tru64/OSF 5.1 sh which treats read as special builtin.
* tests/parallel-tests-unreadable-log.test: New test.
* tests/Makefile.am (TESTS): Update.
* NEWS: Update.
Ralf Wildenhues [Sun, 16 Jan 2011 13:17:38 +0000 (14:17 +0100)]
tests: avoid failing command substitution in errexit mode.
* tests/vartypo2.test, tests/vartypos.test: Rewrite to not use
a command substitution with a nonzero exit status, that causes
IRIX and Tru64/OSF sh to fail the whole test.
* warns-win-over-strictness:
Update docs w.r.t. warning and strictness options.
More tests on warnings/strictness precedence.
Update NEWS about the warnings-over-strictness precedence.
Warnings win over strictness in AUTOMAKE_OPTIONS.
Change signature of 'Automake::Options::_process_option_list()'.
Add more tests about AUTOMAKE_OPTIONS.
Warnings win over strictness in AM_INIT_AUTOMAKE.
Warnings win over strictness on command line.
More tests on warnings and strictness.
New test on silent-rules mode and portability warnings.
Add new tests on strictness and warnings precedence and overriding.
Update docs w.r.t. warning and strictness options.
* doc/automake.texi (Strictness): Document that some warnings are
turned off by default in `foreign' strictness.
(Options): Divide into new sections "Options generalities" and
"List of Automake options". Fix typo (colon instead of full
stop). Document option precedence (AUTOMAKE_OPTIONS wins over
AM_INIT_AUTOMAKE which wins over command line). Also document
interactions between options specifying strictness and those
specifying warnings.
* tests/warning-groups-win-over-strictness.test: New test, similar
to `warnings-win-over-strictness.test', but checking the explicit
catch-all warning flags (like `-Wall' and `-Wnone').
* tests/Makefile.am (TESTS): Update.
Ensure that, for what concerns the options specified in
AUTOMAKE_OPTIONS, explicitly-defined warnings always take
precedence over implicit strictness-implied warnings.
This finally fixes Automake bug#7669 a.k.a. PR/547.
* automake.in (handle_options): Call 'process_option_list'
only once per set of options.
* lib/Automake/Options.pm (process_global_option_list,
process_option_list): Add sanity checks.
($_options_processed, $_global_options_processed): New
internal variables, used by the sanity checks above.
* tests/warnings-win-over-strictness.test: Extend.
Change signature of 'Automake::Options::_process_option_list()'.
This only modifies internal details in the automake implementation,
bearing no externally visible effect, but preparing the way for the
final fix of Automake bug#7669 a.k.a. PR/547.
* lib/Automake/Options.pm (_process_option_list): Now accepts as
arguments a list of hash references with keys 'option' and 'where',
where 'option' is an option as might occur in AUTOMAKE_OPTIONS or
M_INIT_AUTOMAKE, and 'where' is the location where that occurred.
(process_option_list, process_global_option_list): Update.
* automake.in (handle_options, scan_autoconf_traces): Update.
In view of soon-to-follow refactorings (still in the pursuit of a
fix for Automake bug#7669 a.k.a. PR/547), add some more tests on
AUTOMAKE_OPTIONS support, to prevent obvious regressions.
This change ensures that, for what concerns the options specified
in AM_INIT_AUTOMAKE, explicitly-defined warnings always take
precedence over implicit strictness-implied warnings. Related to
Automake bug#7669 a.k.a. PR/547.
* lib/Automake/Options.pm (_process_option_list): Parse explicit
warnings only after the strictness level has been set. Fix POD
documentation.
* tests/warnings-win-over-strictness.test: Extend.
This change ensures that, on the command line at least, explicitly
defined warnings always take precedence over implicit strictness
implied warnings. Related to Automake bug#7669 a.k.a. PR/547.
* automake.in (parse_arguments): Parse warnings only after the
strictness level has been processed.
* tests/gnuwarn.test: Update, plus miscellaneous improvements.
* tests/warnings-win-over-strictness.test: New test.
* tests/Makefile.am (TESTS): Update.
Add new tests on strictness and warnings precedence and overriding.
* tests/strictness-overriding.test: New test.
* tests/strictness-precedence.test: New test.
* tests/warnings-overriding.test: New test.
* tests/warnings-precedence.test: New test.
* tests/Makefile.am (TESTS): Update.
Ralf Wildenhues [Sat, 15 Jan 2011 13:54:51 +0000 (14:54 +0100)]
docs: ensure example are separated with empty lines in the input
* doc/automake.texi (Extending aclocal, Emacs Lisp, Rebuilding)
(API Versioning, Renamed Objects, Multiple Outputs): Add empty
lines before `@example' and after `@end example' lines, so info
output is rendered correctly, and a following @noindent honored.
Report by Stefano Lattarini.
* tests/txinfo.test ($required): Add 'makeinfo'.
* tests/txinfo8.test: Create a dummy 'textutils.info' file, so
that make won't try to run makeinfo (which could be unavailable)
to build it.
Found by NixOS Hydra, reported by Ralf Wildenhues.
Ralf Wildenhues [Thu, 13 Jan 2011 19:21:39 +0000 (20:21 +0100)]
Avoid testsuite failures due to Autoconf Fortran change.
Autoconf v2.68-21-g727ce95 causes AC_F77_LIBRARY_LDFLAGS to
require computing the canonical host name. Ensure config.guess
and config.sub files are present for respective checks.
* tests/compile_f_c_cxx.test: Add stub files.
* tests/flibs.test: Likewise.
* tests/fort4.test: Use $AUTOMAKE -a for installing files.
* doc/automake.texi (Yacc and Lex): Document that automake
recognizes '-d' in AM_YFLAGS only if it's not clustered with
other options.
From a report by Юрий Пухальский.
tests: more consistent checks about invalid options
* tests/aclocal.test: Grepping of automake stderr for messages
reporting invalid options made stricter.
* tests/no-outdir-option.test: Likewise. Also, create a dummy
`Makefile.am', to ensure that the automake failures are really
caused only by unrecognized options.
* tests/automake.test: Added trailing `:' command. Removed
redundant checks on `--help' and `--version' option (already
performed in the test `help*.test').
* tests/defs: Enable `errexit' shell flag (near the end).
Removed redundant comment about the enabling of shell traces.
* tests/README (Writing test cases): Update, and use nicer
formatting in a couple of places.
* All tests: Adjusted by removing now-redundant calls to
'set -e'.
tests: work around a texi+cygnus bug causing a spurious XFAIL
* tests/txinfo5b.test: New test, like txinfo5.test but calling
automake with the `-Wno-override' option to work around a bug
in the texinfo + cygnus interaction.
* tests/txinfo5.test: Update heading comments.
* tests/Makefile.am (TEST): Updated.
Apparently I messed up doing a previous 'git pull', so that the "latest"
maint I've merged into master (and pushed!) wasn't a fast-forward from
origin/maint. Yay for me. This merge should help cleaning up the mess.
Merge branch 'maint' of ssh://git.sv.gnu.org/srv/git/automake into maint
Apparently I messed up doing a previous 'git pull', so that the "latest"
maint I've merged into master (and pushed!) wasn't a fast-forward from
origin/maint. Yay for me. This merge should help cleaning up the mess.
Improve, extend and tweak tests on Texinfo support.
* tests/instdir-texi.test: Add a call to `ls -l' after that to
`make', for debugging. When looking for required tools, do not
redirect the output of "$tool --help" to /dev/null, and do not
uselessly run it in a subshell.
* tests/txinfo.test: Rewritten to run autoconf, ./configure and
make. All checks moved into Makefile.am.
* tests/txinfo8.test: Likewise, and modernize the generated
configure.in.
* tests/txinfo2.test: Moved checks into Makefile.am, and other
minor improvements.
* tests/txinfo5.test: Enable `errexit' shell flag, and related
changes. Add trailing `:' command.
* tests/txinfo6.test: Likewise, and make grepping of generated
Makefile.in stricter.
* tests/txinfo7.test: Enable `errexit' shell flag, and related
changes. Add trailing `:' command. Do not add unnecessary stuff
to Makefile.am.
* tests/txinfo9.test: Verify that more targets which are expected
to be generated only once really are. Make grepping less strict,
to avoid exposing too much internal details. More minor changes.
* tests/txinfo16.test: Add trailing `:'. Prefer cat over echo
for appending to configure.in. Updated/fixed heading comments.
* tests/txinfo23.test: Likewise, and extended a little by making
it check that no info file is created in the $(srcdir).
* tests/txinfo24.test: Likewise.
* tests/txinfo25.test: Likewise.
* tests/txinfo18.test: Add trailing `:'. Prefer cat over echo
for appending to configure.in. Also, check that index files are
cleaned also by "make clean", not only by "make distclean".
* tests/txinfo22.test: Prefer `$me' over hard-coded test name,
and added trailing `:' command. This testcase also used to check
that automake ignores in-line comments when using variables, but
preserves them in the output; these checks (added in commit
"Release-1-7f-4-g9177ef8") do not really pertain to this test,
so they have been moved ...
* tests/comments-in-var-defn.test: ... into this new test.
* tests/txinfo4.test: Escape literal dots in grep regexps. Add
trailing `:' command.
* tests/txinfo29.test: Likewise. Relax grepping of generated
Makefile.in w.r.t. whitespaces. Prefer `cat' over `echo' to
append to configure.in.
* tests/txinfo3.test: Likewise.
* tests/vtexi.test: Improve grepping of Makefile.in (sometimes
make it stricter, sometimes laxer). Move `set -e' setting just
after the inclusion of ./defs. De-uglify a sed command. Other
minor cosmetic improvements.
* tests/vtexi2.test: Make grepping of Makefile.in stricter. Add
trailing `:' command.
* tests/vtexi3.test: New test on version.texi support.
* tests/vtexi4.test: Likewise.
* tests/Makefile.am (TESTS): Updated.
tests: fix spurious failure in 'tests/yflags-conditional.test'
* tests/yflags-conditional.test: Filter out message "warnings are
treated as errors" from automake stderr, to avoid a false positive
when grepping for extraneous warning messages.
yacc: warn about conditional content in *YFLAGS variables
This commit fixes automake bug#7804.
* automake.in (lang_yacc_target_hook): Warn if any of the relevant
*YFLAGS variables has conditional contents (not only a conditional
definition). Related refactoring.
* NEWS: Updated.
* tests/yflags-conditional.test: Updated and extended.
* tests/yflags-conditional-force.test: New test.
* tests/Makefile.am (TESTS): Updated.
yacc: support variable expansions in *YFLAGS definition.
This change fixes automake bug#7800.
* automake.in (lang_yacc_target_hook): Use 'value_as_list_recursive'
instead of 'variable_value' to get the value of *YFLAGS variables.
Related changes.
($DASH_D_PATTERN): Removed.
* tests/Makefile.am (XFAIL_TESTS): Remove yflags-var-expand.test.
* tests/yacc-clean.test: Remove workaround for now-fixed bug.
* NEWS: Update.
* tests/yflags-var-expand.test: New test, still xfailing. It
exposes automake bug#7800 -- "automake fails to honor `-d' in
AM_YFLAGS when variable expansions are involved".
* tests/yflags-d-false-positive.test: New test, checking that
automake do not spuriously see `-d' in *YFLAGS when that isn't
really there.
* tests/yflags-force-override.test: New test, checking that
automake can cope with definition of the YFLAGS variable in
Makefile.am (even if that is an extremely bad practice, as that
variable is user-reserved).
* tests/yflags-cmdline-override.test: New test, checking that
automake can cope with user-redefinition of YFLAGS at configure
time and/or at make time.
* tests/yflags-conditional.test: New test, checks that automake
warns on conditionally-defined *YFLAGS variables.
* tests/Makefile.am (TESTS, XFAIL_TESTS): Update.
* tests/yacc-basic.test: Also check that the intermediate C file
is mentioned in the generated Makefile.in, and that it is created
by the first make invocation.
* tests/yacc3.test: Test removed, superseded by ...
* tests/yacc-d-basic.test: ... this new test.
* tests/yacc2.test: Add reference to that new test in the heading
comments.
* tests/yacc-d-vpath.test: New test.
* tests/yaccvpath.test: Updated heading comments. Do not require
gcc anymore, as any working C compiler should be enough. Remove
redundant comments.
* tests/yacc-nodist.test: New test.
* tests/yacc-dist-nobuild.test: New test.
* tests/Makefile.am (TESTS): Update.
Ralf Wildenhues [Sun, 9 Jan 2011 11:06:24 +0000 (12:06 +0100)]
Add test coverage for deleted header files.
* tests/depcomp6.test, tests/depcomp7.test: Update tests to
also check for the deleted header bug. If no dependency
tracking mechanism could be found, SKIP rather than exit
successfully. Use GNU style spacing and ANSI C prototypes.
yacc: "make clean" removes .c and .h files from non-distributed .y
Previously, while automake did *not* distribute C source and header
files derived from non-distributed Yacc sources, it still caused
them to be removed only by "make maintainer-clean" only, and not by
simply "make clean" or "make distclean".
This caused "make distcheck" to fail, unless the developer put
those generated .c and .h files in CLEANFILES or in DISTCLEANFILES
by hand.
This change fixes this issue, by making non-distributed `.c' and
`.h' files generated by non-distributed Yacc sources cleaned by
"make clean".
* tests/automake.in (lang_yacc_target_hook): Make C source and
header files derived from non-distributed Yacc files cleaned by
"make clean", not only by "make maintainer-clean".
* tests/yacc-clean.test: New test.
* tests/Makefile.am (TESTS): Update.
* NEWS: Update.
docs: how to work around checks on invalid primary/directory couples
* doc/automake.texi (Uniform): Document the blessed idiom which can
be used to work around automake checks on invalid primary/directory
couples (such as `lib_PROGRAMS' or `doc_LIBRARIES').