* HACKING: Add some missing fullstops in sentences. Remove
some extra empty lines, for consistency.
(Test suite): Add pointer to `tests/README'.
(Admistrivia): Tell to mention important bug fixes in NEWS.
* doc/automake.texi (Debugging Make Rules): Show command to find
out expanded values of variables; point to makefile debugger.
* THANKS: Update.
Prompted by suggestion from Ludovic Courtès and Andy Wingo.
Fix AM_COND_IF for gone-invalid condition shell expression.
* m4/cond-if.m4 (AM_COND_IF): test contents of $COND_TRUE
variable, rather than re-evaluating the shell expression for
the condition.
* tests/cond40.test: Extend test.
* NEWS: Update.
Avoid syntax error if IF-TRUE part of AM_COND_IF expands empty.
* m4/cond-if.m4 (AM_COND_IF): Ensure IF-TRUE part is never empty
to avoid shell syntax error if the m4 expansion is empty.
* tests/cond40.test: Enhance test.
Modernize and improve test scripts `subdir*.test'.
* tests/subdir.test: Enable `errexit' shell flag, and related
changes. Use the `configure.in' stub created by `./defs',
rather than writing one from scratch.
* tests/subdir2.test: Likewise.
* tests/subdir4.test: Likewise.
* tests/subdir3.test: Enable `errexit' shell flag, and related
changes. Do not create useless dummy source files.
* tests/subdir5.test: Make grepping of Makefile.in (in topdir
and in subdirs) stricter. Some minor changes to keep it more
in sync with the related test `subdir8.test'.
* tests/subdir8.test: Likewise (but with the related test being
`subdir5.test' here).
* tests/subdir6.test: Cosmetic change in spacing.
* tests/subdir9.test: Define and use new variable `$distdir'. Add
trailing `:' command.
* tests/subdir10.test: Cosmetic consistency-related change.
* tests/subdirbuiltsources.test: Cosmetic changes in spacings.
(configure.in): Use stub created by `./defs', rather than writing
it from scratch. Do not use obsoleted and/or deprecated forms of
autoconf/automake macros.
* tests/distcleancheck.test: Do not add useless `-e' option to
a $MAKE call. Extend test by grepping stderr of make.
* tests/distcom2.test: Do not run the same test script on the
Makefile.in twice, but save its output in an intermediate file
instead. Make grepping of DIST_COMMON definition stricter.
Display the content of more files, to ease debugging. Add a
trailing `:' command. Improved heading comments w.r.t. sister
test(s).
* tests/distcom6.test: Likewise, and avoid to uselessly run
autoconf.
* tests/distcom3.test: Ensure verbose printing of captured stdout
and stderr. Make grepping of captured stderr stricter. Also,
add trailing `:' command.
* tests/distcom4.test: Declare the target `test' in the generated
Makefile.am as `.PHONY'. Display content of more files, to ease
debugging. Add trailing `:' command.
* tests/distcom5.test: Likewise. Also, factor out common sed
script in subroutine `extract_distcommon'.
* tests/distcom7.test: Prefer cat + here-doc over echo to write
test Makefile.am files. Add a trailing `:' command.
* tests/distname.test: Prefer `gzip -d' over `gunzip'. Move the
call to `set -e' earlier. Be stricter and more verbose in the
checking of the generated tarball.
(configure.in): Use the stub provided by ./defs, instead of
writing it from scratch. Avoid obsoleted constructs. Remove
useless call to `AM_PROG_CC_C_O'.
* tests/distdir.test: Various minor improvements/normalizations.
* tests/distlinks.test: Likewise.
* tests/cond5.test: Do not blindly sleep 60 seconds before polling
the background automake process, but poll it every 10 seconds for
at most 30 times (this makes the test both faster on good machines,
and more resilient to spurious timeout-due failures when in low
priority or on havily-loaded systems).
Check also that automake writes the expected error messages on the
standard error.
Enable `errexit' flag, and related changes.
Rely on the `configure.in' stub created by `./defs', rather than
writing one from scratch.
Ralf Wildenhues [Sat, 26 Jun 2010 20:10:21 +0000 (22:10 +0200)]
Update program --help output to match current GCS.
* configure.ac: Set and substitute PACKAGE_URL if AC_PACKAGE_URL
is not defined, for compatibility to Autoconf < 2.64.
* Makefile.am (do_subst): Substitute PACKAGE_BUGREPORT and
PACKAGE_URL.
(sc_diff_automake_in_automake): Update number of diff lines for
additional substitutions.
* aclocal.in (usage): Use PACKAGE_BUGREPORT. Point to Automake
home page and GNU general help page.
* automake.in (usage): Likewise.
* doc/automake.texi: New flag PACKAGE_BUGREPORT, to factor email
address.
(Introduction, Creating amhello, amhello Explained, Options):
Use it throughout.
* lib/Automake/Makefile.am (do_subst): Substitute
PACKAGE_BUGREPORT.
* lib/Automake/Config.in ($PACKAGE_BUGREPORT): New global.
* lib/Automake/ChannelDefs.pm: Use it for footer of fatal
messages.
Tests: remove useless repetitions of `foreign' automake option.
* tests/multlib.test (configure.in): Remove useless use of
`foreign' option in AM_INIT_AUTOMAKE (the `--foreign' option is
already in $AUTOMAKE by default, so no point in repeating it).
* tests/subobj10.test: Likewise.
* tests/subobj9.test: Likewise.
* tests/lex3.test (Makefile.am): Similarly, remove useless use
of `foreign' option in AUTOMAKE_OPTIONS.
* tests/lex5.test: Likewise.
* tests/pr279.test: Likewise.
* tests/pr279-2.test: Likewise.
* tests/specflg3.test: Likewise.
* tests/target-cflags.test: Likewise.
Ralf Wildenhues [Thu, 24 Jun 2010 19:33:09 +0000 (21:33 +0200)]
Merge branch 'sl-yacc-work' into maint
* sl-yacc-work:
Fix minor testsuite issues, update docs, for Yacc/Lex changes.
Bugfix: $(AM_FLAGS)/$(FLAGS) precedence in Yacc/Lex.
New tests, for bugs in Yacc/Lex AM_FLAGS and FLAGS precedence.
Ralf Wildenhues [Mon, 21 Jun 2010 18:56:08 +0000 (20:56 +0200)]
Fix minor testsuite issues, update docs, for Yacc/Lex changes.
* doc/automake.texi (Yacc and Lex): Mention AM_YFLAGS, YFLAGS
and AM_LFLAGS, LFLAGS in the order in which they now appear in
the rules.
* NEWS: Update.
* tests/lflags.test, tests/lflags2.test, tests/yflags.test,
tests/yflags2.test: Prefer `make -e' over `make VAR=VAL', to
please maintainer-check. Ensure generated C files contain a
declaration, to please compilers.
Bugfix: $(AM_FLAGS)/$(FLAGS) precedence in Yacc/Lex.
* automake.in: Fix registration of languages "Lex", "Lex (C++)",
"Yacc" and "Yacc (C++)", so that $(LFLAGS) has precedence over
$(AM_LFLAGS) and $(YFLAGS) has precedence over $(AM_YFLAGS).
* tests/Makefile.am (XFAIL_TESTS): Updated accordingly.
* NEWS: Updated.
New tests, for bugs in Yacc/Lex AM_FLAGS and FLAGS precedence.
* tests/lflags.test: New test, check that user $(LFLAGS) takes
precedence over automake (AM_LFLAGS) and (foo_LFLAGS). Still
xfailing.
* tests/lflags2.test: Likewise.
* tests/yflags.test: New test, check that user $(YFLAGS) takes
precedence over automake (AM_YFLAGS) and (foo_YFLAGS). Still
xfailing.
* tests/yflags2.test: Likewise.
* tests/Makefile.am (TESTS, XFAIL_TESTS): Extended accordingly.
Modernize, improve and extend tests `suffix*.test'.
* tests/suffix3.test: Enable `errexit' shell flag, and related
changes.
* tests/suffix4.test: Likewise.
* tests/suffix6.test: Likewise, and do not create a useless dummy
source file.
* tests/suffix7.test: Likewise.
* tests/suffix5.test: Enable `errexit' shell flag, and related
changes. Make grepping of Makefile.in slighty stricter.
* tests/suffix.test: Enable `errexit' shell flag, and related
changes. Also, do not redirect grep output to /dev/null, as this
might unmotivatedly hide useful information.
* tests/suffix2.test: Move setting of `errexit' shell flag earlier
in the script (just after inclusion of ./defs). Use a more
idiomatic way to count text occurrences in Makefile.in with
grep. Do not create useless dummy source files.
* tests/suffix10.test: Ensure verbose printing of captured make
stdout. Minor cosmetic changes.
* tests/suffix8.test: Likewise. Also, drop useless call to the
env(1) utility, and make grepping of make output stricter by using
$FGREP rather than plain grep.
* tests/suffix11.test: Likewise.
* tests/suffix12.test: Likewise.
* tests/suffix9.test: Prefet cat + here-doc over echo to append to
the `configure.in' stub. Cosmetic changes.
* tests/suffix13.test: Cosmetic spacing change.
Modernize, improve and/or fix various test scripts.
* tests/symlink3.test: Deleted, separated into two new, more
complete tests ...
* tests/forcemiss.test: ... this one ...
* tests/forcemiss2.test: ... and this one.
* tests/symlink2.test: Enable `errexit' shell flag, make test
stricter, and skip it if symlink creation is not supported.
* tests/postproc.test: Enable `errexit' shell flag, related
changes, and a couple of unrelated cosmetic changes.
* tests/recurs.test: Use the `configure.in' stub created by
`./defs', rather than writing one from scratch. Make grepping
of Automake stderr slighty stricter.
* tests/substtarg.test: Likewise.
* tests/strip.test: Likewise, and move the call to `set -e'
earlier (just after the inclusion of `./defs'). Also, make sure
that the script installed by `make install-script' is equal to
the original one.
* tests/substref.test: Use the `configure.in' stub created by
`./defs', rather than writing one from scratch. Move the call
to `set -e' earlier (just after the inclusion of `./defs').
Avoid to explicitly export CC for configure (that's already done
in ./defs). Avoid potential problems with unpredictable make
output. Finally, make grepping of Makefile.in stricter.
* tests/substre2.test: Ensure verbose printing of the captured
make's output, and make its grepping slighty stricter.
* tests/cygwin32.test: Enable `errexit' shell flag, and related
changes. Also, do not create useless dummy source/data files.
* tests/scripts.test: Likewise.
* tests/recurs2.test: Likewise. Also, use the `configure.in'
stub created by `./defs'.
* tests/Makefile.am (TESTS): Updated.
* tests/pluseq5.test: Append to configure.in using cat with an
here-doc, not using echo.
* tests/pluseq10.test: Make sure that the captured output of
`make' command is always displayed. Where possible, use $FGREP
instead of grep (this change makes some checks slighty stricter).
* tests/pluseq8.test: Enable `errexit' shell flag, with related
changes.
* tests/pluseq.test: Likewise. Also, do not create useless dummy
data files, and use better m4 quoting in generated configure.in.
* tests/pluseq2.test: Likewise. Also, append to configure.in
using cat with an here-doc, not using echo.
* tests/pluseq3.test: Likewise.
* tests/pluseq4.test: Likewise.
* tests/pluseq6.test: Likewise.
* tests/pluseq7.test: Do not create useless dummy source file.
* tests/pluseq9.test: Slighty extended w.r.t. the grepping of
Automake stderr. Some unrelated cosmetic changes.
Testsuite: ensure verbose printing of captured stderr.
* tests/acloca18.test: Print captured stderr before either failing
or grepping it. Be sure to send captured stderr to stderr, not to
stdout.
* tests/ansi3b.test: Likewise.
* tests/cond39.test: Likewise.
* tests/configure.test: Likewise.
* tests/missing3.test: Likewise.
* tests/missing6.test: Likewise.
* tests/output-order.test: Likewise.
* tests/pr300-ltlib.test: Likewise.
* tests/python6.test: Likewise.
* tests/python7.test: Likewise.
* tests/python8.test: Likewise.
* tests/python9.test: Likewise.
* tests/subobj.test: Likewise.
* tests/vars3.test: Likewise.
* tests/missing4.test: Likewise, and fix a call to grep not to use
the `-c' flag.
* tests/ansi3.test: Likewise, and rely on the `configure.in' stub
created by `./defs', rather than writing one from scratch.
* tests/backsl.test: Enable the `errexit' shell flag, and
related changes.
* tests/backsl2.test: Likewise.
* tests/block.test: Likewise.
* tests/canon2.test: Likewise.
* tests/canon4.test: Likewise.
* tests/comment2.test: Likewise.
* tests/condlib.test: Likewise.
* tests/cond15.test: Likewise, and prefer $FGREP over grep.
* tests/canon3.test: Likewise. Also, avoid to create an useless
dummy source file.
* tests/acoutpt2.test: Enable the `errexit' shell flag, and some
related changes. Do some cosmetic improvements in the generated
`configure.in' file.
* tests/cond4.test: Likewise.
* tests/cond14.test: Likewise.
* tests/condinc.test: Likewise.
* tests/cond7.test: Likewise. Also, remove useless setting of
AUTOMAKE_OPTIONS to `foreign' in the generated Makefile.am.
* tests/ansi.test: Enable the `errexit' shell flag, and related
changes. Extended, esp. by running autoconf, ./configure and
make, and by looking into the distdir.
Extend tests/README (trailing `:' in test scripts)
* tests/README (section "Writing test cases" subsection "Do"):
Explain why apparently redundant trailing `:' and `Exit 0' in
test scripts can indeed be useful.
* bootstrap: Consistently use two-spaces indentation. Cosmetic
improvement to comments.
($me): New variable, containing program basename.
Prepend it to all error messages.
Testsuite now works with BSD make in parallel mode.
* tests/defs.in: Unset variables __MKLVL__ and MAKE_JOBS_FIFO,
which are exported by BSD make when run in parallel mode, and
which can confuse make processes spawned by our testsuite.
This change fixes a lot of spurious failure when the testsuite
is run with BSD make in parallel mode.
Modernize, improve and/or fix various test scripts.
* tests/sanity.test: Rely on the `configure.in' stub created by
`./defs', rather than writing one from scratch.
* tests/depend2.test: Likewise. Also, call `set -e' just after
the inclusion of `./defs', instead that later in the script.
* tests/canon5.test: Avoid a useless `|| Exit 1' after a call to
$AUTOMAKE, and improve the positioning of an $ACLOCAL call.
* tests/exeext4.test: Use $FGREP instead of grep, where possible.
Make auxiliary rules in the generated Makefile more silent.
These changes make some checks slighty stricter.
* tests/ext2.test: Call `Exit 1' if inclusion of `./defs' fails.
* tests/gettext2.test: Place final `:' at the end of the script,
rather than in the middle.
* tests/exeext.test: Call `set -e' just after the inclusion of
`./defs', instead that later in the script.
* tests/extra5.test: Likewise.
* tests/confdeps.test: Likewise. Also, prefer `mv -f' over
plain `mv', just to be sure.
* tests/depcomp.test: Enable `errexit' shell flag, with related
changes. Also, modernize the generated configure.in.
* tests/cond9.test: Likewise. Also, rely on the `configure.in'
stub created by `./defs', rather than writing one from scratch.
* tests/cond10.test: Likewise.
* tests/depcomp2.test: Likewise.
* tests/depend3.test: Likewise.
* tests/distcom7.test: Likewise.
* tests/fortdep.test: Likewise. Also, remove definition of
AUTOMAKE_OPTIONS to `foreign' in the generated Makefile.am,
since that flag is already provided by $AUTOMAKE.
* tests/mdate.test: Made stricter, by checking that Automake
actually failed, and by making a stricter grep on the error
message. Also, set shell `errexit flag'.
* tests/python2.test: Improved verbose messages.
Ralf Wildenhues [Sun, 6 Jun 2010 15:02:56 +0000 (17:02 +0200)]
Prefer AUTOMAKE_fails over `$AUTOMAKE | grep' in tests.
* tests/ldadd.test: Enable errexit. Use AUTOMAKE_fails so
the verbose log contains all output.
* tests/mdate.test: Likewise.
Prompted by Stefano Lattarini's change to discover.test.
Ralf Wildenhues [Sun, 6 Jun 2010 12:20:29 +0000 (14:20 +0200)]
Improve ext.test semantics, avoid OpenBSD sh errexit issue.
* tests/ext.test: Inside shell compound command, use
`if $cmd; then Exit 1; fi' rather than `$cmd && Exit 1', to
fix failure with OpenBSD sh introduced with last patch.
Actually ensure that a rule for .EXT.o is created for each
known extension EXT.
Ralf Wildenhues [Sun, 6 Jun 2010 10:44:32 +0000 (12:44 +0200)]
Rewrite manual to be gender-neutral.
* doc/automake.texi (GNU Build System)
(Standard Directory Variables, General Operation, CVS)
(Hard-Coded Install Paths, Dependencies As Side Effects):
Rewrite text to not contain gender-specific pronouns when
speaking about developers or users, either by avoiding pronouns
or by addressing them as `you' instead.
* THANKS: Update.
Report by Christina Gratorp.
* tests/silent.test: Made stricter w.r.t. the grepping of the
output produced by `make'.
* tests/silent2.test: Likewise.
* tests/silent4.test: Likewise.
* tests/silent9.test: Likewise.
* tests/silent3.test: Likewise, and add a final `make distclean'
command to keep it better in sync with tests/silent{4,9}.test.
* tests/silent5.test: Remove by hand all generated C files after
non-verbose builds, to ensure the following builds are clean.
Try to clean and rebuild with the same verbosity and without
removing generated sources in between, to check that this does
not trigger a different set of rules. Make grepping of make's
output stricter. Improved/added some comments.
Relax silent-rules tests to cater to verbose makes.
* tests/silent.test: When testing silent builds, don't fail if
make's output simply contains the `mv' substring, but only if
it contains the `mv ' substring (note the trailing space).
* tests/silent2.test: Likewise.
* tests/silent3.test: Likewise.
* tests/silent4.test: Likewise.
* tests/silent5.test: Likewise.
* tests/silent9.test: Likewise.
* tests/nostdinc.test: Enable `errexit' shell flag. Related and
unrelated minor changes. Make the grepping of the generated
Makefile.in slighty stricter. Generate and run configure, so that
the generated Makefile can be grepped too.
Ralf Wildenhues [Sun, 23 May 2010 13:29:25 +0000 (15:29 +0200)]
Make gnupload portable to EBCDIC hosts.
* lib/gnupload: Use literal newline as argument for 'tr' rather
than \015, for EBCDIC hosts. Also, avoid unportable nested
double-quotes and backquotes.
* THANKS: Update.
Report from Eric Blake and Steve Goetze via gnulib.
Fix Autoconf version required by Automake's configure.
Automake configure script used to tell that automake required
autoconf 2.60 or later, but then it checked for autoconf >= 2.62,
and if that was not found, it gave an error saying that Automake
required configure 2.61a-341 or later. This change should
eliminate such inconsistencies.
* configure.ac ($required_autoconf_version): New variable.
Use it throughout.
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).