21998 lines
798 KiB
Plaintext

2017-06-18 Mathieu Lirzin <mthl@gnu.org>
version 1.15.1
* configure.ac (AC_INIT): Bump version number to 1.15.1.
* m4/amversion.m4: Likewise (auto-updated by "make bootstrap").
2017-06-18 Mathieu Lirzin <mthl@gnu.org>
maint: Update 'git-tag-release' rule
* maintainer/maint.mk (git-tag-release): Use a Git tag message similar
to what the 'do-release-commit-and-tag' script from Gnulib do.
2017-06-18 Mathieu Lirzin <mthl@gnu.org>
maint: Update files from upstream with 'make fetch'
* lib/config.guess: Update.
* lib/config.sub: Likewise.
* lib/texinfo.tex: Likewise.
2017-06-18 Mathieu Lirzin <mthl@gnu.org>
maint: Update NEWS
* NEWS: Announce important bug fixes.
2017-05-20 Mathieu Lirzin <mthl@gnu.org>
bootstrap: Add a rationale for the bootstrap process.
* bootstrap: Explain why we can't simply run 'autoreconf -i'.
2017-05-20 Mathieu Lirzin <mthl@gnu.org>
bootstrap: Rename 'bootstrap.sh' to 'bootstrap'.
Follow Gnulib's convention of using either "bootstrap" or "autogen.sh"
file names for development bootstrap scripts.
* bootstrap.sh: Rename to ...
* bootstrap: ... this.
* GNUmakefile (bootstrap): Adapt.
* HACKING: Likewise.
* Makefile.am (EXTRA_DIST): Likewise.
* doc/automake.texi (Future of aclocal)
(Error required file ltmain.sh not found): Likewise.
* maintainer/maint.mk (autodiffs, update-copyright): Likewise.
2017-05-20 Mathieu Lirzin <mthl@gnu.org>
automake: Update 'read_am_file' docstring.
* bin/automake.in (read_am_file): Update docstring which was referring
to a non existent '%contents' variable.
2017-04-16 Bruno Haible <bruno@clisp.org>
tests: Never invoke gettextize.
This change fixes automake bug#26514.
* t/gettext-macros.sh: Never invoke gettextize.
2017-04-13 Mathieu Lirzin <mthl@gnu.org>
tests: Update "t/txinfo-no-clutter.sh".
This is workaround to a regression introduced by
48107579abadbe857c8299c38d2ca0a3f8f354c8. With current
"lib/texinfo.tex", 'texi2dvi' is not able to produce a valid output
for a Texinfo document containing a @synindex command. As a
consequence the test "t/txinfo-no-clutter.sh" was failing.
* t/txinfo-no-clutter.sh: Remove use of @synindex command.
2017-03-05 Mathieu Lirzin <mthl@gnu.org>
maint: Update "lib/texinfo.tex".
This fixes a regression in 48107579abadbe857c8299c38d2ca0a3f8f354c8
where 'texi2dvi' was not able to produce a valid output for a Texinfo
document without text. As a consequence the test "t/silent-texi.sh"
was failing.
* lib/texinfo.tex: Update to 2017-03-05.09.
2017-03-02 Mathieu Lirzin <mthl@gnu.org>
maint: Update copyright years to 2017.
This update has been made with 'make update-copyright'.
2017-03-02 Mathieu Lirzin <mthl@gnu.org>
maint: Update files from upstream with 'make fetch'.
* lib/INSTALL: Update.
* lib/config.guess: Likewise.
* lib/config.sub: Likewise.
* lib/gendocs.sh: Likewise.
* lib/gendocs_template: Likewise.
* lib/gitlog-to-changelog: Likewise.
* lib/gnupload: Likewise.
* lib/texinfo.tex: Likewise.
* lib/update-copyright: Likewise.
2017-03-02 Mathieu Lirzin <mthl@gnu.org>
maint: Update fetch URLs.
* maintainer/maint.mk (SV_CVS, SV_GIT_AC): Remove.
(SV_GIT_CF, SV_GIT_GL): Use https for Savannah Git repositories.
(FETCHFILES): Use Gnulib repository as the source of "texinfo.tex",
"gendocs.sh", and "gendocs_template" files.
2017-02-23 Mathieu Lirzin <mthl@gnu.org>
doc: fix typo "requited" => "required"
This change fixes automake bug#25413.
* doc/automake.texi (Serial Test Harness): Fix typo.
2016-09-09 Jim Meyering <meyering@fb.com>
automake: do not emit rule with two dependents
On a system using our replacement alloca, make would emit
this warning:
target '.deps/alloca.Po' given more than once in the same rule
That arose because automake would emit a rule depending on both
./.deps/alloca.Po and .deps/alloca.Po. Normally, duplicate
dependents are avoided by virtue of their names being keys in
the %dep_files hash, but in this case, that particular file
was specified in two different ways.
* bin/automake.in (handle_ALLOCA): When the $dir prefix is empty,
make it './', to ensure that when we add ./.deps/alloca.Po
it is deduped.
See: http://bugs/gnu/org/22702
2016-04-21 Paul Eggert <eggert@cs.ucla.edu>
python: add python3.5, python3.4
* m4/python.m4 (AM_PATH_PYTHON): Add python3.5, python3.4.
2016-04-01 Paul Eggert <eggert@cs.ucla.edu>
automake: port to Perl 5.22 and later
Without this change, Perl 5.22 complains "Unescaped left brace in
regex is deprecated" and this is planned to become a hard error in
Perl 5.26. See:
http://search.cpan.org/dist/perl-5.22.0/pod/perldelta.pod#A_literal_%22{%22_should_now_be_escaped_in_a_pattern
* bin/automake.in (substitute_ac_subst_variables): Escape left brace.
2016-03-29 Paul Eggert <eggert at>
automake: port better to future gzip
* lib/am/distdir.am (dist-gzip, dist-shar, distcheck):
Port better to future versions of gzip, which are planned to
deprecate the GZIP environment variable (Bug#20132).
2016-01-12 Paul Eggert <eggert@cs.ucla.edu>
maint: port time-stamp-time-zone to strict POSIX
Set time-stamp-time-zone to "UTC0", not to "UTC", as POSIX defines
TZ="UTC0" not TZ="UTC".
2015-11-24 Jonathan L Peyton <jonathan.l.peyton@intel.com> (tiny change)
compile: add icl to compile wrapper script
* lib/compile: Have icl be treated similarly to cl
(scriptversion): Update.
* t/ax/am-test-lib.sh (require_tool): Handle icl.
* t/compile7.sh: Add new test file for icl...
* t/list-of-tests.mk (handwritten_TESTS): ...and use it.
* NEWS: Update.
* THANKS: Update.
2015-01-06 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix a typo-induced bug
* t/subobj-vpath-pr13928.sh: Here; we were using $FGREP instead of
$EGREP, oops.
2015-01-06 Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS: fix a typo
2015-01-05 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: update copyright years to 2015 (branch 'micro')
2015-01-05 Stefano Lattarini <stefano.lattarini@gmail.com>
sync: update third-part files from upstream
* lib/config.sub: This.
* lib/INSTALL, lib/config.guess, lib/gitlog-to-changelog, lib/gnupload,
lib/update-copyright: And this (but only for copyright year update, no
real semantic change)
2015-01-05 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: fix typo in error message of a maintainer-only rule
* maintainer/maint.mk (web-manual-update): Here.
2015-01-05 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'minor' into micro after 1.15 release
And bump version number: 1.15 -> 1.15.0a
* minor:
release: stable minor release 1.15
NEWS: minor improvements and fixed some typos and grammaros
docs: "make distcheck" implementation details are not to be abused
NEWS: improve and adjust in light of the oncoming 1.15 release
Fix dumb logic error preventing $install_sh from being be overridden
Expose automake bug#19311
build: fix race in parallel builds
init: ensure $ac_aux_dir is defined before being used
plans: enabling subdir-object by default is blocked on bug#13928
maint: update copyright years
maint: sync files from upstream ("make fetch")
Typofixes in warning messages and manual
NEWS: a typofix, and better word wrapping
parallel-tests: avoid possible implicit "make all" in test-suite.log rule
Allow user to extend .PRECIOUS target
cosmetics: remove a couple of extra trailing white spaces
tests: fix a spurious failure on Mac OS X
docs: make clear the JAVA primary is frozen
install-sh: a slightly better diagnostic, and tests enhancements
install-sh: be stricter in catching invalid usages
tests: more significant names for some tests
tests: some cosmetic fixes
tests: more significant names for a test
docs: drop a few obsolescent FIXME/TODO comments, and associated text
testsuite harness: report test exit status in log file
TAP driver: no need to invoke AC_PROG_AWK directly
TAP driver: remove perl implementation (move it into contrib/)
NEWS: stop reporting "new" Automake versioning scheme
cosmetics: untabify the install-sh script
install-sh: assume that "set -f" and "set +f" work...
install-sh: assume ${var:-value} works as expected
install-sh: assume 'dirname' is available and working correctly
post-release: micro version bump (1.14a)
2014-12-31 Stefano Lattarini <stefano.lattarini@gmail.com>
release: stable minor release 1.15
* configure.ac (AC_INIT): Bump version number to 1.15.
* m4/amversion.m4: Likewise (auto-updated by "make bootstrap").
2014-12-31 Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS: minor improvements and fixed some typos and grammaros
2014-12-30 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: "make distcheck" implementation details are not to be abused
* doc/automake.texi: State explicitly and in detail that the exact location
and the exact structure of the subdirectory used by "make distcheck" is to
be considered an implementation detail, which can change at any time.
2014-12-30 Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS: improve and adjust in light of the oncoming 1.15 release
2014-12-30 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'micro' into minor
* micro:
shell-no-trail-bslash: improve diagnostic in case of failure
2014-12-30 Stefano Lattarini <stefano.lattarini@gmail.com>
shell-no-trail-bslash: improve diagnostic in case of failure
* t/ax/shell-no-trail-bslash.in: Here, by fixing a typo in a
variable name and a logic error.
* t/self-check-shell-no-trail-bslash.sh: Enhance to catch the
issue.
2014-12-28 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'micro' into minor
* micro:
tests: make script 'shell-no-trail-bslash' simpler and more robust
2014-12-28 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: make script 'shell-no-trail-bslash' simpler and more robust
This solves spurious failure in the 'check-no-trailing-backslash-in-recipes'
target for Automake-NG.
This is basically a backport of Automake-NG commit v1.14.1-1010-g85aae58;
the point is to minimize the amount of spurious diffs between the mainline
Automake and the Automake-NG source trees.
* t/ax/shell-no-trail-bslash.in: Simplify and fortify.
* t/self-check-shell-no-trail-bslash.sh: Enhance.
2014-12-27 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'micro' into minor
* micro:
tests: fix spurious failure in test on TEXINFO_TEX overriding
tests: avoid some spurious failures on AIX 7.1
2014-12-27 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix spurious failure in test on TEXINFO_TEX overriding
* t/txinfo-override-texinfo-tex.sh: Here. The issue was pre-existing, but
has been only recently exposed by the fix for automake bug#18286 "distcheck
fails to detect missing files" (see commit v1.14.1-4-g01a7a4a) and by the
BSD make semantics. To convince yourself this change actually makes sense
semantically, see https://sourceware.org/ml/binutils/2012-06/msg00004.html
2014-12-27 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'aix-testsuite-failures' into micro
* aix-testsuite-failures:
tests: avoid some spurious failures on AIX 7.1
2014-12-27 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid some spurious failures on AIX 7.1
* t/lex-noyywrap.sh: Here.
* t/instmany-mans.sh: And here.
* t/instmany-python.sh: And here.
* t/instmany.sh: And here.
* t/parallel-tests-concurrency.sh: And here.
2014-12-23 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'micro' into minor
* micro:
dist: fix bug#18286 "distcheck fails to detect missing files"
tests: expose automake bug#18286 "distcheck fails to detect missing files"
include: fix bug in handling of user-defined makefile fragments generation
tests: expose bug in handling of user-defined makefile fragments generation
2014-12-23 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'distcheck-pr18286' into micro
* distcheck-pr18286:
dist: fix bug#18286 "distcheck fails to detect missing files"
tests: expose automake bug#18286 "distcheck fails to detect missing files"
2014-12-23 Stefano Lattarini <stefano.lattarini@gmail.com>
dist: fix bug#18286 "distcheck fails to detect missing files"
BTW, this issue had been already reported in the past:
http://lists.gnu.org/archive/html/automake/2006-09/msg00008.html
http://lists.gnu.org/archive/html/automake/2013-01/msg00049.html
"make distcheck" could sometimes fail to detect missing files in the
distribution tarball, especially in those cases where both the generated
files and their dependencies are explicitly in $(srcdir). An important
example of this are *generated* makefile fragments included at Automake
time in Makefile.am. A basic example:
# -*- Makefile.am -*-
$(srcdir)/fragment.am: $(srcdir)/data.txt $(srcdir)/preproc.sh
cd $(srcdir) && $(SHELL) preproc.sh <data.txt >fragment.am
include $(srcdir)/fragment.am
...
If the use forgot to add data.txt and/or preproc.sh in the distribution
tarball, "make distcheck" would have erroneously succeeded!
The reason is that, while $(srcdir)/data.txt does not exist, make also
looks in $(srcdir)/$(srcdir)/data.txt, and in the distcheck-issued
VPATH build where $(srcdir) is '..', that file exists, as it is
part of the original development directory.
* t/distdir.am (distcheck): Adjust to have the build directory be
'$(distdir)/_build/sub' rather than just '$(distdir)/_build'. Thanks
Nicola Fontana for the suggestion.
* t/distcheck-pr18286.sh: Enhance and tighten a little.
* t/list-of-tests.mk (XFAIL_TESTS): Remove 't/distcheck-pr18286.sh',
as it's now passing.
* t/subdir-am-cond.sh: Adjust to avoid a fully spurious failure due
to the new distcheck semantics.
* t/subdir-ac-subst.sh: Likewise.
* t/dejagnu-relative-srcdir.sh: Likewise.
* t/txinfo-builddir.sh: Likewise.
* NEWS: Update.
Helped-by: Nicola Fontana <ntd@entidi.it>
Helped-by: Peter Johansson <trojkan@gmail.com>
2014-12-23 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: expose automake bug#18286 "distcheck fails to detect missing files"
* t/distcheck-pr18286.sh: New test, still XFAILing.
* t/list-of-tests.mk: Add it.
2014-12-23 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'am-deps' into micro
* am-deps:
include: fix bug in handling of user-defined makefile fragments generation
tests: expose bug in handling of user-defined makefile fragments generation
2014-12-23 Stefano Lattarini <stefano.lattarini@gmail.com>
include: fix bug in handling of user-defined makefile fragments generation
If a user defined one single Makefile fragment to be included (via Automake
includes) in his main Makefile.am, and gave a rule to generate that file
from other data, Automake used to spuriously complain about with something
like "overrides Automake target '$(srcdir)/foo.am". This change remove that
spurious error (via a simple hack rather than a systematic change, but oh
well).
* lib/am/configure.am (%MAKEFILE-IN-DEPS%) [?HAVE-MAKEFILE-IN-DEPS?]: Add
a trailing "$(am__empty)" to the list of targets, which is enough to trick
Automake into not complaining about "duplicated targets" in case the
'%MAKEFILE-IN-DEPS%' list expands to a single target that is also declared
in some user-defined rule.
* t/list-of-tests.mk (XFAIL_TESTS): Remove now-passing test
't/am-include-only-one-generated-fragment.sh'.
* NEWS: Update.
2014-12-23 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: expose bug in handling of user-defined makefile fragments generation
If a user defines one single Makefile fragment to be included (via Automake
includes) in his main Makefile.am, and givse a rule to generate that file
from other data, Automake will spuriously complain about with something
like "overrides Automake target '$(srcdir)/foo.am".
* t/am-include-only-one-generated-fragment.sh: Expose the bug (this test
is still XFAILing).
* t/list-of-tests.mk: Add the new test.
2014-12-22 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'micro' into minor
* micro:
cleanup: refactor code to initialize DIST_COMMON
dist: ordering of files in DIST_COMMON is deterministic now
tests: refactor some tests on DIST_COMMON
maint: make output of 'gen-testsuite-part' deterministic
When computing lispdir, don't load emacs site wide init file.
PATH: quote $(PATH_SEPARATOR) as well
Improve detection of GNU make, avoiding "Arg list too long" errors.
2014-12-22 Stefano Lattarini <stefano.lattarini@gmail.com>
cleanup: refactor code to initialize DIST_COMMON
There is not need to make that an Automake variable early,
only to later get and munge its contents, and use the new
content to redefine the variable.
* bin/automake.in (@dist_common): New global variable.
(push_dist_common, handle_dist): Use it.
(handle_dist): Define am__DIST_COMMON instead of DIST_COMMON
directly.
(initialize_per_input): Reset it to empty.
($configure_dist_common): Turn this scalar variable ...
(@configure_dist_common): ... into this array variable.
(handle_dist): Adjust.
(required_file_check_or_copy): Update and wrap some comments.
* lib/am/distdir.am (DIST_COMMON): Append $(am__DIST_COMMON).
* t/distcom2.sh: Tighten a little.
2014-12-22 Stefano Lattarini <stefano.lattarini@gmail.com>
dist: ordering of files in DIST_COMMON is deterministic now
It had likely stopped being deterministic due to the new perl behavior
of having non-deterministic order of numerating hash keys:
<http://search.cpan.org/dist/perl-5.18.0/pod/perldelta.pod#Hash_randomization>
<http://onionstand.blogspot.ie/2012/12/are-you-relying-on-hash-keys-being.html>
See also similar commit v1.14-19-g52e6404, albeit in this case the issue
is likely coming from autom4te/autoconf, not from automake itself.
Fixes automake bug http://debbugs.gnu.org/17908
* bin/automake.in (handle_dist): Sort @dist_common.
(print_autodist_files): Swap invocations of 'sort' and 'uniq', for
consistency with the new code in 'handle_dist' and to get rid of a
minor hack.
* NEWS: Update.
2014-12-22 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: refactor some tests on DIST_COMMON
So that they prefer checking the semantics of the generated Makefiles,
rather than grepping their content. This will be useful in an upcoming
refactoring.
* t/distcom-subdir.sh: Adjust this test.
* t/distcom2.sh: And this.
* t/distcom3.sh: And this.
* t/distcom4.sh: And this.
* t/distcom5.sh: And this.
2014-12-22 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: make output of 'gen-testsuite-part' deterministic
So that diffs displayed by the 'compare-autodiffs' target are
less spurious and more useful.
* gen-testsuite-part: Sort keys of %deps_extractor, %wrapper_setups
and %depmodes before iterating on them.
2014-12-19 Andrew Burgess <andrew.burgess@embecosm.com> (tiny change)
When computing lispdir, don't load emacs site wide init file.
When computing the lispdir emacs was previously invoked with the '-q'
option to avoid loading the users initialisation files, however, the
site wide initialisation file was still loaded, in some cases this can
cause emacs to hang, with the result that a configure can also hang.
The lisp code that aclocal causes to be executed reduces the load-path
list (in emacs) to empty. The load-path is used by emacs to find
packages which it wants to load. Currently, if emacs tries to auto
load a package during shut down, and the package is not found, then
emacs will hang. This does seem like an emacs bug, but protecting
against this in aclocal is simply a case of not loading the site wide
initialisation file.
In this patch then the '-q' option to emacs is replaced with '-Q',
this has the same, the '-Q' option is similar to '-q --no-site-file
--no-splash'.
* doc/automake.texi (Hard-Coded Install Paths): Update explanation of
emacs code used to get lispdir.
* m4/lispdir.m4 (AM_PATH_LISPDIR): Update emacs flags.
2014-12-19 KO Myung-Hun <komh78@gmail.com> (tiny change)
PATH: quote $(PATH_SEPARATOR) as well
On OS/2, $(PATH_SEPARATOR) is ';'. Without quote, it is recognized as
a mark of end of sentence.
* Makefile.am: quote $(PATH_SEPARATOR) as well.
* t/Makefile.inc: Likewise.
2014-12-19 Stefano Lattarini <stefano.lattarini@gmail.com>
Improve detection of GNU make, avoiding "Arg list too long" errors.
Such errors could take place when the main makefile included too many
sub-makefiles, making $(MAKEFILE_LIST) too long and causing the
recipes $(am__is_gnu_make) to exceed the shell's command-line length
limits. This is not a theoretical issue: it could happen for projects
having lots of C/C++ sources and using automatic dependency tracking,
which created an included .Po sub-makefile for each of such sources.
Fixes http://debbugs.gnu.org/18744
* lib/am/header-vars.am (am__is_gnu_make): Fix the logic to avoid
the use of $(MAKEFILE_LIST).
* NEWS: Update.
2014-12-19 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'micro' into minor
* micro:
Fix stupid typo in test, causing spurious failure
2014-12-19 Stefano Lattarini <stefano.lattarini@gmail.com>
Fix stupid typo in test, causing spurious failure
* t/aminit-trailing-dnl-comment-pr16841.sh: s/greop/grep/
2014-12-19 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'micro' into minor
* micro:
sync: update third-part files from upstream
Make sure AM_INIT_AUTOMAKE has a trailing newline
dist: adjust warning messages about shar and tarZ deprecation
docs: improve description of ${PACKAGE}, ${VERSION}, and similar variables
2014-12-19 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'pr16841' into micro
* pr16841:
Make sure AM_INIT_AUTOMAKE has a trailing newline
2014-12-19 Stefano Lattarini <stefano.lattarini@gmail.com>
sync: update third-part files from upstream
* lib/config.guess: This.
* lib/config.sub: And this.
* lib/gitlog-to-changelog: And this.
* lib/gnupload: And this.
* lib/update-copyright: And this.
2014-12-19 Stefano Lattarini <stefano.lattarini@gmail.com>
Make sure AM_INIT_AUTOMAKE has a trailing newline
This used to be the case until Automke 1.13, but we broke it in
Automake 1.14 (see commit v1.13.1-71-gf78b0f0). This caused
issues like http://debbugs.gnu.org/16841
* m4/init.m4 (AM_INIT_AUTOMAKE): Adjust.
* t/aminit-trailing-dnl-comment-pr16841.sh: New test.
* t/list-of-tests.mk: Add it.
* NEWS, THANKS: Update.
2014-12-19 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branches 'dist-warn-pr19108' and 'docs-pr16623' into micro
* dist-warn-pr19108:
dist: adjust warning messages about shar and tarZ deprecation
* docs-pr16623:
docs: improve description of ${PACKAGE}, ${VERSION}, and similar variables
2014-12-19 Aharon Robbins <arnold@skeeve.com>
dist: adjust warning messages about shar and tarZ deprecation
They were swapped. Reported in http://debbugs.gnu.org/19108.
2014-12-18 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: improve description of ${PACKAGE}, ${VERSION}, and similar variables
In particular, suggesting that $PACKAGE and $VERSION should be aliases of
the $PACKAGE_TARNAME and $PACKAGE_VERSION definitions coming from AC_INIT,
and not be defined via an obsolete 2-argument invocation of AM_INIT_AUTOMAKE;
and why that is the best default, given all our historical baggage.
See discussion in http://debbugs.gnu.org/16623 for more information and
background.
* doc/automake.texi: Adjust.
* THANKS: Update.
2014-12-17 Thomas Jahns <jahns@dkrz.de>
Fix dumb logic error preventing $install_sh from being be overridden
* m4/install-sh.m4: Here.
* THANKS: Update.
2014-12-17 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branches 'pr19311' and 'micro' into minor
* pr19311:
Expose automake bug#19311
build: fix race in parallel builds
* micro:
Automake docs: fix typos and use of British English
build: fix race in parallel builds
2014-12-17 Karl Berry <karl@freefriends.org>
Automake docs: fix typos and use of British English
* doc/automake.texi: Here.
2014-12-17 Stefano Lattarini <stefano.lattarini@gmail.com>
Expose automake bug#19311
AC_PROG_CC called before AC_CONFIG_AUX_DIR can silently force wrong
$ac_aux_dir definition.
* t/auxdir-pr19311.sh: New.
* t/list-of-tests.mk: Add it as an XFAIL test.
2014-12-17 Paul Eggert <eggert@cs.ucla.edu>
build: fix race in parallel builds
Reported by Friedrich Beckmann in: http://bugs.gnu.org/18301
* lib/am/texi-vers.am (?DIRSTAMP?): Put the process-ID into the
temporary file name. Use a similar temporary in the source dir.
2014-08-23 Paul Eggert <eggert@cs.ucla.edu>
build: fix race in parallel builds
Reported by Friedrich Beckmann in: http://bugs.gnu.org/18301
* lib/am/texi-vers.am (?DIRSTAMP?): Put the process-ID into the
temporary file name. Use a similar temporary in the source dir.
2014-04-22 Stefano Lattarini <stefano.lattarini@gmail.com>
init: ensure $ac_aux_dir is defined before being used
Since we use '$ac_aux_dir' to define '$am_aux_dir', we need
to ensure the former has been initialized before we try to
define the latter, otherwise the definition:
am_aux_dir=`cd $ac_aux_dir && pwd`
will set '$am_aux_dir' to '$HOME', likely causing weird and
unexpected behaviours.
This change fixes automake bug#15981.
* m4/auxdir.m4 (AM_AUX_DIR_EXPAND): AC_REQUIRE expansion
of 'AC_CONFIG_AUX_DIR_DEFAULT'. Fix redundant comment and
AC_PREREQ, add extra quoting around '$ac_aux_dir'.
* t/auxdir-pr15981.sh: New test.
* t/auxdir-cc-pr15981.sh: Likewise.
* t/list-of-tests.mk (handwritten_TESTS): Add them.
* THANKS, NEWS: Update.
* bin/automake.in: Fix a harmless typo in comments, that
I happened to notice while writing this patch.
2014-04-21 Stefano Lattarini <stefano.lattarini@gmail.com>
plans: enabling subdir-object by default is blocked on bug#13928
2014-04-21 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: update copyright years
We've been in 2014 already for few months now...
2014-04-21 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: sync files from upstream ("make fetch")
2014-04-21 Stefano Lattarini <stefano.lattarini@gmail.com>
Typofixes in warning messages and manual
Fixes automake bug#16827 and bug#16997.
2014-04-21 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'micro' into minor
* micro:
doc: fix encoding error with UTF-8 characters
2014-01-04 Paul Eggert <eggert@cs.ucla.edu>
doc: fix encoding error with UTF-8 characters
* doc/automake.texi: Specify @documentencoding and
@documentlanguage, to prevent encoding errors for parts of this
input file that are UTF-8. This also causes the .info output to
use curly quotes, which is easier to read though it does assume
UTF-8 support.
2013-12-31 Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS: a typofix, and better word wrapping
2013-12-30 Stefano Lattarini <stefano.lattarini@gmail.com>
parallel-tests: avoid possible implicit "make all" in test-suite.log rule
This change fixes automake bug#16302.
* lib/am/check.am ($(TEST_SUITE_LOG)): Avoid running "make $redo_logs"
when $redo_logs expands to empty, since in that case we are actually
ending up invoking a full "make all". That shouldn't be required, and
can cause slowdowns for people implementing their extra "laziness
wrappers" around check-TESTS (automake bug#16302).
* NEWS: Update.
2013-12-26 Stefano Lattarini <stefano.lattarini@gmail.com>
Allow user to extend .PRECIOUS target
References:
<http://lists.freedesktop.org/archives/systemd-devel/2013-July/012155.html>
<http://lists.gnu.org/archive/html/automake/2013-07/msg00011.html>
* bin/automake.in: Adjust to ensure we handle '.PRECIOUS' the same way
we do for '.PHONY' and '.MAKE'.
* lib/Automake/Rule.pm: Likewise.
* t/precious.sh: New test.
* t/list-of-tests.mk: Add it.
* t/phony.sh: Enhance a little while at it.
* NEWS: Update.
* THANKS: Likewise.
Reported-by: Holger Hans Peter Freyther <holger@freyther.de>
2013-12-26 Stefano Lattarini <stefano.lattarini@gmail.com>
cosmetics: remove a couple of extra trailing white spaces
2013-12-26 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix a spurious failure on Mac OS X
This change fixes bug#14706.
* lib/depcomp2.sh: Also cater to spurious diagnostic from GNU rm,
not only from Apple's rm.
2013-12-26 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: make clear the JAVA primary is frozen
* doc/automake.texi: Here. The JAVA primary is broken in several ways,
and will no longer be developed, not even for bug fixes.
See also automake bugs #9088, #8662 and #8540.
2013-12-26 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'install-sh-improvements' into minor
* install-sh-improvements:
install-sh: a slightly better diagnostic, and tests enhancements
install-sh: be stricter in catching invalid usages
2013-12-26 Stefano Lattarini <stefano.lattarini@gmail.com>
install-sh: a slightly better diagnostic, and tests enhancements
* lib/install-sh: When called with no non-option arguments and the '-t'
option with an argument that is not an existing directory, have the
diagnostic output complain about the lack of required arguments rather
than about the bad argument passed to '-t'.
* t/install-sh-unittests.sh: Enhance to also check diagnostic printed
in cases of expected failure.
2013-12-26 Stefano Lattarini <stefano.lattarini@gmail.com>
install-sh: be stricter in catching invalid usages
Such usages (which are rejected by GNU install as well) are:
- options -d and -t used together;
- argument passed to option -t must be a directory;
- if there are two or more SOURCEFILE arguments, the
DESTINATION argument must be a directory.
Note that we still allow the use of options -d and -T together, by
making -d take the precedence; this is for compatibility with GNU
install.
This change fixes, among other things, automake bug#15376.
* lib/install-sh: Adjust.
* t/install-sh-unittests.sh: Enhance.
* NEWS: Update.
* THANKS: Add reporter of bug#15376.
Helped-by: Tobias Hansen <thansen@debian.org>
2013-12-25 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: more significant names for some tests
* t/insh2.sh: Rename...
* t/dist-install-sh.sh: ... like this.
* t/instsh.sh: Rename...
* t/add-missing-install-sh.sh: ... like this.
* t/instsh2.sh: Rename...
* t/install-sh-unittests.sh: ... like this.
* t/instsh3.sh: Rename...
* t/install-sh-option-C.sh: ... like this.
* t/list-of-tests.mk: Adjust.
2013-12-25 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: some cosmetic fixes
* t/instdat.sh: Here.
* t/instdat2.sh: And here.
* t/instsh.sh: And here.
* t/instsh3.sh: And here.
2013-12-25 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: more significant names for a test
* t/install2.sh: Rename...
* t/dist-with-unreadable-makefile-fails.sh: ... like this.
* t/list-of-tests.mk: Adjust.
2013-12-25 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branches 'fix-pr11814' and 'drop-perl-tap-driver' into minor
* fix-pr11814:
docs: drop a few obsolescent FIXME/TODO comments, and associated text
testsuite harness: report test exit status in log file
* drop-perl-tap-driver:
TAP driver: remove perl implementation (move it into contrib/)
2013-12-24 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: drop a few obsolescent FIXME/TODO comments, and associated text
2013-12-24 Stefano Lattarini <stefano.lattarini@gmail.com>
testsuite harness: report test exit status in log file
The exit status of a test should be reported in the test logs, so
that one can see at a glance whether the test has succeeded or failed,
without having to look also into the corresponding .trs file.
This fixes automake bug#11814.
* lib/test-driver: Also report the test script exit status in the
test log (as the last line).
* t/check-exit-status-reported.sh: Test this new behaviour.
* t/list-of-tests.mk: Add the new test.
* t/ax/test-lib.sh( am_exit_trap): No longer log the test exit status;
this has been made redundant by the change to 'test-driver'. While at
it, fix an imperfect quoting.
2013-12-24 Stefano Lattarini <stefano.lattarini@gmail.com>
TAP driver: no need to invoke AC_PROG_AWK directly
It is already required by AM_INIT_AUTOMAKE anyway.
* doc/automake.texi: Adjust examples.
* t/tap-doc2.sh: Adjust documentation-tracking test.
* m4/init.m4 (AM_INIT_AUTOMAKE): Explicitly tell that the AC_PROG_AWK
requirement is also needed whenever the TAP driver is used.
2013-12-24 Stefano Lattarini <stefano.lattarini@gmail.com>
TAP driver: remove perl implementation (move it into contrib/)
That implementation was only meant as a standard against which the
portable awk+shell implementation was to be measured. Now, since
Automake 1.12, the latter implementation is fully functional and
already used in the wild, and in fact feature-par with the perl
implementation. So the perl implementation is now just slowing
down and complicating our testsuite. Let's move it to 'contrib/'
(we don't want to remove it, in case someone is actually using it
in the wild).
* lib/tap-driver.pl: Move it ...
* contrib/tap-driver.pl: ... here. While at it, convert quoting
`like this' to quoting 'like this', and remove an obsolescent FIXME
comment.
* lib/Makefile.inc (dist_script_DATA): Drop '%D%/tap-driver.pl'.
* Makefile.am (EXTRA_DIST): Add 'contrib/tap-driver.pl'.
* doc/automake.texi: Remove one stray reference to 'tap-driver.pl',
and reference 'tap-driver.sh' instead, as intended.
* t/ax/am-test-lib.sh ($am_tap_implementation): Delete definition and
uses.
(fetch_tap_driver): Simplify to unconditionally assume the shell+awk
implementation of the TAP driver is used.
(get_shell_script): Make more flexible so that it can cater to the
needs of 'fetch_tap_driver()'.
* t/tap-bad-prog.tap: Likewise.
* t/tap-bailout-leading-space.sh: Likewise.
* t/tap-signal.tap: Likewise.
* t/tap-test-number-0.sh: Likewise.
* t/test-driver-cond.sh: Use 'tap-driver.sh' instead of 'tap-driver.pl'.
* gen-testsuite-part (%test_generators): Do not generate sister tests
that use the perl TAP driver rather than the shell+awk one.
* NEWS: Update.
2013-12-24 Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS: stop reporting "new" Automake versioning scheme
It's actually old news by now.
2013-12-24 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'micro' into minor
* micro:
post-release: micro version bump to 1.14.1a devel version
release: stable micro release 1.14.1
HACKING: minor clarification
tests: make install-info-dir.sh print more debugging info
tests: remove too-brittle test tap-realtime.sh
maintainer: am-ft: add option to cater to clock skews
sync: update INSTALL, config.guess and config.sub from upstream
TAP driver: cosmetic fixes
2013-12-24 Stefano Lattarini <stefano.lattarini@gmail.com>
post-release: micro version bump to 1.14.1a devel version
* configure.ac (AC_INIT): Bump version number to 1.14.1a.
* m4/amversion.m4: Likewise (auto-updated by "make bootstrap").
2013-12-24 Stefano Lattarini <stefano.lattarini@gmail.com>
release: stable micro release 1.14.1
* configure.ac (AC_INIT): Bump version number to 1.14.1.
* m4/amversion.m4: Likewise (auto-updated by "make bootstrap").
2013-12-24 Stefano Lattarini <stefano.lattarini@gmail.com>
HACKING: minor clarification
2013-12-23 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: make install-info-dir.sh print more debugging info
With the hope that this will shed more light on bug#14601
2013-12-23 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: remove too-brittle test tap-realtime.sh
* t/tap-realtime.sh: Delete. It has always been brittle, but now
it's also causing spurious failures when mawk is used as the awk
implementation in tap-driver.sh (see bug#14601).
* t/list-of-tests.mk: Adjust.
2013-12-23 Stefano Lattarini <stefano.lattarini@gmail.com>
maintainer: am-ft: add option to cater to clock skews
* maintainer/am-ft: Add option '-S', giving a number of seconds to sleep
after copying the tarball to the remote system and before unpacking,
building and testing it. This is to cater to situations where the clock
of the remote system is skewed (in the past) w.r.t. the clock the local
system the tarball has been built on.
2013-12-23 Stefano Lattarini <stefano.lattarini@gmail.com>
sync: update INSTALL, config.guess and config.sub from upstream
2013-12-23 Stefano Lattarini <stefano.lattarini@gmail.com>
TAP driver: cosmetic fixes
* lib/tap-driver.sh: Quote 'like this', not `like this'. Remove an
obsolete FIXME. Correctly mark another comment as a TODO rather
than as a FIXME.
2013-11-02 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'modernize-install-sh' into minor
* modernize-install-sh:
cosmetics: untabify the install-sh script
install-sh: assume that "set -f" and "set +f" work...
install-sh: assume ${var:-value} works as expected
install-sh: assume 'dirname' is available and working correctly
2013-11-02 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'micro' into minor
* micro:
cosmetics: fix typo in a user-facing message in tests
automake: account for perl hash order randomization
tests: avoid use of intervals to capitalize letters
distcheck: don't allow overriding of --prefix and --srcdir by the user
tests: expose bug#14991 (relates to 'distcheck')
2013-11-02 Stefano Lattarini <stefano.lattarini@gmail.com>
cosmetics: fix typo in a user-facing message in tests
* t/lex-header.sh: A "skip" message in this test, precisely.
2013-11-01 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branches 'fix-pr14991' and 'fix-pr14891' into micro
* fix-pr14991:
distcheck: don't allow overriding of --prefix and --srcdir by the user
tests: expose bug#14991 (relates to 'distcheck')
* fix-pr14891:
automake: account for perl hash order randomization
tests: avoid use of intervals to capitalize letters
2013-10-31 Stefano Lattarini <stefano.lattarini@gmail.com>
automake: account for perl hash order randomization
Try to explicitly order the keys of some perl hashes when looping
on them to do sanity/correctness checks and possibly display warning
messages; this should ensure a more reproducible output. Not really
a big deal, but I prefer to keep the order of such output reproducible
if possible.
Issue revealed by spurious testsuite failures with perl 5.18, as
reported in automake bug#14891. See also:
<http://search.cpan.org/dist/perl-5.18.0/pod/perldelta.pod#Hash_randomization>
<http://onionstand.blogspot.ie/2012/12/are-you-relying-on-hash-keys-being.html>
* lib/Automake/Variable.pm (variables): Explicitly order the values of
the returned Automake::Variable instances.
(variables_dump): Simplify, using the knowledge that 'variables()' now
sorts its output.
* t/preproc-errmsg.sh: Adjust.
2013-10-31 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid use of intervals to capitalize letters
It was causing spurious failures with with Solaris 8 'tr'.
See automake bug#14891.
* t/test-extensions.sh: Adjust.
2013-10-31 Stefano Lattarini <stefano.lattarini@gmail.com>
cosmetics: untabify the install-sh script
* lib/install-sh: Here, plus a couple of related formatting tweaks.
2013-10-31 Stefano Lattarini <stefano.lattarini@gmail.com>
install-sh: assume that "set -f" and "set +f" work...
... and disable/enable shell globbing, respectively. This is
mandated by POSIX, and supported even by Solaris 9 /bin/sh (one
of the most braindead shells we still support).
* lib/install.sh: Adjust.
* NEWS: Update.
2013-10-30 Stefano Lattarini <stefano.lattarini@gmail.com>
install-sh: assume ${var:-value} works as expected
The Autoconf manual says it is OK these days.
* lib/install.sh: Adjust.
* NEWS: Update.
2013-10-30 Stefano Lattarini <stefano.lattarini@gmail.com>
install-sh: assume 'dirname' is available and working correctly
Really, we no longer care about hosts so outdated/broken to miss
fundamental utilities like basename or dirname.
* lib/install.sh: Adjust.
* NEWS, THANKS: Update.
Suggested-by: Philipp A. Hartmann <philipp.hartmann@offis.de>
2013-10-30 Stefano Lattarini <stefano.lattarini@gmail.com>
distcheck: don't allow overriding of --prefix and --srcdir by the user
Not through AM_DISTCHECK_FLAGS, nor through DISTCHECK_FLAGS. Apparently,
some packages got in the habit of relaying all the options passed to the
original ./configure invocation through to the configure invocations
in "make distcheck". This was causing problems, because it also passed
through the original --srcdir and --prefix options.
Fixes: expose bug#14991 (relates to 'distcheck')
* lib/am/distdir.am (distcheck): Pass the hard-coded --srcdir and
--prefix options *after* both the developer-defined options in
$(AM_DISTCHECK_FLAGS) and the user-defined options in $(DISTCHECK_FLAGS).
* t/list-of-tests.mk (XFAIL_TESTS): Remove the now-passing test
'distcheck-no-destdist-or-srcdir-override.sh'.
* doc/automake.texi (Checking the Distribution): Update.
* NEWS: Likewise.
2013-10-30 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: expose bug#14991 (relates to 'distcheck')
* t/distcheck-no-prefix-or-srcdir-override.sh: New, expose the bug.
* t/list-of-tests.mk (handwritten_TESTS, XFAIL_TESTS): Add it.
2013-10-30 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'micro' into minor
* micro:
tests: fix spurious failure when zip is present but unzip is not
tests: fix spurious failure due to localization issues
NEWS: update with the changes since v1.14
docs: correct typos in the fix-timestamp.sh script
python: byte-compile nobase_*_PYTHON files only once
cosmetics: typofix in the 'missing' script
test: avoid false positives in 'cc-no-c-o' script
test harness: improve catching of usage errors in script 'test-driver'
tests: fix a spurious failure on NetBSD-current
am-ft: make the environment available earlier
NEWS: post-release tweaks (for 1.14.x series)
tests: avoid a spurious failure on MacOS X 10.6.8
tests: don't risk hanging on the 'cl' requirement
2013-10-30 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix spurious failure when zip is present but unzip is not
Fixes automake bug#15181.
* t/dist-formats.tap (have_compressor): When checking that zip(1), also
check for unzip(1), otherwise "make distcheck" will be unable to extract
the zip tarball it creates, which will cause spurious failures. While
at it, reorganize the existing code a bit.
* THANKS, NEWS: Update.
2013-10-30 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix spurious failure due to localization issues
Fixes automake bug#15237.
* t/autohdr-subdir-pr12495.sh: Ensure make is run in the C locale, so that
we can expect error messages in English when grepping its output.
* THANKS, NEWS: Update.
2013-10-30 Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS: update with the changes since v1.14
2013-10-29 Peter Breitenlohner <peb@mppmu.mpg.de> (tiny change)
docs: correct typos in the fix-timestamp.sh script
* doc/automake.texi: Here. The original version of this example script
makes no sense at all, using 'configure' instead of the intended 'touch'
in few key places.
2013-10-28 Benoit Sigoure <tsunanet@gmail.com> (tiny change)
python: byte-compile nobase_*_PYTHON files only once
* lib/am/python.am: Here. Byte-compiling was occurring inside of
a loop, causing an O(n^2) number of byte-compilations instead of
O(n).
2013-10-28 Václav Zeman <vhaisman@gmail.com> (tiny change)
cosmetics: typofix in the 'missing' script
* lib/missing: Here, in a message printed to the user.
* THANKS: Update.
2013-07-23 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'fix-pr14911' into micro
* fix-pr14911:
test: avoid false positives in 'cc-no-c-o' script
2013-07-23 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'fix-half-pr14760' into micro
* fix-half-pr14760:
tests: fix a spurious failure on NetBSD-current
2013-07-23 Stefano Lattarini <stefano.lattarini@gmail.com>
test: avoid false positives in 'cc-no-c-o' script
Fixes automake bug#14911.
* t/ax/cc-no-c-o.in: Be more careful in determining whether both the
'-c' and '-o' options have been passed on the command line to the
compiler. In particular, do not spuriously complain in the face of
options like '-compatibility_version' or '-current_version' (seen on
Mac OS X 10.7).
* THANKS: Update.
2013-07-21 Stefano Lattarini <stefano.lattarini@gmail.com>
test harness: improve catching of usage errors in script 'test-driver'
Fixes automake bug#14840.
* lib/test-driver: Catch and report usage errors where the caller has
forgotten to specify one of the mandatory options (--test-name,
--log-file, --trs-file) or has not passed any non-option argument.
Also, be sure to work correctly even when no '--' special argument
is passed to separate option from non-options arguments.
* THANKS: Update.
2013-07-07 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix a spurious failure on NetBSD-current
Reported in automake bug#14760.
* tests/silent-custom.sh: Be prepared to handle creative
quoting in the output of the shell run for the make recipes
when the shell traces are active ("set -x").
2013-06-28 Stefano Lattarini <stefano.lattarini@gmail.com>
am-ft: make the environment available earlier
So that, with a PATH that is updated earlier, we can find the 'xz'
program even on systems where it isn't in the default PATH.
* maintainer/am-ft: Adjust accordingly.
2013-06-27 Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS: post-release tweaks (for 1.14.x series)
2013-06-27 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid a spurious failure on MacOS X 10.6.8
Fixes automake bug#14706.
* t/depcomp2.sh: Strip, from the redirected ./configure stderr, the
possible error message "rm: conftest.dSYM: is a directory", generated
by cleanup code that doesn't cater to the existence of *.dSYM
directories sometimes created by the compiler on MacOS X. This
"massaging" of ./configure stderr is legitimate, since the spurious
error message is due not to automake-related code, but to a know
buglet/limitation of either Autoconf or Mac OS X bundles gcc:
<http://lists.gnu.org/archive/html/bug-autoconf/2007-11/msg00017.html>
Actually, from that link it appears that the original Autoconf issue
had been fixed, but it must have been re-introduced in the meantime :-(
2013-06-27 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: don't risk hanging on the 'cl' requirement
On the GNU/Linux boxes of some users that run our testsuite there
is a '/usr/local/bin/cl' executable, from the IRAF package:
<http://iraf.noao.edu/>
The test 'compile4.sh' (and other tests) try to invoke the 'cl'
command to check whether it's a Microsoft compiler; the IRAF cl
is an interactive program, so it hangs on such invocation. In
conclusion, the testsuite hangs for those users which have the
IRAF cl early in PATH.
Fix the issue by redirecting the input of cl from /dev/null when
invoking it, which is enough to prevent the cl program from IRAF
from hanging, and should have no effect on the behaviour of the
Microsoft compiler.
This change fixes automake bug#14707.
* t/ax/am-test-lib.sh (require_tool): Adjust the handling of
the 'cl' requirement.
2013-06-21 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'micro' into minor
* micro:
post-release: micro version bump (1.14.0a)
2013-06-21 Stefano Lattarini <stefano.lattarini@gmail.com>
post-release: micro version bump (1.14a)
* configure.ac: Bump version: 1.14 -> 1.14a
* m4/amversion.m4: Likewise (auto-updated by "make bootstrap").
2013-06-21 Stefano Lattarini <stefano.lattarini@gmail.com>
post-release: micro version bump (1.14.0a)
* configure.ac: Bump version: 1.14 -> 1.14.0a
* m4/amversion.m4: Likewise (auto-updated by "make bootstrap").
2013-06-21 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint' into micro
* maint:
release: stable minor release 1.14
NEWS: one more minor fixlet
maint: port check-minimal-autoconf to VPATH builds
tests: avoid spurious failures in Linux -> MinGW cross-compilation mode
tests: simplify checks for some expected variables values in Makefiles
NEWS: improve and update wording
tests: fix/improve few heading comments
coverage: new test on Texinfo @include support
tests: tighten a grepping check
tests: more significant names for some tests
rename-tests: rework some code for clarity and safety
tests: cosmetic changes in t/extra-sources.sh
rename-tests: inform the user about the pre-filled commit msg
typofix: in comments in 'maintainer/rename-tests'
rename-tests: also "git add" list-of-tests.mk
tests: rename t/exsource.sh -> t/extra-sources.sh
tests: some improvements to Gettext tests
maint: version bump after beta release 1.13b
release: beta release 1.13b (will become 1.14)
automake: assume we can always pass '-o' to the C compiler
NEWS: fix typo
NEWS: on assuming "rm -f" without arguments work
docs: AM_PROG_CC_C_O: correct imprecise statements about it
NEWS: document deprecation of 'shar' and 'compress' dist formats
m4: rename minuso.m4 -> prog-cc-c-o.m4
tests: some tests make no sense if "$CC -c -o" doesn't work
AM_PROG_CC_C_O: don't rely on AC_PROG_CC_C_O, re-implement similar logic
compile: rewrite AC_PROG_CC with AM_PROG_CC_C_O contents
tests: avoid few lingering $MAKE redirections
tests: fix a spurious failure on NetBSD 5.1
texi: build version.texi and stamp-vti in srcdir
tests: fix a botched heading comment
tests: fix another spurious with FreeBSD make
tests: fix a spurious failure with FreeBSD make
tests: remove remaining exec bits ('maint' branch)
PLANS: subdir-objects: various updates
THANKS: update Akim's e-mail address
tests: less uses of "make -e"; avoid spurious failures in 'check-cc-no-c-o'
build: be more respectful of user-specified verbosity
check-cc-no-c-o: unify initializations in a single place
check-cc-no-c-o: avoid a spurious failure
build: fixup for building in a VPATH setup
Use AC_DEFUN_ONCE to define AM_PROG_CC_C_O
compile: avoid AC_PROG_CC messy rewrite
options: tiny simplification in dealing with incompatible versions
options: try to report as much errors as possible
refactor: fix few "inverted boolean" usages
options: better name for an internal function
options: more consistency in use of return statuses to report errors
options: tiny simplification in dealing with erroneous opts
options: consistently use return statuses to report errors
options: re-enable some sanity checks
THANKS: update Eric Blake's e-mail address
NEWS: typofix
news: document new 'subdir-objects' warning
PLANS: one minor fixlet (mostly cosmetic)
PLANS: we have already dropped support for split info files in master
NEWS: fix a reference to Automake 1.14 where Automake 2.0 was intended
PLANS: fix reference to non-existent 'next' branch
PLANS: fix botched version reference
maintcheck: fix two references to old location of aclocal and automake
dist: deprecated shar and tar+compress formats
am: prefer a shorter idiom where possible
maint: re-run "make update-copyright" ...
tests: avoid spurious failure with older flex (2.5.4)
build: move automake and aclocal in 'bin' subdir
build: break up monolithic Makefile.am in subdir-specific fragments
maint branch: we are going to become Automake 1.14
tests: typofixes in comments in t/preproc-c-compile.sh
tests: remove bashism from a test
tests: rename some with more descriptive names
typofix: in comments in t/extra2.sh
tests: fix botched cross-reference in a heading comment
automake: refactoring: factor out common cpp-like flags
NEWS (mint): reflect new Automake versioning scheme
maintcheck: avoid spurious failure
perl: perl subroutine prototypes are problematic, don't use them
maint: more adjustments to the new versioning scheme
cosmetics: fix some "docstring-like" comments in automake
style: call perl functions 'like_this()', not '&like_this()'
preproc: enhance and extend tests
preproc: add support for relative names in included fragments
maint: use more perl subroutines prototypes in the automake script
build: auto-generate perl subroutines prototypes for automake and aclocal
refactor: rip module Automake::Language out of automake script
tests: more information about Lex and Yacc programs
lint: fix spurious failure for 'sc_rm_minus_f' syntax check
maint: bump version 1.13.1a -> 1.13.2a
plans: we are not going to remove AM_PROG_MKDIR_P in Automake 1.14
init.m4: add probe to check "rm -f" without args work
subdir-objects: complain if it isn't enabled
plans: update w.r.t. latest changes
ywrap: remove an obsolete FIXME comment
ywrap: style fixes (no semantic change intended)
convenience: "make lint" as an alias for "make maintainer-check"
docs: typofix in manual
coverage: using multiple lexers in a single program
tests: remove most uses of the AM_PROG_CC_C_O obsolete macro
coverage: obsolete macro AM_PROG_CC_C_O should cause no warning nor errors
INSTALL: update copyright years
ithreads: use runtime (not configure time) detection of perl threads
copyright: add few missing copyright notices
maint: files in PLANS are to be exempted from copyright notice
maint: consistently honor the UPDATE_COPYRIGHT_YEAR environment variable
copyright: update some copyright years
compile: use 'compile' script when "-c -o" is used with losing compilers
HACKING: suggest more checks before releasing
tests: can fake a compiler not grasping "-c -o" -- globally in all tests
sync: update files from upstream with "make fetch"
typofix: in comments in GNUmakefile
Rename 'maint/' -> 'maintainer/', for Git's sake
HACKING: minor typofix
HACKING: bug-tracker, the PLANS directory, and how to plan "big" changes
HACKING: rewindable branches should live in the 'experimental/*' namespace
HACKING: fixlets about git branch rewinding policy
HACKING: commit messages are not to follow GCS ChangeLog rules too strongly
HACKING: "detailed explanation" in commit messages is almost mandatory
HACKING: we use "merge --log" even when merging master
HACKING: typofix
depend2.am: fix comments on verbosity of compilation rules
depend2.am: improve comments a little
plans: automake 1.14 is to assume "rm -f" with no args is OK
plans: we want to active subdir-objects unconditionally in automake 1.14
tests: adjust stale references to old test names
tests: rename the last aclocal test with dumb name
tests: fix an old botched change to an aclocal test
tests: fix some botched inter-test references in heading comments
coverage: compile rules used "-c -o" also with losing compilers
texi: remove extra verbosity in creation of dirstamp directory
coverage: user can avoid distributing '.info' pages
plans: add some on-going plans (already registered on the bug tracker)
docs: mention dist-hook help for EXTRA_DIST
texi: remove workaround for older Texinfo (4.1)
NEWS: improve wordings in entry deprecating suffix-less info files
build: don't enable 'color-tests' automake option explicitly
build: enable all warnings as fatal in our own build system
texi: Texinfo sources and CLEANFILES definition should co-exist peacefully
tests: make two new test executable
runtest: better command line API
tests: move runtest.in away from the top-lever directory
maint: move more maintainer files in the 'maint/' subdir
plans: add the "PLANS" directory
tests: more significant names for some tests
maint: add some of my maintainer-specific scripts
texi: deprecate hack about info files in CLEANFILES variables
texi: info files can be generated in the builddir
2013-06-20 Stefano Lattarini <stefano.lattarini@gmail.com>
release: stable minor release 1.14
* configure.ac (AC_INIT): Bump version number to 1.14.
* m4/amversion.m4: Likewise (auto-updated by "make bootstrap").
2013-06-20 Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS: one more minor fixlet
2013-06-19 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: port check-minimal-autoconf to VPATH builds
* maintainer/maint.mk (check-minimal-autoconf): Here.
2013-06-19 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid spurious failures in Linux -> MinGW cross-compilation mode
* t/ccnoc-deps.sh: Here.
* t/preproc-demo.sh: And here.
2013-06-19 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: simplify checks for some expected variables values in Makefiles
Do so by using our custom 'is' auxiliary script rather than grepping
the output from make. This is more natural, more robust, and often
shorter to write.
Unfortunately, we can't do that in all cases: sometimes we really need
to match the content of a variable against a regular expressions, and
we can't know nor are interested in its exact value.
This is basically a follow-up on commit v1.11-1830-g96401cb of
2012-02-08 (tests: better way to compare lists in Makefile rules).
* t/subst-no-trailing-empty-line.sh: Adjust.
* t/pluseq10.sh: Likewise.
* t/check5.sh: Likewise, and enhance a little while at it.
* t/check7.sh: Likewise.
* t/exeext.sh: Likewise.
2013-06-19 Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS: improve and update wording
2013-06-19 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix/improve few heading comments
* t/lflags.sh: Here.
* t/lflags-cxx.sh: And here.
* t/yflags.sh: And here.
* t/yflags-cxx.sh: And here.
2013-06-19 Stefano Lattarini <stefano.lattarini@gmail.com>
coverage: new test on Texinfo @include support
Backported from the Automake-NG testsuite.
* t/txinfo-include.sh: New test.
* t/list-of-tests.mk: Add it.
2013-06-19 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: tighten a grepping check
* t/yflags-force-override.sh: Here, by being sure to correctly
match an expected literal dot.
2013-06-19 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: more significant names for some tests
* t/extra2.sh: Rename...
* t/extra-sources-no-spurious.sh: ... like this.
* t/yflags2.sh: Rename...
* t/yflags-cxx.sh: ... like this.
* t/lflags2.sh: Rename...
* t/lflags-cxx.sh: ... like this.
2013-06-19 Stefano Lattarini <stefano.lattarini@gmail.com>
rename-tests: rework some code for clarity and safety
2013-06-19 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: cosmetic changes in t/extra-sources.sh
* t/extra-sources.sh: Do not create unneeded C sources. Add
trailing ':' command.
2013-06-19 Stefano Lattarini <stefano.lattarini@gmail.com>
rename-tests: inform the user about the pre-filled commit msg
2013-06-19 Stefano Lattarini <stefano.lattarini@gmail.com>
typofix: in comments in 'maintainer/rename-tests'
2013-06-19 Stefano Lattarini <stefano.lattarini@gmail.com>
rename-tests: also "git add" list-of-tests.mk
2013-06-19 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: rename t/exsource.sh -> t/extra-sources.sh
* t/exsource.sh: Rename ...
* t/extra-sources.sh: ... like this.
* t/list-of-tests.mk: Adjust.
2013-06-16 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'gettext-tests' into maint
* gettext-tests:
tests: some improvements to Gettext tests
2013-06-16 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: some improvements to Gettext tests
Mostly to bring them more in sync with the ones in Automake-NG.
See also commit v1.12.2-824-g5468d52 of 2012-08-10([ng] tests:
reorganize gettext tests a bit) in Automake-NG.
* t/gettext.sh: Rename ...
* t/gettext-basics.sh: ... like this, enhance a little, and
move checks on requirement of 'config.rpath' out into ...
* t/gettext-config-rpath.sh: ... into this new test, and move
checks about PR/381...
* t/gettext-pr381.sh: ... into this new test.
* t/gettext2.sh: Rename ...
* t/gettext-external-pr338.sh: ... like this, and enhance a
little.
* t/gettext3.sh: Rename ...
* t/gettext-intl-subdir.sh: ... like this, and add trailing
':' command.
2013-06-14 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'micro' into maint
* micro:
post-release: micro version bump (1.13.4a)
release: stable micro release 1.13.4
sync: update config.guess
2013-06-14 Stefano Lattarini <stefano.lattarini@gmail.com>
post-release: micro version bump (1.13.4a)
* configure.ac: Bump version: 1.13.4 -> 1.13.4a
* m4/amversion.m4: Likewise (auto-updated by "make bootstrap").
2013-06-14 Stefano Lattarini <stefano.lattarini@gmail.com>
release: stable micro release 1.13.4
* configure.ac (AC_INIT): Bump version number to 1.13.4.
* m4/amversion.m4: Likewise (auto-updated by "make bootstrap").
2013-06-14 Stefano Lattarini <stefano.lattarini@gmail.com>
sync: update config.guess
* lib/config.guess: This. Actually, only the timestamp has been
updated (apparently, it was mistakenly not updated in the previous
real change to the script).
2013-06-12 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'micro' into maint
* micro:
THANKS: update e-mall address for Ralf Corsepius
lang, suffix rules: don't require C stuff needlessly
tests: expose automake bug#14560
2013-06-12 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'fix-pr14560' into micro
* fix-pr14560:
lang, suffix rules: don't require C stuff needlessly
tests: expose automake bug#14560
2013-06-12 Stefano Lattarini <stefano.lattarini@gmail.com>
THANKS: update e-mall address for Ralf Corsepius
2013-06-12 Stefano Lattarini <stefano.lattarini@gmail.com>
lang, suffix rules: don't require C stuff needlessly
This change fixes automake bug#14560: when two or more user-defined suffix
rules were present in a single Makefile.am, automake would needlessly
include definition of some make variables related to C compilation in the
generated Makefile.in.
* automake.in (handle_languages): Fix logic to decide whether or not to
include definitions of C compilation related variables in the generated
Makefile.in: instead of doing so when two or more user-defined suffix
rules are seen (which is a completely bogus criterion), do so when two
or more compiled languages are used.
* lib/Automake/Rule.pm (suffix_rules_count): Remove as no longer used.
(@EXPORT): Adjust.
* t/list-of-tests.mk (XFAIL_TESTS): No longer list the test script
'suffix-extra-c-stuff-pr14560.sh', which now passes.
* NEWS: Update.
2013-06-12 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: expose automake bug#14560
Automake needlessly generates definition of make variables related
to C compilation when two or more user-defined suffix rules are
present in a single Makefile.am.
* t/suffix-extra-c-stuff-pr14560.sh: New test, exposing the bug.
This test is still xfailing.
* t/no-extra-c-stuff.sh: New test, check for a potential related
regression. This regression is not actually present here (so this
test passes), but it still took place in our first attempt at
fixing bug#14560 -- so this test has proven to be actually useful.
* t/no-extra-makefile-code.sh: Improve comments, and tighten the
grepping checks a little.
* t/list-of-tests.mk (handwritten_TESTS): Add the new tests.
(XFAIL_TESTS): Add the new xfailing test.
2013-06-09 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'micro' into maint
* micro:
maint: add a missing copyright notice
sync: update config.guess from upstream
tests: expose automake bug#13928
comments: fix some out-of-sync refs to test scripts
tests: expose automake bug#13940
2013-06-09 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: add a missing copyright notice
* t/ax/deltree.pl: Here. Issue revealed by "make update-copyright".
2013-06-09 Stefano Lattarini <stefano.lattarini@gmail.com>
sync: update config.guess from upstream
* lib/config.guess: Here.
2013-06-08 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: expose automake bug#13928
* t/subobj-indir-pr13928.sh: New test, still xfailing.
* t/subobj-vpath-pr13928.sh: Likewise.
* t/list-of-tests.mk (XFAIL_TESTS, handwritten_TESTS): Update.
2013-06-08 Stefano Lattarini <stefano.lattarini@gmail.com>
comments: fix some out-of-sync refs to test scripts
Those script has been renamed since those comments where written.
* lib/Automake/Rule.pm: Adjust.
* lib/am/distdir.am: Likewise.
2013-06-08 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: expose automake bug#13940
* t/override-conditional-pr13940.sh: New test, still xfailing.
* t/list-of-tests.mk (XFAIL_TESTS, handwritten_TESTS): Add it.
2013-06-03 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'micro' into maint
* micro:
configure: remove an obsolete TODO comment
post-release: micro version bump (1.13.3a)
release: stable micro release 1.13.3
typofix: fix grammaro in comments in t/tags-pr12372.sh
2013-06-03 Stefano Lattarini <stefano.lattarini@gmail.com>
configure: remove an obsolete TODO comment
* configure.ac: Here.
2013-06-03 Stefano Lattarini <stefano.lattarini@gmail.com>
post-release: micro version bump (1.13.3a)
* configure.ac: Bump version: 1.13.3 -> 1.13.3a
* m4/amversion.m4: Likewise (auto-updated by "make bootstrap").
2013-06-03 Stefano Lattarini <stefano.lattarini@gmail.com>
release: stable micro release 1.13.3
* configure.ac (AC_INIT): Bump version number to 1.13.3.
* m4/amversion.m4: Likewise (auto-updated by "make bootstrap").
2013-06-03 Peter Rosin <peda@lysator.liu.se>
typofix: fix grammaro in comments in t/tags-pr12372.sh
2013-06-03 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'micro' into maint
* micro:
NEWS: minor fixlets, re-wording, and better text wrapping
tests: slightly stricter checks in t/cxx-demo.sh
tests: fix spurious failure when 'etags' program is Exuberant Ctags
tests: fix spurious failure due to missing sleeps
2013-06-03 Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS: minor fixlets, re-wording, and better text wrapping
2013-06-03 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: slightly stricter checks in t/cxx-demo.sh
This is a follow-up to the commit fixing automake bug#14493.
* t/cxx-demo.sh: Also check that the built program returns the
correct (i.e., zero) exit status when run. And improve comments
a little while at it.
2013-06-03 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix spurious failure when 'etags' program is Exuberant Ctags
Fixes automake bug#14517.
* t/tags-pr12372.sh: If the 'etags' program in use supports the
'--langmap' option, use it. That is required to avoid spurious
failures with Exuberant Ctags (at least version 5.8), which by
default do not generate any tags for file extensions it doesn't
recognize.
2013-06-03 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix spurious failure due to missing sleeps
Fixes automake bug#14528.
* THANKS: Give credit to that bug's original reporter.
* t/remake-configure-dependencies.sh: Add few missing '$sleep'
invocations. I thought that the sleeps implicit in the configure
invocation were enough, but they were not, actually. Here is what
can happen:
1. The config.status script is generated by a configure run.
2. ./config.status and make are run.
3. The 'print-version' script is modified.
4. Since that script is listed in $(CONFIGURE_DEPENDENCIES),
autoconf is re-run.
5. On a fast-enough machine, the three steps 2-4 above, even
combined, might have taken less than a second to run;
6. If the filesystem doesn't have a sub-second timestamp
resolution, that means the newly-generated configure has
the same timestamp of the old config.status;
7. So, config.status is not re-run, and the Makefiles are
not updated.
8. Spurious failure!
So we really need more explicit sleeps.
2013-05-31 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: version bump after beta release 1.13b
* configure.ac (AC_INIT): Bump version number to 1.13c.
* m4/amversion.m4: Likewise (auto-updated by "make bootstrap").
2013-05-31 Stefano Lattarini <stefano.lattarini@gmail.com>
release: beta release 1.13b (will become 1.14)
* configure.ac (AC_INIT): Bump version number to 1.13b.
* m4/amversion.m4: Likewise (auto-updated by "make bootstrap").
2013-05-30 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'micro' into maint
* micro:
maint: support new Automake versioning scheme in tagging/uploading rules
announcement: can be generated from development snapshots as well
announcement: can be generated from development snapshots as well
announcement: be less strict in the paring of NEWS
maint: version bump after beta release 1.13.2b
release: beta release 1.13.2b (will become 1.13.3)
sync: update config.guess from upstream
2013-05-30 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: support new Automake versioning scheme in tagging/uploading rules
* maint.mk (base_version_rx: Drop.
(rx-0, rx-1): New.
(stable_major_version_rx, stable_minor_version_rx, beta_version_rx):
Update.
(stable_micro_version_rx, alpha_version_rx: New.
(determine_release_type): Adjust.
(web-manual-update): Likewise.
2013-05-30 Stefano Lattarini <stefano.lattarini@gmail.com>
announcement: can be generated from development snapshots as well
And not only from checkouts corresponding exactly from a beta
or stable release. That was only getting in the way of proper
testing for the 'announcement' recipe.
* maint.mk (determine_release_type): If the make variable
DEVEL_SNAPSHOT is set, do not error out if the current version
denotes a development snapshot (e.g., "1.13.2c" or "1.99a").
(announcement): Relax, by also accepting to run from development
snapshots, not only stable or beta releases. Do so by defining
the target-specific variable DEVEL_SNAPSHOT to "yes".
(print-release-type): Micro enhancement while at it.
2013-05-30 Stefano Lattarini <stefano.lattarini@gmail.com>
announcement: can be generated from development snapshots as well
And not only from checkouts corresponding exactly from a beta
or stable release. That was only getting in the way of proper
testing for the 'announcement' recipe.
* maint.mk (determine_release_type): If the make variable
DEVEL_SNAPSHOT is set, do not error out if the current version
denotes a development snapshot (e.g., "1.13.2c" or "1.99a").
(announcement): Relax, by also accepting to run from development
snapshots, not only stable or beta releases. Do so by defining
the target-specific variable DEVEL_SNAPSHOT to "yes".
2013-05-30 Stefano Lattarini <stefano.lattarini@gmail.com>
announcement: be less strict in the paring of NEWS
So that the file generated by "make announcement" is correct also
for beta releases.
* maint.mk (announcement): Relax the awk program processing NEWS a
little.
2013-05-30 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: version bump after beta release 1.13.2b
* configure.ac (AC_INIT): Bump version number to 1.13.2c.
* m4/amversion.m4: Likewise (autoupdated by "make bootstrap").
2013-05-30 Stefano Lattarini <stefano.lattarini@gmail.com>
release: beta release 1.13.2b (will become 1.13.3)
* configure.ac (AC_INIT): Bump version number to 1.13.2b.
* m4/amversion.m4: Likewise (auto-updated by "make bootstrap").
2013-05-30 Stefano Lattarini <stefano.lattarini@gmail.com>
sync: update config.guess from upstream
2013-05-30 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'micro' into maint
* micro:
NEWS: document recent testsuite fixes (MinGW/MSYS related)
depcomp: avoid trailing backslash in depfile for depmode=msvc7
tests: prune some weed in a non-POSIX test
tests: avoid a spurious failure on MSYS
2013-05-30 Peter Rosin <peda@lysator.liu.se>
automake: assume we can always pass '-o' to the C compiler
It is assumed that we can pass -c -o to the C compiler, so remove
some special casing and always do that.
This change is similar in spirit to v1.13.1d-217-g7299c4d "depend: assume
we can always pass '-o' to the C compiler"
This change also happen to fix a testsuite failure
(t/silent-many-languages.sh) when mixing MSVC and GNU fortran, which
have different default object file extensions (.obj vs. .o). This
difference in object file extension is not handled well and caused
Automake to look for MSVC objects with .o extension. Always using -o
makes MSVC create .o object files and linking succeeds. Not that
anybody recommends mixing toolchains or anything.
* bin/automake.in (handle_languages): Remove conditional modification
of 'output_flag' entry for 'c'.
(register_language ('name' => 'c')): Add 'output_flag' entry set to '-o'.
2013-05-30 Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS: document recent testsuite fixes (MinGW/MSYS related)
2013-05-30 Peter Rosin <peda@lysator.liu.se>
depcomp: avoid trailing backslash in depfile for depmode=msvc7
When compiling a file without any dependencies (no #includes), the
msvc7 depmode (and consequently msvc7msys) generates a depfile
Makefile fragment with the last line ending with a backslash. This
is less robust than needed.
Fixes automake bug#14501.
* lib/depcomp (msvc7): Finish off the depfile Makefile fragment with
an empty line.
(scriptversion): Update.
2013-05-29 Peter Rosin <peda@lysator.liu.se>
Stefano Lattarini <stefano.lattarini@gmail.com>
tests: prune some weed in a non-POSIX test
Fixes automake bug#14494.
* t/distcheck-pr10470.sh: Make sure the test-driver is installed. Adjust
to run_make changes. Adjust grep pattern to match new output.
2013-05-29 Peter Rosin <peda@lysator.liu.se>
tests: avoid a spurious failure on MSYS
Fixes automake bug#14493.
* t/cxx-demo.sh: Strip CR characters from the program output.
2013-05-29 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'micro' into maint
* micro:
t/README: document "run_make", discourage "make -e"
cosmetics: tiny whitespace fixlets
tests: avoid a spurious failure with MSVC
tests: avoid a spurious failure on non-POSIX systems
2013-05-29 Stefano Lattarini <stefano.lattarini@gmail.com>
t/README: document "run_make", discourage "make -e"
2013-05-29 Stefano Lattarini <stefano.lattarini@gmail.com>
cosmetics: tiny whitespace fixlets
2013-05-29 Peter Rosin <peda@lysator.liu.se>
tests: avoid a spurious failure with MSVC
Fixes automake bug#14498.
* t/yacc-bison-skeleton.sh: inline was not standardized prior to C99.
2013-05-29 Peter Rosin <peda@lysator.liu.se>
tests: avoid a spurious failure on non-POSIX systems
Fixes automake bug#14495.
* t/lex-header.sh: Make sure unistd.h isn't included.
2013-05-29 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'micro' into maint
* micro:
NEWS: fix typos and grammaros
NEWS: document fix for bug#14441
Automake::Rule: consistently prepend underscore to private variables
Automake::Rule: rename: suffix_rule() -> next_in_suffix_chain()
Automake::Rule: adjust comments and POD according to previous changes
Automake::Rule: make private variables lexically scoped
suffix rules: better distinction between builtin and user-derived
Automake::Rule: expose suffix rules as a function, not a scalar
tests: expose automake bug#14441
2013-05-29 Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS: fix typos and grammaros
Reported-by: Peter Rosin <peda@lysator.liu.se>
2013-05-28 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'suffix-rules-work' into micro
* suffix-rules-work:
NEWS: document fix for bug#14441
Automake::Rule: consistently prepend underscore to private variables
Automake::Rule: rename: suffix_rule() -> next_in_suffix_chain()
Automake::Rule: adjust comments and POD according to previous changes
Automake::Rule: make private variables lexically scoped
suffix rules: better distinction between builtin and user-derived
Automake::Rule: expose suffix rules as a function, not a scalar
tests: expose automake bug#14441
2013-05-28 Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS: fix typo
Reported-by: Peter Rosin <peda@lysator.liu.se>
2013-05-28 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'micro' into maint
* micro:
NEWS: report recent documentation fix about AM_PROG_MKDIR_P
NEWS: Automake 2.0 will assume "rm -f" without args work
NEWS: fix a couple of typos in older entries
2013-05-28 Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS: report recent documentation fix about AM_PROG_MKDIR_P
2013-05-28 Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS: Automake 2.0 will assume "rm -f" without args work
2013-05-28 Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS: on assuming "rm -f" without arguments work
2013-05-28 Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS: fix a couple of typos in older entries
2013-05-28 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'micro' into maint
* micro:
docs: AM_PROG_MKDIR_P: will not be removed in 2.0 release of Automake
maint: sanity checks in 'check-minimal-autoconf' convenience target
maint: test minimal supported autoconf through convenience target
maint: install minimal supported autoconf through convenience targets
test-lib: typofix in comments
2013-05-28 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: AM_PROG_MKDIR_P: will not be removed in 2.0 release of Automake
See the 'PLANS/obsolete-removed/am-prog-mkdir-p.txt' file in the 'maint'
branch (as of commit v1.13.2-201-gd99e3f3) for details.
* doc/automake.texi: Adjust.
2013-05-28 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: AM_PROG_CC_C_O: correct imprecise statements about it
* doc/automake.texi: Here.
2013-05-28 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: sanity checks in 'check-minimal-autoconf' convenience target
* maint.mk (check-minimal-autoconf): Here, check that autoconf seems
to be locally installed, and that such local install refers to the
correct expected minimal version.
2013-05-28 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: test minimal supported autoconf through convenience target
* maint.mk (check-minimal-autoconf): New convenience target.
2013-05-28 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: install minimal supported autoconf through convenience targets
To make testing of Automake in conjunction with it easier and more
reproducible. It might be nice to also have convenience targets to
actually automatically run the Automake testsuite with such autoconf
version, but that is left to later patches.
* configure.ac: AC_SUBST the definition of $required_autoconf_version.
* maint.mk (WGET): Move definition earlier.
(gnu-ftp, ac-v, ac-n, ac-p, ac-t, ac-l, ac-d): New auxiliary variables.
(fetch-minimal-autoconf, build-minimal-autoconf): New convenience
targets.
* .gitignore: Update.
2013-05-28 Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS: document fix for bug#14441
2013-05-28 Stefano Lattarini <stefano.lattarini@gmail.com>
Automake::Rule: consistently prepend underscore to private variables
* lib/Automake/Rule.pm (%suffix_rules): Rename ...
(%_suffix_rules): ... like this.
(%suffix_rules_builtin): Rename ...
(%_suffix_rules_builtin): ... like this.
(reset, next_in_suffix_chain, register_suffix_rule, suffix_rules_count):
Adjust.
2013-05-28 Stefano Lattarini <stefano.lattarini@gmail.com>
Automake::Rule: rename: suffix_rule() -> next_in_suffix_chain()
* lib/Automake/Rule.pm (suffix_rule): Rename ...
(next_in_suffix_chain): ... like this.
(%suffix_rules): Adjust comments.
(@EXPORT): Adjust.
* automake.in (derive_suffix): Likewise.
2013-05-28 Stefano Lattarini <stefano.lattarini@gmail.com>
Automake::Rule: adjust comments and POD according to previous changes
* lib/Automake/Rule.pm: Here, in several places.
* automake.in (register_language): And a tiny adjustment here as well.
2013-05-28 Stefano Lattarini <stefano.lattarini@gmail.com>
Automake::Rule: make private variables lexically scoped
* lib/Automake/Rule.pm (@_known_extensions_list): This one.
(@_suffixes): And this one.
(%_rule_dict): And this one.
2013-05-28 Stefano Lattarini <stefano.lattarini@gmail.com>
suffix rules: better distinction between builtin and user-derived
Fixes automake bug#14441.
* lib/Automake/Rule.pm ($_suffix_rules_default): Remove, superseded by ...
(%suffix_rules_builtin): ... this lexical variable.
($suffix_rules): Remove, superseded by ...
(%suffix_rules): ... this lexical variable.
(suffix_rules, suffix_rules_count): Adjust.
(register_suffix_rule): Update '%suffix_rules_builtin' rather than
'%suffix_rules' if the location (as passed by the '$where' argument)
is an "internal" one (doesn't come from user-provided Makefile.am).
(reset): Simplify resetting of '%suffix_rules' to the default ones
accordingly.
* t/list-of-tests.mk (XFAIL_TESTS): Drop test 'suffix-custom-pr14441.sh'.
2013-05-28 Stefano Lattarini <stefano.lattarini@gmail.com>
Automake::Rule: expose suffix rules as a function, not a scalar
This is just a preparatory refactoring in view of future patches.
No semantic change is intended.
* lib/Automake/Rule.pm ($suffix_rules): Turn from a package-level
variable to a lexical variable.
(suffix_rule): New function, expose the details of $suffix_rules
that are actually required by code outside thus modules --- and
only those details, no more.
(@EXPORT): Adjust.
* automake.in (derive_suffix): Likewise.
2013-05-27 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: expose automake bug#14441
* t/suffix-custom-pr14441.sh: New test, still failing.
* t/list-of-tests.mk (handwritten_TESTS, XFAIL_TESTS): Add it.
Helped-by: Felix Salfelder <felix@salfelder.org>
2013-05-26 Stefano Lattarini <stefano.lattarini@gmail.com>
test-lib: typofix in comments
* t/ax/am-test-lib.sh: In here.
2013-05-26 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'micro' into maint
* micro:
tests: remove an "unworthy" FIXME comment
tests: remove one obsolete workaround for long-lifted limitations
tests: couple of minor tweaks in demo tests in C++ and Libtool
2013-05-26 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: remove an "unworthy" FIXME comment
* t/location.sh: Here.
2013-05-26 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: remove one obsolete workaround for long-lifted limitations
* t/silent-many-languages.sh: Here.
2013-05-26 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: couple of minor tweaks in demo tests in C++ and Libtool
* t/cxx-lt-demo.sh: Here.
2013-05-26 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'micro' into maint
* micro:
tests: adjust or remove some obsolete comments
tests: remove some useless 'unset' of variables
2013-05-26 Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS: document deprecation of 'shar' and 'compress' dist formats
2013-05-26 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'prog-cc-c-o-work' into maint
* prog-cc-c-o-work:
tests: some tests make no sense if "$CC -c -o" doesn't work
AM_PROG_CC_C_O: don't rely on AC_PROG_CC_C_O, re-implement similar logic
compile: rewrite AC_PROG_CC with AM_PROG_CC_C_O contents
2013-05-26 Stefano Lattarini <stefano.lattarini@gmail.com>
m4: rename minuso.m4 -> prog-cc-c-o.m4
The new name is much clearer.
* m4/minuso.m4: Rename ...
* m4/prog-cc-c-o.m4: ... like this.
* m4/Makefile.in (dist_automake_DATA): Adjust.
2013-05-26 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: adjust or remove some obsolete comments
* t/ax/am-test-lib.sh: Here.
* t/distcheck-configure-flags.sh: And here.
2013-05-26 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: remove some useless 'unset' of variables
They are redundant, now that we no longer call "make -e".
* t/javaflags.sh: Don't unset JAVAC.
* t/lflags.sh: Don't unset LEX.
* t/lflags2.sh: Likewise.
2013-05-26 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'micro' into maint
* micro:
tests: avoid a couple of extra sleep with GNU make
NEWS: document testsuite work for 1.13.3
lint: remove a couple of obsolete syntax checks
lint: cosmetics: use #-comments, not ##-comments
lint: cosmetics: some reordering
lint: recipes of syntax check require GNU grep; ensure it is used
lint: better name for a syntax check
tests: rename $am_make_rc_got -> $am_make_rc
tests: ensure $required is not set too late
2013-05-26 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid a couple of extra sleep with GNU make
They are only required by BSD make in order to avoid spurious failures.
* t/deleted-am.sh: Here.
* t/parallel-tests-recheck-pr11791.sh: And here.
2013-05-26 Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS: document testsuite work for 1.13.3
2013-05-25 Stefano Lattarini <stefano.lattarini@gmail.com>
lint: remove a couple of obsolete syntax checks
* syntax-checks.mk (sc_obsolete_requirements_rules): Remove
definition of this variable.
(modern-requirement.texi2dvi-o): Likewise.
(modern-requirement.makeinfo-html): Likewise.
($(sc_obsolete_requirements_rules)): Remove these obsolete
syntax checks.
2013-05-25 Stefano Lattarini <stefano.lattarini@gmail.com>
lint: cosmetics: use #-comments, not ##-comments
* syntax-checks.mk: Here. This makes sense because this file is
not meant to be processed by Automake, so the ##-comments are not
treated specially.
2013-05-25 Stefano Lattarini <stefano.lattarini@gmail.com>
lint: cosmetics: some reordering
* syntax-checks.mk: Here.
2013-05-25 Stefano Lattarini <stefano.lattarini@gmail.com>
lint: recipes of syntax check require GNU grep; ensure it is used
* syntax-checks.mk (sc_sanity_gnu_grep): New.
($(syntax_check_rules)): Depend on it.
2013-05-25 Stefano Lattarini <stefano.lattarini@gmail.com>
lint: better name for a syntax check
* syntax-checks.mk (sc_tests_make_without_am_makeflags): Rename ...
(sc_make_without_am_makeflags): ... like this.
(syntax_check_rules): Adjust.
2013-05-24 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: rename $am_make_rc_got -> $am_make_rc
The latter is more natural More importantly, I keep misspelling
the former over and over.
* t/ax/am-test-lib.sh (run_make): Update.
* t/ax/tap-summary-aux.sh: Adjust.
* t/ax/testsuite-summary-checks.sh: Likewise.
* t/parallel-tests-exit-statuses.sh: Likewise.
* t/parallel-tests-extra-programs.sh: Likewise.
* t/parallel-tests-fd-redirect-exeext.sh: Likewise.
* t/parallel-tests-fd-redirect.sh: Likewise.
* t/parallel-tests-fork-bomb.sh: Likewise.
* t/parallel-tests-no-spurious-summary.sh: Likewise.
* t/parallel-tests-recheck-pr11791.sh: Likewise.
* t/parallel-tests-reset-term.sh: Likewise.
* t/tap-signal.tap: Likewise.
* t/test-driver-acsubst.sh: Likewise.
* t/test-driver-cond.sh: Likewise.
2013-05-24 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: some tests make no sense if "$CC -c -o" doesn't work
So just skip them, to avoid spurious failures when running
"make check-no-cc-c-o".
* t/ax/am-test-lib.sh (require_tool): New requirement '-c-o'.
* t/subobj10.sh ($required): Add it.
* gen-testsuite-part (%depmodes): Adjust so that tests that
use 'makedepend' will be skipped if the compiler is being
forced not to grasp "-c -o".
2013-05-24 Stefano Lattarini <stefano.lattarini@gmail.com>
AM_PROG_CC_C_O: don't rely on AC_PROG_CC_C_O, re-implement similar logic
** Theoretical problems of AC_PROG_CC_C_O:
Both cc and $CC are checked to see if they support the '-c' and '-o'
options together.
This behaviour is highly inconsistent with that of the other macros
related to C compiler checks -- which test only $CC.
It can also cause unwarranted uses of the 'compile' script on systems
where the default 'cc' is inferior, but the user is compiling with a
proper, different compiler (e.g., gcc).
** Practical problems with our previous implementation of C support m4
macros in Automake:
- AM_PROG_AR must now be called *before* AC_PROG_CC; this wasn't the
case before, and it turns out there are packages in the wild that
relied on the old behaviour.
- The cross-referenced requirements and macro rewrites juggled among
AC_PROG_CC, AC_PROG_CC_C_O and AM_PROG_CC_C_O caused warnings in
autoconf; for example, in our test 't/libobj3.sh', we could see
warnings like these (here slightly tweaked for legibility):
configure.ac:5: AC_REQUIRE: `AC_PROG_CC' expanded before required
autoconf/c.m4:567: AC_PROG_CC_C_O is expanded from...
autoconf/c.m4:429: AC_LANG_COMPILER(C) is expanded from...
autoconf/lang.m4:329: AC_LANG_COMPILER_REQUIRE is expanded from...
autoconf/general.m4:2606: AC_COMPILE_IFELSE is expanded from...
m4sugar/m4sh.m4:639: AS_IF is expanded from...
autoconf/general.m4:2031: AC_CACHE_VAL is expanded from...
autoconf/general.m4:2052: AC_CACHE_CHECK is expanded from...
aclocal.m4:70: AM_PROG_AR is expanded from...
configure.ac:5: the top level
** Fix all of that:
We fix all of the described issues with a new internal m4 macro
_AM_PROG_CC_C_O (inspired to, but not based on, AC_PROG_CC_C_O) that
gets tacked on to AC_PROG_CC automatically (this is done in the
Automake-generated aclocal.m4) and that takes care of checking and
adjusting '$CC' for "-c -o" support.
The macro AM_PROG_CC_C_O is still present, but is now just a thin
wrapper around such Automake-enhanced AC_PROG_CC.
It is worth noting that the present patch causes three slight
*backward-incompatibilities*:
1. The name cache variable used by AM_PROG_CC_C_O is no longer
computed (at configure runtime!) from the content of '$CC',
but is statically defined as 'am_cv_prog_cc_c_o'.
2. 'cc' is no longer checked by AM_PROG_CC_C_O, only '$CC' is.
3. AM_PROG_CC_C_O no longer AC_DEFINE the C preprocessor symbol
'NO_MINUS_C_MINUS_O'.
Given however that the third change can easily be worked around, that
the first two changes can be legitimately seen as bug fixes, and that
the new semantics introduced by such changes will simplify the transition
to Automake 2.0 (when the 'subdir-objects' will always be enabled
unconditionally), we believe they are acceptable to be shipped with
Automake 1.14.
With this patch, we also revert some of the testsuite adjustments done
in previous commit v1.13.2-178-g9877109 of 2013-05-24 (compile: rewrite
AC_PROG_CC with AM_PROG_CC_C_O contents). Such adjustments are no longer
needed.
* m4/minuso.m4 (_AM_PROG_CC_C_O): New internal macro, basically and
adjusted version of a merge between Autoconf-provided AC_PROG_CC_C_O
and our old implementation of AM_PROG_CC_C_O.
(AM_PROG_CC_C_O): Redefine as a simple wrapper around AC_PROG_CC.
* m4/init.m4 (AC_PROG_CC): Append _AM_PROG_CC_C_O, not AM_PROG_CC_C_O,
to the pre-existing expansion of this macro.
* m4/ar-lib.m4 (AM_PROG_AR): No longer require it to be expanded after
AC_PROG_CC.
* t/aclocal-deps.sh: Move AC_PROG_CC invocation after AC_PROG_RANLIB
and AM_PROG_AR invocations. Things should work this way too (as they
used to).
* t/subobj-clean-lt-pr10697.sh: Likewise.
* t/alloca.sh: Move AC_PROG_CC invocation after AM_PROG_AR invocation.
* t/condlib.sh: Likewise.
* t/aclocal-deps.sh: Move AC_PROG_CC invocation after LT_INIT and
AM_PROG_AR invocations. Make autoconf and autoheader warnings fatal.
* t/am-prog-cc-c-o.sh: Adjust to the new semantics, enhance a little,
and reduce code duplication.
* t/ccnoco.sh: Make autoconf warnings fatal.
* t/subpkg.sh: Likewise.
* t/ccnoco-lib.sh: Likewise, and fix a comment.
* t/link_cond.sh: Enhance a couple of error messages.
* configure.ac: Drop "nullification" of AM_PROG_CC_C_O.
* NEWS: Adjust.
2013-05-24 Stefano Lattarini <stefano.lattarini@gmail.com>
compile: rewrite AC_PROG_CC with AM_PROG_CC_C_O contents
This is a much simpler rewrite than the one we attempted in the past,
and that was later removed by commit 'v1.13.1d-137-g32eb770' of
2013-05-11 (compile: avoid AC_PROG_CC messy rewrite).
Not only this change simplifies the code a little, but has the welcome
collateral effect of making automatic dependency tracking work better
with compilers that doesn't grasp the '-c' and '-o' options together.
Issues in that setup have been caught by several failures in the target
'check-no-cc-c-o'.
Unfortunately, this change has less welcome collateral effects:
1. AM_PROG_AR must now be called *after* AC_PROG_CC;
2. Autoconf emits extra warnings when used with Automake-generated
aclocal.m4.
These are unacceptable regressions for a release, but since we are
going to fix them soon enough in a follow-up patch (surely to be
applied before Automake 1.14 is released) we don't worry too much.
* m4/init.m4: Redefine AC_PROG_CC early, to automatically invoke
AM_PROG_CC_C_O as well. Accordingly, drop now-unneeded "automagical"
AM_PROG_CC_C_O expansion at later time (which took place thanks to
a AC_CONFIG_COMMANDS_PRE call).
* m4/minuso.m4 (AM_PROG_CC_C_O): Ensure the expansion of the body
of this macro takes place with C as "current Autoconf language" (use
AC_LANG_PUSH/AC_LANG_POP).
* m4/ar-lib.m4 (AM_PROG_AR): Likewise. Also, require this macro to
be expanded *after* AC_PROG_CC (so that any rewrite of $CC, if required,
has already taken place).
* t/add-missing.tap: Adjust to avoid spurious failures.
* t/aclocal-deps.sh: Likewise, by having AM_PROG_AR called *after*
AC_PROG_CC.
* t/subobj-clean-lt-pr10697.sh: Likewise.
* t/alloca.sh: Likewise.
* t/condlib.sh: Likewise.
* t/discover.sh: Likewise.
* t/objc-megademo.sh: Likewise.
* t/ccnoco.sh: Extend a little.
* t/ccnoco-deps.sh: New test.
* t/ccnoco-lib.sh: Likewise.
* t/ccnoco-lt.sh: Likewise.
* t/list-of-tests.mk: Add them.
2013-05-24 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: ensure $required is not set too late
And do so in a safer way, with a runtime check rather than a brittle
static maintainer check.
* t/ax/test-init.sh: Set the 'required' variable to readonly.
* syntax-checks.mk (sc_tests_required_after_defs): Remove.
(syntax_check_rules): No longer list it.
2013-05-24 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'micro' into maint
* micro:
tests: use append mode to capture parallel make output
tests: new convenience target 'check-parallel'
2013-05-24 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: use append mode to capture parallel make output
This will allow us to run the Automake testsuite forcing all the make
invocations in the test cases to run in parallel mode [1], but without
hitting the spurious failure reported in automake bug#11413.
See also:
<http://lists.gnu.org/archive/html/bug-make/2013-05/msg00135.html>
The make invocations in the test cases can be forced to run in parallel
mode by, e.g., invoking "make check" like this:
make check AM_TESTSUITE_MAKE="make -j16"
The possible spurious failures hinted above are due to the fact that
the redirected output of parallel make can racily lose lines. For
example, if GNU make (3.82) is run with -j10 on a Makefile like this:
all = 0 1 2 3 4 5 6 7 8 9
default: $(all)
$(all):
@sleep 0.$$(($RANDOM % 10)); echo $@
and has its standard output redirected in overwrite-mode to a regular
file, it looses a line of that output every 15 runs or so on a Fedora
17 system with 64 ppc64 cores. Redirection in append mode does not
suffer of this problem, as explained here:
<http://lists.gnu.org/archive/html/automake-patches/2009-03/msg00073.html>
See also previous commits v1.12-63-g45c1fcd of 2012-05-05 (tests: use
append mode to capture parallel make output) and Release-1-10-280-g6426999
of 2009-03-10 (Use append mode to capture parallel test output).
* t/ax/am-test-lib.sh (run_make): Adjust and enhance.
* t/lisp8.sh: Take advantage of the enhancement, nd stop doing output
redirection for $MAKE by hand.
* t/tap-more.sh: Likewise.
* t/parallel-tests-concurrency.sh: Likewise.
2013-05-24 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: new convenience target 'check-parallel'
To force the test scripts to invoke make in parallel mode. This should
enhance coverage of use cases (make concurrency) that are becoming more
and more important with today multicore fast machines.
* Makefile.am (check-parallel): New .PHONY target.
2013-05-23 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid few lingering $MAKE redirections
These were present in the 'maint' branch, but not in the 'micro' branch.
Their occurrences has been found by the 'sc_tests_no_run_make_redirect'
maintainer check.
* t/fort2.sh: Adjust.
* t/preproc-demo.sh: Likewise.
2013-05-23 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'micro' into maint
* micro:
tests: avoid '$MAKE' redirections, use 'run_make' instead
tests: avoid use of redirected 'run_make' invocations
lint: warn against redirected 'run_make' invocations
comments: next GNU make release 4.0, not 3.83
tests: fix a potential spurious failure due to global config.site
HACKING: it's OK to do testsuite refactoring in a micro version
2013-05-23 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid '$MAKE' redirections, use 'run_make' instead
The use 'run_make' with the -E, -O and -M option, it is more
idiomatic now. Also, this way, centralized fixes and improvements
done in 'run_make' will automatically propagate through most of
the testsuite.
* syntax-checks.mk (sc_tests_no_run_make_redirect): Also check against
'$MAKE' invocations that uses output redirections (and not only against
'run_make' invocation that do so).
* Several tests: Adjust (and few minor cosmetic changes as well, while
at it).
2013-05-22 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid use of redirected 'run_make' invocations
Instead, properly use the -E, -O, or -M options of run_make.
The occurrences of the 'run_make' invocations using output
redirection has been found by the recently-introduced maintainer
check 'sc_tests_no_run_make_redirect'.
* t/ax/tap-summary-aux.sh: Adjust.
* t/ax/testsuite-summary-checks.sh: Likewise.
* Several other tests: Likewise.
2013-05-22 Stefano Lattarini <stefano.lattarini@gmail.com>
lint: warn against redirected 'run_make' invocations
The testsuite shell function 'run_make()' has the three options
-E, -O and -M to perform the various kind of output redirections,
so the test scripts should use them instead of redirecting the
output "by hand":
run_make ARGS >stdout => run_make -O ARGS
run_make ARGS >stderr => run_make -E ARGS
run_make ARGS >stdout 2>stderr => run_make -O -E ARGS
run_make ARGS >output 2>&1 => run_make -M ARGS
See the commit message of v1.13.2-13-gc7cfa09, 2013-05-22
(tests: run_make: options to do command redirection) for an
explanation of why this is a good idea.
It's worth noting that the present patch only introduced a new
static maintainer check looking against the undesired idioms,
but doesn't yet remove usages of such idioms from the testsuite.
That will be done by follow-up patch(es).
* syntax-checks.mk (sc_tests_no_run_make_redirect): New check.
(syntax_check_rules): List it.
2013-05-22 Stefano Lattarini <stefano.lattarini@gmail.com>
comments: next GNU make release 4.0, not 3.83
See: <http://lists.gnu.org/archive/html/bug-make/2013-05/msg00093.html>
* lib/am/header-vars.am (am__make_running_with_option): Adjust
comments.
2013-05-22 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix a potential spurious failure due to global config.site
* t/instdir-no-empty.sh: Here.
2013-05-22 Stefano Lattarini <stefano.lattarini@gmail.com>
HACKING: it's OK to do testsuite refactoring in a micro version
Reported-by: Peter Rosin <peda@lysator.liu.se>
2013-05-22 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'micro' into maint
* micro:
tests: remove some code duplication
cosmetics: remove a couple of extra whitespaces in tests
tests: two minor fixups
2013-05-22 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: remove some code duplication
* t/ax/am-test-lib (null_install): New function.
* t/instdir-java.sh: Use it instead of copied & pasted code.
* t/instdir-lisp.sh: Likewise.
* t/instdir-ltlib.sh: Likewise.
* t/instdir-prog.sh: Likewise.
* t/instdir-python.sh: Likewise.
* t/instdir-texi.sh: Likewise.
* t/instdir.sh: Likewise.
* t/instdir2.sh: Likewise.
2013-05-22 Stefano Lattarini <stefano.lattarini@gmail.com>
cosmetics: remove a couple of extra whitespaces in tests
* t/instdir.sh: Here.
* t/instdir2.sh: And here.
2013-05-22 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: two minor fixups
* t/make-keepgoing.tap: Here.
* t/parallel-tests-exit-statuses.sh: And here.
2013-05-22 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'micro' into maint
* micro:
tests: run_make: options to do command redirection
tests: only activate 'unset' alias if required
tests: better idiom to override make macro defs on the cmdline
test-lib: minor style changes
test-lib: fix botched function name in an error message
2013-05-22 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: run_make: options to do command redirection
Let's improve the API of the 'run_make()' helper shell function by
adding three new options:
-O Save the standard output from make on disk, in a regular file
named 'stdout'.
-E Save the standard error from make on disk, in a regular file
named 'stderr'.
-M Save both the standard output and standard error from make on
disk, in a regular file named 'output'. This option supersedes
both the '-O' and '-E' options.
This new API has two main advantages.
1. Its use will allow us to get rid of more cumbersome idioms
like, e.g.,
$MAKE check >stdout && { cat stdout; exit 1; }
cat stdout
That can now be substituted with a simpler one:
run_make -e FAIL -O check
2. More importantly, using the new API we will prevent any extra output
from the shell traces of the code in run_make to be redirected along
with the make stderr (where that was redirected). This problem was
present in usages like, e.g.,
run_make TESTS=foo.test check 2>stderr && exit 1
grep 'expected error message' stderr
Such usages are now to be rewritten as follows:
run_make -e FAIL -E TESTS=foo.test check
grep 'expected error message' stderr
ensuring that 'stderr' won't end up containing unrelated stuff.
Note that we do not convert in bulk the old idioms and the use of
redirected 'run_make' invocations with this patch. We only convert
some occurrences, to ensure that the new implementation of 'run_make'
is sound enough. More sweeping conversions will likely be done in
follow-up patches.
* t/ax/am-test-lib.sh (run_make): Enhance and implement the extended API.
* t/tap-xfail-tests.sh: Use the new 'run_make' API.
* t/test-driver-cond.sh: Likewise.
* t/tests-environment-fd-redirect.sh: Likewise.
* t/uninstall-fail.sh: Likewise.
* t/yacc-dist-nobuild.sh: Likewise.
2013-05-22 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: only activate 'unset' alias if required
This makes the test logs easier to read for most shells (which do not
actually require that alias). This is especially important now that
'unset' is used in the new 'run_make()' function, and that function is
likely going to be used more and more in the future.
* t/ax/test-lib.sh (_am_unset, unset): Only define this function and
alias if "unset VAR" returns a non-zero exit status when VAR is already
unset.
2013-05-22 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: better idiom to override make macro defs on the cmdline
We now do so with a new wrapper shell function 'run_make()', which
relies on the use of AM_MAKEFLAGS, avoiding the use of the '-e' make
option. The use of that option (that causes the environment variables
to take precedence over the macro definitions in the Makefile) has
proved to be quite brittle in the past, causing annoying and sometimes
problematic spurious failures. This has worsened in some still
unpublished work going on in development branches. It's time to solve
the issue once and for all.
Note that we do not convert all uses of $MAKE in the testsuite right
away; we might do so in follow-up changes, with leisure, to avoid a
"patch bomb" effect (this commit is already too much of a bomb itself).
What we do in this commit is to get rid of all "$MAKE -e" invocations.
We admit that the implementation and feature-set of 'run_make()' are
far from perfect, but good enough for our current purposes. We'll
improve 'run_make()' if and when the need arises.
* syntax-checks.mk (sc_tests_no_make_e): New syntax check, guard against
the use of "$MAKE -e".
(syntax_check_rules): Add it.
(sc_tests_overriding_macros_on_cmdline): Adjust.
(lint): New, alias for 'maintainer-check', for lazy typists. Idea
backported from the 'maint' branch (Automake 1.13a).
* t/ax/am-test-lib.sh (run_make): New function. Run $MAKE with the
given command-line arguments, handling command-line override of variable
definitions in a smart way (using AM_MAKEFLAGS if a non-GNU make
implementation is detected to be in use).
(useless_vpath_rebuild): Adjust to use 'run_make', to avoid a spurious
maintainer check failure.
(yl_distcheck): Use 'run_make' rather than bare '$MAKE'.
(single_quote, append_single_quoted, is_valid_varname): New auxiliary
function, used, directly or indirectly, by it.
* Many tests: Adjust to avoid the use of "$MAKE -e", and prefer the
use of 'run_make' in few other contexts as well, where it makes sense.
Other minor fixlets while at it.
2013-05-20 Stefano Lattarini <stefano.lattarini@gmail.com>
test-lib: minor style changes
* t/ax/am-test-lib.sh (require_tool): Here.
2013-05-20 Stefano Lattarini <stefano.lattarini@gmail.com>
test-lib: fix botched function name in an error message
* t/ax/am-test-lib.sh (useless_vpath_rebuild): Here.
2013-05-20 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'micro' into maint
* micro:
maintcheck: minor tweaks and fixlets
2013-05-20 Stefano Lattarini <stefano.lattarini@gmail.com>
maintcheck: minor tweaks and fixlets
* syntax-checks.mk: Here.
2013-05-19 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix a spurious failure on NetBSD 5.1
* t/dist-shar.sh ($required): Also require the 'unshar' program.
Apparently, NetBSD has a 'shar' program but not the corresponding
'unshar' one.
2013-05-19 Stefano Lattarini <stefano.lattarini@gmail.com>
texi: build version.texi and stamp-vti in srcdir
Do so even when the 'info-in-builddir' option is present, or when
the corresponding '*.info' files are listed in $(CLEANFILES) or in
$(DISTCLEANFILES).
This fixes failures in the following tests, when they are run with
$MAKE pointing to FreeBSD make:
- txinfo-nodist-info.sh
- txinfo23.sh
- txinfo24.sh
- txinfo28.sh
- txinfo25.sh
BTW, notice that the test 'txinfo-builddir.sh' fails with FreeBSD make
as well, but that is due to a known FreeBSD make VPATH issue (the same
described in automake bug#7884). But that is not a regression, since
the 'info-in-builddir' option will be new in Automake 1.14. Moreover,
we already warn in the manual that the use of that option can indeed
cause problems with VPATH builds done by non-GNU make.
* bin/automake.in (handle_texinfo_helper): New local variable
'$soutdir'. Use it instead of '$outdir' where appropriate (in
particular, in the transform used on file 'texi-vers.am'.
* t/txinfo-builddir.sh: Adjust to avoid spurious failures.
2013-05-19 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix a botched heading comment
* t/parallel-tests-recheck-pr11791.sh: Here.
2013-05-19 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix another spurious with FreeBSD make
* t/parallel-tests-recheck-pr11791.sh: Here.
2013-05-19 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix a spurious failure with FreeBSD make
Failures due to known VPATH support issues in that make implementation
(the same issues that have been causing the long-standing bug#7884).
* t/lex-multiple.sh: Adjust.
2013-05-18 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'micro' into maint
* micro:
lisp: fix a failure with Solaris /usr/xpg4/bin/sh
tests: sanitize 'unset' usages
tests: fix some botched/outdated comments
tests: use perl, not find+rm, to remove temporary directories
2013-05-18 Stefano Lattarini <stefano.lattarini@gmail.com>
lisp: fix a failure with Solaris /usr/xpg4/bin/sh
* lib/am/lisp.am (.el.elc): By initializing the 'am__dir' properly
here. For most shells, the lacking initialization, while technically
incorrect, didn't cause any issue in practice, because in those shells
"test -d" returns an exit status of 0. But with /usr/xpg4/bin/sh, the
shell complains like this: "test: argument expected", and returns a
non-zero exit status. This caused testsuite failures in several lisp
tests.
Also, while we are at it, use more proper quoting in the recipe, to
ensure a missing initialization to now be caught by more forgiving
shells as well.
* NEWS: Update.
2013-05-17 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: sanitize 'unset' usages
In some shells (e.g., Solaris 10 /bin/ksh, or NetBSD 5.1 /bin/sh),
"unset VAR" returns a non-zero exit status in case the VAR variable
is already unset. This doesn't interact well with our usage of
"set -e" in the testsuite. So far, we've avoided spurious failures
by either explicitly ignoring the exit status from unset:
unset VAR || :
or explicitly ensuring that a variable is set, before trying to
unset it:
VAR=; unset VAR
But we can do better, by aliasing the 'unset' command to a custom
function that will take care of these details for us. This will
avoid us annoying spurious failures in the future, failures that
have already bitten us too much times. For an example, refer to
commit 'v1.12.2-88-g5b1dae5' of 2012-08-05 (tests: avoid tons of
spurious failures on NetBSD).
* t/ax/test-lib.sh (_am_unset): New function.
(unset): New alias to it.
(_am_exit): Adjust comments.
* t/ax/am-test-lib.sh: No need to temporary disable the 'errexit'
shell flag when unsetting variables that are potentially already
unset.
(am_process_requirements): Adjust to remove a now-useless
workaround related to unset.
* t/aclocal-macrodir.tap: Likewise.
* t/aclocal-macrodirs.tap: Likewise.
* t/auxdir-autodetect.sh: Likewise.
* t/ax/am-test-lib.sh: Likewise.
* t/ax/test-lib.sh: Likewise.
* t/check-tests-in-builddir.sh: Likewise.
* t/dist-formats.tap: Likewise.
* t/distcheck-configure-flags-am.sh: Likewise.
* t/distcheck-configure-flags.sh: Likewise.
* t/java-empty-classpath.sh: Likewise.
* t/javaflags.sh: Likewise.
* t/lflags.sh: Likewise.
* t/lflags2.sh: Likewise.
* t/lisp-flags.sh: Likewise.
* t/lisp6.sh: Likewise.
* t/missing-auxfile-stops-makefiles-creation.sh: Likewise.
* t/parallel-am.sh: Likewise.
* t/parallel-am2.sh: Likewise.
* t/parallel-am3.sh: Likewise.
* t/parallel-tests-log-override-recheck.sh: Likewise.
* t/pkg-config-macros.sh: Likewise.
* t/python-missing.sh: Likewise.
* t/python-too-old.sh: Likewise.
* t/python11.sh: Likewise.
* t/self-check-dir.tap: Likewise.
* t/self-check-report.sh: Likewise.
* t/self-check-seq.tap: Likewise.
* t/silent-configsite.sh: Likewise.
* t/suffix6c.sh: Likewise.
* t/tar-override.sh: Likewise.
* t/tests-environment-and-log-compiler.sh: Likewise.
* t/vala-configure.sh: Likewise.
* t/werror3.sh: Likewise.
* t/yflags-cmdline-override.sh: Likewise.
* t/yflags.sh: Likewise.
* t/yflags2.sh: Likewise.
2013-05-17 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix some botched/outdated comments
* t/ax/test-defs.in: Here. Also, fix a couple of grammaros while at it.
2013-05-16 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: use perl, not find+rm, to remove temporary directories
The File::Path::rmtree function from perl, if used right, is
more reliable and more portable of our past idiom:
find $dirs -type d ! -perm -700 -exec chmod u+rwx {} ';';
rm -rf $$dirs || exit 1
at least of the face of unreadable dirs/files and other similar
permission issues (and we have those in our test directories).
In fact, this change fixes some spurious failures seen in
"make distcheck" on Solaris 10.
* t/ax/deltree.pl: New.
* Makefile.am (EXTRA_DIST): Add it.
(clean-local-check): Use it.
* t/ax/test-lib.sh (rm_rf_): Use it.
2013-05-16 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: remove remaining exec bits ('maint' branch)
The executable bit gives the impression that the tests are directly
runnable, as with "./t/foo.sh", but it has been a while since that
was the case. Today, tests are runnable only through "make check"
or "./runtest".
This change is for the 'maint' branch (automake 1.13a), and is a
follow-up to commit 'v1.13.2-3-g74017b5', done on the 'micro' branch
(automake 1.13.2a). It will soon be followed by a similar patch
for the 'master' branch (automake 1.99a).
* t/am-prog-cc-c-o.sh: Remove executable bit.
* t/ccnoco4.sh: Likewise.
* t/dist-shar.sh: Likewise.
* t/dist-tarZ.sh: Likewise.
* t/lex-multiple.sh: Likewise.
* t/preproc-basics.sh: Likewise.
* t/preproc-c-compile.sh: Likewise.
* t/preproc-demo.sh: Likewise.
* t/preproc-errmsg.sh: Likewise.
* t/rm-f-probe.sh: Likewise.
* t/self-check-cc-no-c-o.sh: Likewise.
* t/txinfo-builddir.sh: Likewise.
* t/txinfo-nodist-info.sh: Likewise.
2013-05-16 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'micro' into maint
* micro:
tests: remove exec bit from all of them ('micro' branch)
maint: tests no longer need to have executable bit set
2013-05-16 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: remove exec bit from all of them ('micro' branch)
It gives the impression that they are directly runnable, as with
"./t/foo.sh", but it has been a while since that was the case. Today,
tests are runnable only through "make check" or "./runtest".
This change is for the 'micro' branch (automake 1.13.2a). It will
soon be followed by similar patches for the 'maint' branch (automake
1.13a) and the 'master' branch (automake 1.99a).
* t/*.sh, t/*.tap: Remove executable bit.
* maint.mk (sc_tests_executable): Remove.
(syntax_check_rules): Adjust.
* gen-testsuite-part: Set permissions of generated tests to
'444' (-r--r--r--), rather than 555 (-r-xr-xr-x).
2013-05-16 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: tests no longer need to have executable bit set
It has been a while since they are runnable only through "make check"
or "./runtest", and not directly.
* HACKING: Adjust.
* t/README: Likewise, and updated the surrounding text to get rid of
obsolete statements and advices.
2013-05-16 Stefano Lattarini <stefano.lattarini@gmail.com>
PLANS: subdir-objects: various updates
2013-05-15 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'micro' into maint
* micro:
post-release: micro version bump (1.13.2a)
release: stable micro release 1.13.2
vala tests: skip in a cross compiler setup
HACKING: miscellaneous fixes, updates and enhancements
NEWS: minor improvements to wording (about new versioning scheme)
2013-05-15 Stefano Lattarini <stefano.lattarini@gmail.com>
post-release: micro version bump (1.13.2a)
* configure.ac, m4/amversion.m4: Bump version: 1.13.2 -> 1.13.2a
2013-05-15 Stefano Lattarini <stefano.lattarini@gmail.com>
release: stable micro release 1.13.2
* configure.ac (AC_INIT): Bump version number to 1.13.2.
* m4/amversion.m4: Likewise (auto-updated by "make bootstrap").
2013-05-15 Stefano Lattarini <stefano.lattarini@gmail.com>
vala tests: skip in a cross compiler setup
The "vala + pkg-config" doesn't interact well with cross-compilation:
<https://mail.gnome.org/archives/vala-list/2012-September/msg00094.html>
That is causing annoying failures in our testsuite when it's run in
cross-compilation mode. It's not worth trying too be overly smart and
work around these problems; just skip the affected tests instead.
* t/ax/am-test-lib.sh (require_tool): A new requirement 'valac', telling
that the test needs to compile Vala-generated C files. In particular,
this causes the test to be skipped when using a cross-compiler.
2013-05-15 Stefano Lattarini <stefano.lattarini@gmail.com>
HACKING: miscellaneous fixes, updates and enhancements
2013-05-15 Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS: minor improvements to wording (about new versioning scheme)
2013-05-15 Stefano Lattarini <stefano.lattarini@gmail.com>
THANKS: update Akim's e-mail address
2013-05-15 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: less uses of "make -e"; avoid spurious failures in 'check-cc-no-c-o'
That is, when the testsuite is run using a fake C compiler that doesn't
grasp the '-c' and '-o' options together.
* t/instdir-prog.sh: Adjust.
* t/instdir-ltlib.sh: Likewise.
* t/python-virtualenv.sh: Likewise.
2013-05-14 Stefano Lattarini <stefano.lattarini@gmail.com>
build: be more respectful of user-specified verbosity
* t/Makefile.in (check-cc-no-c-o, check-no-trailing-backslash-in-recipes,
installcheck-testsuite, perf): Here.
2013-05-14 Stefano Lattarini <stefano.lattarini@gmail.com>
check-cc-no-c-o: unify initializations in a single place
* t/ax/test-defs.in: That is, by setting CC and GNU_CC here, in accord
with the value of the variable 'AM_TESTSUITE_SIMULATING_NO_CC_C_O'.
* t/Makefile.in (check-cc-no-c-o) : No need to reset CC and GNU_CC any
longer in the recursive "make check" invocation.
2013-05-14 Stefano Lattarini <stefano.lattarini@gmail.com>
check-cc-no-c-o: avoid a spurious failure
* t/am-prog-cc-c-o.sh: In this test, by relying on the knowledge
that we are running under the aegis of the 'check-cc-no-c-o'
maintainer-specific target, knowledge given us by ...
* t/Makefile.in (check-cc-no-c-o) : ... the new environment
variable 'AM_TESTSUITE_SIMULATING_NO_CC_C_O', set to a value
of "yes" by this rule.
* t/ax/test-defs.in: Initialize the new variable to "no" by
default, and add an explanatory comment.
2013-05-14 Stefano Lattarini <stefano.lattarini@gmail.com>
build: fixup for building in a VPATH setup
* bin/Makefile.inc (%D%/automake, %D%/aclocal): Make sure that the
directory where the targets scripts are going to be built exists,
before trying to create said scripts.
2013-05-11 Nick Bowler <nbowler@elliptictech.com> (tiny change)
Use AC_DEFUN_ONCE to define AM_PROG_CC_C_O
If AM_PROG_CC_C_O is expanded multiple times, and the compiler does not
support -c and -o together, each expansion of the macro will prepend
the compile script to CC. This can result in the compile script
invoking the compile script, which at best pointless and silly.
Fortunately, there does not appear to be any serious problems as the
first compile invocation strips out -o options, causing subsequent
invocations of the script to merely exec their arguments.
Other than fixing the above, this should not normally cause any changes
to the resulting configure script, except in the (hopefully rare) case
where AM_PROG_CC_C_O is directly expanded (i.e., *not* using AC_REQUIRE)
in the body of a macro defined with AC_DEFUN. In that case, the use of
AC_DEFUN_ONCE may cause the expansion of AM_PROG_CC_C_O to appear
earlier in the configure script.
* m4/minuso.m4: Change the definition of AM_PROG_CC_C_O to use
AC_DEFUN_ONCE, avoiding problems caused by multiple expansions.
2013-05-11 Stefano Lattarini <stefano.lattarini@gmail.com>
compile: avoid AC_PROG_CC messy rewrite
Instead, add an hook to AC_OUTPUT to have AM_PROG_CC_C_O invoked
automatically.
See also the long-winded discussion about automake bug#13378.
* m4/minuso.m4 (AM_PROG_CC_C_O): Bring back the old implementation,
from commit v1.13.1-55-g1ab8fb6.
* m4/init.m4 (AC_PROG_CC): Remove this horrible, hacky re-write.
* (AM_INIT_AUTOMAKE): Arrange for AM_PROG_CC_C_O to be called if
necessary.
* t/am-prog-cc-c-o.sh: Adjust to avoid spurious failure.
* t/subobj.sh: Likewise.
Suggested-by: Nick Bowler <nbowler@elliptictech.com>
2013-05-11 Stefano Lattarini <stefano.lattarini@gmail.com>
options: tiny simplification in dealing with incompatible versions
* lib/Automake/Options.pm (_process_option_list): Here, when an
incompatible version number option is detected, there's no need
to call error() with the "uniq_scope => US_GLOBAL" switch.
In fact, if the same incompatible version number is specified in
AUTOMAKE_OPTIONS in both (say) 'Makefile.am' and 'sub/Makefile.am',
we want each such erroneous usage reported separately, rather than
just the first time it is encountered (as we'd expect to happen
when "uniq_scope => US_GLOBAL" is used).
Ideally, this change should have been folded into the similar
commit 'v1.13.1d-129-gf7ef16f', but we noticed that too late.
Oh well.
2013-05-11 Stefano Lattarini <stefano.lattarini@gmail.com>
options: try to report as much errors as possible
For example, if two invalid options are used in AUTOMAKE_OPTIONS, don't
report just the first one, but both of them.
* lib/Automake/Options.pm (_process_option_list): Do so by avoiding
early returns in here.
2013-05-11 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'branch-1.13.2' into maint
* branch-1.13.2:
warns: don't tell AM_PROG_MKDIR_P is going to be removed
2013-05-10 Stefano Lattarini <stefano.lattarini@gmail.com>
warns: don't tell AM_PROG_MKDIR_P is going to be removed
That is no longer true. For a more extended rationale, see file
'PLANS/obsolete-removed/am-prog-mkdir-p.txt' in the maint branch
(as of commit v1.13.1d-132-g90ec3fe).
* automake.in (scan_autoconf_traces): So adjust the warning message
here.
2013-05-10 Stefano Lattarini <stefano.lattarini@gmail.com>
refactor: fix few "inverted boolean" usages
In some subroutines, we used a return value of 0 to indicate success,
and a return status of 1 to indicate failure. That was not very
consistent with the perl interpretation of 0 as a false value and 1 as
a true value. So we now invert the meaning of the exit statuses.
* lib/Automake/Options.pm (_process_option_list): Here.
(process_global_option_list, process_option_list): And by reflex,
here as well.
* bin/automake.in (handle_options): And here.
(generate_makefile, scan_autoconf_traces): Adjust.
2013-05-10 Stefano Lattarini <stefano.lattarini@gmail.com>
options: better name for an internal function
* lib/Automake/Options.pm (_option_must_be_from_configure): Rename ...
(_option_is_from_configure): ... like this.
2013-05-10 Stefano Lattarini <stefano.lattarini@gmail.com>
options: more consistency in use of return statuses to report errors
* lib/Automake/Options.pm (_option_must_be_from_configure): By giving
a proper return status here.
(_process_option_list): And using it here.
2013-05-10 Stefano Lattarini <stefano.lattarini@gmail.com>
options: tiny simplification in dealing with erroneous opts
* lib/Automake/Options.pm (_process_option_list): Here, when an
invalid option is detected, there's no need to call &error with
the "uniq_scope => US_GLOBAL" switch. In fact, if the same
erroneous option is specified in AUTOMAKE_OPTIONS in both (say)
'Makefile.am' and 'sub/Makefile.am', we want each such erroneous
usage reported separately, rather than just the first time it is
encountered (as happens when "uniq_scope => US_GLOBAL" is used).
2013-05-10 Stefano Lattarini <stefano.lattarini@gmail.com>
options: consistently use return statuses to report errors
* lib/Automake/Options.pm (_process_option_list): Here.
(process_option_list, process_global_option_list): Remove
redundant use of 'return'.
2013-05-10 Stefano Lattarini <stefano.lattarini@gmail.com>
options: re-enable some sanity checks
They had been unwittingly disabled by a slightly incorrect
code ordering.
* lib/Automake/Options.pm (process_option_list): Here.
(process_global_option_list): And here.
2013-05-10 Stefano Lattarini <stefano.lattarini@gmail.com>
THANKS: update Eric Blake's e-mail address
2013-05-10 Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS: typofix
Reported-by: Eric Blake <eblake@redhat.com>
2013-05-10 Stefano Lattarini <stefano.lattarini@gmail.com>
news: document new 'subdir-objects' warning
* NEWS: Automake 1.14 will warn if a subdir source file is
specified but the 'subdir-objects' option is not given. This
is done to smooth the transition to Automake 2.0, which will
unconditionally assume the behaviour now given only with the
'subdir-objects' option.
2013-05-10 Stefano Lattarini <stefano.lattarini@gmail.com>
PLANS: one minor fixlet (mostly cosmetic)
2013-05-10 Stefano Lattarini <stefano.lattarini@gmail.com>
PLANS: we have already dropped support for split info files in master
2013-05-10 Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS: fix a reference to Automake 1.14 where Automake 2.0 was intended
2013-05-10 Stefano Lattarini <stefano.lattarini@gmail.com>
PLANS: fix reference to non-existent 'next' branch
* PLANS/obsolete-removed/configure.in.txt: Here. We should refer
to the 'master' branch instead.
2013-05-10 Stefano Lattarini <stefano.lattarini@gmail.com>
PLANS: fix botched version reference
* PLANS/rm-f-without-args.txt: Here. The probe checking that "rm -f"
without arguments works will be introduced in Automake 1.14, not in
Automake 1.13.2.
2013-05-10 Stefano Lattarini <stefano.lattarini@gmail.com>
maintcheck: fix two references to old location of aclocal and automake
* maintainer/syntax-checks.mk (sc_perl_at_substs): Here: it should
refer to 'bin/automake' and 'bin/aclocal', not 'automake' and
'alocal'.
2013-05-10 Stefano Lattarini <stefano.lattarini@gmail.com>
dist: deprecated shar and tar+compress formats
See also discussion about automake wishlist bug#13324.
* lib/Automake/Options.pm: Give proper warnings in the 'obsolete'
category if the 'dist-shar' or 'dist-tarZ' options are used.
* lib/distdir.am: When the 'dist-tarZ' or 'dist-shar' targets are
invoked, make them give a non-fatal warning.
* doc/automake.texi: Report the new deprecations.
* t/dist-shar.sh: New test.
* t/dist-tarZ.sh: Likewise.
* t/lzma.sh: While at it, rename ...
* t/dist-lzma.sh: ... like this, and tweak it to keep more in
sync with the new tests.
* t/dist-formats.tap: Remove references to deprecated formats.
* t/list-of-tests.mk: Adjust.
2013-05-10 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'dog-feeding' into maint
* dog-feeding:
build: move automake and aclocal in 'bin' subdir
build: break up monolithic Makefile.am in subdir-specific fragments
2013-05-10 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'branch-1.13.2' into maint
* branch-1.13.2:
automake: typofix in comments: s/AC_CONFIG_HEADER/AC_CONFIG_HEADERS/
2013-05-10 Stefano Lattarini <stefano.lattarini@gmail.com>
automake: typofix in comments: s/AC_CONFIG_HEADER/AC_CONFIG_HEADERS/
2013-05-10 Stefano Lattarini <stefano.lattarini@gmail.com>
am: prefer a shorter idiom where possible
That is, prefer:
test -f FILE || do_action
over:
if test ! -f FILE; then do_action; else :; fi
* lib/am/remake-hdr.am (%CONFIG_H%): Here.
2013-05-10 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'branch-1.13.2' into maint
* branch-1.13.2:
cosmetics: fix few typos, grammaros and missing whitespace
fixup: remove an obsolete comment
docs: we still don't have the promised better Java interface
2013-05-10 Stefano Lattarini <stefano.lattarini@gmail.com>
cosmetics: fix few typos, grammaros and missing whitespace
* lib/am/*.am: In comments in some of these files.
2013-05-10 Stefano Lattarini <stefano.lattarini@gmail.com>
fixup: remove an obsolete comment
* lib/am/header-vars.am (am__make_running_with_option): Here.
2013-05-09 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: we still don't have the promised better Java interface
Reported by Michael Zucchi:
<http://lists.gnu.org/archive/html/automake/2013-05/threads.html>
See also automake bug#9088.
* doc/automake.texi (Java): Adjust and clarify.
* THANKS: Update.
Reported-by: Michael Zucchi <notzed@gmail.com>
2013-05-09 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: re-run "make update-copyright" ...
* t/lex-multiple.sh: ... which updates the copyright years
of this test (they were somehow not bumped in the past).
2013-05-09 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid spurious failure with older flex (2.5.4)
That old version is unfortunately still relevant, being the one
installed on NetBSD 5.1.
* t/lex-multiple.sh: Use the '-o' option rather than the longer
equivalent '--outfile'. The latter is not supported by older
versions of flex (e.g., flex 2.5.4).
2013-05-09 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'branch-1.13.2' into maint
* branch-1.13.2:
announcement: cater to more flexible NEWS format
2013-05-09 Stefano Lattarini <stefano.lattarini@gmail.com>
announcement: cater to more flexible NEWS format
* maint.mk (announcement): Here, be prepared to handle the case
in which the first section of the NEWS file is dedicated to report
future backward-incompatibilities and/or other warnings.
2013-05-09 Stefano Lattarini <stefano.lattarini@gmail.com>
build: move automake and aclocal in 'bin' subdir
* automake.in: Rename ...
* bin/automake.in: ... like this.
* aclocal.in: Rename ...
* bin/aclocal.in: ... like this.
* Makefile.am: Move parts that dealt with the building/distribution
of aclocal and Automake ..
* bin/Makefile.inc): ... in this new included fragment. Adjust as
needed, and make deliberate use of the '%D%' substitution.
* lib/gen-perl-protos: Move ...
* bin/gen-perl-protos: ... here.
* bootstrap.sh, configure.ac, maintainer/rename-tests,
t/wrap/aclocal.in, t/wrap/automake.in, doc/Makefile.inc,
t/ax/tap-setup.sh, .gitignore: Adjust.
* maintainer/syntax-checks.mk: Likewise, and enhance a little.
2013-05-09 Stefano Lattarini <stefano.lattarini@gmail.com>
build: break up monolithic Makefile.am in subdir-specific fragments
This is convenient to do, now that we have improved "relative directory"
support with the '%reladir%' (a.k.a. '%D%') and '%canon_reladir%' (a.k.a.
'%C%') Automake-time substitutions for included makefile fragments.
This move also satisfy our philosophy of using new Automake features in
our own build system, as a way of facilitating early discovery of possible
bugs or interface warts.
* Makefile.am: Break up ...
* doc/Makefile.inc, lib/Automake/Makefile.inc, lib/Makefile.inc,
lib/am/Makefile.inc, m4/Makefile.inc, t/Makefile.inc): ... in this
new included fragments. Adjust as needed, and make deliberate use
of the '%D%' substitution.
* contrib/t/local.am: Rename ...
* contrib/t/Makefile.inc: ... like this.
2013-05-05 Stefano Lattarini <stefano.lattarini@gmail.com>
maint branch: we are going to become Automake 1.14
* configure.ac (AC_INIT): So adjust beta version in here, from
1.13.2a to 1.13a.
* m4/amversion.m4: Regenerate.
2013-05-05 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'branch-1.13.2' into maint
* branch-1.13.2:
maint: version bump after beta release 1.13.1d
release: beta release 1.13.1d (will become 1.13.2)
NEWS: document more robust handling/recognition of make options
2013-05-05 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: version bump after beta release 1.13.1d
* configure.ac (AC_INIT): Bump version number to 1.13.1e.
* m4/amversion.m4: Likewise (autoupdated by "make bootstrap").
2013-05-04 Stefano Lattarini <stefano.lattarini@gmail.com>
release: beta release 1.13.1d (will become 1.13.2)
* configure.ac (AC_INIT): Bump version number to 1.13.1d.
* m4/amversion.m4: Likewise (auto-updated by "make bootstrap").
2013-05-04 Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS: document more robust handling/recognition of make options
2013-05-04 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: typofixes in comments in t/preproc-c-compile.sh
2013-05-04 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: remove bashism from a test
* t/preproc-c-compile.sh (Makefile.am): Use "test foo = bar", not the
bash-specific "test foo == bar".
2013-05-04 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'branch-1.13.2' into maint
* branch-1.13.2:
maint: targets and recipes to simplify testing on real-world packages
build: preparatory refactoring
build: tiny reduction in code duplication
make flags analysis: handle more options with args
make flags analysis: use simpler variable names
make flags analysis: whitespace changes
make flags analysis: embed in a subshell
make flags analysis: be more robust
make flags analysis: cater to GNU make 3.83 (still unreleased as of now)
tests: expose weaknesses in make flags analysis
tests: improve debugging output in checks on make flags analysis
make flags analysis: refactor, to reduce code duplication
tests: avoid one tricky use of "make -e"
tests: avoid a spurious error with Solaris make
subdirs: don't return false positives for the '-k' option's presence
header-vars: recognize more make flags ('-k' in particular)
header-vars: simplify how make flags are determined
tests: remove dead code from t/make-dryrun.tap
header-vars: new variable $(am__running_with_option)
tests: expose bug#12554 (false positives for presence of '-k' make option)
2013-05-04 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge 'better-makeflags-recognition' and 'testing-work' into branch-1.13.2
* better-makeflags-recognition:
make flags analysis: handle more options with args
make flags analysis: use simpler variable names
make flags analysis: whitespace changes
make flags analysis: embed in a subshell
make flags analysis: be more robust
make flags analysis: cater to GNU make 3.83 (still unreleased as of now)
tests: expose weaknesses in make flags analysis
tests: improve debugging output in checks on make flags analysis
make flags analysis: refactor, to reduce code duplication
* testing-work:
maint: targets and recipes to simplify testing on real-world packages
build: preparatory refactoring
build: tiny reduction in code duplication
2013-05-04 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: targets and recipes to simplify testing on real-world packages
We introduce a new section in the maintainer-specific makefile that
contains recipes to test the build system of some well-known GNU
packages with the current development version of Automake. Not the
cleanest way to do so, but good enough for the moment. We'll revisit
the matter after the 1.13.2 release (which we now hope will happen
soon).
* maint.mk (git-sv-host): New.
(SV_GIT_CF, SV_GIT_AC, SV_GIT_GL): Use it to reduce code duplication.
(ALL_PACKAGES, FEW_PACKAGES): New, lists of GNU packages to try out.
(ttp-check, ttp-check-all): New targets, do the checking with said
packages.
(ttp): New, alias for 'ttp-check'.
(ttp-all): New, alias for 'ttp-check-all'.
2013-05-03 Stefano Lattarini <stefano.lattarini@gmail.com>
build: preparatory refactoring
No semantic change intended. This change will be required
by a later patch.
* Makefile.am (setup_autotools_paths): New.
($(srcdir)/doc/amhello-1.0.tar.gz): Use it.
2013-05-03 Stefano Lattarini <stefano.lattarini@gmail.com>
build: tiny reduction in code duplication
The code was only duplicated two times, but we are soon going to
need a third occurrence, and that would be one to much.
* Makefile.am (extend_path): New.
(update_mans): Use it instead of copying & pasting its contents.
($(srcdir)/doc/amhello-1.0.tar.gz): Likewise, and minor related
adjustments.
2013-05-03 Stefano Lattarini <stefano.lattarini@gmail.com>
make flags analysis: handle more options with args
That is, not only -I, but also -O (for upcoming GNU make 3.83),
-l (GNU make), -d, -E, -D, -m (BSD make), -J, -T (NetBSD make).
* lib/am/header-vars.am (am__make_running_with_option): Extend
and adjust, both code and comments.
2013-05-03 Stefano Lattarini <stefano.lattarini@gmail.com>
make flags analysis: use simpler variable names
* lib/am/header-vars.am (am__make_running_with_option): Here. Now
that we expect to be run in a subshell, we don't have to worry about
being namespace-safe. And '$foo' is much more pleasant to read than
'$am__foo' -- and pleasant code tends to be more correct.
(am__make_dryrun, am__make_keepgoing): Adjust.
2013-05-03 Stefano Lattarini <stefano.lattarini@gmail.com>
make flags analysis: whitespace changes
* lib/am/header-vars.am (am__make_running_with_option): Here.
No semantic change is intended.
2013-05-03 Stefano Lattarini <stefano.lattarini@gmail.com>
make flags analysis: embed in a subshell
So that we won't have to worry about leaking temporary variables,
and similar stuff.
* lib/am/header-vars.am (am__make_dryrun, am__make_keepgoing): Here.
(am__make_running_with_option): Minor adjustments.
2013-05-02 Stefano Lattarini <stefano.lattarini@gmail.com>
make flags analysis: be more robust
In particular, catering to option-with-argument bundled together
with options-without-arguments, as in:
# With GNU make 3.82:
$ make -f- <<<'all:; echo "$$MFLAGS"' -s -k -I none
-skiI none
# With development version of GNU make (Git commit b5ea49b):
$ make -f- <<<'all:; @echo "$$MFLAGS"' -I none
-skiI none
This fixes some lingering failures in the testsuite; precisely, in
tests 'make-dryrun.tap' and 'make-keepgoing.tap'.
* t/header-vars.am (am__make_running_with_option): Enhance.
2013-05-02 Stefano Lattarini <stefano.lattarini@gmail.com>
make flags analysis: cater to GNU make 3.83 (still unreleased as of now)
The current development version of GNU make (that is planned to become
GNU make 3.83, sooner or later) has changed the format its $(MFLAGS)
variable slightly, removing the space between an option and its argument:
# With GNU make 3.82, compiled from official tarball:
$ make -f- <<<'all:; @echo "$$MFLAGS"' -I none
-I none
# With development version of GNU make (Git commit b5ea49b):
$ make -f- <<<'all:; @echo "$$MFLAGS"' -I none
-Inone
This was done on purpose, in order to support more easily the new
option '-O', which takes an optional argument; see:
<http://lists.gnu.org/archive/html/bug-make/2013-05/msg00001.html>
So Just adapt to the new format as well.
* t/header-vars.am (am__make_running_with_option): Adjust to cater
to the new GNU make behaviour.
2013-05-02 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: expose weaknesses in make flags analysis
This introduces some failures in the testsuite, that will be fixed
soon enough by follow-up patches.
* t/make-dryrun.tap: Enhance and extend.
* t/make-keepgoing.tap: Likewise.
2013-05-02 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: improve debugging output in checks on make flags analysis
* t/make-dryrun.tap: Here.
* t/make-keepgoing.tap: And here.
2013-05-01 Stefano Lattarini <stefano.lattarini@gmail.com>
make flags analysis: refactor, to reduce code duplication
And make it a little more reliable.
* t/header-vars.am (am__make_running_with_option): Here.
2013-05-01 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid one tricky use of "make -e"
Which was causing a spurious failure on FreeBSD. Not particularly
surprising, given how brittle "make -e" is in general ...
* t/cxx-lt-demo.sh: Instead of forcing $(CC) to be 'false' by
exporting "CC=false" in the environment and then passing the '-e'
option to make, do so by passing "CC=false" on the make command
line, both directly and using AM_MAKEFLAGS.
2013-04-30 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'fix-pr12554' into branch-1.13.2
* fix-pr12554:
tests: avoid a spurious error with Solaris make
subdirs: don't return false positives for the '-k' option's presence
header-vars: recognize more make flags ('-k' in particular)
header-vars: simplify how make flags are determined
tests: remove dead code from t/make-dryrun.tap
header-vars: new variable $(am__running_with_option)
tests: expose bug#12554 (false positives for presence of '-k' make option)
2013-04-30 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'branch-1.13.2' into maint
* branch-1.13.2:
cosmetics: remove few trailing whitespace occurrences
typofix: in NEWS (extra whitespace)
2013-04-30 Stefano Lattarini <stefano.lattarini@gmail.com>
cosmetics: remove few trailing whitespace occurrences
2013-04-30 Stefano Lattarini <stefano.lattarini@gmail.com>
typofix: in NEWS (extra whitespace)
2013-04-30 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'branch-1.13.2' into maint
* branch-1.13.2:
sync: update files from upstream with "make fetch"
maintcheck: remove outdated whitelisting
tar: format 'ustar' cannot support UID/GID longer than 21 bits
2013-04-30 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'fix-pr13588-pax-hangs' into branch-1.13.2
* fix-pr13588-pax-hangs:
tar: format 'ustar' cannot support UID/GID longer than 21 bits
2013-04-29 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid a spurious error with Solaris make
* t/make-keepgoing.tap (Makefile.am): Here.
2013-04-29 Stefano Lattarini <stefano.lattarini@gmail.com>
subdirs: don't return false positives for the '-k' option's presence
This change fixes automake bug#12554.
The old implementation of the code descending into $(SUBDIRS)
entries used the following snippet to decide whether make is running
with the '-k' a.k.a. '--keep-going' option, and thus whether a failure
in a subdirectory should prevent the descent in the following ones:
fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
*k*) failcom='fail=yes';; \
esac; \
done
It's clear that the second pattern in the 'case' construct could possibly
match false positives, for examples in these two cases:
make check TESTS="x.test k.test"
make -I /usr/local/kool-fragments
which are somewhat unusual, but not invalid. So we need a more resilient
implementation, as we did for the detection of the '-n' flag.
This implementation is now provided by the new private macro
'$(am__make_keepgoing)' (introduced in recent commits); so we can
just us that to fix the bug.
* lib/am/subdirs.am ($(am__recursive_targets)): Use '$(am__make_keepgoing)'
instead of ad-hoc and more brittle checks.
* t/list-of-tests.mk (XFAIL_TESTS): Remove the now-passing test case
't/subdir-keep-going-pr12554.sh'.
Reported-by: Michael Daniels <mdaniels@rim.com>
2013-04-29 Stefano Lattarini <stefano.lattarini@gmail.com>
header-vars: recognize more make flags ('-k' in particular)
* lib/am/header-vars.am (am__running_with_option): Here.
Few improvements to comments, while at it.
(am__make_keepgoing): New, tell whther make is being runt with
the '-k' option.
* t/make-keepgoing.tap: New test.
* t/list-of-tests.mk: Add it.
* t/make-dryrun.tap: Minor edits to keep it more in sync with
the new test.
2013-04-29 Stefano Lattarini <stefano.lattarini@gmail.com>
sync: update files from upstream with "make fetch"
* lib/config.guess: Likewise.
* lib/config.sub: Likewise.
2013-04-29 Stefano Lattarini <stefano.lattarini@gmail.com>
maintcheck: remove outdated whitelisting
* syntax-checks.mk (sc_tests_overriding_macros_on_cmdline): Here.
The test 'make-dryrun.sh' has been since long rewritten as the TAP
test 'make-dryrun.tap', and no longer spuriously triggers this
maintainer check.
2013-04-29 Stefano Lattarini <stefano.lattarini@gmail.com>
header-vars: simplify how make flags are determined
Actually, son far only the '-n' option ("dry mode") was detected,
but this change will allow us to soon detect more options.
* lib/am/header-vars.am (am__running_with_option): Even when $MAKEFLAGS
appears to contain definition of variables with embedded whitespace,
use simple textual pre-processing over $MAKEFLAGS rather than tricky
recursive invocations of make to determine whether the '-n' option was
given. This is enough to correctly handle all the tricky usages covered
in the testsuite.
* t/nodep.sh: Adjust to avoid a spurious failure.
2013-04-29 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: remove dead code from t/make-dryrun.tap
2013-04-29 Stefano Lattarini <stefano.lattarini@gmail.com>
header-vars: new variable $(am__running_with_option)
This is a preparatory refactoring, needed by later patches.
No semantic change is intended.
* lib/am/header-vars.am (am__running_with_option): New, contains
shell code that determines whether the current make instance is
running with a given one-letter option (e.g., -k, -n) that takes
no argument. Actually, the only supported option at the moment
is '-n' (support for '-k' will be added soon).
(am__make_dryrun): Rewrite as a thin wrapper around
'$(am__make_running_with_option)'.
2013-04-29 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: expose bug#12554 (false positives for presence of '-k' make option)
The current implementation of the code descending into $(SUBDIRS)
entries uses the following snippet to decide whether make is running
with the '-k' a.k.a. '--keep-going' option, and thus whether a failure
in a subdirectory should prevent the descent in the following ones:
fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
*k*) failcom='fail=yes';; \
esac; \
done
It's clear that the second pattern in the 'case' construct can possibly
match false positives, for examples in these two cases:
make check TESTS="x.test k.test"
make -I /usr/local/kool-fragments
which are somewhat unusual, but not invalid. So we need a more resilient
implementation, as we did for the detection of the '-n' flag.
But alas, such an implementation seems quite tricky to obtain in portable
make. So for the moment we content ourselves with exposing the bug, with
the hope of being able to fix soon enough.
* t/subdir-keep-going-pr12554.sh: New test.
* t/list-of-tests.mk (handwritten_TESTS, XFAIL_TESTS): Add it.
* THANKS: Update
Reported-by: Michael Daniels <mdaniels@rim.com>
2013-04-28 Stefano Lattarini <stefano.lattarini@gmail.com>
tar: format 'ustar' cannot support UID/GID longer than 21 bits
See automake bug#8343 and bug#13588.
POSIX 1988 'ustar' format is defined with *fixed-size* fields. There
is notably a 21 bits limit (2097151) for the UID and the GID.
Tom Rini tom_rini@mentor.com says (in bug#8343):
When the user has a UID or GID that is larger than the ustar format
supports, pax does not error out gracefully in some cases (FC13).
Marc Herbert <marc.herbert@intel.com> adds (in bug#8343):
When "configure" is run by a user with an UID bigger than 21 bits,
BSD pax 3.4 aborts when trying to create the 'conftest.tar' test
archive and leaves an empty or corrupted conftest.tar file behind.
In the next step, pax tries to extract this incomplete or corrupted
archive and this *** hangs the whole ./configure script ***.
Note: GNU cpio 2.9 pretends to pass the test but it is a LIE: it
silently truncates any big UID to its lower 21 bits. I don't know
what can be the consequences of this lie.
I think there is currently a design issue in automake/m4/tar.m4
considering that a ustar archive should should *never* succeed when
./configure is run from a big user ID.
Months later, Petr Hracek <phracek@redhat.com> reports a similar issue
(in bug#13588) for Fedora 17:
I am trying to solve problem in case a user is created with big
UID and during configuration pax hangs with message
ATTENTION! pax archive volume change required.
Ready for archive volume: 1
Input archive name or "." to quit pax.
Archive name >
and needs user interaction.
Reference: <https://bugzilla.redhat.com/show_bug.cgi?id=843376>
Time to fix this issue, on the line of a preliminary patch provided by
Petr Hracek in bug#13588. The final patch ended up being remarkably
different from that original proposition, though.
* m4/tar.m4 (_AM_PROG_TAR): If the UID or GID of the current user is
too high (> 2097151), the 'ustar' format cannot work. Adjust checks
accordingly. Some related code reordering and clean-up.
* t/tar-ustar-id-too-high.sh: New test.
* t/list-of-tests.mk: Add it.
* t/tar.sh: While at it, tweak and enhance a little.
* t/tar2.sh: Likewise.
* t/tar3.sh: Likewise.
* t/tar-override.sh: Likewise.
* NEWS: Update.
* THANKS: Likewise.
Helped-by: Pavel Raiskup <praiskup@redhat.com>
Helped-by: Petr Hracek <phracek@redhat.com>
Helped-by: Marc Herbert <marc.herbert@intel.com>
Helped-by: Tom Rini <tom_rini@mentor.com>
2013-04-26 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'branch-1.13.2' into maint
* branch-1.13.2:
docs: issues with configure substitutions in TESTS
tests: avoid possible autotools caching issues (automake bug#13832)
docs: add myself and Ralf Wildenhues as authors
authors: add myself
dry-run: don't get confused by '-I' option
tests: avoid a spurious failure with the Korn Shell
dry-run: with GNU make, prefer $(MFLAGS) over $(MAKEFLAGS)
header vars: can determine whether we are running under GNU make
NEWS: improve wording for automake bug#13514 fix
NEWS: document fix for automake bug#13514
2013-04-26 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge few bug-fixing branches into branch-1.13.2
* fix-part-pr13832:
tests: avoid possible autotools caching issues (automake bug#13832)
* fix-pr13760:
dry-run: don't get confused by '-I' option
dry-run: with GNU make, prefer $(MFLAGS) over $(MAKEFLAGS)
header vars: can determine whether we are running under GNU make
* fix-doc-pr14019:
docs: issues with configure substitutions in TESTS
* news-wording-improve:
NEWS: improve wording for automake bug#13514 fix
2013-04-26 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: issues with configure substitutions in TESTS
Motivated by automake bug#14019.
* doc/automake.texi: Currently, when the parallel test harness is in use,
configure substitutions in TESTS definitions can only work if they expand
to tests that ends with a suffix listed in TEST_EXTENSIONS. Document this
limitation.
2013-04-26 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid possible autotools caching issues (automake bug#13832)
* t/ar-lib4.sh: Here, by removing the autom4te cache before editing
configure.ac and re-running the autotools.
2013-04-25 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: rename some with more descriptive names
* t/tar3.sh: Rename ...
* t/tar-opts-errors.sh: ... like this.
* t/tar2.sh: Rename...
* t/tar-pax.sh: ... like this.
* t/tar.sh: Rename ...
* t/tar-ustar.sh: ... like this.
* t/list-of-tests.mk: Adjust.
2013-04-25 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: add myself and Ralf Wildenhues as authors
* doc/automake.texi: Here.
2013-04-25 Stefano Lattarini <stefano.lattarini@gmail.com>
authors: add myself
2013-04-23 Stefano Lattarini <stefano.lattarini@gmail.com>
dry-run: don't get confused by '-I' option
Fixes automake bug#13760 for non-GNU make implementations that still
support the option '-I'. So far, the only such make implementation
are FreeBSD (8.x) make and NetBSD (5.x) make.
* lib/am/header-vars.am (am__make_dryrun): If a non-GNU make is being
used, try to handle the '-I' option in $MAKEFLAGS correctly. For GNU
make, that is already done by the proper use of the $MFLAGS variable.
2013-04-22 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid a spurious failure with the Korn Shell
* t/list-flags.sh: Ensure the EMACS variable is set before unsetting it.
2013-04-22 Stefano Lattarini <stefano.lattarini@gmail.com>
dry-run: with GNU make, prefer $(MFLAGS) over $(MAKEFLAGS)
Fixes automake bug#13760 for GNU make.
* lib/am/header-vars.am (am__make_dryrun): If GNU make is being used, rely
on the contents of the $(MFLAGS) variable rather than of the $(MAKEFLAGS)
to decide whther make is being executed in "dry run" mode. Not only this
makes the code possibly faster and less brittle, but also fixes automake
bug#13760 (at least when GNU make is in use).
* t/make-dryrun.tap: Adjust: some tests that were xfailing now pass.
2013-04-22 Stefano Lattarini <stefano.lattarini@gmail.com>
header vars: can determine whether we are running under GNU make
This is mostly a preparatory patch in view of future changes.
* lib/am/header-vars.am (am__is_gnu_make): New, contains shell code that
determines whether we are running under GNU make.
* t/make-is-gnu.sh: New test.
* t/list-of-tests.mk: Add it.
2013-04-22 Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS: improve wording for automake bug#13514 fix
Helped-by: Jack Kelly <jack@jackkelly.name>
2013-04-21 Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS: document fix for automake bug#13514
It was fixed by commit v1.13.1b-5-g7a3d7ce.
2013-04-20 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'branch-1.13.2' into maint
* branch-1.13.2:
INSTALL: regen
sync: update files from upstream with "make fetch"
tests: tweaks and minimal improvements to t/insthook.sh
2013-04-20 Stefano Lattarini <stefano.lattarini@gmail.com>
INSTALL: regen
2013-04-20 Stefano Lattarini <stefano.lattarini@gmail.com>
sync: update files from upstream with "make fetch"
* lib/INSTALL: Update.
* lib/config.guess: Likewise.
* lib/config.sub: Likewise.
* lib/gendocs.sh: Likewise.
* lib/gendocs_template: Likewise.
* lib/gitlog-to-changelog: Likewise.
* lib/gnupload: Likewise.
* lib/texinfo.tex: Likewise.
* lib/update-copyright: Likewise.
2013-04-20 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: tweaks and minimal improvements to t/insthook.sh
2013-04-20 Stefano Lattarini <stefano.lattarini@gmail.com>
typofix: in comments in t/extra2.sh
2013-04-20 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix botched cross-reference in a heading comment
* t/extra-dist-wildcards.sh: Here.
2013-04-19 Stefano Lattarini <stefano.lattarini@gmail.com>
automake: refactoring: factor out common cpp-like flags
* automake.in (@cpplike_flags): In this new variable...
(C, C++, Objective C, Objective C++, Unified Parallel C, Preprocessed
Assembler, Preprocessed Fortran, Preprocessed Fortran 77): ... to be
used by registration (with the 'register_language' subroutine) of these
languages.
This is a refactoring meant to simplify future changes; no semantic
change is intended.
2013-04-19 Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS (mint): reflect new Automake versioning scheme
The next minor Automake version will be 1.14, and *not* 1.13.2 -- that
will be the next bug-fixing version.
2013-04-19 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'branch-1.13.2' into maint
* branch-1.13.2:
Add missing '$' for variable expansion in depout.m4
fixup: one stray reference to older versioning scheme
2013-04-19 Gavin Smith <gavinsmith0123@gmail.com> (tiny change)
Add missing '$' for variable expansion in depout.m4
* m4/depout.m4: "am__include" appeared where "$am__include" was meant.
Reference:
<http://lists.gnu.org/archive/html/automake-patches/2013-04/msg00000.html>
2013-04-19 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'preproc' into maint
* preproc:
maintcheck: avoid spurious failure
2013-04-19 Stefano Lattarini <stefano.lattarini@gmail.com>
maintcheck: avoid spurious failure
* t/preproc-errmsg.sh: Here, breaking up a sed command to avoid spuriously
triggering a failure in the 'sc_tests_logs_duplicate_prefixes' maintainer
check.
2013-04-19 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'no-perl-protos' into maint
* no-perl-protos:
perl: perl subroutine prototypes are problematic, don't use them
2013-04-19 Stefano Lattarini <stefano.lattarini@gmail.com>
perl: perl subroutine prototypes are problematic, don't use them
Basically, in perl, "subroutine prototypes" are not prototypes at all;
rather, they are a trick to allow user-defined subroutines that behave
like perl built-in functions. For example, prototyped subroutines can
be called without parentheses, and can impose context on their arguments.
Such semantics can be useful in some selected situations, but might also
easily cause unexpected and harmful behaviours and side effects if we
try to use perl prototypes as we would use C prototypes.
See the excellent article "Far More than Everything You've Ever Wanted
to Know about Prototypes in Perl" by Tom Christiansen for more detailed
information:
<http://www.perlmonks.org/?node_id=861966>
<http://web.archive.org/web/20080421062920/\
library.n0i.net/programming/perl/articles/fm_prototypes>
It is important to note that modern perl allows a non-predeclared
subroutine to be called without the '&' character, as long as its
call uses proper parentheses:
foo 'str', 2; # will trigger errors if foo is not predeclared
foo('str', 2); # ok even if foo is not predeclared
&foo('str', 2); # ditto; but the '&' is old-style and redundant
Note also that the prototype indicating "no argument":
sub func() { ... }
can actually be useful, and has no discernible downsides, so we'll
keep using it where it makes sense.
Also, in few, selected cases, we *want* to have subroutines behave like
perl builtins (e.g., we want the 'append_exeext' function to be able
to take a code block as first argument). In such cases, we will of
course continue to make use of perl subroutine prototypes.
Let's finally see an example that might clarify the kind of problems the
use of subroutine prototypes in perl can cause. This is just scratching
the surface; there are several other aspects, typically subtler and more
dangerous, that are not touched here.
If you have the prototyped subroutine definition:
sub foo ($@)
{
my $s = shift;
print "SCALAR: $s\n";
print "ARRAY: @_\n";
}
and call 'foo' in code like:
@list = (-1, 0, 1);
foo(@list);
you won't get a compile-time nor a runtime error (as a naive interpretation
of the "prototype" characterization would let you think). Rather, the
prototype will cause the array '@list' will be coerced into scalar context
before being passed too 'foo', which means that its *length* (3) will be
passed to 'foo' as first argument; and since no further arguments are
present after '@list', that *void* will be coerced to an empty list before
being passed to 'foo'.
So code above will have the result of printing:
SCALAR: 3
ARRAY:
Quite tricky, and definitely a behaviour we don't want to rely on.
* automake.in: Delete most subroutine prototypes. Fix few of the
remaining ones. Related minor simplifications and adjustments.
* lib/gen-perl-protos: Adjust.
2013-03-05 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'preproc' into maint
* preproc:
preproc: enhance and extend tests
preproc: add support for relative names in included fragments
2013-02-21 Stefano Lattarini <stefano.lattarini@gmail.com>
fixup: one stray reference to older versioning scheme
* lib/Automake/Options.pm: Here, in a FIXME comment: reference
"Automake 3.0" rather than "Automake 1.15".
2013-02-21 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'branch-1.13.2' into maint
* branch-1.13.2:
aclocal: fix for more-than-once specified directories
aclocal: just warn if the primary local m4 dir doesn't exist (don't error)
2013-02-21 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: more adjustments to the new versioning scheme
This is a follow-up to commit 'v1.13.1b-11-g97aaf12'.
* automake.in: Adjust a comment.
* PLANS: Adjust several files in here.
2013-02-21 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'fix-pr13514' into branch-1.13.2
* fix-pr13514:
aclocal: fix for more-than-once specified directories
aclocal: just warn if the primary local m4 dir doesn't exist (don't error)
2013-02-21 Pavel Raiskup <praiskup@redhat.com>
aclocal: fix for more-than-once specified directories
Related to automake bug#13514.
Do not consider directories for extra m4 files multiple times in
'aclocal'. Doing so caused problems on older packages that specify
configure.ac: AC_CONFIG_MACRO_DIRS([m4])
Makefile.am: ACLOCAL_AMFLAGS = -I m4
if the 'm4' directory does not exist when aclocal is called the first
time by autoreconf.
See:
<http://lists.gnu.org/archive/html/bug-automake/2013-01/msg00115.html>
* aclocal.in (scan_m4_files): Remove duplicates in @user_includes.
* t/aclocal-macrodir.tap: Extend.
* t/aclocal-macrodirs.tap: Likewise.
2013-02-20 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'docstrings-tweaks' into maint
* docstrings-tweaks:
cosmetics: fix some "docstring-like" comments in automake
2013-02-20 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'branch-1.13.2' into maint
* branch-1.13.2:
coverage: expose automake bug#13760
tests: refactor/enhance tests about make dry-run mode
maint: describe new versioning and branching scheme, and adjust to it
2013-02-20 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'new-versioning-scheme' into branch-1.13.2
* new-versioning-scheme:
maint: describe new versioning and branching scheme, and adjust to it
2013-02-20 Pavel Raiskup <praiskup@redhat.com>
aclocal: just warn if the primary local m4 dir doesn't exist (don't error)
Related to automake bug#13514.
Every package which does not need to have the local m4 macro
directory pre-existing in the version control system (because
e.g., it does not have nor need any private m4 macros) would
fail during the "autoreconf -vfi" phase if AC_CONFIG_MACRO_DIRS([m4])
is specified in configure.ac (it could be to instruct tools like
'autopoint' and 'libtoolize' to use 'm4' as the local directory
where to install definitions of their m4 macros, and to instruct
aclocal to look into it). The failure would go like this:
autoreconf: Entering directory `.'
autoreconf: running: aclocal --force
aclocal: error: couldn't open directory 'm4': No such file or directory
autoreconf: aclocal failed with exit status: 1
The problem is that when 'aclocal' is run for the first time during
'autoreconf', the directory 'm4' does not exist yet. It will be
created by e.g., 'libtoolize' or 'autopoint' later on. During the
second 'aclocal' run, the 'm4' directory exists and aclocal does not
complain.
To work around this issue, we degrade the error to a simple warning.
The warning is still quite useful when aclocal is run by hand - so
we are not removing completely.
See also:
<http://lists.gnu.org/archive/html/bug-automake/2013-01/msg00115.html>
<http://lists.gnu.org/archive/html/automake-patches/2010-02/msg00030.html>
<http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=565663>
<https://bugzilla.redhat.com/show_bug.cgi?id=901333>
* aclocal.in (SCAN_M4_DIRS_SILENT, SCAN_M4_DIRS_WARN)
(SCAN_M4_DIRS_ERROR): New constants.
(scan_m4_dirs): Change the second parameter name to $ERR_LEVEL to
better reflect new semantic. Use new constants.
(scan_m4_files): Adjust to reflect the new 'scan_m4_dirs' semantics.
* t/aclocal-macrodir.tap: Adjust.
* t/aclocal-macrodirs.tap: Likewise.
* THANKS: Update.
* NEWS: Likewise.
Suggested-by: Ben Pfaff <blp@cs.stanford.edu>
2013-02-20 Stefano Lattarini <stefano.lattarini@gmail.com>
coverage: expose automake bug#13760
* t/make-dryrun.tap: Here.
* THANKS: Update with the name of the bug reporter.
2013-02-20 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: refactor/enhance tests about make dry-run mode
* t/make-dryrun.tap: Here.
2013-02-17 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: describe new versioning and branching scheme, and adjust to it
See discussion about automake bug#13578 for more details and background.
Basically, for the versioning scheme:
- micro versions only for bug and regression fixing;
- minor versions for new backward-compatible features, and new
non-fatal deprecations;
- major versions for backward-incompatibilities, complex new
features, and major refactoring.
And for the git branching scheme:
+ branch 'next' is for the upcoming major version;
+ branch 'master' is now for the upcoming minor version;
+ branch 'maint' is for the upcoming micro (bug-fixing) version;
+ the merging hierarchy is: 'maint' -> 'master' -> 'next'.
* HACKING (Automake versioning and compatibility scheme): New.
(Working with git): Adjust.
* NEWS: Update and fix.
* aclocal.in: Adjust some "FIXME" messages.
* automake.in: Likewise.
* m4/mkdirp.m4: Likewise.
* t/aclocal-acdir.sh: Likewise.
* t/aclocal-macrodir.tap: Likewise.
* t/aclocal-macrodirs.tap: Likewise.
* lib/Automake/Options.pm: Likewise.
* m4/internal/ac-config-macro-dirs.m4: Likewise.
2013-02-17 Stefano Lattarini <stefano.lattarini@gmail.com>
cosmetics: fix some "docstring-like" comments in automake
* automake.in: Here. And remove some redundant ones.
2013-02-16 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'perl-sub-protos' into maint
* perl-sub-protos:
style: call perl functions 'like_this()', not '&like_this()'
maint: use more perl subroutines prototypes in the automake script
build: auto-generate perl subroutines prototypes for automake and aclocal
refactor: rip module Automake::Language out of automake script
2013-02-15 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'branch-1.13.2' into maint
* branch-1.13.2:
typofix: in comments in 't/ax/test-lib.sh'
tests on TAP: don't run the driver with perl unconditionally
typofix: in comments in 'automake.in'
tests: remove obsolete (and now wrong) comment
typofix: in diagnostic in test 't/tap-realtime.sh'
automake: fix reference to relevant tests in comments
NEWS: we no longer plan to drop $(INCLUDES) support in next major version
2013-02-15 Stefano Lattarini <stefano.lattarini@gmail.com>
typofix: in comments in 't/ax/test-lib.sh'
2013-02-14 Stefano Lattarini <stefano.lattarini@gmail.com>
style: call perl functions 'like_this()', not '&like_this()'
We can do so now that our build rules auto-generate a list of
prototypes for all functions ins our scripts.
* automake.in: Adjust throughout.
* HACKING: Adjust advises.
2013-02-14 Stefano Lattarini <stefano.lattarini@gmail.com>
preproc: enhance and extend tests
* t/preproc-demo.sh: New test, a "demo" of how the new pre-processing
feature could be used in a real-world package.
* t/preproc-errmsg.sh: New test, check that error messages remain
useful when the new pre-processing features are involved.
* t/preproc-reldir.sh: Split up ...
* t/preproc-basics.sh, t/preproc-c-compile.sh: ... into these two
tests, with some refactorings, clean-up and enhancements.
* t/list-of-tests.mk: Adjust.
2013-02-14 Peter Rosin <peda@lysator.liu.se>
Stefano Lattarini <stefano.lattarini@gmail.com>
preproc: add support for relative names in included fragments
The rationale for this change is that it is annoying to have
to repeat the directory name when including a Makefile fragment.
For deep directory structures these repeats can generate a lot
of bloat. It also hinders reuse and easy directory restructuring
if all Makefile fragments have to know exactly where they live.
Suggested by Bob Friesenhahn, and later discussed in bug#13524.
In the course of discussion, the following notations were rejected:
&{reldir}& - to hard to type, {reldir} - interferes with ${reldir},
{am_reldir} - short form {D} interferes with ${D}, @am_reldir@ - short
form @D@ interferes with AC_SUBST([D]) as well as invading the
config.status turf. Other notations were also suggested...
* automake.in (read_am_file): Add third argument specifying the
relative directory of this Makefile fragment compared to the
main Makefile. Replace %reldir% and %canon_reldir% in the
fragment with this relative directory (with slashes etc, or
canonicalized).
(read_main_am_file): Adjust.
* t/preproc-reldir.sh: New test.
* t/list-of-tests.mk: Augment.
* doc/automake.texi (Include): Document the new feature.
NEWS: Add new feature.
2013-02-14 Stefano Lattarini <stefano.lattarini@gmail.com>
tests on TAP: don't run the driver with perl unconditionally
* t/ax/tap-setup.sh: When a 'Makefile.am' was pre-existent in the
test directory at the moment the client test script sourced this
file, said 'Makefile.am' was tweaked to provide it with a proper
definition of TEST_LOG_DRIVER. However, there was an error in this
automatic definition, since it caused the TAP test driver to be
unconditionally invoked with perl. This wasn't an issue in most
situations, since perl is smart enough to re-execute a given script
with the proper interpreter if it sees a she-bang line that doesn't
seem to point to perl itself. Still, there is no reason to do
something blatantly wrong even if our tools correct the dumb mistake
for us. So fix the TEST_LOG_DRIVER definition.
2013-02-14 Stefano Lattarini <stefano.lattarini@gmail.com>
typofix: in comments in 'automake.in'
2013-02-14 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: remove obsolete (and now wrong) comment
* t/ax/am-test-lib.sh: Here.
2013-02-14 Stefano Lattarini <stefano.lattarini@gmail.com>
typofix: in diagnostic in test 't/tap-realtime.sh'
2013-02-13 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: use more perl subroutines prototypes in the automake script
* automake.in: Throughout this file. Note that these new prototypes
are not much useful, since many subroutine calls still use the old
'&foo' form; but we'll take care of that in later patches.
* lib/Automake/Language.pm (target_hook): Call the '_target_hook'
of the given language in a more modern form, avoiding '&'.
2013-02-13 Stefano Lattarini <stefano.lattarini@gmail.com>
build: auto-generate perl subroutines prototypes for automake and aclocal
This will allow us to avoid either using the '&foo' invocation form when
invoking a subroutine before its definition, or having to maintain the
list of prototypes by hand (with the risk of having it become incomplete
or fall out-of-sync when future edits to the automake and aclocal scripts
are done).
* Makefile.am (automake, aclocal): Automatically generate a list of
prototypes by looking at the subroutines definitions.
* bootstrap.sh: Likewise, when generating the temporary automake and
aclocal scripts used for bootstrapping.
* automake.in: Add a placeholder that will be tracked by the new recipes
and substituted with the computed prototypes. Remove existing prototypes,
that are now superfluous. Some adjustments required by the new, more
comprehensive prototypes declarations.
* aclocal.in: Likewise.
* maintainer/syntax-checks.mk (sc_diff_automake, sc_diff_aclocal): Adjust.
2013-02-04 Stefano Lattarini <stefano.lattarini@gmail.com>
refactor: rip module Automake::Language out of automake script
This is just a preparatory patch in view of future changes.
* lib/Automake/Language.pm: New module, ripped out from ...
* automake.in: ... here. Related adjustments.
* Makefile.am (dist_perllib_DATA): List the new module.
2013-02-03 Stefano Lattarini <stefano.lattarini@gmail.com>
automake: fix reference to relevant tests in comments
Some of those tests had been renamed in recent or less-recent changes.
2013-02-03 Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS: we no longer plan to drop $(INCLUDES) support in next major version
For a rationale and related discussion, see:
<http://lists.gnu.org/archive/html/automake/2013-02/msg00001.html>
And note that support for INCLUDES has not been re-introduced in the
master branch yet, at the moment of writing; but we plan to definitely
do so before the next major release.
2013-01-28 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'branch-1.13.2' into maint
* branch-1.13.2:
NEWS: IRIX is still supported; only SGI C compiler depcomp no longer is
maint: version bump after beta release 1.13.1b
NEWS: typofix
release: beta release 1.13.1b (will become 1.13.2)
2013-01-28 Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS: IRIX is still supported; only SGI C compiler depcomp no longer is
This change is for the maint branch.
The only IRIX-specific support that is going to actually be removed in
the next major Automake versions is the depcomp support for the SGI
compiler. That means that automatic dependency tracking will no
longer work with that compiler, but "normal" compilation should still
work, at least until the compiler is supported by Autoconf.
So there is no point in alarming our users by stating in the NEWS file
that "support for IRIX and the SGI compilers is going to be removed";
after all, while we don't test on nor particularly care about IRIX
anymore, that doesn't mean we are deliberately breaking it, and the
likelihood of an intended breakage there is very low.
See:
<http://lists.gnu.org/archive/html/automake-patches/2013-01/msg00164.html>
<http://lists.gnu.org/archive/html/automake-patches/2013-01/msg00165.html>
* NEWS (Future backward-incompatibilities: Adjust. Improve explanation
of our rationale for dropping SGI support. Fix an unrelated typo while
at it.
Suggested-by: Peter Rosin <peda@lysator.liu.se>
2013-01-23 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: version bump after beta release 1.13.1b
* configure.ac (AC_INIT): Bump version number to 1.13.1c.
* m4/amversion.m4: Likewise (autoupdated by "make bootstrap").
2013-01-23 Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS: typofix
2013-01-23 Stefano Lattarini <stefano.lattarini@gmail.com>
release: beta release 1.13.1b (will become 1.13.2)
* configure.ac (AC_INIT): Bump version number to 1.13.1b.
* m4/amversion.m4: Likewise (auto-updated by "make bootstrap").
2013-01-22 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'branch-1.13.2' into maint
* branch-1.13.2:
docs: '.txi' and '.texinfo' extensions are deprecated
NEWS: document recent documentation improvements
docs: more precise cross reference
docs: 'dist-shar' and 'dist-tarZ' are obsolescent today
docs: improve documentation of 'dist-*' targets slightly
docs: make even clearer 'dist-gzip' is the default.
docs: document 'dist-xz' together with the other 'dist-*' options
docs: 'no-define' option and AM_INIT_AUTOMAKE three-args usage: fixlets
warn: correct broken hyperlink in warning message
2013-01-22 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: '.txi' and '.texinfo' extensions are deprecated
And Automake will warn about them (since commit 'v1.13.1-6-ge1ed314').
* doc/automake.texi (Texinfo): Adjust.
2013-01-22 Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS: document recent documentation improvements
2013-01-22 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: more precise cross reference
See automake bug#13520.
* doc/automake.texi (The Types of Distributions): Here,
cross-reference "List of Automake options" rather then
the more generic node "Options". Improve wording while
at it.
2013-01-22 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: 'dist-shar' and 'dist-tarZ' are obsolescent today
Both the options and the formats; and they might be deprecated
and removed in future automake versions (see discussion on
automake bug#13324).
In any case, it's better if the documentation starts advising
against their use right now.
* doc/automake.texi (The Types of Distributions): Here.
(List of Automake options): And here.
2013-01-22 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: improve documentation of 'dist-*' targets slightly
* doc/automake.texi (The Types of Distributions): Here.
2013-01-22 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: make even clearer 'dist-gzip' is the default.
See automake bug#13520.
* doc/automake.texi (The Types of Distributions): Here.
2013-01-22 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: document 'dist-xz' together with the other 'dist-*' options
See automake bug#13520.
* doc/automake.texi (List of Automake options): Here.
2013-01-22 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: 'no-define' option and AM_INIT_AUTOMAKE three-args usage: fixlets
See automake bug#13519.
* doc/automake.texi: Adjust.
2013-01-22 Stefano Lattarini <stefano.lattarini@gmail.com>
warn: correct broken hyperlink in warning message
* automake.in (scan_autoconf_traces): Here, when an use of the
deprecated two- and three-arguments forms of AM_INIT_AUTOMAKE
is detected.
Fixes automake bug#13519.
2013-01-21 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: more information about Lex and Yacc programs
* t/get-sysconf.sh: Try to also get the version of '$LEX' and '$YACC'.
This will help debugging of user-reported problems.
2013-01-21 Stefano Lattarini <stefano.lattarini@gmail.com>
lint: fix spurious failure for 'sc_rm_minus_f' syntax check
* maintainer/syntax-checks.mk (sc_rm_minus_f): Also exempt
file 't/rm-f-probe.sh'.
2013-01-21 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: bump version 1.13.1a -> 1.13.2a
The 1.13.2 bug-fixing release will ship from the 'branch-1.13.2' git
branch, not from the 'maint' one, since the latter contains changes
that are non-trivial and hasn't cooked enough yet. The 'maint' branch
will give rise to the 1.13.3 release instead, eventually. Adjust the
version number to match.
* configure.ac (AC_INIT): Bump version number to 1.13.2b.
* m4/amversion.m4: Likewise (auto-updated by "make bootstrap").
2013-01-21 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'branch-1.13.2' into maint
That branch is for the "emergency" bug-fixing release 1.13.2.
* branch-1.13.2:
maint: update copyright in files generated by automake and aclocal
tests: avoid a spurious failure when running inside Emacs
tests: make two new test executable
m4: rename an m4 file to a more appropriate name
NEWS: update w.r.t. recent documentation fixes
compat: reinstate AM_CONFIG_HEADER and AM_PROG_CC_STDC
docs: parallel-tests is no longer experimental
docs: serial-tests are not deprecated, just discouraged
NEWS: we are not going to remove AM_PROG_MKDIR_P in Automake 1.14
2013-01-21 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: update copyright in files generated by automake and aclocal
* bootstrap.sh ($RELEASE_YEAR): Bump top 2013.
* configure.ac ($RELEASE_YEAR): Likewise.
2013-01-21 Thien-Thi Nguyen <ttn@gnuvola.org> (tiny change)
tests: avoid a spurious failure when running inside Emacs
Some versions of Emacs set the environment variable 'EMACS' to 't'
for child processes. Thus, when running from inside Emacs, "$(MAKE) -e"
erroneously allows the 't' to override the one in the Makefile.
* t/lisp-flags.sh: Unset var 'EMACS', fixing the issue.
2013-01-19 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: make two new test executable
* t/backslash-issues.sh: This.
* t/extra-data.sh: And this.
Issue revealed by the 'sc_tests_executable' maintainer check.
2013-01-19 Stefano Lattarini <stefano.lattarini@gmail.com>
m4: rename an m4 file to a more appropriate name
* m4/obsolete-err.m4: Rename ...
* m4/obsolete.m4: ... like this.
* Makefile.am (dist_automake_ac_DATA): Adjust.
* t/ansi2knr-no-more.sh: Likewise.
2013-01-19 Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS: update w.r.t. recent documentation fixes
2013-01-19 Stefano Lattarini <stefano.lattarini@gmail.com>
compat: reinstate AM_CONFIG_HEADER and AM_PROG_CC_STDC
Make them give runtime warnings in the obsolete category, but apart
from that, make them behave as they did in Automake 1.12.x and earlier.
While removing those macros seemed quite harmless, because it didn't put
a real burden on the developers (requiring them just to do a quick edit
to configure.ac), it turned out to place an unsustainable burden (or at
least, a burden perceived as such) on distro packagers who use the latest
Automake to bootstrap existing packages. Many of those packages, while
having likely updated to AC_CONFIG_HEADERS in their development version,
still used AM_CONFIG_HEADER in their existing released versions, and the
removal of this macro would have thus forced the Fedora packagers to
patch all of them. References:
<http://www.mail-archive.com/devel@lists.fedoraproject.org/msg52840.html>
<http://www.spinics.net/lists/fedora-devel/msg175922.html>
<http://blog.flameeyes.eu/2013/01/autotools-mythbuster-automake-pains>
In addition, the Fedora packagers have already decided to patch their
Automake 1.13.1 to reinstate the AM_CONFIG_HEADER and AM_PROG_CC_STDC
macros (plus other macros that I don't believe it's worth worrying about):
<http://www.spinics.net/lists/fedora-devel/msg176098.html>
<http://www.mail-archive.com/devel@lists.fedoraproject.org/msg53030.html>
<http://pkgs.fedoraproject.org/cgit/automake.git/commit/?id=ffe6bc39>
So, rather than having one more incompatibility floating around, we
better mirror that change (or, actually, its relevant parts) in the
upstream.
* m4/obsolete-err.m4 (AM_CONFIG_HEADER, AM_PROG_CC_STDC): Revert to the
older semantics, plus a runtime warning in the 'obsolete' category.
* t/backcompat6.sh: Use AM_CONFIG_HEADER once again.
* t/am-config-header-no-more.sh: Rename ...
* t/am-config-header.sh: ... like this, and adjust.
* t/am-prog-cc-stdc-no-more.sh: Rename ...
* t/am-prog-cc-stdc.sh: ... like this, and adjust.
* t/list-of-tests.mk: Adjust.
* NEWS: Update.
2013-01-18 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'rm-f-probe' into maint
* rm-f-probe:
init.m4: add probe to check "rm -f" without args work
2013-01-18 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: parallel-tests is no longer experimental
So don't declare it as such in the documentation.
Reported by Brandon Black:
<http://lists.gnu.org/archive/html/automake/2013-01/msg00052.html>
* doc/automake.texi: Adjust.
* THANKS: Update.
2013-01-18 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: serial-tests are not deprecated, just discouraged
We don't plan to remove support for them, nor to have the serial-tests
option give any kind of runtime warning, so don't alarm the users
still using serial tests with pointless "deprecation" or "obsolescence"
warnings.
Fixes automake bug#13478.
See also:
<http://lists.gnu.org/archive/html/automake/2013-01/msg00058.html>
* doc/automake.texi: Adjust.
* THANKS: Update.
2013-01-18 Stefano Lattarini <stefano.lattarini@gmail.com>
plans: we are not going to remove AM_PROG_MKDIR_P in Automake 1.14
See commit v1.13.1-109-g030ecb4 of 2013-01-16, "compat: restore
AM_PROG_MKDIR, again", for the rationale; that rationale is now
also copied...
* PLANS/obsolete-removed/am-prog-mkdir-p.txt: ... here.
2013-01-18 Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS: we are not going to remove AM_PROG_MKDIR_P in Automake 1.14
See commit v1.13.1-109-g030ecb4 of 2013-01-16, "compat: restore
AM_PROG_MKDIR, again", for the rationale.
2013-01-16 Stefano Lattarini <stefano.lattarini@gmail.com>
init.m4: add probe to check "rm -f" without args work
See automake bug#10828.
POSIX will say in a future version that running "rm -f" with no argument
is OK: <http://austingroupbugs.net/view.php?id=542>).
We want to be able to make that assumption in our Makefile recipes.
So we introduce an aggressive probe to check that the usage we want is
actually supported "in the wild" to an acceptable degree.
* m4/init.m4 (AM_INIT_AUTOMAKE): Implement the probe. To make any issue
more visible, cause the running configure to be aborted by default if
the 'rm' program in use doesn't match our expectations; the user can
still override this though, by setting the ACCEPT_INFERIOR_RM_PROGRAM
environment variable to "yes".
* t/spy-rm.tap: Update heading comments.
* t/rm-f-probe.sh: New test.
* t/list-of-tests.mk: Add it.
* PLANS/rm-f-without-args.txt: Adjust.
2013-01-13 Stefano Lattarini <stefano.lattarini@gmail.com>
subdir-objects: complain if it isn't enabled
Since the next major automake version will make the behaviour so far
only activated with the 'subdir-object' option mandatory, it's better
if we start warning users not using that option.
As suggested by Peter Johansson, we strive to avoid the warning when
it would be irrelevant, i.e., if all source files sit in "current"
directory.
See automake bug#13378.
* automake.in (handle_single_transform): Print the warning when
necessary.
* t/subobj.sh: Enhance.
* t/ax/depcomp.sh: Adjust.
* t/cscope.tap: Likewise.
* t/depcomp8a.sh: Likewise.
* t/depcomp8b.sh: Likewise.
* t/ext2.sh: Likewise.
* t/extra-portability.sh: Likewise.
* t/fort2.sh: Likewise.
* t/fort4.sh: Likewise.
* t/fort5.sh: Likewise.
* t/lex-line.sh: Likewise.
* t/libtool3.sh: Likewise.
* t/ltinstloc.sh: Likewise.
* t/ltlibsrc.sh: Likewise.
* t/ltorder.sh: Likewise.
* t/parallel-tests-suffix-prog.sh: Likewise.
* t/sourcefile-in-subdir.sh: Likewise.
* t/specflg9.sh: Likewise.
* t/subobj4.sh: Likewise.
* t/subobj7.sh: Likewise.
* t/subpkg-yacc.sh: Likewise.
* t/subpkg.sh: Likewise.
* t/suffix-custom-subobj-and-specflg.sh: Likewise.
* t/vala-libs.sh: Likewise.
* t/vala-non-recursive-setup.sh: Likewise.
* t/yacc-grepping2.sh: Likewise.
* t/yacc-line.sh: Likewise.
2013-01-12 Stefano Lattarini <stefano.lattarini@gmail.com>
plans: update w.r.t. latest changes
2013-01-12 Stefano Lattarini <stefano.lattarini@gmail.com>
ywrap: remove an obsolete FIXME comment
If it were still relevant, somebody would have complained by now.
2013-01-12 Stefano Lattarini <stefano.lattarini@gmail.com>
ywrap: style fixes (no semantic change intended)
2013-01-12 Stefano Lattarini <stefano.lattarini@gmail.com>
convenience: "make lint" as an alias for "make maintainer-check"
* maintainer/syntax-checks.mk (lint): Here. I'm a lazy typist ...
2013-01-12 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: typofix in manual
* doc/automake.texi (Yacc and Lex): Here, don't write "automake -i"
where "automake -a" is actually intended. Re-wrap some text while
at it.
2013-01-12 Stefano Lattarini <stefano.lattarini@gmail.com>
coverage: using multiple lexers in a single program
Using Flex and Automake built-in support for lex, that is possible.
A little tricky, but not difficult.
See:
<http://lists.gnu.org/archive/html/automake/2010-10/msg00081.html>
<http://lists.gnu.org/archive/html/automake/2009-03/msg00061.html>
* t/lex-multiple.sh: New test.
* t/list-of-tests.mk: Add it.
2013-01-12 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: remove most uses of the AM_PROG_CC_C_O obsolete macro
Our NEWS file says its use will no longer be required in Automake
1.13, so better make sure that is actually the case.
* Several tests: Adjust.
2013-01-12 Stefano Lattarini <stefano.lattarini@gmail.com>
coverage: obsolete macro AM_PROG_CC_C_O should cause no warning nor errors
Suggested by Eric Blake.
* t/am-prog-cc-c-o.sh: New test.
* t/list-of-tests.mk: Add it.
2013-01-12 Stefano Lattarini <stefano.lattarini@gmail.com>
INSTALL: update copyright years
2013-01-12 Mike Frysinger <vapier@gentoo.org> (tiny change)
ithreads: use runtime (not configure time) detection of perl threads
I can't imagine the runtime checks being a big runtime penalty, so there
shouldn't be a need to do the checks at configure check and hardcode the
result in the generated automake.
With the current system, it means if you change your perl config (build
perl w/threads, build automake, build perl w/out threads), or deploy a
compiled automake package on a different system (build had threads, but
deployed system does not), you get errors when trying to run automake.
So take the logic from configure.ac and move it to the one place where
PERL_THREADS is used (lib/Automake/Config.in) and do the version/config
checking at runtime.
* bootstrap.sh (PERL_THREADS): Delete assignment and use in sed.
* configure.ac (am_cv_prog_PERL_ithreads, PERL_THREADS): Delete all code
related to these two variables.
* lib/Automake/Config.in (perl_threads): Initialize to 0, and only set to
1 if the perl version is at least 5.007_002, and useithreads is in Config.
2013-01-12 Stefano Lattarini <stefano.lattarini@gmail.com>
copyright: add few missing copyright notices
Issue revealed by warnings from "make update-copyright".
* maintainer/am-ft: Add copyright notice.
* maintainer/am-xft: Likewise.
* maintainer/rename-tests: Likewise.
2013-01-12 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: files in PLANS are to be exempted from copyright notice
* maintainer/maint.mk (update-copyright): Adjust.
2013-01-12 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: consistently honor the UPDATE_COPYRIGHT_YEAR environment variable
* maintainer/maint.mk (update-copyright): Here. The 'lib/update-copyright'
already honoured it, but some parts of our recipe didn't. This has caused
the incomplete copyright bump that was fixed by the previous patch.
2013-01-12 Stefano Lattarini <stefano.lattarini@gmail.com>
copyright: update some copyright years
With "make update-copyright". Apparently they were missed in the
last bump.
* bootstrap.sh, configure.ac, t/txinfo-builddir.sh: In these files.
2013-01-11 Stefano Lattarini <stefano.lattarini@gmail.com>
compile: use 'compile' script when "-c -o" is used with losing compilers
Do so seen when only source files in the "current" directory are present.
This commit is part of a series of related changes addressing automake
bug#13378 (see also the plan 'PLANS/subdir-objects.txt').
Before this change, Automake-generated C compilation rules mistakenly
passed the "-c -o" options combination unconditionally (even to losing
compiler) when the 'subdir-objects' was used but sources were only
present in the top-level directory. Issue spotted by Nick Bowler:
<http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13378#35>
<http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13378#44>
We fix this by having Automake redefine AC_PROG_CC to take over the role
of AM_PROG_CC_C_O and to require the 'compile' script unconditionally
(albeit that will continue to be invoked only when inferior compilers
are detected).
Among other things, this means AM_PROG_CC_C_O explicitly is no longer
required; that macro is still supported for backward-compatibility, but
calling it is basically a no-op now.
This change has some pros and some cons (obviously, we believe the former
outweighs the latter). Here are the most relevant ones:
+ Pros 1:
Some logic in the Automake script has been simplified.
+ Pros 2:
That simplification has automatically fixed an actual bug (see
Nick's mails referenced above; admittedly, that was present only in
corner-case situations, but still); the test 't/ccnoco4.sh', which
demonstrated the bug and has been failing so far, now passes.
+ Pros 3:
Things works more "automagically" now (no need to manually add the
AM_PROG_CC_C_O macro to configure.ac anymore).
* Cons 1:
The 'compile' script will be required in all projects using C
compilation; this will only be a problem for packages not using
'--add-missing'. However, such packages are definitely more rare
than the ones using '--add-missing', and adjusting them will be
trivial -- just copy the compile script over from the new Automake
installation.
* Cons 2:
The copy & paste of autoconf internals hack this change has introduced
in our "rewrite" of AC_PROG_CC is really an egregious abomination. It
can only be justified with the fact that we expect future versions of
autoconf to implement the semantics we need directly in AC_PROG_CC, so
that we'll be able to leverage that (since Automake 1.14 will require
the latest Autoconf version released).
Now, the detailed list of file-by-file changes ...
* automake.in ($seen_cc_c_o): Remove this global variable.
(scan_autoconf_traces): Don't set it, and do not trace the
'AM_PROG_CC_C_O' m4 macro.
(lang_c_rewrite): Remove, no longer needed.
* doc/automake.texi: Adjust expected "autoreconf --install" output
in the amhello example. Remove statements about the need for the
AM_PROG_CC_C_O macro. Report it is obsolete now.
* m4/init.m4: Re-write AC_PROG_CC to append checks about whether the
C compiler supports "-c -o" together. These checks have basically
been ripped out (with adaptations) from the 'AC_PROG_CC_C_O' macro
of Autoconf and ...
* m4/minuso.m4 (AM_PROG_CC_C_O): ... this macro of ours, which has
thus basically become a no-op.
* t/ax/am-test-lib.sh (am_setup_testdir): Also copy the 'compile'
script in the test directory; if we don't do so, every test using
AC_PROG_CC should call automake with the "--add-missing" option, or
copy the 'compile' script itself.
* t/cond11.sh: No need to create a dummy 'compile' script: that is
already brought in by 'am_setup_testdir()', that is automatically
invoked when 'test-lib.sh' is sourced.
* t/add-missing.tap: Adjust: we expect the 'compile' script to be
required by a mere AC_PROG_CC call now.
* t/dist-auxdir-many-subdirs.sh: Likewise.
* t/specflg6.sh: Likewise.
* t/subobj4.sh: Likewise.
* t/cxx-lt-demo.sh: Likewise, and update comments to match.
* t/distcom2.sh: Enhance a little.
* t/dollarvar2.sh: Adjust.
* t/extra-portability.sh: Likewise.
* t/libobj19.sh: Likewise.
* t/per-target-flags.sh: Likewise.
* t/repeated-options.sh: Likewise.
* t/subobj.sh: Likewise, and enhance a little.
* t/ccnoco2.sh: Remove as obsolete.
* t/list-of-tests.mk (handwritten_TESTS): Adjust.
(XFAIL_TESTS): Remove 't/ccnoco4.sh'.
* NEWS: Update.
2013-01-11 Stefano Lattarini <stefano.lattarini@gmail.com>
HACKING: suggest more checks before releasing
In particular, "make check-no-trailing-backslash-in-recipes",
"make check-cc-no-c-o" and "make maintainer-check" should also
be run.
2013-01-11 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: can fake a compiler not grasping "-c -o" -- globally in all tests
The ability to easily do so will be quite important in upcoming changes
about C compilation handling and semantics of the 'subdir-objects'
option. Refer to the extensive discussion about automake bug#13378 for
more details: <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13378>.
See also commit 'v1.13.1-34-g744cd57' of 2013-01-08, "coverage: compile
rules used "-c -o" also with losing compilers".
* t/ax/cc-no-c-o.in: New, a "C compiler" that chokes when the '-c' and
'-o' options are passed together to it on the command line.
* Makefile.am (t/ax/cc-no-c-o): Generate this script from it.
(noinst_SCRIPTS, CLEANFILES): Add it.
(EXTRA_DIST): Add 't/ax/cc-no-c-o.in'.
(check-cc-no-c-o): New target, runs the whole testsuite with 'cc-no-c-o'
as the C compiler (bot GNU and non-GNU).
* .gitignore: Update.
* t/ccnoco.sh: Use the new script instead of duplicating it.
* t/ccnoco3.sh: Likewise.
* t/ccnoco4.sh: Likewise.
* t/self-check-cc-no-c-o.sh: New testsuite self-check.
* t/list-of-tests.mk: Adjust.
2013-01-11 Stefano Lattarini <stefano.lattarini@gmail.com>
sync: update files from upstream with "make fetch"
* lib/INSTALL: Update.
* lib/config.guess: Likewise.
* lib/config.sub: Likewise.
* lib/gendocs_template: Likewise.
* lib/gitlog-to-changelog: Likewise.
* lib/gnupload: Likewise.
* lib/texinfo.tex: Likewise.
* lib/update-copyright: Likewise.
2013-01-10 Stefano Lattarini <stefano.lattarini@gmail.com>
typofix: in comments in GNUmakefile
2013-01-10 Stefano Lattarini <stefano.lattarini@gmail.com>
Rename 'maint/' -> 'maintainer/', for Git's sake
Otherwise, Git gets confused by the fact that a directory ('maint')
is named like a branch, and forces me to tweak the command line to
resolve the ambiguity for it.
* maint/: Rename ...
* maintainer/: ... like this.
* Makefile.am, GNUmakefile: Adjust.
2013-01-10 Stefano Lattarini <stefano.lattarini@gmail.com>
HACKING: minor typofix
2013-01-10 Stefano Lattarini <stefano.lattarini@gmail.com>
HACKING: bug-tracker, the PLANS directory, and how to plan "big" changes
2013-01-10 Stefano Lattarini <stefano.lattarini@gmail.com>
HACKING: rewindable branches should live in the 'experimental/*' namespace
2013-01-10 Stefano Lattarini <stefano.lattarini@gmail.com>
HACKING: fixlets about git branch rewinding policy
2013-01-10 Stefano Lattarini <stefano.lattarini@gmail.com>
HACKING: commit messages are not to follow GCS ChangeLog rules too strongly
2013-01-10 Stefano Lattarini <stefano.lattarini@gmail.com>
HACKING: "detailed explanation" in commit messages is almost mandatory
2013-01-10 Stefano Lattarini <stefano.lattarini@gmail.com>
HACKING: we use "merge --log" even when merging master
2013-01-10 Stefano Lattarini <stefano.lattarini@gmail.com>
HACKING: typofix
2013-01-09 Stefano Lattarini <stefano.lattarini@gmail.com>
depend2.am: fix comments on verbosity of compilation rules
The situation and decisions described on those comments have become
quite outdated since the introduction of the silent-rules support.
Today, the general idea is to have nice, terse output if silent rules
are enabled, and complete, faithful, very verbose output if they are
not -- without trying to "massage" this verbose output in a more
pleasant form if that would cause complication in the affected code.
So it's better to just drop the obsolescent comments.
Note that we don't start simplifying the existing rules according
to this new philosophy; that will only be done when touching some
existing code (for the 'depend2.am' code, that will probably happen
on the master branch).
2013-01-09 Stefano Lattarini <stefano.lattarini@gmail.com>
depend2.am: improve comments a little
* lib/am/depend2.am: The "fastdep" mode is supported not only for
gcc 3.x, but for gcc 3.x or later, in particular, for all gcc in
the 4.x series (at the time of writing, the latest release is 4.72).
Adjust the comments to match, and re-wrap them while at it.
2013-01-09 Stefano Lattarini <stefano.lattarini@gmail.com>
plans: automake 1.14 is to assume "rm -f" with no args is OK
See automake bug#10828.
* PLANS/rm-f-without-args.txt: New.
2013-01-09 Stefano Lattarini <stefano.lattarini@gmail.com>
plans: we want to active subdir-objects unconditionally in automake 1.14
See automake bug#13378.
* PLANS/subdir-objects.txt: New.
* t/ccnoco4.sh: Improve heading comments a little.
2013-01-08 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: adjust stale references to old test names
* t/remake-renamed-m4-macro-and-file.sh: Adjust to reflect to old
"acloca22 -> t/aclocal-deleted-header.sh" test rename.
* t/aclocal-pr450.sh (configure.ac): Use '$me' in the AC_INIT call,
instead of hard-coding the old name of this test, i.e., "acloca19".
2013-01-08 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: rename the last aclocal test with dumb name
* t/acloca10.sh: Rename ...
* t/aclocal-I-install.sh: ... to this saner and slightly more
self-explanatory name.
* t/list-of-tests.mk: Adjust.
2013-01-08 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix an old botched change to an aclocal test
* t/acloca10.sh (configure.ac): Here, invoke the m4 macro 'MACRO2'
before the macro 'MACRO1' (the related test 't/aclocal-I-order-2.sh'
does the opposite). This reverts a botched edit done (by myself,
oops) in commit 'v1.11-1335-gefdc3e1' of 2011-09-11, "tests: minor
optimizations/simplifications in some aclocal tests", and makes the
behaviour of the test match once again what is stated in the
heading comments. While at it, improve those same heading comments
a little.
2013-01-08 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix some botched inter-test references in heading comments
* t/aclocal-I-order-2.sh: Here.
* t/aclocal-I-order-2.sh: And here.
2013-01-08 Stefano Lattarini <stefano.lattarini@gmail.com>
coverage: compile rules used "-c -o" also with losing compilers
If the 'subdir-objects' option is used, Automake-generated rules for
C compilation pass both the "-c" and "-o" options to the C compiler,
*unconditionally*. There are some compilers that choke on such an
usage, but the AM_PROG_CC_C_O macro takes care of them (it does so by
redefining $CC to use the Automake-provided 'compile' wrapper script
automatically, if a losing compiler is detected at configure runtime).
Unfortunately, in case the 'subdir-objects' option is specified in a
Makefile.am, but all the source files resided anyway in the top-level
directory (relative to the Makefile.am), Automake do *not* complain
if AM_PROG_CC_C_O wasn't invoked in 'configure.ac' -- all the while
still passing "-c -o" to the compiler invocations. This could cause
compilation failures with losing compilers if the user forget to call
AM_PROG_CC_C_O in 'configure.ac' (and Automake would not warn him of
the issue).
Expose this bug in the testsuite.
Issue identified by Nick Bowler in the discussion on automake bug#13378:
<http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13378#35>
<http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13378#44>
* t/ccnoco4.sh: New test.
* t/list-of-tests.mk (XFAIL_TESTS, handwritten_TESTS): List it.
2013-01-05 Stefano Lattarini <stefano.lattarini@gmail.com>
texi: remove extra verbosity in creation of dirstamp directory
* lib/am/texi-vers.am (%STAMPVTI%): Here.
2013-01-05 Stefano Lattarini <stefano.lattarini@gmail.com>
coverage: user can avoid distributing '.info' pages
Can be done like this:
AUTOMAKE_OPTIONS = info-in-builddir
dist-info:
@:
Note that this usage is not yet documented: we might decide to go
for a fully-fledged 'no-dist-info' flag, or something like that, in
future automake version (this is not yet decided); in which case,
it's better not to have people start to rely on the hack above.
Still, there's no good reason to break it gratuitously, hence this
test coverage.
* t/txinfo-nodist-info.sh: New test.
* t/list-of-tests.mk: Add it.
2013-01-04 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'plans' into maint
* plans:
plans: add some on-going plans (already registered on the bug tracker)
2013-01-04 Stefano Lattarini <stefano.lattarini@gmail.com>
plans: add some on-going plans (already registered on the bug tracker)
2013-01-04 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'plans' into maint
* plans:
plans: add the "PLANS" directory
Conflicts:
Makefile.am
2013-01-04 Karl Berry <karl@gnu.org>
docs: mention dist-hook help for EXTRA_DIST
* automake.texi (Basics of Distribution): mention dist-hook
as working around the problems of whole directories in EXTRA_DIST.
2013-01-03 Stefano Lattarini <stefano.lattarini@gmail.com>
texi: remove workaround for older Texinfo (4.1)
* lib/am/texibuild.am: Here, in the rules generating HTML output.
We can do so because, since Automake 1.13, we require Texinfo >= 4.9
anyway.
Basically a backport of Automake-NG commit '1.12.2-879-ge6caf5e'.
2013-01-03 Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS: improve wordings in entry deprecating suffix-less info files
2013-01-03 Stefano Lattarini <stefano.lattarini@gmail.com>
build: don't enable 'color-tests' automake option explicitly
It's enabled by default since commit 'v1.12.2-136-g2d5571e' (this
change appeared in Automake 1.13).
* configure.ac (AM_INIT_AUTOMAKE): Drop 'color-tests'.
2013-01-03 Stefano Lattarini <stefano.lattarini@gmail.com>
build: enable all warnings as fatal in our own build system
Automake should of course be able to bootstrap itself in a
warning-free manner w.r.t. the Autotools. So make any failure
to do so fatal. Not doing so caused the regression fixed by
previous commit 'v1.13.1-22-ga790fae' to go unnoticed.
* configure.ac (AM_INIT_AUTOMAKE): Add '-Werror' and '-Wall'.
* bootstrap.sh: Pass the '-Wall -Werror' options to aclocal,
automake and autoconf invocations.
2013-01-03 Stefano Lattarini <stefano.lattarini@gmail.com>
texi: Texinfo sources and CLEANFILES definition should co-exist peacefully
But they don't now, due to a regression introduced in commit
'v1.13.1-4-gc1a8f56'. Fix it. The regression was hitting our
own build system!
* automake.in (handle_texinfo_helper): Only complain if the
'info-in-builddir' is not active and a '.info' file (not any
random file!) is listed in CLEANFILES or DISTCLEANFILES.
2013-01-03 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: make two new test executable
* t/backslash-issues.sh: This.
* t/extra-data.sh: And this.
Issue revealed by the 'sc_tests_executable' maintainer check.
2013-01-03 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'info-in-builddir' into maint
* info-in-builddir:
texi: deprecate hack about info files in CLEANFILES variables
texi: info files can be generated in the builddir
2013-01-03 Stefano Lattarini <stefano.lattarini@gmail.com>
runtest: better command line API
* t/ax/runtest.in: Accept options '-k' and '--keep-testdirs' (same
as exporting '$keep_testdirs' to "yes"). To improve compatibility
with the "make check" interface, allow environment variables to be
passes on the command line. Minor adjustments while at it.
2013-01-03 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: move runtest.in away from the top-lever directory
Not only this leaves the top-lever directory less cluttered, but
helps in keeping the testsuite-related files more "centralized".
* runtest.in: Move ...
* t/ax/runtest.in: ... here. While at it, add customary
'@configure_input@' comment line.
* Makefile.am (runtest, EXTRA_DIST): Adjust.
2013-01-03 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: move more maintainer files in the 'maint/' subdir
* maint.mk: Move ...
* maint/maint.mk: ... here.
* syntax-checks.mk: Move ...
* maint/syntax-checks.mk: ... here.
* Makefile.am: Adjust.
* GNUmakefile: Likewise.
2013-01-03 Stefano Lattarini <stefano.lattarini@gmail.com>
plans: add the "PLANS" directory
Individual files or sub-directories about future and on-going
development plans in Automake will be added in follow-up commits.
This new set of documents is meant to help ensure a more controlled
and smooth development and evolution for Automake, in several ways.
- Having the plans clearly spelled out should will avoid messy
roadmaps with no clear way forward or with muddy or ill-defined
aims or purposes; a trap this is too easy to fall into.
- Keeping planned changes cooking and re-hashed for a while should
ensure rough edges are smoothed up, transitions are planned in a
proper way (hopefully avoiding debacles like the AM_MKDIR_PROG_P
deprecation and the AM_CONFIG_HEADER too-abrupt removal), and
"power users" have more chances of getting informed in due time,
thus having all the time to prepare for the changes or raise
objections against them.
- Having the plans clearly stated and registered in a "centralized"
location should make it more difficult to them to slip through
the cracks, getting forgotten or (worse) only half-implemented.
- Even for discussions and plans registered on the Bug Tracker
as well, a corresponding entry in the PLANS directory can help
in keeping main ideas summarized, and consensus and/or objections
registered and easily compared.
Motivation:
<http://blog.flameeyes.eu/2013/01/autotools-mythbuster-automake-pains>
Not a flatting picture for us (and maybe a little too harsh), but
basically true and even spot-on in some regards.
* PLANS/README: New.
* Makefile.am (EXTRA_DIST): Distribute the whole PLANS directory.
2013-01-02 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: more significant names for some tests
* t/spy.sh: Rename...
* t/spy-double-colon.sh: ... like this.
* t/yacc4.sh: Rename...
* t/yacc-misc.sh: ... like this.
* t/yaccdry.sh: Rename...
* t/yacc-dry.sh: ... like this.
* t/yaccpp.sh: Rename...
* t/yacc-cxx-grepping.sh: ... like this.
* t/yaccvpath.sh: Rename...
* t/yacc-vpath.sh: ... like this.
2013-01-02 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: add some of my maintainer-specific scripts
They are likely not general enough for widespread use, but they
are useful nonetheless.
In the best-case scenario, they will start to be used by other
people, and thus accordingly improved and made more general and
flexible.
In the worst case scenario, well, I still get to keep them in a
centralized, blessed place, simplifying the deployment and use
of them; so still a win for me :-)
* maint/am-ft: New script.
* maint/am-xft: Likewise.
* maint/rename-tests: Likewise.
* Makefile.am (EXTRA_DIST): Add them.
2013-01-02 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: reorganize tests on backslash issues
* t/backsl.sh, t/backsl2.sh, t/backsl3.sh: Merge ...
* t/backslash-issues.sh: ... into this test.
* t/backsl4.sh: Rename ...
* t/backslash-before-trailing-whitespace.sh: ... like this.
* t/list-of-tests.mk: Adjust.
2013-01-02 Stefano Lattarini <stefano.lattarini@gmail.com>
style: add trailing ':' to some test cases
2013-01-02 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: tweak tests on obsolete EXTRA_DATA variable
* t/extra3.sh, t/extra4.sh: Merge ....
* t/extra-data.sh: ... into this, with updated comments.
* t/list-of-tests.mk: Adjust. Also Tweak the order in
which some other tests are listed.
2013-01-02 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: more significant names for some tests
* t/extra5.sh: Rename ....
* t/extra-dist-vpath-dir.sh: ... like this.
* t/extra6.sh: Rename ....
* t/extra-dist-dirs-and-subdirs.sh: ... like this.
* t/extra7.sh: Rename ....
* t/extra-dist-vpath-dir-merge.sh: ... like this.
* t/extra8.sh: Rename ....
* t/extra-programs-misc.sh: ... like this.
* t/extra9.sh: Rename ....
* t/extra-programs-and-libs.sh: ... like this.
* t/extra10.sh: Rename ....
* t/extra-dist-wildcards.sh: ... like this.
* t/extra11.sh: Rename ....
* t/extra-dist-wildcards-gnu.sh: ... like this.
* t/extra12.sh: Rename ....
* t/extra-dist-wildcards-vpath.sh: ... like this.
* t/extradep.sh: Rename ....
* t/extra-deps.sh: ... like this, and adjust heading comments.
* t/extradep2.sh: Rename ....
* t/extra-deps-lt.sh: ... like this, and adjust heading comments.
* t/list-of-tests.mk: Adjust.
2013-01-02 Stefano Lattarini <stefano.lattarini@gmail.com>
cosmetics: remove few occurrences of trailing whitespace
2013-01-02 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: re-introduce mention of two-args AM_INIT_AUTOMAKE invocation
Albeit obsolescent and raising warnings in the 'obsolete' category,
that usage is still supported, and will need to be until Autoconf
improves its handling of configure-time-generated package version
numbers. So it's better to explicitly document it again, stating
that it is obsoleted but still working (and why), rather then leaving
it as Yet Another Undocumented Feature (that will mysteriously and
suddenly break some random day in the future).
It's worth giving some background about how we ended up in the
situation that this patch fixes.
We had originally removed support for the long-deprecated two-args
AM_INIT_AUTOMAKE invocation (see commit v1.12-67-ge186355). Before
that removal could land in a released Automake version, Bob Friesenhahn
made a quite compelling point that the two-args AM_INIT_AUTOMAKE
invocation could still be useful for modern, maintained packages like
GraphicsMagick, at least until Autoconf is fixed to offer better support
for "dynamic" package versions (see commit v1.12.2-245-g2abe183 for more
in-depth rationales and references). However, in that commit we didn't
revert the removal of the *documentation* for this two-arguments
AM_INIT_AUTOMAKE invocation (and no rationale for not doing so was given
in the commit message). Time to remedy that.
Indirectly suggested by Diego Elio Pattenò:
<http://blog.flameeyes.eu/2013/01/autotools-mythbuster-automake-pains>
* doc/automake.texi: Adjust.
* NEWS: Update.
* THANKS: Likewise.
2013-01-02 Stefano Lattarini <stefano.lattarini@gmail.com>
texi: warn against '.txi' and '.texinfo' input suffixes
The warning being in the 'obsolete' category. This is mostly to
ease transition to Automake-NG (see commit v1.12.1-416-gd5459b9),
and to discourage use of seldom-tested setups.
* automake.in (handle_texinfo_helper): Warn against Texinfo input
files with '.txi' or '.texinfo' suffixes.
* NEWS: Update.
* t/txinfo-other-suffixes.sh: Adjust and enhance.
* t/txinfo-no-repeated-targets.sh: No longer use '.txi' and
'.texinfo' extensions.
2013-01-02 Stefano Lattarini <stefano.lattarini@gmail.com>
cleanup: remove two lines of dead code in automake
* automake.in (scan_texinfo_file): Here, the definition and
munging of '$infobase'.
2013-01-02 Stefano Lattarini <stefano.lattarini@gmail.com>
texi: warn against suffix-less info files
The warning being in the 'obsolete' category. This is mostly to
ease transition to Automake-NG (see commit v1.12.1-392-ga0c7b6a),
and to discourage use of seldom-tested setups.
* automake.in (scan_texinfo_file): Warn against '@setfilename'
directives that specify suffix-less output info files.
* t/txinfo-without-info-suffix.sh: Adjust and enhance.
* t/txinfo-makeinfo-error-no-clobber.sh: No longer use suffix-less
info files in '@setfilename' directives.
* t/primary-prefix-valid-couples.sh: Likewise.
* t/txinfo-setfilename-repeated.sh: Likewise.
* t/txinfo-vtexi2.sh : Likewise.
* t/mdate2.sh: Likewise.
* NEWS: Update.
2013-01-02 Stefano Lattarini <stefano.lattarini@gmail.com>
texi: deprecate hack about info files in CLEANFILES variables
For quite a long time, Automake has been implementing an undocumented
hack which ensured that '.info' files which appeared to be cleaned (by
e.g. being listed in the CLEANFILES or DISTCLEANFILES variables) were
built in the builddir rather than in the srcdir; this hack was introduced
to ensure better backward-compatibility with packages such as Texinfo,
which did things like:
info_TEXINFOS = texinfo.txi info-stnd.texi info.texi
DISTCLEANFILES = texinfo texinfo-* info*.info*
# Do not create info files for distribution.
dist-info:
@:
in order not to distribute .info files.
Now that we have the 'info-in-builddir' option that explicitly causes
generated '.info' files to be placed in the builddir, this hack should
be longer necessary, so we deprecate it with runtime warnings. It is
scheduled to be removed altogether in Automake 1.14.
* automake.in (handle_texinfo_helper): Raise proper runtime warnings
if the hack is triggered.
* NEWS: Update.
* t/txinfo28.sh: Adjust.
* t/txinfo23.sh: Likewise.
* t/txinfo25.sh: Adjust and extend.
* t/txinfo24.sh: Likewise.
2013-01-01 Stefano Lattarini <stefano.lattarini@gmail.com>
texi: info files can be generated in the builddir
User can now ask info files to be built in the $(builddir), rather than
the $(srcdir), by specifying the Automake option 'info-in-builddir'.
This feature was requested by the developers of GCC, GDB, GNU binutils
and the GNU bfd library. See the extensive discussion about automake
bug#11034 for more details.
OK, to be honest, having '.info' files built in the builddir was
*already* possible, but only using ugly and undocumented hacks involving
definition of the CLEANFILES and/or DISTCLEANFILES. For example, the
binutils project did something like this in the relevant 'Makefile.am':
# Automake 1.9 will only build info files in the objdir if they are
# mentioned in DISTCLEANFILES. It doesn't have to be unconditional,
# though, so we use a bogus condition.
if GENINSRC_NEVER
DISTCLEANFILES = binutils.info
endif
See also the extensive discussion about automake bug#11034; in
particular, the following messages:
<http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11034#65>
<http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11034#80>
<http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11034#86>
<http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11034#101>
* lib/Automake/Options.pm (_is_valid_easy_option): Recognize the
new 'info-in-builddir' option.
* automake.in (handle_texinfo_helper): If that option is set,
initialize '$insrc' to '0', so that info files will be generated
in the builddir. Adjust comments to match.
* t/txinfo-builddir.sh: New test.
* t/list-of-tests.mk: Add it.
* NEWS: Update.
* doc/automake.texi: Document the new options.
2013-01-01 Stefano Lattarini <stefano.lattarini@gmail.com>
build: respect silent rules in generation of "amhello" example tarball
* Makefile.am ($(srcdir)/doc/amhello-1.0.tar.gz): Here.
2013-01-01 Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS: fixlets and updates
2013-01-01 Stefano Lattarini <stefano.lattarini@gmail.com>
post-release: minor version bump (1.13.1a)
* configure.ac, m4/amversion.m4: Bump version to 1.13.1a.
2013-01-01 Stefano Lattarini <stefano.lattarini@gmail.com>
release: stable minor release 1.13.1
* configure.ac (AC_INIT): Bump version number to 1.13.1.
* m4/amversion.m4: Likewise (auto-updated by "make bootstrap").
2013-01-01 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: don't always look for a C++ compiler named 'RCC'
On MacOS X (10.8), since the file system is case-insensitive, RCC
can point to the "Resource Compiler" of the Qt4 Toolkit:
<http://doc.qt.digia.com/4.2/rcc.html>
That mismatch causes our configure script to erroneously think that
no working C++ compiler is present, and that is thus necessary to
skip all the test cases requiring such a compiler.
So only look for a compiler named 'RCC' if the file system is
case-sensible.
Issue spotted analyzing the testsuite logs reported in bug#13317.
* configure.ac: Adjust.
2013-01-01 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix bug in pkg-config-macros.sh, could cause spurious SKIPs
Issue spotted perusing the testsuite logs reported in bug#13317.
* t/pkg-config-macros.sh: Don't use (uninitialized) '$dir' where '$d'
should have been used instead. Set IFS to ':' before looping on the
$PATH expansion. Fix typo: 'alocal' instead of 'aclocal'. These
issues were causing the location in PATH of the 'pkg-config' program
not to be found even when the program was present.
* THANKS: Update.
2013-01-01 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: autom4te cache can break CONFIGURE_DEPENDENCIES
In fact, the new test 'remake-configure-dependencies.sh' only
works because it disables the autom4te cache :-( That is more
of an AUtotools design issue than an Automake bug, so better
just document it ...
* doc/automake.texi (Rebuilding): ... here.
2013-01-01 Stefano Lattarini <stefano.lattarini@gmail.com>
coverage: test CONFIGURE_DEPENDENCIES
* t/remake-configure-dependencies.sh: New test.
* t/list-of-tests.mk: Add it.
* doc/automake.texi: Reference it in comments.
2013-01-01 Stefano Lattarini <stefano.lattarini@gmail.com>
coverage: test CONFIG_STATUS_DEPENDENCIES
* t/remake-config-status-dependencies.sh: New test.
* t/list-of-tests.mk: Add it.
* doc/automake.texi: Reference it in comments.
2012-12-31 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix reference to related tests in some comments
* t/acloca10.sh: Here.
* t/check2.sh: And here.
* t/remake-deleted-m4-file.sh: And here.
2012-12-31 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: some enhancements to texinfo tests (from Automake-NG)
* t/txinfo-many-output-formats.sh: Backport improvements, almost verbatim,
from Automake-NG commit 'v1.13-768-gb434acc' (plus minor tweaks for the
sake of non-GNU make implementation).
* t/txinfo-many-output-formats-vpath.sh: New test, backported almost
verbatim from that same Automake-NG commit (again, with minor tweaks for
the sake of non-GNU make implementations).
* t/lsit-of-tests.mk: Adjust.
2012-12-31 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix reference to sister tests in two heading comments
* t/color-tests.sh: Here.
* t/color-tests2.sh: And here.
2012-12-31 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: update copyright year for 2013 (in branch maint)
2012-12-31 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: adjust comment w.r.t. recent tests renaming
2012-12-31 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: some more renames for texinfo tests
* t/txinfo.sh: Rename ...
* t/txinfo-tex-dist.sh: ... like this.
* t/txinfo10.sh: Rename ...
* t/txinfo-dvi-recurs.sh: ... like this.
* t/txinfo20.sh: Rename ...
* t/txinfo-makeinfo-error-no-clobber.sh: ... like this.
* t/txinfo-setfilename-suffix-match.sh: Rename ...
* t/txinfo-setfilename-suffix-strip.sh: ... like this.
* t/txinfo-suffix-less-info.sh: Rename ...
* t/txinfo-without-info-suffix.sh: ... like this.
* t/vtexi.sh: Rename ...
* t/txinfo-vtexi.sh: ... like this.
* t/vtexi2.sh: Rename ...
* t/txinfo-vtexi2.sh: ... like this.
* t/vtexi3.sh: Rename ...
* t/txinfo-vtexi3.sh: ... like this, and adjust heading comments.
* t/vtexi4.sh: Rename ...
* t/txinfo-vtexi4.sh: ... like this, and adjust heading comments.
* t/list-of-tests.mk: Adjust.
2012-12-31 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: enhance and tweak some texinfo tests
* t/txinfo-subdir-pr343.sh: Move the tests checking that '.info.bak'
files in subdirs are not unduly distributed into ...
* t/txinfo-no-extra-dist.sh: ... in here. Enhance a little while
at it.
* t/txinfo-other-suffixes.sh: Also check that the '.texinfo' suffix
is accepted and works.
* t/txinfo-setfilename-suffix-match.sh: Remove useless call to
autoconf, enhance a little.
2012-12-31 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: remove a redundant texinfo test
* t/txinfo-add-missing.sh: This one, its checks being already covered
by the more extensive 't/add-missing.tap' test.
* t/txinfo-add-missing2.sh: Rename ...
* t/txinfo-add-missing-and-dist.sh: Like this.
* t/list-of-tests.mk: Adjust.
2012-12-31 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: don't list a removed tests in XFAIL_TESTS
* t/list-of-tests.mk (XFAIL_TESTS): No longer list 't/txinfo5.sh' here,
it has been removed together with the Cygnus support.
2012-12-31 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: more explicative names for some tests
Do so for several Texinfo-related tests. Note that some of such tests
with suboptimal names are *not* renamed; that's because they are going
to be removed in the master branch anyway (since they check from some
soon-to-be-removed features), so renaming them would be wasted work,
and could even create useless merge conflicts.
* t/txinfo2.sh: Rename ...
* t/txinfo-no-extra-dist.sh: ... like this.
* t/txinfo3.sh: Rename ...
* t/txinfo-suffix-less-info.sh: ... like this.
* t/txinfo4.sh: Rename ...
* t/txinfo-unrecognized-info-suffix.sh: ... like this.
* t/txinfo6.sh: Rename ...
* t/txinfo-other-suffixes.sh: ... like this.
* t/txinfo7.sh: Rename ...
* t/txinfo-add-missing.sh: ... like this.
* t/txinfo8.sh: Rename ...
* t/txinfo-add-missing2.sh: ... like this.
* t/txinfo9.sh: Rename ...
* t/txinfo-no-repeated-targets.sh: ... like this.
* t/txinfo17.sh: Rename ...
* t/txinfo-setfilename-repeated.sh: ... like this.
* t/txinfo13.sh: Rename ...
* t/txinfo-subdir-pr343.sh: ... like this.
* t/txinfo16.sh: Rename ...
* t/txinfo-info-in-srcdir.sh: ... like this.
* t/txinfo21.sh: Rename ...
* t/txinfo-many-output-formats.sh: ... like this.
* t/txinfo22.sh: Rename ...
* t/txinfo-override-texinfo-tex.sh: ... like this.
* t/txinfo26.sh: Rename ...
* t/txinfo-absolute-srcdir-pr408.sh: ... like this.
* t/txinfo27.sh: Rename ...
* t/txinfo-no-installinfo.sh: ... like this.
* t/txinfo29.sh: Rename ...
* t/txinfo-override-infodeps.sh: ... like this.
* t/txinfo31.sh: Rename ...
* t/txinfo-setfilename-suffix-match.sh: ... like this.
* t/txinfo32.sh: Rename ...
* t/txinfo-bsd-make-recurs.sh: ... like this.
* t/txinfo33.sh: Rename ...
* t/txinfo-clean.sh: ... like this.
* t/list-of-tests.mk: Adjust.
2012-12-31 Stefano Lattarini <stefano.lattarini@gmail.com>
cleanup: drop a redundant %?FIRST% transform
* lib/am/texinfos.am: Here: this file is only included one time
per Makefile by Automake.
Cherry picked from Automake-NG commit 'v1.12.2-864-g5c580b0'.
2012-12-31 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: state when compatibility cruft should be removed or warned about
* automake.in: Here.
* lib/Automake/Options.pm: And here.
* m4/obsolete-err.m4: And here.
2012-12-30 Stefano Lattarini <stefano.lattarini@gmail.com>
fixup: copyright yars in two recent tests
2012-12-30 Stefano Lattarini <stefano.lattarini@gmail.com>
obsolete: fixup: don't use AU_DEFUN where AC_DEFUN is required
* m4/obsolete-err.m4: Here, for the definition of 'AM_PROG_CC_STDC'
2012-12-30 Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS: minor fixup
2012-12-30 Stefano Lattarini <stefano.lattarini@gmail.com>
obsolete: better error message if AM_PROG_CC_STDC is used
In Automake 1.13, the long-deprecated (since 2002) macro AM_PROG_CC_STDC
has been removed. Such a removal, albeit sensible and justified, was
probably done in a too-abrupt way, since it didn't turn the pre-existing
warning messages into fatal error messages, but simply dropped the macro
definition, so that remaining usages of it would cause unclear error
messages, e.g.:
configure.ac:4: warning: macro 'AM_PROG_CC_STDC' not found in library
from aclocal, and:
configure.ac:4: error: possibly undefined macro: AM_PROG_CC_STDC
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
from autoconf.
In an attempt to mitigate this issue, we re-add an AM_PROG_CC_STDC
definition that simply raises a *clear* error message when the macro
is used.
* t/am-prog-cc-stdc-no-more.sh: New test.
* t/list-of-tests.mk: Add it.
* m4/obsolete-err.m4: Add the new "error-raising" definition for
AM_PROG_CC_STDC; the error message is a variation of the one already
present in the older version of this macro, before it got removed in
commit 'v1.12-15-gd2ca168'.
* NEWS: Update.
2012-12-30 Stefano Lattarini <stefano.lattarini@gmail.com>
obsolete: better error message if AM_CONFIG_HEADER is used
In Automake 1.13, the long-deprecated macro AM_CONFIG_HEADER (deprecated
since 2002) has been removed in favour of AC_CONFIG_HEADERS. However,
the removal was done without a proper deprecation period, and that
caused packages upgrading to Automake 1.13 to fail with very unclear
error messages, e.g.:
configure.ac:4: warning: macro 'AM_CONFIG_HEADER' not found in library
from aclocal, and:
configure.ac:4: error: possibly undefined macro: AM_CONFIG_HEADER
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
from autoconf.
In an attempt to mitigate this issue, we re-add an AM_CONFIG_HEADER
definition that simply raises a *clear* error message when the macro
is used.
Report by Paolo Bonzini:
<http://lists.gnu.org/archive/html/automake/2012-12/msg00039.html>
* t/am-config-header-no-more.sh: New test.
* t/list-of-tests.mk: Add it.
* m4/obsolete-err.m4: New file, contain the new AM_CONFIG_HEADER
"error-raising" definition, as well as the definition of the
similarly obsolete macros 'AM_C_PROTOTYPES' and 'fp_C_PROTOTYPES',
moved in from ...
* m4/protos.m4: ... this file, which has thus been removed.
* Makefile.am (dist_automake_ac_DATA): Adjust.
* t/ansi2knr-no-more.sh: Likewise.
* NEWS: Update.
2012-12-29 Stefano Lattarini <stefano.lattarini@gmail.com>
sync: update files from upstream with "make fetch"
* lib/config.sub: Update.
* lib/config.guess: Likewise.
2012-12-29 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: better names for temporary configure.ac files
When editing a pre-existent 'configure.ac' file in a test script, name
the temporary file 'configure.tmp' rather than 'configure.int'; the
latter was a relict of the times when we used 'configure.in' as the
default name for the Autoconf input files throughout the testsuite.
* t/cond43.sh: Adjust.
* t/depcomp8a.sh: Likewise.
* t/depcomp8b.sh: Likewise.
* t/gettext.sh: Likewise.
* t/mmode.sh: Likewise.
* t/pr401.sh: Likewise.
* t/pr401b.sh: Likewise.
* t/pr401c.sh: Likewise.
* t/python11.sh: Likewise.
* t/cond42.sh: Likewise. Also, while at it, rename ...
(edit_configure_in): ... this function ...
(edit_configure_ac): ... like this.
2012-12-28 Stefano Lattarini <stefano.lattarini@gmail.com>
post-release: minor version bump
This is for the maint branch.
* configure.ac, m4/amversion.m4: Bump version to 1.13.0a.
2012-12-28 Stefano Lattarini <stefano.lattarini@gmail.com>
release: stable major release 1.13
* configure.ac (AC_INIT): Bump version number to 1.13.
* m4/amversion.m4 (AM_AUTOMAKE_VERSION): Likewise (regenerated
by "make bootstrap").
2012-12-24 Stefano Lattarini <stefano.lattarini@gmail.com>
news: fix botched URL
2012-12-21 Akim Demaille <akim@lrde.epita.fr>
ylwrap: various fixes
Rename properly header guards in generated header files, instead of
leaving Y_TAB_H.
Convert header guards in implementation files. Because ylwrap failed
to rename properly #include in the implementation files, current
versions of Bison (e.g., 2.7) duplicate the generated header file in
the implementation file. The header guard then protects the
implementation file from duplicate definitions from the header file.
Generate header guards with a single '_' for series of non alphabetic
characters, instead of several. This is what Bison does.
Makes the test t/yacc-d-basic.sh pass again.
* lib/ylwrap (guard): Properly honor $1 to rename properly the
header guards.
Keep a single _ instead of several.
(rename_sed): Rename as...
(sed_fix_filenames): this.
Suggested by Stefano Lattarini.
(sed_fix_header_guards): New.
Use it.
2012-12-21 Akim Demaille <akim@lrde.epita.fr>
tests: strengthen the ylwrap tests
* t/yacc-d-basic.sh: Comment changes.
(generated): New.
Use it to factor various tests.
Check that Y_TAB_H is not issued.
2012-12-19 Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS: we plan to ditch MS-DOS/DJGPP support in future Automake versions
2012-12-19 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: typofixes in makefile comments
* maint.mk (git-upload-release): Here.
2012-12-19 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: remove extra verbosity from a maintainer rule
* maint.mk (git-upload-release): Here, by adding a forgotten
'@' recipe modifier.
2012-12-19 Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS: fix grammaro
2012-12-19 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: version bump after beta release
* configure.ac (AC_INIT): Bump version number to 1.12c, as per
HACKING suggestion.
* m4/amversion.m4: Likewise (autoupdated by "make bootstrap").
2012-12-19 Stefano Lattarini <stefano.lattarini@gmail.com>
release: beta release 1.12b (will become 1.13)
* configure.ac (AC_INIT): Bump version number to 1.12b.
* m4/amversion.m4: Likewise (auto-updated by "make bootstrap").
2012-12-19 Stefano Lattarini <stefano.lattarini@gmail.com>
cosmetics: comments fixlets in our Makefile
* Makefile.am: Prefer '#' comments over '##' ones where it makes sense.
Other minor style tweaks to comments about "updated later" variables.
2012-12-19 Stefano Lattarini <stefano.lattarini@gmail.com>
cosmetics: consistency changes in some make recipes
* Makefile.am (install-exec-hook, uninstall-hook): Don't use extra
quoting in variable assignments. More consistent use of whitespace.
2012-12-18 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid a spurious failure on NetBSD
* t/tags-pr12372.sh (configure.ac): AC_SUBST the LINK variable to a
dummy invocation, to avoid possible errors from make or the linker;
errors we do not care about in the least in this test.
(Makefile.am, sub/Makefile.am): Remove LINK definitions; simply
inherit that in configure.ac.
2012-12-18 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: re-enable some checks disabled by mistake ...
* t/subpkg-macrodir.sh: ... in this test. And fix some typos that would
have caused the newly re-enabled check to spuriously fail. Issue revealed
by the lack of '.PHONY' support in Solaris CCS make (yes, so we've been
actually *helped* by that make implementation once, at last. Scary ;-)
2012-12-18 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid a "grep -E" portability issue
As stated in the Autoconf manual, the empty alternative is not portable
with "grep -E". For example, while with GNU grep we have:
$ echo b | grep -E '(|a)b'; echo status = $?
b
status = 0
with Solaris 10 /usr/xpg4/bin/grep we have:
$ echo b | grep -E '(|a)b'; echo status = $?
1
status = 1
* t/silent-texi.sh: That was causing a spurious failure here. Fix it
by simply using '?' instead (as suggested by the Autoconf manual).
2012-12-18 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid a spurious failure due to a Clang bug
This version of clang:
clang version 3.2 (trunk 163574)
Target: powerpc64-unknown-linux-gnu
Thread model: posix
caused the test 't/ltcond2.sh' to spuriously fail due to what
appeared like a clang bug. Here is a part of the diagnostic (trimmed
down for better clarity):
clang: .../cfarm/llvm/lib/MC/MCAsmStreamer.cpp:338: \
virtual void {anonymous}::MCAsmStreamer::EmitLabel(llvm::MCSymbol*): \
Assertion `Symbol->isUndefined() && "Cannot define a symbol twice!"' \
failed.
...
7 clang 0x0000000012a459c4 llvm::AsmPrinter::EmitGlobalVariable\
(llvm::GlobalVariable const*) + 18446744073680468044
8 clang 0x0000000012a490a8 llvm::AsmPrinter::doFinalization\
(llvm::Module&) + 18446744073680481840
...
Stack dump:
0. Program arguments: .../opt/cfarm/clang-2012.09.10/bin/clang \
-cc1 -triple powerpc64-unknown-linux-gnu -S -disable-free \
...
1. <eof> parser at end of file
2. Code generation
3. Running pass 'Function Pass Manager' on module 'hello-generic.c'.
clang: error: unable to execute command: Aborted
clang: error: clang frontend command failed due to signal (use -v to \
see invocation)
clang version 3.2 (trunk 163574)
Target: powerpc64-unknown-linux-gnu
Thread model: posix
So tweak the affected test case to avoid triggering this bug. This is
the easiest way for us to keep the testsuite result clean and meaningful
on our main Clang test bed.
* t/ltcond2.sh: Prefer using "extern const char *" variables rather
than functions returning a statically allocated "const char *" variable.
2012-12-16 Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS: start preparing for the 1.13 release
* NEWS: Here. In particular, list (some of) the planned future
backward-incompatibilities that will take place in Automake 1.14.
2012-12-16 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
tests: typofix in the shebang line of 't/py-compile-destdir.sh'
HACKING: release process: fixlets about the announcement
maint: post-release minor version bump
release: stable release 1.12.5
tests: avoid errors due to underquoted third-party macros
maintcheck: also consider contrib tests for syntax checks
cosmetics: whitespace fixlets in syntax-checks.mk
maint: prefer $(MKDIR_P) over $(mkinstalldirs) in maintainer rules
2012-12-15 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: typofix in the shebang line of 't/py-compile-destdir.sh'
2012-12-15 Stefano Lattarini <stefano.lattarini@gmail.com>
HACKING: release process: fixlets about the announcement
* HACKING: The announcement should be generate *before* bumping
the version number to the next alpha number. Also, only an
abridged version of the announcement should be copied on the
Savannah news feed (a link to the complete announcement should
be linked from there, though).
2012-12-15 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: post-release minor version bump
* configure.ac (AC_INIT): Bump version number to 1.12.6a.
* m4/amversion.m4: Likewise (automatically regenerated by
"make bootstrap").
2012-12-15 Stefano Lattarini <stefano.lattarini@gmail.com>
release: stable release 1.12.5
* configure.ac (AC_INIT): Bump version number to 1.12.5.
* m4/amversion.m4: Likewise (auto-updated by "make bootstrap").
2012-12-14 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid errors due to underquoted third-party macros
* t/pkg-config-macros.sh: Call aclocal with the warnings in the
"syntax" category disabled.
2012-12-14 Stefano Lattarini <stefano.lattarini@gmail.com>
maintcheck: also consider contrib tests for syntax checks
* syntax-checks.mk (xtests): By listing them here.
2012-12-14 Stefano Lattarini <stefano.lattarini@gmail.com>
cosmetics: whitespace fixlets in syntax-checks.mk
2012-12-14 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: prefer $(MKDIR_P) over $(mkinstalldirs) in maintainer rules
* maint.mk (check-coverage-run, recheck-coverage-run): Here. This
is especially useful since $(mkinstalldirs) is no longer available
in Automake-NG.
2012-12-14 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
sync: update files from upstream with "make fetch"
gitignore: align with recent changes
fixup: add dummy rule for ChangeLog generation in Makefile.am
maint: no longer use AM_MAKEFLAGS in maintainer rules
maint: use more GNU make features in maintainer rules
maint: move maintainer make rules in maint.mk
2012-12-14 Stefano Lattarini <stefano.lattarini@gmail.com>
sync: update files from upstream with "make fetch"
* lib/gnupload: Update. See:
<http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00050.html>
2012-12-14 Stefano Lattarini <stefano.lattarini@gmail.com>
gitignore: align with recent changes
2012-12-14 Stefano Lattarini <stefano.lattarini@gmail.com>
fixup: add dummy rule for ChangeLog generation in Makefile.am
So that automake won't complain about the missing ChangeLog.
The real rule for ChangeLog generation is now in maint.mk (as
it is maintainer-specific).
* Makefile.am (ChangeLog): Dummy.
2012-12-14 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: no longer use AM_MAKEFLAGS in maintainer rules
They are not required with GNU make.
* maint.mk: Adjust accordingly.
2012-12-14 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: use more GNU make features in maintainer rules
* maint.mk: Here, throughout the file. Other minor cleanups
and refactorings while at it.
2012-12-14 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: move maintainer make rules in maint.mk
This is done for two reasons:
1. It will enable us to take advantage of more GNU make
features in our maintainer-specific recipes, if we
want to (and we probably will).
2. The Makefile.am won't have to be modified each time a
maintainer rule needs to be changed or tweaked; this
will prevent useless remaking of (in particular) the
't/testsuite-part.am' file.
* maint.mk: New, several recipes, rules and variables for
maintainer-specific tasks, extracted (with some tweaks)
from ...
* Makefile.am: ... this file.
(EXTRA_DIST): Add 'maint.mk'.
* GNUmakefile: Include 'maint.mk' after 'Makefile'.
2012-12-14 Stefano Lattarini <stefano.lattarini@gmail.com>
fixup: source 'test-init.sh', not './defs', in a test
* t/pkg-config-macros.sh: Here.
2012-12-14 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
docs: fixlet about xz compression levels and command line options
maint: more files excluded in 'update-copyright'
maint: adapt 'update-copyright' recipe to the new $(FETCHFILES) format
HACKING: update instructions to update the manuals at www.gnu.org
maint: add an explicative comment in Makefile
maint: factor out the name of the dir where web manuals are generated
maint: rename rules to build/upload web manuals
cosmetic: minor variable and rules reordering in Makefile.am
docs: build the web manuals for CVS in the builddir, not in the srcdir
release: automate uploading of web manuals in CVS
docs: AM_CFLAGS: remove reference to non-existing "more detailed" desc
tests: avoid two spurious failures on FreeBSD
tests: improve 'pkg-config' requirement
2012-12-14 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'improve-release-process' into maint
* improve-release-process:
HACKING: update instructions to update the manuals at www.gnu.org
maint: add an explicative comment in Makefile
maint: factor out the name of the dir where web manuals are generated
maint: rename rules to build/upload web manuals
cosmetic: minor variable and rules reordering in Makefile.am
docs: build the web manuals for CVS in the builddir, not in the srcdir
release: automate uploading of web manuals in CVS
docs: AM_CFLAGS: remove reference to non-existing "more detailed" desc
tests: avoid two spurious failures on FreeBSD
2012-12-14 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'pkgconfing-tests-requirement' into maint
* pkgconfing-tests-requirement:
tests: improve 'pkg-config' requirement
2012-12-14 Patrick Welche <prlw1@cam.ac.uk> (tiny change)
docs: fixlet about xz compression levels and command line options
* doc/automake.texi (The types of distributions): To display a
progress bar, xz takes "-v" for verbose.
2012-12-13 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: more files excluded in 'update-copyright'
This will avoid the following spurious warnings when
"make update-copyright" is run:
.autom4te.cfg: warning: copyright statement not found
.git-log-fix: warning: copyright statement not found
.gitattributes: warning: copyright statement not found
.gitignore: warning: copyright statement not found
AUTHORS: warning: copyright statement not found
THANKS: warning: copyright statement not found
contrib/README: warning: copyright statement not found
contrib/multilib/README: warning: copyright statement not found
doc/amhello/README: warning: copyright statement not found
lib/install-sh: warning: copyright statement not found
lib/mkinstalldirs: warning: copyright statement not found
m4/acdir/README: warning: copyright statement not found
t/README: warning: copyright statement not found
* Makefile.am (files_without_copyright): New.
(update-copyright): Use it when computing '$exclude_list'.
Also, skip any README file.
2012-12-13 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: adapt 'update-copyright' recipe to the new $(FETCHFILES) format
This is a fixup for commit v1.12.5-27-g71ce1b4 of 2012-12-09, "fetch:
improve, and reduce code duplication".
* Makefile.am (update-copyright): Adjust.
2012-12-13 Stefano Lattarini <stefano.lattarini@gmail.com>
HACKING: update instructions to update the manuals at www.gnu.org
2012-12-13 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: add an explicative comment in Makefile
* Makefile.am (web-manual-update): Here, about a slightly tricky
feature of rsync(1) used in the recipe.
2012-12-13 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: factor out the name of the dir where web manuals are generated
Just a minor refactoring to reduce duplication; no semantic change is
intended.
* Makefile.am (web_manual_dir): New.
(web-manual, web-manual-update, clean-web-manual): Use it.
2012-12-13 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: rename rules to build/upload web manuals
The new names are the same used by the similar-purpose rules provided by
the 'top/maint.mk' makefile in gnulib (as of commit v0.0-7741-g4a8c422).
No need to have gratuitous incompatibilities.
* Makefile.am (web-manuals): Rename ...
(web-manual): ... like this.
(upload-web-manuals): Rename ...
(web-manual-update): ... like this.
(clean-web-manuals): Rename ...
(clean-web-manual): ... like this.
2012-12-13 Stefano Lattarini <stefano.lattarini@gmail.com>
cosmetic: minor variable and rules reordering in Makefile.am
2012-12-13 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: build the web manuals for CVS in the builddir, not in the srcdir
We can do so using the '-I' option of the gendocs.sh script.
Inspired by the 'web-manual' rule in the 'top/maint.mk' file provided
by gnulib (as of commit v0.0-7741-g4a8c422) as customized by Bison in
its 'cfg.mk' file (as of commit v2.6.5-1007-gf5fceda).
* Makefile.am (web-manuals): Modify and simplify to take advantage
of gendocs.sh's '-I' option.
(upload-we-manuals): Accordingly adjust sanity checks and the rsync
invocation in the recipe.
(clean_texinfo_clutter_cmd): Delete this variable, it's no longer
required.
(clean-texinfo-clutter): Delete this phony target, it's no longer
required.
(clean-local): Don't depend on it.
* configure.ac: Invoke AC_PROG_LN_S, since we want to use $(LN_S)
in the new 'web-manuals' recipe.
2012-12-13 Stefano Lattarini <stefano.lattarini@gmail.com>
release: automate uploading of web manuals in CVS
This is partly inspired to the 'gnu-web-doc-update' script from
gnulib. Unfortunately, we can't use that script directly, because
as of now it assumes a build system integrated with gnulib.
* Makefile.am (upload-web-manuals): New .PHONY rule.
(RSYNC, CVS, CVSU, CVS_USER, WEBCVS_ROOT): New variables, used by
the new rule.
2012-12-13 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: AM_CFLAGS: remove reference to non-existing "more detailed" desc
* doc/automake.texi (Program variables): Here. Reported by NightStrike:
<http://lists.gnu.org/archive/html/automake/2012-12/msg00012.html>
2012-12-13 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid two spurious failures on FreeBSD
Due to the FreeBSD make bug that causes of the well-known automake
bug#7884, two of our bison-requiring tests were failing on FreeBSD.
To avoid this, simply skip the part of these tests affected by that
bug.
* t/yacc-bison-skeleton.sh: Here, using the 'yl_distcheck' function.
* t/yacc-bison-skeleton-cxx.sh: Likewise.
* t/yacc-nodist.sh: While at it, use the 'yl_distcheck' here
as well, instead of running "$MAKE distcheck" only when $MAKE
is GNU make.
2012-12-13 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: improve 'pkg-config' requirement
This improves (and unifies among different tests) the detection of
both the 'pkg-config' program and m4 macros provided by it; they are
needed in particular by tests on Vala support.
Before this, some Vala-related tests were failing spuriously when the
pkg-config program was available but the macros from pkg.m4 were not
made explicitly available in ACLOCAL_PATH. These tests were:
vala-mix vala-mix2 vala-parallel vala-vapi vala-vpath
See also similar commit 'v1.11-581-gb7d67d5' of 2011-12-22,
"tests: better handling of gettext and libtool requirements".
* t/ax/am-test-lib.sh (process_requirements): If a requirement
matches the 'pkg-config*' wildcard, try to make available to it
the pkg-config m4 macros, and skip it if it's not possible.
This is done by sourcing the 'get.sh' fragment generated by ...
* t/pkg-config-macros.sh: ... this new test, which looks in
advance for the 'pkg-config' program and the m4 macros that
comes with it.
* t/list-of-tests.mk: Add the new test.
* gen-testsuite-part (%deps_extractor): Tests requiring pkg-config
will need the m4 macros coming with it; so these tests should be
run after the 'pkg-config-macros.sh' test. Automatically generate
proper declarations for such dependencies.
* t/vala-header.sh: No need to explicitly check that the macro
PKG_CHECK_MODULES has been expanded by autoconf.
* t/vala-libs.sh: Likewise.
* t/vala-non-recursive-setup.sh: Likewise.
* t/vala-per-target-flags.sh: Likewise.
* t/vala-recursive-setup.sh: Likewise.
2012-12-09 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
docs: AM_CFLAGS: remove reference to non-existing "more detailed" desc
maintcheck: prefer '$(am__cd)' over plain 'cd'
fetch: improve, and reduce code duplication
docs: add rule to generate manuals for www.gnu.org
docs: copy the 'gendocs.sh' script from Texinfo CVS repository
sync: update files from upstream with "make fetch"
release: generate a stub for the release announcement
release: distinguish major and minor releases
tests: avoid two spurious failures on FreeBSD
2012-12-09 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'improve-release-process' into maint
* improve-release-process:
maintcheck: prefer '$(am__cd)' over plain 'cd'
fetch: improve, and reduce code duplication
docs: add rule to generate manuals for www.gnu.org
docs: copy the 'gendocs.sh' script from Texinfo CVS repository
sync: update files from upstream with "make fetch"
release: generate a stub for the release announcement
release: distinguish major and minor releases
2012-12-09 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: AM_CFLAGS: remove reference to non-existing "more detailed" desc
* doc/automake.texi (Program variables): Here. Reported by NightStrike:
<http://lists.gnu.org/archive/html/automake/2012-12/msg00012.html>
2012-12-09 Stefano Lattarini <stefano.lattarini@gmail.com>
maintcheck: prefer '$(am__cd)' over plain 'cd'
In a couple of rules in out own build system, as suggested by the
maintainer check 'sc_cd_relative_dir'.
* Makefile.am (web-manuals, clean_texinfo_clutter_cmd): Adjust.
2012-12-09 Stefano Lattarini <stefano.lattarini@gmail.com>
fetch: improve, and reduce code duplication
* Makefile.am (WGET_SV_CVS, WGET_SV_GIT_CF, WGET_SV_GIT_AC,
WGET_SV_GIT_GL): Delete.
(SV_CVS, SV_GIT_CF, SV_GIT_AC, SV_GIT_GL): New.
(fetch): Simplify and enhance.
(update-copyright): Adjust.
2012-12-09 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: add rule to generate manuals for www.gnu.org
Less clerical work to do by hand.
* Makefile.am (web-manuals): New rule.
(clean_texinfo_clutter): New macro.
* clean-web-manuals, clean-texinfo-clutter: New cleaning
rules.
(clean-local): Depend on them.
* .gitignore: Update.
* HACKING: Adjust instructions for generation of manuals.
2012-12-08 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: copy the 'gendocs.sh' script from Texinfo CVS repository
As well as the 'gendocs_template' file. And enhance the "make fetch"
target to keep them synced. It's better than having to fetch these
files by hand each time a release is to be made.
* Makefile.am (FETCHFILES): List 'gendocs.sh' and 'gendocs_template'.
(fetch): Fetch them, into 'lib/'.
(EXRA_DIST): Distribute them.
* HACKING: Adjust instructions for generation of manuals.
2012-12-08 Stefano Lattarini <stefano.lattarini@gmail.com>
sync: update files from upstream with "make fetch"
* lib/config.sub: Update.
2012-12-08 Stefano Lattarini <stefano.lattarini@gmail.com>
release: generate a stub for the release announcement
It's much better than having to write it my hand each time; after all,
most of it is either boilerplate or a cope of NEWS entries.
* Makefile.am (determine_release_type): Also set the shell variable
'$announcement_type' appropriately.
(print-release-type): Print the value of this new variable as well.
(announcement): New phony target, generate a files with the same name.
The recipe uses the shell variable '$announcement_type'.
(CLEANFILES): Clean it.
(PACKAGE_MAILINGLIST): New make macro, used when generating the
'announcement' file.
* HACKING: Explain how to take advantage of the new convenience
target.
* .gitignore: Ignore the 'announcement' file.
2012-12-08 Stefano Lattarini <stefano.lattarini@gmail.com>
release: distinguish major and minor releases
This is mostly a preparatory change, in view of future
improvements in our release process.
* Makefile.am (determine_release_type): Also distinguish
between major and minor releases, with the help of ...
(stable_major_version_rx, stable_minor_version_rx): ... these
new macros.
(stable_version_rx): Remove, it's obsolete now.
(version_rx): Rename ...
(base_version_rx): ... like this, and adjust.
(print-release-type): New target; helps in debugging the code
that determines the release type.
2012-11-30 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid two spurious failures on FreeBSD
Due to the FreeBSD make bug that causes of the well-known automake
bug#7884, two of our bison-requiring tests were failing on FreeBSD.
To avoid this, simply skip the part of these tests affected by that
bug.
* t/yacc-bison-skeleton.sh: Here, using the 'yl_distcheck' function.
* t/yacc-bison-skeleton-cxx.sh: Likewise.
* t/yacc-nodist.sh: While at it, use the 'yl_distcheck' here
as well, instead of running "$MAKE distcheck" only when $MAKE
is GNU make.
2012-11-27 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'depcomp-work'
* depcomp-work:
depcomp: remove 'icc' depmode, add 'tcc' one
news: update w.r.t. recent depcomp changes
tests: fix spurious failures with tcc
depcomp: improve comments about tcc support
depcomp: remove last relics of libtool 1.4 support
depcomp: remove an unused variable
depcomp: rewrite a sed invocation for less quoting
depcomp: whitespace fixes
depcomp: shell code style changes
depcomp: make some code more self-documenting
depcomp: less duplication between AIX and Tru64 modes
depcomp: avoid an extra fork when possible
depcomp: reduce code duplication
depcomp: don't rely on character ranges working as in C locale
depcomp: cosmetic fixlets to a comment
depcomp: safer quoting in variable expansion
depcomp: correctly propagate exit status in exit trap
depcomp: use "rmdir", not "rm -rf", to remove the empty lock directory
depcomp: remove useless quoting in variable definitions
depcomp: be more idiomatic in checking for zero exit statuses
2012-11-27 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
news: we'll remove AM_PROG_MKDIR in 1.14, not 1.13
tests: give few vala tests more significant names
vala tests: don't use the 'posix' profile, it's no longer supported
news: fixup: bug#8847 is fixed in 1.12.6, not in 1.12.5
news: document the fix for automake bug#10227
tests: fix a spurious testsuite failure on Solaris
python: make installed modules find by default on Debian and Ubuntu
2012-11-26 Stefano Lattarini <stefano.lattarini@gmail.com>
news: we'll remove AM_PROG_MKDIR in 1.14, not 1.13
See also commit v1.12.4-158-gdf23daf.
* NEWS (Future backward-incompatibilities): Adjust accordingly.
2012-11-26 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: give few vala tests more significant names
* t/vala.sh: Rename ...
* t/vala-grepping.sh: ... like this.
* t/vala2.sh: Rename ...
* t/vala-recursive-setup.sh: ... like this.
* t/vala3.sh: Rename ...
* t/vala-non-recursive-setup.sh: ... like this.
* t/vala4.sh: Rename ...
* t/vala-configure.sh: ... like this.
* t/vala5.sh: Rename ...
* t/vala-per-target-flags.sh: ... like this, and slightly
improve heading comments.
* t/list-of-tests.mk: Adjust.
2012-11-26 Stefano Lattarini <stefano.lattarini@gmail.com>
vala tests: don't use the 'posix' profile, it's no longer supported
Fixes automake bug#12934 a.k.a. bug#12522.
Some of automake's Vala tests used to rely on "valac --profile posix"
(which makes it not use glib). However, the posix profile was removed
in August 2012, and is no longer present in the GNOME 3.6.2 version
of valac (see commit ca020bf0 in the vala Git repository).
* t/vala-libs.sh: Adjust to avoid using the posix profile.
* t/vala-mix.sh: Likewise.
* t/vala-mix2.sh: Likewise.
* t/vala-parallel.sh: Likewise.
* t/vala-vapi.sh: Likewise.
* t/vala-vpath.sh: Likewise.
* NEWS: Update and adjust.
2012-11-26 Stefano Lattarini <stefano.lattarini@gmail.com>
news: fixup: bug#8847 is fixed in 1.12.6, not in 1.12.5
* NEWS (Bugs fixed in 1.12.5): So move it from here ...
(Bugs fixed in 1.12.6): ... to here.
2012-11-26 Stefano Lattarini <stefano.lattarini@gmail.com>
news: document the fix for automake bug#10227
This is a follow-up commit for v1.12.5-14-g1f113f6.
* NEWS: Update.
2012-11-26 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'python-fix-pr10227' into maint
* python-fix-pr10227:
python: make installed modules find by default on Debian and Ubuntu
2012-11-26 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix a spurious testsuite failure on Solaris
Reported in automake bug#11524.
* t/amhello-binpkg.sh: When non-GNU tar is in use, relax grepping of
"tar cvf ..." output a little more.
2012-11-25 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: give few aclocal tests more significant names
* t/dirlist-abspath.sh: Rename ...
* t/aclocal-dirlist-abspath.sh: ... like this.
* t/dirlist.sh: Rename ...
* t/aclocal-dirlist.sh: ... like this.
* t/dirlist2.sh: Rename ...
* t/aclocal-dirlist-globbing.sh: ... like this.
* t/list-of-tests.mk: Adjust.
2012-11-24 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: remove a redundant workaround for a testsuite weakness
* t/warnings-unknown.sh: Here, since we have improved our wrapper
scripts for aclocal and automake enough to make that workaround
unneeded.
2012-11-24 Stefano Lattarini <stefano.lattarini@gmail.com>
depcomp: remove 'icc' depmode, add 'tcc' one
According to the comments in the now-removed test 'depcomp5.test' (removed
by commit 'v1.11-1829-g5066c1b' of 2012-02-08, "tests: improve and rework
tests on dependency tracking") "icc 8.0 and greater understand gcc options,
so depmode is set to gcc". According to Wikipedia, the 8.0 version of the
Intel C compiler has been released in December 2003, that is, almost nine
yeas ago. So we can remove explicit support for icc 7.x from the depcomp
script.
Since our support for tcc has so far been relied on the icc depmode, we
must write a new explicit 'tcc' depmode. That is easy to do, since we can
rely on the simpler and better-specified format of tcc-specified makefiles;
for more info, see:
<http://lists.gnu.org/archive/html/automake/2012-10/msg00043.html>
* lib/depcomp (icc): Remove.
(tcc): New.
* NEWS: Update.
2012-11-24 Stefano Lattarini <stefano.lattarini@gmail.com>
news: update w.r.t. recent depcomp changes
* NEWS: Here.
2012-11-24 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix spurious failures with tcc
* t/depcomp8a.sh, t/depcomp8b.sh: Here, by avoiding initialization of
global 'extern' variables, preferring functions definitions instead.
2012-11-24 Stefano Lattarini <stefano.lattarini@gmail.com>
depcomp: improve comments about tcc support
* lib/depcomp (icc): Here. See also tcc commit 0394caf7 "Emit spaces
for -MD" and automake commit v1.11-768-gb96263 "depcomp: support tcc
(Tiny C Compiler)".
2012-11-24 Stefano Lattarini <stefano.lattarini@gmail.com>
depcomp: remove last relics of libtool 1.4 support
* lib/depcomp (tru64): Here.
2012-11-24 Stefano Lattarini <stefano.lattarini@gmail.com>
depcomp: remove an unused variable
* lib/depcomp ($alnum): This.
2012-11-24 Stefano Lattarini <stefano.lattarini@gmail.com>
depcomp: rewrite a sed invocation for less quoting
* lib/depcomp (dashmstdout): Here.
2012-11-24 Stefano Lattarini <stefano.lattarini@gmail.com>
depcomp: whitespace fixes
* lib/depcomp: We indent by two spaces, and without using tabs.
2012-11-24 Stefano Lattarini <stefano.lattarini@gmail.com>
depcomp: shell code style changes
* lib/depcomp: Here, in comments and line continuations.
2012-11-24 Stefano Lattarini <stefano.lattarini@gmail.com>
depcomp: make some code more self-documenting
* lib/depcomp (make_dummy_makefile): With the help of this function.
Use it throughout.
2012-11-24 Stefano Lattarini <stefano.lattarini@gmail.com>
depcomp: less duplication between AIX and Tru64 modes
* lib/depcomp (tru64, aix): In these entries of the big 'case'
switch, with the help of ...
(aix_post_process_depfile): ... this new function.
2012-11-24 Stefano Lattarini <stefano.lattarini@gmail.com>
depcomp: avoid an extra fork when possible
* lib/depcomp (set_dir_from): Here.
2012-11-24 Stefano Lattarini <stefano.lattarini@gmail.com>
depcomp: reduce code duplication
* lib/depcomp: Here, when we have to get the directory and basename
components of objects or source files; do so with the help of ...
(set_dir_from, set_base_from): ... these new shell functions.
2012-11-24 Stefano Lattarini <stefano.lattarini@gmail.com>
depcomp: don't rely on character ranges working as in C locale
* lib/depcomp (pgcc): Here.
Related reorganization, with the unconditional definition of ...
($upper, $lower, $digits, $alnum, $alpha): ... these shell variables.
2012-11-24 Stefano Lattarini <stefano.lattarini@gmail.com>
depcomp: cosmetic fixlets to a comment
* lib/depcomp (pgcc): Here, as that's unportable according to the
autoconf manual. In fact, there's no need to re-trap the signals
just before exiting, since at that point a signal would cause at
most a useless but harmless attempt to remove the
2012-11-24 Stefano Lattarini <stefano.lattarini@gmail.com>
depcomp: safer quoting in variable expansion
* lib/depcomp (pgcc): Here. Probably not needed, but since the
rest of the script seems to employ proper quoting, better to be
consistent.
2012-11-24 Stefano Lattarini <stefano.lattarini@gmail.com>
depcomp: correctly propagate exit status in exit trap
* lib/depcomp (pgcc): Here.
2012-11-24 Stefano Lattarini <stefano.lattarini@gmail.com>
depcomp: use "rmdir", not "rm -rf", to remove the empty lock directory
* lib/depcomp (pgcc): Here.
2012-11-24 Stefano Lattarini <stefano.lattarini@gmail.com>
depcomp: remove useless quoting in variable definitions
* lib/depcomp (pgcc): Here.
2012-11-24 Stefano Lattarini <stefano.lattarini@gmail.com>
depcomp: be more idiomatic in checking for zero exit statuses
* lib/depcomp: Prefer "if test $stat -ne 0; then ..." over the longer
"if test $stat -eq 0; then :; else ...".
2012-11-24 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: give some tests more significant names
* t/req.sh: Rename ...
* t/aclocal-req.sh: ... like this.
* t/reqd.sh: Rename ...
* t/add-missing-multiple.sh: ... like this.
* t/block.sh: Rename ...
* t/comment-block.sh: ... like this.
* t/list-of-tests.mk: Adjust.
2012-11-24 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
tests: fix a spurious failure with older flex versions
2012-11-24 Stefano Lattarini <stefano.lattarini@gmail.com>
python: make installed modules find by default on Debian and Ubuntu
This change fixes automake bug#10227.
The code used to get the python package directory was wrong for Python 3,
at least on Debian and Ubuntu distributions. In the case the installation
was using the default prefix "/usr/local", python modules were incorrectly
installed in the directory
/usr/local/lib/python3/dist-packages
(which is *not* searched by default), rather than in a directory like
/usr/local/lib/python3.x/dist-packages
which is searched by default.
* m4/python.m4 (AM_PATH_PYTHON): Try to use the 'sysconfig' module if
possible, for better interactions with python 3.x.
Helped-by: Reuben Thomas <rrt@sc3d.org>
Helped-by: Roumen Petrov <bugtrack@roumenpetrov.info>
2012-11-24 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix a spurious failure with older flex versions
See automake bug#11524 and bug#12836.
* t/lex-header.sh: Here, we use flex option '--header-file',
but that option is not supported by some older flex versions.
Simply skip this test if such an old flex version is detected.
2012-11-23 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid a failure due to m4 builtin 'sinclude' in package name
Even with Autoconf 2.69, AC_INIT is not very robust when to package
names that contain some selected m4 builtins; for example:
$ echo 'AC_INIT([sinclude], [1.0])' | autoconf -o/dev/null -
stdin:1: warning: file `' included several times
$ echo 'AC_INIT([dnl], [1.0])' | autoconf -o/dev/null -
/usr/bin/m4:stdin:1: excess arguments to builtin `m4_define' ignored
autom4te: /usr/bin/m4 failed with exit status: 1
Reference:
<http://lists.gnu.org/archive/html/bug-autoconf/2012-11/msg00005.html>
* t/aclocal-m4-sinclude.sh (configure.ac): Use 'm4sinclude' as package
name in the AC_INIT invocation, to avoid tickling the just-described
bug.
2012-11-21 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
tests: fix a spurious failure when $PYTHON is in the environment
python tests: support PEP-3147 installation layout
python: uninstall cater to PEP-3147
tests: improve a comment
tests: honour $PYTHON override
tests: typofix in message
news: document fix for bug#8847 (PEP-3147, __pycache__)
python: improve support for modern python (CPython 3.2 and PyPy)
2012-11-21 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'python-pep-3147' into maint
* python-pep-3147:
tests: fix a spurious failure when $PYTHON is in the environment
python tests: support PEP-3147 installation layout
python: uninstall cater to PEP-3147
tests: improve a comment
tests: honour $PYTHON override
tests: typofix in message
news: document fix for bug#8847 (PEP-3147, __pycache__)
python: improve support for modern python (CPython 3.2 and PyPy)
2012-11-19 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix a spurious failure when $PYTHON is in the environment
* t/python11.sh: This test doesn't interact well with user-overrides of
$PYTHON; and, given its particular nature, neither should it be expected
to honour that override. Just unset that $PYTHON variable and live
happy.
2012-11-19 Stefano Lattarini <stefano.lattarini@gmail.com>
python tests: support PEP-3147 installation layout
This fixes several spurious testsuite failures with python >= 3.2,
introduced by recent commit v1.12.4-43-ge0e99ed, "python: improve
support for modern python (CPython 3.2 and PyPy)".
* t/ax/am-test-lib.sh (python_has_pep3147, pyc_location, py_installed):
New functions.
($am_pep3147_tag): New variable.
* t/py-compile-basic2.sh: Deleted, too difficult to adapt for the
gain it would offer; move the still relevant parts ...
* t/py-compile-basic.sh: ... here. Adapt and adjust the rest of
the test as well.
* t/nobase-python.sh: Adapt and adjust.
* t/py-compile-basedir.sh: Likewise.
* t/py-compile-destdir.sh: Likewise.
* t/py-compile-option-terminate.sh: Likewise.
* t/python-pr10995.sh: Likewise.
* t/python-virtualenv.sh: Likewise.
* t/python10.sh: Likewise.
* t/python12.sh: Likewise.
* t/python3.sh: Likewise.
* t/list-of-tests.mk: Adjust list of tests.
2012-11-19 Stefano Lattarini <stefano.lattarini@gmail.com>
python: uninstall cater to PEP-3147
After recent commit commit v1.12.4-43-ge0e99ed, "python: improve
support for modern python (CPython 3.2 and PyPy)", the python install
rules have been made smart enough to install "*.pyc" byte-compiled
files according to PEP-3147 with modern (post-3.2) pythons. However,
the uninstall rules hadn't been updated accordingly, causing leftover
files to remain around after "make uninstall", as well as failures in
"make distcheck".
* lib/am/python.am (am__pep3147_tweak): New internal macro, used
in ...
(uninstall-%DIR%PYTHON): ... the recipe of this target, which has
been adjusted to cater to PEP-3147
2012-11-19 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: more explicative names for few aclocal tests
* t/aclocal3.sh: Rename ...
* t/aclocal-missing-macros.sh: ... like this.
* t/aclocal4.sh: Rename ...
* t/aclocal-deps.sh: ... like this.
* t/aclocal5.sh: Rename ...
* t/aclocal-deps-subdir.sh: ... like this.
* t/aclocal6.sh: Rename ...
* t/aclocal-remake-misc.sh: ... like this.
* t/aclocal7.sh: Rename ...
* t/aclocal-no-force.sh: ... like this.
* t/acloca8.sh: Rename ...
* t/aclocal-no-unused-required.sh: ... like this.
* t/acloca9.sh: Rename ...
* t/aclocal-I-order-1.sh: ... like this.
* t/acloca11.sh: Rename ...
* t/aclocal-I-order-2.sh: ... like this, and update heading comments.
* t/acloca12.sh: Rename ...
* t/aclocal-I-order-3.sh: ... like this, and update heading comments.
* t/acloca13.sh: Rename ...
* t/aclocal-m4-sinclude.sh: ... like this, and update heading comments.
* t/acloca14.sh: Rename ...
* t/aclocal-m4-include-are-scanned.sh: ... like this.
* t/acloca14.sh: Rename ...
* t/aclocal-m4-include-are-scanned-aclocal-amflags.sh: ... like this,
and update heading comments.
* t/acloca15.sh: Rename ...
* t/aclocal-scan-configure-ac-pr319.sh: ... like this.
* t/acloca16.sh: Rename ...
* t/aclocal-no-extra-scan.sh: ... like this, and enhance slightly.
* t/acloca18.sh: Rename ...
* t/aclocal-serial.sh: ... like this.
* t/acloca19.sh: Rename ...
* t/aclocal-pr450.sh: ... like this.
* t/acloca20.sh: Rename ...
* t/aclocal-no-symlinked-overwrite.sh: ... like this.
* t/acloca21.sh: Rename ...
* t/aclocal-comments-respected.sh: ... like this.
* t/acloca22.sh: Rename ...
* t/aclocal-deleted-header.sh: ... like this.
* t/acloca22b.sh: Rename ...
* t/aclocal-deleted-header-aclocal-amflags.sh: ... like this.
* t/acloca23.sh: Rename ...
* t/aclocal-underquoted-defun.sh: ... like this.
* t/list-of-tests.mk: Update.
2012-11-18 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: improve coverage on Texinfo + silent rules
* t/silent-texi.sh: Here, by basic importing the version of the
test that is the 'ng/master' branch (that of Automake-NG), plus
a minor tweak to avoid a spurious failure with NetBSD make.
2012-11-17 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
build: fix rebuild rules for Makefile.in and aclocal.m4
hacking: release procedure: fix order of some steps
maint: post-release minor version bump
release: stable release 1.12.5
2012-11-17 Stefano Lattarini <stefano.lattarini@gmail.com>
build: fix rebuild rules for Makefile.in and aclocal.m4
They have been broken after our removal of the 'perllibdir' hack
in yesterday's commit v1.12.4-45-g4872dfe.
* configure.ac: Rather then redefining AUTOMAKE and ACLOCAL to
explicitly override the perllibdir, the acdir and the libdir, use
the ready-made t/wrap/{aclocal,automake}-$APIVERSION scripts.
* NEWS: Document the fix.
2012-11-17 Stefano Lattarini <stefano.lattarini@gmail.com>
hacking: release procedure: fix order of some steps
* HACKING (Release procedure): The manuals should be rebuilt and
uploaded at at www.gnu.org *before* bumping the version number to
the next alpha release.
2012-11-17 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: post-release minor version bump
* configure.ac (AC_INIT): Bump version number to 1.12.5a.
* m4/amversion.m4: Likewise (automatically regenerated by
"make bootstrap").
2012-11-17 Stefano Lattarini <stefano.lattarini@gmail.com>
release: stable release 1.12.5
* configure.ac (AC_INIT): Bump version number to 1.12.5.
* m4/amversion.m4: Likewise (auto-updated by "make bootstrap").
2012-11-16 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
maintcheck: avoid failures, sync with 'ng/master' more
maintcheck: remove 'sc_perl_syntax'
sync: update files from upstream with "make fetch"
maint: get rid of $perllibdir environment variable hack
configure: respect the '-q' option better
cosmetics: de-tabify configure.ac
2012-11-16 Stefano Lattarini <stefano.lattarini@gmail.com>
maintcheck: avoid failures, sync with 'ng/master' more
* syntax-checks.mk (sc_diff_aclocal_in_aclocal,
sc_diff_automake_in_automake): Rename ...
(sc_diff_aclocal, sc_diff_automake): ... respectively to these, rewrite
to use static pattern rules and 'diff -u' instead of bare 'diff'. This
makes the rules more robust in the face of edits to 'automake.in' and
'aclocal.in', and get them in sync with the corresponding checks in the
'ng/master' branch.
(syntax_check_rules): Adjust.
2012-11-16 Stefano Lattarini <stefano.lattarini@gmail.com>
maintcheck: remove 'sc_perl_syntax'
It is quite useless, since a "make bootstrap" or "make check" would
immediately catch a breakage in the 'aclocal' or 'automake' scripts
anyway. In addition, the recent removal of the 'perllibdir' environment
variable hack has broken this check.
* syntax-checks.mk (sc_perl_syntax): Remove.
(syntax_check_rules): No longer list it.
2012-11-16 Stefano Lattarini <stefano.lattarini@gmail.com>
sync: update files from upstream with "make fetch"
* lib/texinfo.tex, lib/config.sub: Update.
2012-11-16 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: get rid of $perllibdir environment variable hack
That was needed when the automake-$APIVERSION and aclocal-$APIVERSION
wrapper scripts used by the testsuite were shell script, rather than
perl scripts acting as a thin layers.
* aclocal.in (BEGIN): Update @INC based on the contents of the array
'@Aclocal::perl_libdirs', rather than of the environment variable
'perllibdir'.
* t/wrap/aclocal.in (BEGIN): Initialize '@Aclocal::perl_libdirs'
rather than $ENV{'perllibdir'}.
* automake.in (BEGIN): Update @INC based on the contents of the array
'@Automake::perl_libdirs', rather than of the environment variable
'perllibdir'.
* t/wrap/automake.in (BEGIN): Initialize '@Automake::perl_libdirs'
rather than $ENV{'perllibdir'}.
* NEWS: Update.
2012-11-16 Stefano Lattarini <stefano.lattarini@gmail.com>
configure: respect the '-q' option better
* configure.ac: Here, by avoiding to print the warnings about
using a non-stable Automake version if the '$silent' variable
is set to "yes".
2012-11-16 Stefano Lattarini <stefano.lattarini@gmail.com>
cosmetics: de-tabify configure.ac
2012-11-15 Stefano Lattarini <stefano.lattarini@gmail.com>
fixup: Automake installation works again
By renaming 'dist_automake_ac_DATA' to 'nobase_dist_automake_ac_DATA' in
a recent patch, we have broken the Automake installation, since m4 files
that were expected to be installed in '${prefix}/aclocal-${APIVERSION}'
are now being installed in '${prefix}/aclocal-${APIVERSION}/m4' instead.
Fix this mess.
* Makefile.am (nobase_dist_automake_ac_DATA): Rename ...
(dist_automake_ac_DATA): ... like this. And move
'm4/internal/ac-config-macro-dirs.m4' ...
(dist_automake_internal_ac_DATA): ... here.
(automake_internal_acdir): New, simply defined to
'$(automake_acdir)/internal'.
2012-11-15 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'ac-config-macro-dirs'
* ac-config-macro-dirs:
tests: AC_CONFIG_MACRO_DIRS: ignore inevitable failures with old autoconf
aclocal: AC_CONFIG_MACRO_DIRS: work around autom4te option parsing bugs
aclocal: tracing AC_CONFIG_MACRO_DIRS can work with older autoconf as well
2012-11-15 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: AC_CONFIG_MACRO_DIRS: ignore inevitable failures with old autoconf
When "older" version of autoconf are used (that is, those before commit
v2.69-44-g1ed0548), we have no sane way to prevent the autom4te invocation
issued from aclocal to possibly display warnings "MACRO m4_require'd but
not m4_defun'd". That's not a big deal, because that just means that
people using pre-2.70 autoconf with cutting-edge automake will see few
spurious warnings, but the actual semantics will remain correct.
However, this blemish was causing a couple of annoying testsuite failures.
Solve this by simply skipping the affected tests when older (pre-2.70)
autoconf versions are used.
* t/aclocl-macrodir.tap ("AC_CONFIG_MACRO_DIR interaction with
AC_REQUIRE"): Skip when older autoconf is in use.
* t/aclocl-macrodirs.tap ("AC_CONFIG_MACRO_DIR interaction with
AC_REQUIRE"): Likewise.
2012-11-15 Stefano Lattarini <stefano.lattarini@gmail.com>
recursion: remove _AM_EXTRA_RECURSIVE_TARGETS indirection
Since automake automatically smashes extra whitespace and newlines
in the arguments of the macros it traces, we can remove the extra
indirection with the _AM_EXTRA_RECURSIVE_TARGETS. This doesn't
truly simplify the existing code, but make it slightly easier to
understand anyway, since leave it with one less indirection.
* automake.in: Trace AM_EXTRA_RECURSIVE_TARGETS directly, rather
than tracing _AM_EXTRA_RECURSIVE_TARGETS. Remove trailing and
leading empty fields in the extracted arguments.
* m4/extra-recurs.m4 (_AM_EXTRA_RECURSIVE_TARGETS): Remove, no longer
needed.
(AM_EXTRA_RECURSIVE_TARGETS): Adjust by making it a simple no-op.
2012-11-15 Stefano Lattarini <stefano.lattarini@gmail.com>
aclocal: AC_CONFIG_MACRO_DIRS: work around autom4te option parsing bugs
The autom4te program coming with autoconf 2.68 and earlier had a bug
which caused the "-" command line argument (with which we tell it to
read some input from from standard input) to aways be pushed at the
*end* of the command line, regardless of where the user specified it
(that bug was fixed by autoconf commit 'v2.68-120-gf4be358', "getopt:
new Autom4te::Getopt module").
This broken semantics conflict with our usage in aclocal, where we
need to pass some input to the invoked autom4te program early, and
have so far been using the stdin to do so. Now we start using an
external file instead.
* m4/internal/ac-config-macro-dirs.m4: New file, contain a fallback
definition of the AC_CONFIG_MACRO_DIRS macro for older autoconf
releases.
* aclocal.in (trace_used_macros): When invoking autom4te, use that
file instead of "abusing" standard input.
* Makefile.am (dist_automake_ac_DATA): Rename ...
(nobase_dist_automake_ac_DATA): ... like this.
Add 'm4/internal/ac-config-macro-dirs.m4' to it.
* t/aclocal-acdir.sh: Adjust to avoid spurious failures.
Helped-by: Eric Blake <eblake@redhat.com>
2012-11-15 Stefano Lattarini <stefano.lattarini@gmail.com>
aclocal: tracing AC_CONFIG_MACRO_DIRS can work with older autoconf as well
This will allow our users to interact also with pre-2.70 autoconf without
need for the user to add ACLOCAL_AMFLAGS in Makefile.am. For example,
before this change, in order to have aclocal look for macros in 'm4/dir1'
and 'm4/dir2' also when (say) autoconf 2.69 was used, our users would
have had to add something like:
ACLOCAL_AMFLAGS = -I m4/dir1 -I m4/dir2
in Makefile.am, in addition to the
AC_CONFIG_MACRO_DIRS([m4/dir1 m4/dir2])
in configure.ac. Now, the AC_CONFIG_MACRO_DIRS call is enough.
See the long-winded discussion on automake bug#12845 for more details:
<http://debbugs.gnu.org/cgi/bugreport.cgi?bug=12845>
* aclocal.in ($ac_config_macro_dirs_fallback): New global variable,
contains m4 code to issue a fallback definition of AC_CONFIG_MACRO_DIRS
as an alias for the private macro _AM_CONFIG_MACRO_DIRS.
(trace_used_macros): Handle and trace that macro. Do some code
reorganization and fix related botched indentation while at it.
(write_aclocal): Output '$ac_config_macro_dirs_fallback' early in
the generated aclocal.m4.
* t/aclocal-macrodirs.tap: Run unconditionally, even with older
autoconf.
* t/subpkg-macrodir.sh: Likewise.
* doc/automake.texi: Document only AC_CONFIG_MACRO_DIRS, rather
than AC_CONFIG_MACRO_DIR.
2012-11-14 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'ac-config-macro-dirs'
* ac-config-macro-dirs:
news: we trace AC_CONFIG_MACRO_DIRS
aclocal: trace AC_CONFIG_MACRO_DIR_TRACE
aclocal: avoid spurious warnings from autom4te with AC_CONFIG_MACRO_DIRS
coverage: expose a bug in aclocal (spurious warnings)
aclocal: smash newlines in arguments of traced macros
tests: better coverage for AC_CONFIG_MACRO_DIRS
aclocal: diagnose non-existing directories in AC_CONFIG_MACRO_DIRS better
aclocal: multiple local m4 macro dirs with AC_CONFIG_MACRO_DIRS
2012-11-11 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: improve a comment
* t/ax/am-test-lib.sh (require_tool): Here, about python support
for '--version' option.
2012-11-11 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: honour $PYTHON override
* t/ax/am-test-lib.sh (require_tool): Here.
* t/python-too-old.sh: And here.
* t/python-vars.sh: And here.
* t/python-virtualenv.sh: And here. Also add some sanity
checks while at it.
2012-11-11 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: typofix in message
* t/python-virtualenv.sh: Here.
2012-11-11 Stefano Lattarini <stefano.lattarini@gmail.com>
news: document fix for bug#8847 (PEP-3147, __pycache__)
* NEWS (Bugs fixed in 1.12.5): Here.
2012-11-11 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> (tiny change)
python: improve support for modern python (CPython 3.2 and PyPy)
This fixes automake bug#8847.
* m4/python.m4 (AM_PATH_PYTHON): Add python3.3 to
_AM_PYTHON_INTERPRETER_LIST.
* lib/py-compile: Fix compiled filenames for PEP-3147, currently
implemented in CPython 3.2 and newer. Do not create '.pyo' files
for PyPy.
2012-11-10 Stefano Lattarini <stefano.lattarini@gmail.com>
news: we trace AC_CONFIG_MACRO_DIRS
* NEWS (New in 1.13): Update accordingly.
2012-11-10 Stefano Lattarini <stefano.lattarini@gmail.com>
news: improve wording
* NEWS (New in 1.13): Prefer "no longer" over "not anymore",
wherever possible. Related re-wrapping of text.
2012-11-10 Stefano Lattarini <stefano.lattarini@gmail.com>
aclocal: trace AC_CONFIG_MACRO_DIR_TRACE
This is now the documented way, and indeed the only correct way, to
support AC_CONFIG_MACRO_DIR and AC_CONFIG_MACRO_DIRS in third-party
tools. See autoconf commit v2.69-45-g5269030 of 2012-11-09,
"AC_CONFIG_MACRO_DIRS: improve tracing and add sanity checks".
* aclocal.in (trace_used_macros): Trace 'AC_CONFIG_MACRO_DIR_TRACE'
rather than 'AC_CONFIG_MACRO_DIRS'. We still have to trace
'AC_CONFIG_MACRO_DIR' explicitly though, for compatibility with
Autoconf versions before 2.70.
* t/aclocal-macrodirs.tap: Enhance w.r.t. precedence of arguments
in one and several AC_CONFIG_MACRO_DIRS calls.
2012-11-10 Stefano Lattarini <stefano.lattarini@gmail.com>
aclocal: avoid spurious warnings from autom4te with AC_CONFIG_MACRO_DIRS
When some macro expanded in configure.ac calls AC_REQUIRE on another
macro that is defined in one of the local m4 macro dirs specified
with AC_CONFIG_MACRO_DIRS, aclocal prints spurious warnings like:
configure.ac:4: warning: MY_BAR is m4_require'd but not m4_defun'd
configure.ac:3: MY_FOO is expanded from...
Such warnings come from autom4te, and are due to the fact that the
*first* autom4te invocation issued by aclocal is not yet able to
"see" the m4 macro definitions in the local m4 dirs (because they
can be looked for only after the AC_CONFIG_MACRO_DIRS call has been
traced, and tracing it requires running autom4te).
To allow us to work around this issue, autom4te has introduced a new
"witness" macro 'm4_require_silent_probe', that, when defined, allows
us to silence that particular kind of warnings (and only it).
Reported by Nick Bowler; see point (4) of:
<http://lists.gnu.org/archive/html/autoconf-patches/2012-11/msg00000.html>
* aclocal.in (trace_used_macros): Pre-define the special macro
'm4_require_silent_probe' when invoking autom4te.
* t/aclocal-macrodirs.tap ("AC_CONFIG_MACRO_DIR interaction with
AC_REQUIRE"): This test passes now: remove the "TODO" directive.
* t/aclocal-macrodir.tap ("AC_CONFIG_MACRO_DIRS interaction with
AC_REQUIRE"): Likewise.
* t/acloca17.sh: Remove.
* t/list-of-tests.mk: Adjust.
2012-11-10 Stefano Lattarini <stefano.lattarini@gmail.com>
coverage: expose a bug in aclocal (spurious warnings)
When some macro expanded in configure.ac calls AC_REQUIRE on another
macro that is defined in one of the local m4 macro dirs specified
with one of the macros AC_CONFIG_MACRO_DIRS or AC_CONFIG_MACRO_DIR,
aclocal prints spurious warnings like:
configure.ac:4: warning: MY_BAR is m4_require'd but not m4_defun'd
configure.ac:3: MY_FOO is expanded from...
Expose this weakness in our testsuite.
Reported by Nick Bowler; see point (4) of:
<http://lists.gnu.org/archive/html/autoconf-patches/2012-11/msg00000.html>
* t/aclocal-macrodir.tap ("AC_CONFIG_MACRO_DIR interaction with
AC_REQUIRE"): New test, still xfailing.
* t/aclocal-macrodirs.tap ("AC_CONFIG_MACRO_DIRS interaction with
AC_REQUIRE"): Likewise.
2012-11-10 Stefano Lattarini <stefano.lattarini@gmail.com>
aclocal: smash newlines in arguments of traced macros
This change fixes the existing issues with AC_CONFIG_MACRO_DIRS
containing newlines:
<http://lists.gnu.org/archive/html/autoconf-patches/2012-11/msg00000.html>
Likely, it will also allow a less involved implementation of the
AM_EXTRA_RECURSIVE_TARGETS macro (but that is left for potential
follow-up patches).
* aclocal.in (trace_used_macros): When calling autom4te, pass its
'--trace' option an argument containing '${::}%' rather than '$1'.
According to the autoconf manual (as of version 2.69), that will expand
to the concatenation, with the '::' string, of all the arguments passed
to a macro, with all newline characters in such arguments smashed.
Related adjustments when handling the macro AC_CONFIG_MACRO_DIRS, to
ensure leading whitespace in its argument are handled correctly.
* t/aclocal-macrodirs.tap ("AC_CONFIG_MACRO_DIRS: extra whitespace"):
No longer declare it as an xfailing test.
2012-11-10 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: better coverage for AC_CONFIG_MACRO_DIRS
Suggested by a report from Nick Bowler:
<http://lists.gnu.org/archive/html/autoconf-patches/2012-11/msg00000.html>
* t/aclocal-macrodirs.tap: Enhance to check use of extra whitespaces
and newline characters in the arguments to AC_CONFIG_MACRO_DIRS. This
test currently fails, so mark it as "TODO". While at it, throw in other
minor edits and enhancements.
2012-11-10 Stefano Lattarini <stefano.lattarini@gmail.com>
aclocal: diagnose non-existing directories in AC_CONFIG_MACRO_DIRS better
This new implementation ensures that any directory (possibly excluding
the first one, if the '--install' option is used) that is declared with
AC_CONFIG_MACRO_DIRS and that is non-existent will cause an error from
aclocal.
* aclocal.in (scan_m4_dirs): Add a new argument, telling whether it's OK
for the scanned directory to be non-existing. Adjust the implementation
accordingly.
($first_user_m4dir): Remove, no more needed.
(scan_m4_files): Update 'scan_m4_dirs' invocations so that aclocal will
not complain if the first user macro directory is non-existing and the
'--install' option is given: such directory will be created later by
aclocal itself.
* t/aclocal-macrodir.tap: Do not mark the last test as TODO anymore;
it now passes. Make stricter by ensuring a non-existing directory in
AC_CONFIG_MACRO_DIRS causes an hard error, not a warning.
2012-11-10 Stefano Lattarini <stefano.lattarini@gmail.com>
aclocal: multiple local m4 macro dirs with AC_CONFIG_MACRO_DIRS
A new macro 'AC_CONFIG_MACRO_DIRS' has been recently introduced in
autoconf (and is expected to appear in the autoconf 2.70 release),
allowing us to declare several local m4 macro directories for a
package.
It can be done either passing several arguments to a single invocation:
AC_CONFIG_MACRO_DIRS([dir1 dir2])
or issuing more invocations:
AC_CONFIG_MACRO_DIRS([dir1])
AC_CONFIG_MACRO_DIRS([dir2])
or a combination of the two:
AC_CONFIG_MACRO_DIRS([dir1 dir2])
AC_CONFIG_MACRO_DIRS([dir3])
This will allow projects to use several m4 macro local dirs, without the
need to use ACLOCAL_AMFLAGS (which we want to make obsolete and finally
remove). This is especially important for projects that are used as
nested subpackages of larger projects.
For more information and rationales, refer to these past discussions:
<http://lists.gnu.org/archive/html/autoconf/2011-12/msg00037.html>
<http://lists.gnu.org/archive/html/automake-patches/2012-07/msg00010.html>
<http://lists.gnu.org/archive/html/autoconf-patches/2012-07/msg00000.html>
<http://lists.gnu.org/archive/html/autoconf-patches/2012-07/msg00012.html>
<http://thread.gmane.org/gmane.comp.sysutils.autoconf.patches/8037/>
<http://thread.gmane.org/gmane.comp.sysutils.autoconf.patches/8087>
<http://thread.gmane.org/gmane.comp.sysutils.automake.patches/8956>
as well as to Automake commit v1.12.1-165-gcd1a9cc of 2012-07-03,
"aclocal: deprecate ACLOCAL_AMFLAGS, trace AC_CONFIG_MACRO_DIR instead",
autoconf commit v2.69-42-gd73770f of 2012-10-17, "AC_CONFIG_MACRO_DIRS:
new macro, mostly for aclocal".
* aclocal.in ($ac_config_macro_dir): Turn this global scalar it into ...
(@ac_config_macro_dirs): ... this global array.
(trace_used_macros): Update '@ac_config_macro_dirs' instead of
re-defining '$ac_config_macro_dir'. Cater to calls the now-preferred
macro 'AC_CONFIG_MACRO_DIRS' in addition to the "obsolescent" one
AC_CONFIG_MACRO_DIR.
(main loop): Append '@ac_config_macro_dirs', not '$ac_config_macro_dir',
to '@user_includes'.
* t/subpkg-macrodir.sh: New test.
* t/aclocal-macrodirs.tap: Likewise.
* t/list-of-tests.mk: Add them.
* t/aclocal-macrodir.tap: Adjust and extend a little to keep it more in
sync with 'aclocal-macrodirs.tap'.
2012-11-07 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: remove an obsolete comment
* t/silent-yacc.sh: Here.
2012-11-07 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: remove mostly-redundant tests on silent rules
We used to have several couples of tests named like 'silent-foo-gcc.sh'
and 'silent-foo-generic.sh'. Differently from what the names suggest,
the first test in such a couple (that is, "silent-foo-gcc.sh") was not
meant to check specific GCC-related features, but rather to check how
the silent rules behave in combination with automatic dependency tracking
when the 'gcc' depmode (that targets GCC versions before the 3.x and 4.x
release series) is forced.
Such depmode forcing was done exclusively to cover the code paths in
'lib/am/depend2.am' that actually invoke the 'depcomp' script, rather
than using the inlined, GCC-specific compiler invocation (the so-called
"fastdep" mode), which is the default with modern GCC or with other
modern compilers that can emulate the GCC command-line interface (e.g.,
clang 3.0).
But whenever we run the silent-*-generic.sh" tests with other supported
compilers which have an associated depmode different from 'gcc3', these
same "non-fastdep" code paths are covered, since in those tests we run
./configure with the '--enable-dependency-tracking' option, which causes
slower depmodes not to be rejected. Examples of such compilers are the
Sun C and C++ compilers (at least since version 5.9, a.k.a. Sun Studio
12.1), and the Tiny C Compiler (from version 0.9.26); and I run the
Automake testsuite quite regularly with those compilers.
So, the "silent-*-gcc.sh" test cases don't offer any real coverage
enhancements, while still using testsuite runtime and causing some
(admittedly minor, but still annoying) synchronization headaches with
the sister tests "silent-foo-general.sh" tests. So let's just remove
these "silent-*-gcc.sh" tests.
* t/silent-c-gcc.sh: Remove.
* t/silent-cxx-gcc.sh: Likewise.
* t/silent-lt-gcc.sh: Likewise.
* t/silent-many-gcc.sh: Likewise.
* t/silent-c-generic.sh: Rename ...
* t/silent-c.sh: ... like this, and adjust heading comments.
* t/silent-cxx-generic.sh: Rename ...
* t/silent-cxx.sh: ... like this, and adjust heading comments.
* t/silent-lt-generic.sh: Rename ...
* t/silent-lt.sh: ... like this, and adjust heading comments.
* t/silent-many-generic.sh: Rename ...
* t/silent-many-languages.sh: ... like this, and adjust heading
comments.
* t/list-of-tests.mk: Adjust.
2012-11-07 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: enhance coverage on silent-rules and C compilation rules a little
* t/silent-c-generic.sh: Here, by trying them also with automatic
dependency tracking explicitly disabled.
2012-11-07 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
tests: new variable $am_testaux_builddir
tests: rename $am_testauxdir -> $am_testaux_srcdir
2012-11-07 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: rename few tests (on silent-rules support)
Either to more informative names, or to names more consistent with the
ones of similar/related tests.
* t/silent.sh: Rename ...
* t/silent-c-generic.sh: ... like this, and adjust heading comments.
* t/silent2.sh: Rename ...
* t/silent-c-gcc.sh: ... like this, and adjust heading comments.
* t/silent3.sh: Rename ...
* t/silent-lt-generic.sh: ... like this, and adjust heading comments.
* t/silent4.sh: Rename ...
* t/silent-lt-gcc.sh: ... like this, and adjust heading comments.
* t/silentcxx.sh: Rename ...
* t/silent-cxx-generic.sh: ... like this, and adjust heading comments.
* t/silentcxx-gcc.sh: Rename ...
* t/silent-cxx-gcc.sh: ... like this, and adjust heading comments.
* t/silentf77.sh: Rename ...
* t/silent-f77.sh: ... like this, and adjust heading comments.
* t/silentf90.sh: Rename ...
* t/silent-f90.sh: ... like this, and adjust heading comments.
* t/silent7.sh: Rename ...
* t/silent-gen.sh: ... like this, and adjust heading comments.
* t/silent6.sh: Rename ...
* t/silent-custom.sh: ... like this.
* t/silent8.sh: Rename ...
* t/silent-texi.sh: ... like this.
* t/list-of-tests.mk: Adjust.
2012-11-07 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: merge two tests on silent-rules with libtool
This helps to reduce code duplication, and also to (marginally)
speed up the involved tests.
Before this change, we had:
$ diff -u t/silent3.sh t/silent9.sh
--- t/silent3.sh 2012-11-07 19:38:05.000000000 +0100
+++ t/silent9.sh 2012-11-07 19:27:54.000000000 +0100
@@ -14,9 +14,9 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-# Check silent-rules mode, with libtool, standard depmode case.
+# Check silent-rules mode, with libtool, nodep case.
-# Please keep this file in sync with 'silent4.sh' and 'silent9.sh'.
+# Please keep this file in sync with 'silent3.sh' and 'silent4.sh'.
required='cc libtoolize'
. test-init.sh
@@ -26,8 +26,8 @@
cat >>configure.ac <<'EOF'
AC_CONFIG_FILES([sub/Makefile])
AC_PROG_CC
-AM_PROG_AR
AM_PROG_CC_C_O
+AM_PROG_AR
AC_PROG_LIBTOOL
AC_OUTPUT
EOF
@@ -61,7 +61,7 @@
$AUTOMAKE --add-missing
$AUTOCONF
-./configure --enable-silent-rules
+./configure --disable-dependency-tracking --enable-silent-rules
$MAKE >stdout || { cat stdout; exit 1; }
cat stdout
$EGREP ' (-c|-o)' stdout && exit 1
* t/silent9.sh: Remove, merge ...
* t/silent3.sh: ... in here.
* t/list-of-tests.mk: Adjust.
2012-11-07 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: new variable $am_testaux_builddir
And a related fix that solves a spurious testsuite failures in
VPATH builds.
* t/ax/test-defs.in ($am_testaux_builddir): New, counterpart of
$am_testaux_srcdir, but pointing inside the build directory.
* t/self-check-shell-no-trail-bslash.sh: Use $am_testaux_builddir,
not $am_testaux_srcdir, when fetching the 'shell-no-trail-bslash'
script.
2012-11-07 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: rename $am_testauxdir -> $am_testaux_srcdir
This is just a preparatory change in view of a future commit.
* t/ax/test-defs.in: Here.
* t/ax/tap-summary-aux.sh: And here.
* t/ax/testsuite-summary-checks.sh: And here.
* t/distcheck-missing-m4.sh: And here.
* t/distcheck-outdated-m4.sh: And here.
* t/self-check-shell-no-trail-bslash.sh: And here.
* t/test-driver-acsubst.sh: And here.
* t/test-driver-cond.sh: And here.
* t/test-driver-custom-multitest.sh: And here.
* t/test-driver-custom-multitest-recheck.sh: And here.
* t/test-driver-custom-multitest-recheck2.sh: And here.
* t/testsuite-summary-count-many.sh: And here.
2012-10-31 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
vala tests: source test-init.sh, not ./defs
tests: fix a spurious typo-related failure
tests: remove spurious leftover use of 'Exit'
tests: can check our recipes avoid trailing backslashes
vala: improve comments to AM_PROG_VALAC
news: update w.r.t. recent vala changes
vala: if no proper compiler found, set $(VALAC) to 'valac'
vala: AM_PROG_VALAC should not produce an error for tool-old valac
docs: document recent changes to AM_PROG_VALAC
tests: enhance tests on AM_PROG_VALAC
vala: style fixes in vala.m4
vala: add action arguments, for when no proper vala compiler is found
2012-10-31 Stefano Lattarini <stefano.lattarini@gmail.com>
vala tests: source test-init.sh, not ./defs
This will avoid spurious errors when the new vala tests (introduced
in the 'vala-work' branch) will be merged back to master.
* t/vala-headers.sh: Adjust as said.
* t/vala-libs.sh: Likewise.
* t/vala-mix.sh: Likewise.
* t/vala-mix2.sh: Likewise.
* t/vala-parallel.sh: Likewise.
* t/vala-vapi.sh: Likewise.
* t/vala-vpath.sh: Likewise.
* t/vala.sh: Likewise.
* t/vala2.sh: Likewise.
* t/vala3.sh: Likewise.
* t/vala4.sh: Likewise.
* t/vala5.sh: Likewise.
2012-10-31 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix a spurious typo-related failure
* t/self-check-shell-no-trail-bslash.sh: Here, due to a mistaken
use of "||" instead of "&&".
2012-10-31 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'vala-work' into maint
* vala-work:
vala: improve comments to AM_PROG_VALAC
news: update w.r.t. recent vala changes
vala: if no proper compiler found, set $(VALAC) to 'valac'
vala: AM_PROG_VALAC should not produce an error for tool-old valac
docs: document recent changes to AM_PROG_VALAC
tests: enhance tests on AM_PROG_VALAC
vala: style fixes in vala.m4
vala: add action arguments, for when no proper vala compiler is found
2012-10-31 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: remove spurious leftover use of 'Exit'
Issue revealed by the 'sc_tests_Exit_not_exit' maintainer check.
Commit 'v1.12.4-184-g9fed1c8' in master made the same fix basically,
but we mistakenly applied it to master only, rather than to maint.
* t/per-target-flags.sh: Here.
2012-10-31 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: can check our recipes avoid trailing backslashes
This is related to commit v1.11-1704-g254227b of 2012-05-01,
"parallel-tests: avoid trailing backslashes in make recipes",
and automake bug#10436.
Recipes with a trailing backslash character (possibly followed by
blank characters only) can cause spurious syntax errors with at
least older bash versions (e.g., bash 2.05b), and can be potentially
be unportable to other weaker shells.
So provide a target that runs the testsuite looking for this kind
of breakage (without requiring a real bugged shell).
* t/ax/shell-no-trail-bslash.in: New, a "shell" that chokes on '-c'
commands having a trailing '\' (possibly followed by whitespace only).
* Makefile (t/ax/shell-no-trail-bslash): Generate this script from it.
(noinst_SCRIPTS, CLEANFILES): Add it.
(EXTRA_DIST): Add 't/ax/shell-no-trail-bslash.in'.
(check-no-trailing-backslash-in-recipes): New target, runs the testsuite
with 'shell-no-trail-bslash' as the CONFIG_SHELL, to catch possible
recipes having a trailing backslash character (possibly followed by
* .gitignore: Update.
* t/self-check-shell-no-trail-bslash.sh: New testsuite self-check.
* t/parallel-tests-trailing-bslash.sh: Remove as obsolete.
* t/list-of-tests.mk: Adjust.
2012-10-27 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
configure: correctly identify missing GNU compilers as such
2012-10-27 Stefano Lattarini <stefano.lattarini@gmail.com>
configure: correctly identify missing GNU compilers as such
* configure.ac: Here, instead of mistakenly diagnose them as "botched".
2012-10-27 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: get rid of ./defs, it's no longer used.
* defs: Delete.
* configure.ac (AC_CONFIG_LINKS): No longer link it.
* t/ax/tap-setup.sh: Don't look for a file named 'defs' in
the grandparent directory of the current test directory to
decide whether we're running in the correct directory.
* syntax-check.mk (xdefs): Remove '$(srcdir)/defs'.
2012-10-27 Stefano Lattarini <stefano.lattarini@gmail.com>
maintcheck: fix the name of a check
* (sc_tests_Exit_not_exit): Rename ...
(sc_tests_exit_not_Exit): ... like this, which is more faithful
to what the check actually does. Adjust a grammaro in comments
while at it.
(syntax_check_rules): Adjust.
2012-10-27 Stefano Lattarini <stefano.lattarini@gmail.com>
maintcheck: guard against uses of ./defs in tests
Now, 'test-init.sh' should be used instead.
* (sc_tests_no_source_defs): New maintainer check.
(syntax_check_rules): Add it.
2012-10-27 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: remove spurious leftover use of 'Exit'
* t/per-target-flags.sh: Here, and simply use 'exit' instead.
Issue revealed by the 'sc_tests_Exit_not_exit' maintainer check.
2012-10-27 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: remove an obsolete, and probably now wrong, comment
* t/dirlist.sh: Here.
2012-10-27 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: remove obsolescent references to './defs'
* t/distcom-subdir.sh, t/distcom2.sh, t/ax/depcomp.sh, t/conff2.sh,
t/ccnoco3.sh, t/ccnoco.sh, t/self-check-dir.tap, t/self-check-exit.tap,
t/self-check-me.tap: Here. Instead, refer to "am-test-lib.sh",
"test-init.sh", or simply "the testsuite setup", as appropriate.
2012-10-27 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: prefer including 'test-init.sh' rather than './defs'
This is a follow-up to today's commit v1.12.4-22-g0610fc8,
"tests: prepare to move ./defs to t/ax/test-init.sh"
* All tests: To run the common setup, use the command:
. test-init.sh
instead of the older, "historical" one:
. ./defs || exit 1
Note that the "|| exit 1" wasn't really useful, since the 'errexit'
shell flag is in effect in both './defs' and 'test-init.sh', and all
the known shells that are good enough to run the automake testsuite
do automatically exit with error when a sourced file cannot be found
(at least, they do so in non-interactive mode, which is the only
mode that concerns us in the testsuite).
* t/ax/tap-summary-aux.sh, t/ax/testsuite-summary-checks.sh: Likewise.
* gen-testsuite-part: Do the same in the generated tests.
2012-10-27 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
tests: merge, tweak and modernize few test scripts
tests: move coverage about BUILT_SOURCES
tests: more meaningful names for some test cases
tests: merge some grepping tests on Yacc support
2012-10-27 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: merge, tweak and modernize few test scripts
Basically an adjusted-and-improved cherry-pick from Automake-NG
commit v1.12.1-343-gff30f83.
* t/specflg.sh, t/specflg2.sh, t/specflg3.sh: Merged into ...
* t/per-target-flags.sh: ... this test.
* t/fo.sh: Remove, its weak grepping checks well superseded by
the semantic checks in 't/fort4.sh'.
* t/cxxo.sh: Remove, its weak grepping checks well superseded
by the semantic checks in 't/cxx-demo.sh'.
* t/cxxcpp.sh: Enhance a little.
* t/empty.sh: Renamed ...
* t/empty-data-primary.sh: ... to this. Add trailing ':' command.
* t/empty2.sh, t/empty3.sh, t/empty4.sh: Merged ...
* t/empty-sources-primary.tap: ... into this new test.
* t/no-outdir-option.sh: Remove. A test to check than an obsolete
and now deleted option ("--output-dir") stays deleted is way too
much even for the most test-infected person ;-)
* t/list-of-tests.mk: Adjust.
2012-10-27 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: move coverage about BUILT_SOURCES
Basically a backport of some tests from Automake-NG.
* t/built-sources-check.sh: Sync it with the version in the ng/master
branch. Accordingly, move part of the checks out ...
* t/built-sources-install.sh: ... into this new test, synced from
ng/master as well.
* t/built-sources-subdir.sh: Minor tweaks and enhancements to sync it
with the version in ng/master.
* t/built-sources-cond.sh: New test, synced from ng/master.
* t/built-sources.sh: Likewise, with minor edits to avoid a spurious
failure.
* t/built-sources-fork-bomb.sh: Likewise.
* t/list-of-tests.mk: Update.
2012-10-27 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: more meaningful names for some test cases
* t/yacc5.sh: Renamed ...
* t/yacc-grepping2.sh: ... like this.
* t/yacc7.sh: Renamed ...
* t/yacc-headers-and-pr47.sh: ... like this.
* t/yacc8.sh: Renamed ...
* t/yacc-subdir.sh: ... like this.
* t/subdir10.sh: Rename ...
* t/subdir-env-interference.sh: ... like this.
* t/specflg10.sh: Rename ...
* t/am-default-source-ext.sh: ... like this.
* t/suffix12.sh: Rename ...
* t/suffix-custom-subobj.sh: ... like this.
* t/suffix13.sh: Rename ...
* t/suffix-custom-subobj-and-specflg.sh: ... like this.
* t/check3.sh: Rename ...
* t/built-sources-check.sh: ... like this.
* t/subdirbuiltsources.sh: Rename ...
* t/built-sources-subdir.sh: ... like this.
* t/bsource.sh: Rename ...
* t/no-spurious-install-recursive.sh: ... like this.
* t/list-of-tests.mk: Adjust.
2012-10-27 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: merge some grepping tests on Yacc support
* t/yacc.sh, t/yacc2.sh: Merge ...
* t/yacc-grepping.sh: ... into this test.
* t/list-of-tests.mk: Adjust.
2012-10-27 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
tests: prepare to move ./defs to t/ax/test-init.sh
2012-10-27 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: prepare to move ./defs to t/ax/test-init.sh
We don't do this in a sweeping passage, because that would cause
endless headaches in the synchronization between the maint, master
and ng/master branches. Instead, we setup our framework to allow
test scripts to work by sourcing either './defs' or 'test-init.sh',
so that we'll be able to make the transition gradual and painless.
* t/ax/test-init.sh: New, copied from the previous ./defs file.
* defs: Simply work by sourcing the new file.
* Makefile.am (dist_noinst_DATA): List the new file.
* t/README: Adjust to mandate the sourcing of 'test-init.sh' rather
than of './defs'.
* t/c-demo.sh: Source 'test-init.sh' instead of ./defs. This is
done to verify our new setup actually works.
* t/ac-output-old.tap: Likewise.
2012-10-27 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
depcomp: avoid potential interferences from the environment
depcomp: improve comments about the 'gcc' depmode
sync: update files from upstream with "make fetch"
maintcheck: remove an obsolescent check
tests: rename some tests to more expressive names, again
tests: remove an obsolescent grepping check
tests: merge two tests on automatic remake functionality
tests: rename some test to more expressive names
news: 'compile' supports libfoo.a naming when wrapping Microsoft tools
tests: ensure generation of wrapper tests matching multiple conditions
tests: simplify a loop in gen-testsuite-part
compile: support libfoo.a naming when wrapping Microsoft tools
NEWS: fix wording and grammaros, re-wrap text accordingly
cosmetics: fix typo in 'lib/depcomp' comments
2012-10-27 Stefano Lattarini <stefano.lattarini@gmail.com>
depcomp: avoid potential interferences from the environment
* lib/depcomp (gccflag, dashmflag): By explicitly initializing these
variables to the empty string by default.
2012-10-27 Stefano Lattarini <stefano.lattarini@gmail.com>
depcomp: improve comments about the 'gcc' depmode
It is not only needed by obsolescent gcc compilers (pre-3.x),
but also by modern compiler like IBM C/C++. State that ...
* lib/depcomp: ... here...
* gen-testsuite-part: ... and here, where we generate the
'depcomp*.tap' tests.
2012-10-26 Stefano Lattarini <stefano.lattarini@gmail.com>
vala: improve comments to AM_PROG_VALAC
* m4/vala.m4 (AM_PROG_VALAC): Here.
2012-10-26 Stefano Lattarini <stefano.lattarini@gmail.com>
news: update w.r.t. recent vala changes
* NEWS: Here.
2012-10-26 Stefano Lattarini <stefano.lattarini@gmail.com>
vala: if no proper compiler found, set $(VALAC) to 'valac'
This is better than setting it to ':' (as is currently done), because
a triggered makefile rule invoking a vala compilation will then clearly
fail with an informative error message like "valac: command not found",
rather than silently, with the error possibly going unnoticed, or
triggering harder-to-diagnose fallout failures in later steps.
For a precedent of a similar behaviour, see the AC_PROG_YACC macro.
* m4/valac.m4: Implement the new semantic.
* doc/automake.texi (Vala Support): Document it.
* t/vala4.sh: Adjust.
2012-10-26 Sébastien Wilmet <swilmet@gnome.org> (tiny change)
Matthieu Baerts <matttbe@glx-dock.org>
Stefano Lattarini <stefano.lattarini@gmail.com>
vala: AM_PROG_VALAC should not produce an error for tool-old valac
This change fixes automake bug#12688.
In the AM_PROG_VALAC macro, when the optional parameter specifying the
minimum release number is not provided, and/or if the Vala compiler is
not found, then there is a _warning_ message.
On the other hand, when the version number is specified and if the Vala
compiler is too old, there is an _error_ message.
This error message is problematic, because for a tarball, the Vala
compiler is not required: the generated C code is included in the
tarball. So if a user wants to compile the software, he shouldn't
need the valac program with the right version.
* m4/vala.m4 (AM_PROG_VALAC): Modify to use AC_MSG_WARN instead
of AC_MSG_ERROR.
* t/vala4.sh: Adjust and enhance.
* doc/automake.texi (Vala Support): Likewise.
* THANKS: Update.
2012-10-26 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: document recent changes to AM_PROG_VALAC
* doc/automake.texi (Vala Support): Here. This is a follow-up to
recent commit 'v1.12.4-20-gdf202a3', "vala: add action arguments,
for when no proper vala compiler is found".
2012-10-26 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: enhance tests on AM_PROG_VALAC
* t/vala4.sh: Here.
2012-10-26 Stefano Lattarini <stefano.lattarini@gmail.com>
vala: style fixes in vala.m4
* m4/vala.m4 (AM_PROG_VALAC): Here.
2012-10-26 Daiki Ueno <ueno@unixuser.org> (tiny change)
vala: add action arguments, for when no proper vala compiler is found
* m4/vala.m4 (AM_PROG_VALAC): Add optional action arguments to
control the behavior if specified version of valac is not found.
This emulates the behaviour of AM_PATH_PYTHON.
* t/vala4.sh: Enhance.
2012-10-26 Stefano Lattarini <stefano.lattarini@gmail.com>
sync: update files from upstream with "make fetch"
* lib/config.guess, lib/config.sub: Update.
2012-10-26 Stefano Lattarini <stefano.lattarini@gmail.com>
maintcheck: remove an obsolescent check
* syntax-checks.mk (sc_test_names): Remove this check, which verified
that no test name contained an m4/m4sugar builtin or macro name. Since
most tests use their own name as the first argument to AC_INIT, doing
that would have tickled a bug in Autoconf 2.62; but the bug was fixed
in Autoconf 2.63 already; and we are going to soon require Autoconf
2.65 anyway (in automake 1.13), so this check has become more annoying
than useful.
(syntax_check_rules): Don't list the removed check.
2012-10-26 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: rename some tests to more expressive names, again
* t/parallel-tests.sh: Rename ...
* t/parallel-tests-basics.sh: ... like this.
* t/parallel-tests3.sh: Rename ...
* t/parallel-tests-concurrency.sh: ... like this.
* t/parallel-tests5.sh: Rename ...
* t/parallel-tests-concurrency-2.sh: ... like this.
* t/parallel-tests6.sh: Rename ...
* t/parallel-tests-empty.sh: ... like this. Adjust comments.
* t/parallel-tests8.sh: Rename ...
* t/parallel-tests-generated-and-distributed.sh: ... like this.
* t/parallel-tests9.sh: Rename ...
* t/parallel-tests-recheck.sh: ... like this.
* t/parallel-tests10.sh: Rename ...
* t/parallel-tests-trailing-whitespace.sh: ... like this.
* t/remake3a.sh: Rename ...
* t/remake-subdir-no-makefile.sh: ... like this.
* t/remake4.sh: Rename ...
* t/remake-not-after-make-dist.sh: ... like this.
* t/remake5.sh: Rename ...
* t/remake-maintainer-mode.sh: ... like this.
* t/remake6.sh: Rename ...
* t/remake-subdir3.sh: ... like this.
* t/remake7.sh: Rename ...
* t/remake-fail.sh: ... like this.
* t/remake11.sh: Rename ...
* t/remake-deeply-nested.sh: ... like this
* t/remake12.sh: Rename ...
* t/remake-mild-stress.sh: ... like this
* t/pr8365-remake-timing.sh: Rename ...
* t/remake-timing-bug-pr8365.sh: ... like this.
* t/list-of-tests.mk: Adjust.
2012-10-26 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: remove an obsolescent grepping check
* t/remake3.sh: This one, superseded by ...
* t/remake3a.sh: ... this semantic test, whose comments have been
djusted accordingly.
* t/list-of-tests.mk: Adjust.
2012-10-26 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: merge two tests on automatic remake functionality
* t/remake2.sh: Merge ...
* t/remake-subdir-grepping.sh: ... in here.
* t/list-of-tests.mk: Adjust.
2012-10-26 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: rename some test to more expressive names
* t/remake.sh: Rename ...
* t/remake-subdir-grepping.sh: ... like this.
* t/remake8a.sh: Rename ...
* t/remake-makefile-intree.sh: ... like this, and adjust comments.
* t/remake8b.sh: Rename ...
* t/remake-makefile-vpath.sh: ... like this, and adjust comments.
* t/remake9a.sh: Rename ...
* t/remake-after-configure-ac.sh: ... like this, and adjust comments.
* t/remake9b.sh: Rename ...
* t/remake-after-makefile-am.sh: ... like this, and adjust comments.
* t/remake9c.sh: Rename ...
* t/remake-after-acinclude-m4.sh: ... like this, and adjust comments.
* t/remake9d.sh: Rename ...
* t/remake-after-aclocal-m4.sh: ... like this, and adjust comments.
* t/remake10a.sh: Rename ...
* t/remake-include-configure.sh: ... like this, and adjust comments.
* t/remake10b.sh: Rename ...
* t/remake-include-makefile.sh: ... like this, and adjust comments.
* t/remake10c.sh: Rename ...
* t/remake-include-aclocal.sh: ... like this, and adjust comments.
* t/list-of-tests.mk: Adjust.
2012-10-26 Jim Meyering <jim@meyering.net>
compat: reinstate AM_PROG_MKDIR_P, for gettext
Do not remove AM_PROG_MKDIR_P just yet.
gettext (latest from git) still AC_REQUIRE's AM_PROG_MKDIR_P via its
intl.m4 and po.m4 files, which are pulled into *many* projects.
When I try to build one of those projects (coreutils) using the latest
from automake.git/master, I see this failure:
$ aclocal -I m4
configure.ac:477: warning: AM_PROG_MKDIR_P is m4_require'd \
but not m4_defun'd
m4/po.m4:23: AM_PO_SUBDIRS is expanded from...
m4/gettext.m4:57: AM_GNU_GETTEXT is expanded from...
configure.ac:477: the top level
That is because AM_PROG_MKDIR_P was removed (via commit
v1.12-20-g8a1c64f) in preparation for the next release of automake.
* NEWS: Remove the paragraph that announced the removal of
AM_PROG_MKDIR_P.
* Makefile.am (dist_automake_ac_DATA): Add m4/mkdirp.m4.
* m4/mkdirp.m4: Re-add file.
* t/mkdirp-deprecation.sh: Likewise.
* t/list-of-tests.mk: Add it.
* automake.in: Restore removed code, and adjust comments, s/1.13/1.14/
to reflect new plan for removal.
* doc/automake.texi (Obsolete Macros): Restore the section, but
now with only one entry: the one for AM_PROG_MKDIR_P.
2012-10-26 Stefano Lattarini <stefano.lattarini@gmail.com>
news: 'compile' supports libfoo.a naming when wrapping Microsoft tools
This is a follow-up to commit 'v1.12.4-10-g3c5c939' of 2012-10-04,
"compile: support libfoo.a naming when wrapping Microsoft tools".
* NEWS (Bugs fixed in 1.12.5): Update.
2012-10-26 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: ensure generation of wrapper tests matching multiple conditions
* gen-testsuite-part: Our old code to generate wrapper tests had a
severe limitation, in that if a test matched two or more conditions
calling for generation of wrapper tests, still only one wrapper test
was generated, instead of the three that would have been expected --
that is, one using the setup code triggered by the first condition,
one using the setup code triggered by the second condition, and one
using both this setup code fragments.
Admittedly, this was only a theoretical limitation for the moment,
since since so far no test exists that matches two or more conditions
for wrapping. Still, this might change in the future, and easily in
an unnoticed way, so better fix the issue now, before it might become
a real problem.
2012-10-26 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: simplify a loop in gen-testsuite-part
* gen-testsuite-part: No need to loop on the (key, value) entries
of the %test_generators has: we only use the value, and never the
key. So loop simply on the values.
2012-10-14 Peter Rosin <peda@lysator.liu.se>
compile: support libfoo.a naming when wrapping Microsoft tools
There is a future plan to provide some means to have Automake
create static libraries that are named differently depending
on the system [1].
The background is that everyone has always named static libraries
libfoo.a, except the Redmond crowd who names them foo.lib, and
you have to jump through hoops to have Automake create libraries
named foo.lib in the land of non-GNU Windows while still creating
libfoo.a everywhere else.
However, there is probably no sane way to accomplish that system
dependent naming discussed in [1] without user intervention,
which makes it necessary to support the classic libfoo.a naming
when using Microsoft tools in the best possible way, for the
benefit of all projects today and for future projects not
opting in to whatever scheme is selected for the problem at
hand.
[1] http://lists.gnu.org/archive/html/automake/2012-09/msg00028.html
* lib/compile (func_cl_dashl): As a last resort, match -lfoo with
libfoo.a, if that file exist on the library search path.
* t/compile4.sh: Remove obsolescent workaround for the above.
* t/compile6.sh: Extend to check that libbaz.a is indeed found
when baz.lib and baz.dll.lib does not exist and that bar.lib
and bar.dll.lib are preferred over libbar.a.
2012-10-14 Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS: fix wording and grammaros, re-wrap text accordingly
Reported-by: Peter Rosin <peda@lysator.liu.se>
2012-10-14 Paul Eggert <eggert@cs.ucla.edu>
cosmetics: fix typo in 'lib/depcomp' comments
Fixes automake bug#12578.
2012-10-02 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
config headers: remove stale comment in makefile fragment
NEWS: wording and quoting fixlets in few older entries
config headers: don't emit rules for headers not generated by autoheader
docs: fix minor typo: s/expending/expanding/
sync: update files from upstream with "make fetch"
maint: post-release minor version bump
maint: typo fixes s/lies into/lies in/
release: stable release 1.12.4
NEWS: minor fix
2012-10-02 Stefano Lattarini <stefano.lattarini@gmail.com>
config headers: remove stale comment in makefile fragment
* lib/am/remake-hdr.am: Here.
2012-10-02 Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS: wording and quoting fixlets in few older entries
2012-10-02 Stefano Lattarini <stefano.lattarini@gmail.com>
config headers: don't emit rules for headers not generated by autoheader
This change fixed automake bug#12495.
Even if an AC_CONFIG_HEADERS invocation is passed a list of several files
as the first argument, only the first one of those file is considered by
autoheader for automatic generation of the corresponding '.in' template.
This is done on purpose, and is clearly documented in the Autoconf manual,
which (as of the 2.69 version) reads something like this:
The autoheader program searches for the first invocation of
AC_CONFIG_HEADERS in configure sources to determine the name of
the template. If the first call of AC_CONFIG_HEADERS specifies
more than one input file name, autoheader uses the first one.
That is, an invocation like:
AC_CONFIG_HEADERS([config.h config2.h])
should cause autoheader to generate only a 'config.h.in' template,
and not also a 'config2.h.in' one.
Accordingly, automake, when tracing AC_CONFIG_HEADERS, should generate
remake rules only for the template associated to the first input file
name passed to that macro. In some situations, however, automake failed
to properly limit itself in this way; for example, with an input like:
AC_CONFIG_HEADERS([config.h sub/foo.h])
in configure.ac, and with the 'sub' directory listed in the SUBDIRS
variable of the top-level Makefile, automake would erroneously generate
in 'sub/Makefile.in' a rule to remake the 'foo.h.in' template by
invoking autoheader.
This issue was likely introduced in commit 'Release-1-8-23-g262bb92'
of 2004-01-05.
* NEWS: Update.
* doc/automake.texi (Optional): Improve wording in the description of
hat rules automake generates in response to an 'AC_CONFIG_HEADERS'
invocation.
* lib/am/remake-hdr.am: Only emit autoheader-invoking remake rules for
the %CONFIG_HIN% template if that corresponds to the first argument of
AC_CONFIG_HEADERS, as explaned above. Do so using the automake-time
conditional %?FIRST-HDR%, that is properly passed ...
* automake.in (handle_configure): ... from a 'file_contents' invocation
in here.
* t/autohdr-subdir-pr12495.sh: New test.
* t/list-of-tests.mk: Add it.
* THANKS: Update.
Helped-by: Hib Eris <hib@hiberis.nl>
2012-10-02 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: fix minor typo: s/expending/expanding/
* doc/automake.texi (Wildcards): Here. Fixes automake bug#12516.
2012-10-02 Stefano Lattarini <stefano.lattarini@gmail.com>
sync: update files from upstream with "make fetch"
* lib/texinfo.tex: Update.
2012-10-02 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: post-release minor version bump
* configure.ac (AC_INIT): Bump version number to 1.12.4a.
* m4/amversion.m4: Likewise (automatically regenerated by
"make bootstrap").
2012-09-23 Jim Meyering <meyering@redhat.com>
maint: typo fixes s/lies into/lies in/
2012-09-17 Stefano Lattarini <stefano.lattarini@gmail.com>
release: stable release 1.12.4
* configure.ac (AC_INIT): Bump version number to 1.12.4.
* m4/amversion.m4: Likewise (auto-updated by "make bootstrap").
2012-09-17 Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS: minor fix
2012-09-12 Jim Meyering <meyering@redhat.com>
fix typos in mk-dirp.m4
* t/gettext-macros.sh: Fix typo in name of macro emitted into
mk-dirp.m4: s/AM_MKDIR_P/AM_PROG_MKDIR_P/,
and as Stefano Lattarini noted, also fix this typo:
s/AC_MKDIR_P/AC_PROG_MKDIR_P/.
2012-09-11 Stefano Lattarini <stefano.lattarini@gmail.com>
tags: automake bug bug#12372 is fixed
It has been fixed as a side effect of the overhauling of tags support.
* t/list-of-tests.mk (XFAIL_TESTS): No longer list 'tags-pr12372.sh'.
* NEWS: Update.
2012-09-11 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
coverage: better exposure for automake bug#12372 (tags-related)
coverage: expose automake bug#12372 (tags-related)
2012-09-11 Stefano Lattarini <stefano.lattarini@gmail.com>
coverage: better exposure for automake bug#12372 (tags-related)
Alas, in contrast with what is said in the commit message of previous
commit 'v1.12.3-14-g94b7b8e', that bug is still present also in the
current maint branch (which will become automake version 1.12.4); it
is just that it only triggers when a _SOURCES variable contains only
files with custom extension.
* t/tags-pr12372.sh: Extend.
* t/list-of-tests.mk: Add it.
Suggested-by: Юрий Пухальский <aikipooh@gmail.com>
2012-09-07 Stefano Lattarini <stefano.lattarini@gmail.com>
coverage: expose automake bug#12372 (tags-related)
That bug is somehow already been fixed in the latest automake
version (1.12.4); but exercise it anyway in the testsuite, to
ensure we won't regress.
* t/tags-pr12372.sh: New test.
* t/list-of-tests.mk: Add it.
2012-09-05 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
sync: update files from upstream with "make fetch"
news: cygnus will be removed in automake 1.13
news: some changes for 1.13 has been "de-planned"
news: report that the have seen fixlets after 1.12.3
warns: enable category 'obsolete' by default
2012-09-05 Stefano Lattarini <stefano.lattarini@gmail.com>
sync: update files from upstream with "make fetch"
* lib/texinfo.tex: Update.
2012-09-05 Stefano Lattarini <stefano.lattarini@gmail.com>
news: cygnus will be removed in automake 1.13
* NEWS (Future backward-incompatibilities): So document it here.
2012-09-05 Stefano Lattarini <stefano.lattarini@gmail.com>
news: some changes for 1.13 has been "de-planned"
* NEWS (Future backward-incompatibilities): The planned Automake release
1.13 already has too much stuff on its plate; so we are not going to
In Automake 1.13, we are definitely not going to change the exact order
in which the directories in the aclocal macro search path are looked up.
Also, experience and user feedback have shown that the "obsolescent"
two-arguments invocation for AM_INIT_AUTOMAKE:
AM_INIT_AUTOMAKE(PACKAGE-NAME, PACKAGE-VERSION)
is still useful (until at least Autoconf is fixed to offer better support
for "dynamically" package versions), so we are not going to remove
support for that usage in Automake 1.13. For more details, see commit
v1.12.2-245-g2abe183 of 2012-08-24, "AM_INIT_AUTOMAKE: allow obsolescent
two-args invocation once again".
(New in 1.12.1): Adjust accordingly.
2012-09-05 Stefano Lattarini <stefano.lattarini@gmail.com>
news: report that the have seen fixlets after 1.12.3
* NEWS: Here.
2012-09-04 Stefano Lattarini <stefano.lattarini@gmail.com>
warns: enable category 'obsolete' by default
No surprise that our users were bitten by backward-incompatible changes
especially hard: the warnings in the 'obsolete' category, that might
have informed them of the upcoming incompatibilities, and help them to
prepare for the transition, where not enabled by default!
* NEWS, doc/automake.texi: Update.
* lib/Automake/ChannelDefs.pm: Enable warnings in the category 'obsolete'
by default.
* t/warnings-obsolete-default.sh: New test.
* t/list-of-tests.mk: Add it.
* t/backcompat.sh: Use 'configure.ac' rather than 'configure.in' as
autoconf input file, to avoid spurious aclocal errors.
* t/backcompat2.sh: Likewise.
* t/backcompat3.sh: Likewise.
* t/backcompat5.sh: Add '-Wno-obsolete' when invoking aclocal. Adjust
heading comments.
* t/backcompat6.sh: Likewise.
* t/cygnus-imply-foreign.sh: Add '-Wno-obsolete' when invoking automake.
2012-08-28 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix a maintainer-check failure ('Exit' used instead of 'exit')
* t/lisp-loadpath.sh: Here.
2012-08-28 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
sync: update files from upstream with "make fetch"
automake: don't define many identical 'lang_*_rewrite' subroutines
coverage: bugs #8844 and #9933 (already fixed by Akim's work on ylwrap)
2012-08-28 Stefano Lattarini <stefano.lattarini@gmail.com>
sync: update files from upstream with "make fetch"
* lib/config.guess, lib/config.sub: Update.
2012-08-27 Stefano Lattarini <stefano.lattarini@gmail.com>
automake: don't define many identical 'lang_*_rewrite' subroutines
This is just a simplifying refactoring, with no semantic change intended.
Cherry-picked from the Automake-NG commit 'v1.12.1-312-g63aa4a9' of
2012-06-07.
2012-08-26 Stefano Lattarini <stefano.lattarini@gmail.com>
coverage: bugs #8844 and #9933 (already fixed by Akim's work on ylwrap)
* t/flex-header.sh: New test, show that automake bug#8844 and bug#9933
have already been fixed by the recent-ish improvements to ylwrap (merged
with commit v1.12.2-27-gec5cb49 of 2012-07-16, "Merge branch 'yacc-work'
into maint").
* t/list-of-tests.mk: Update.
2012-08-26 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
docs: don't suggest to use recursive makefile setup
tests: fix a timestamp race in python tests
tests: fixup: make distcheck-override-infodir pass again
sync: update files from upstream with "make fetch"
maint: post-release minor version bump
release: stable release 1.12.3
maintcheck: fix spurious warnings
docs: fix typo: s/make install-info/make uninstall-info/
tests: fixup: make a couple of tests executable
2012-08-24 Stefano Lattarini <stefano.lattarini@gmail.com>
AM_INIT_AUTOMAKE: allow obsolescent two-args invocation once again
This partially reverts commit 'v1.12-67-ge186355' of 2012-05-25,
"init: obsolete usages of AM_INIT_AUTOMAKE not supported anymore"
Some users still need to be able to define the version number for
their package dynamically, at configure runtime.
Their user case is that, for development snapshots, they want to be
able to base the complete version of the package on the VCS revision
ID (mostly Git or Mercurial). They could of course do so by
specifying such version dynamically in their call to AC_INIT, as is
done by several GNU packages. But then they would need to regenerate
and re-run the configure script before each snapshot, which might be
very time-consuming for complex packages, to the point of slowing
down and even somewhat impeding development.
The situation should truly be solved in Autoconf, by allowing a way
to specify the version dynamically in a way that doesn't force the
configure script to be regenerated and re-run every time the package
version changes. But until Autoconf has been improved to allow
this, Automake will have to support the obsolescent two-arguments
invocation for AM_INIT_AUTOMAKE, to avoid regressing the suboptimal
but working solution for the use case described above.
See also:
<http://lists.gnu.org/archive/html/automake/2012-08/msg00025.html>
* NEWS: Update.
* m4/init.m4 (AM_INIT_AUTOMAKE): Support once again invocation with
two or three arguments.
* t/aminit-moreargs-no-more.sh: Renamed ...
* t/aminit-moreargs-deprecated.sh: ... like this, and updated.
* t/nodef.sh: Recovered test, with minor adjustments.
* t/backcompat.sh: Likewise.
* t/backcompat2.sh: Likewise.
* t/backcompat3.sh: Likewise.
* t/backcompat6.sh: Likewise.
* t/list-of-tests.mk: Adjust.
Suggested-by: Bob Friesenhahn n<bfriesen@simple.dallas.tx.us>
2012-08-21 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: don't suggest to use recursive makefile setup
* doc/automake.texi (Introduction): Here, by erroneously telling that
"there should generally be one Makefile.am per directory of a project".
For reference, see commit 'v1.12.1-25-g61dfb47' of 2012-06-12, "docs:
recursive make considered harmful".
2012-08-16 Adam Sampson <ats@offog.org> (tiny change)
Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix a timestamp race in python tests
Fixes automake bug#12210.
* t/python-missing.sh: Call aclocal and autoconf with the "--force"
option. We need this because, on fast machines, it's possible for
'mypy.m4' and 'aclocal.m4' to end up with the same timestamp as configure,
so autoconf (without the "--force" options) wouldn't bother to rebuild it,
and would just rerun the previous AM_PATH_PYTHON test, succeeding rather
than failing as expected.
* t/python-am-path-iftrue.sh: Likewise.
2012-08-14 Peter Rosin <peda@lysator.liu.se>
tests: fixup: make distcheck-override-infodir pass again
Fixes Automake bug#12198.
* t/distcheck-override-infodir.sh (main.texi): Remove all leading
cruft added by commit v1.12.2-96-g133307b "maintcheck: fix spurious
warnings".
2012-08-14 Stefano Lattarini <stefano.lattarini@gmail.com>
sync: update files from upstream with "make fetch"
* lib/config.guess, lib/config.sub, lib/gitlog-to-changelog,
lib/texinfo.tex: Update.
2012-08-14 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: post-release minor version bump
* configure.ac (AC_INIT): Bump version number to 1.12.3a.
* m4/amversion.m4: Likewise (automatically regenerated by
"make bootstrap").
2012-08-13 Stefano Lattarini <stefano.lattarini@gmail.com>
release: stable release 1.12.3
* configure.ac (AC_INIT): Bump version number to 1.12.3.
* m4/amversion.m4: Likewise (auto-updated by "./bootstrap").
2012-08-13 Stefano Lattarini <stefano.lattarini@gmail.com>
maintcheck: fix spurious warnings
* t/distcheck-override-infodir.sh: Be sure that valid occurences
of the "aclocal" and "automake" strings, which can confuse the
'sc_tests_plain_automake' check, are protected by leading "#"
characters.
* t/ax/test-lib.sh: Always use '$(...)' for command subtitution,
to avoid triggering the 'sc_tests_command_subst' check; there was
still once place where `...` was used. While at it, fix a related
comment.
* t/ax/test-defs.in ($sleep): Use creative quoting to avoid
spuriously triggering the 'sc_tests_plain_sleep' check.
2012-08-13 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: fix typo: s/make install-info/make uninstall-info/
* doc/automake.texi (Texinfo): Here. And a minor wording improvement
while we are at it.
2012-08-13 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fixup: make a couple of tests executable
* t/python-am-path-iftrue.sh: This.
* t/python-missing.sh: And this.
2012-08-13 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
tests: rework tests on AM_PATH_PYTHON
cosmetics: fix typos and references in comments
typofix: in a test diagnostic
readme: fixlets to HACKING
2012-08-13 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: rework tests on AM_PATH_PYTHON
* t/python8.sh, t/python9.sh: Merge into ...
* t/python-am-path-iftrue.sh: ... this new test, with minor adjustments.
* t/python4.sh, t/python5.sh, t/python6.sh, t/python7.sh: Merge into ...
* t/python-missing.sh: ... this new test.
* t/python5b.sh: Rename ...
* t/python-too-old.sh: ... like this, and adjust/extend.
* t/list-of-tests.mk: Adjust.
2012-08-13 Stefano Lattarini <stefano.lattarini@gmail.com>
cosmetics: fix typos and references in comments
* lib/am/check.am: Here.
* doc/automake.texi: And here.
* t/*.sh: And in several of these tests.
2012-08-13 Stefano Lattarini <stefano.lattarini@gmail.com>
typofix: in a test diagnostic
* t/cscope.tap: Here.
2012-08-12 Stefano Lattarini <stefano.lattarini@gmail.com>
readme: fixlets to HACKING
* HACKING: Use longer "=====" lines to separate different section (this
is just eye-candy admittedly, but I prefer it).
(Release procedure): Don't tell to "update NEWS"; that should be updated
throughout the normal course of development. Instead, tell to just check
it. Improve description of the re-bootstrapping and rechecking procedure,
also suggesting to use "git clean" beforehand (with all due warnings!).
2012-08-12 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
cleanup: remove stale references to 'lzma' option
2012-08-12 Stefano Lattarini <stefano.lattarini@gmail.com>
cleanup: remove unused transform '%HAVE-MANS%'
* automake.in (preprocess_file): Here.
2012-08-11 Stefano Lattarini <stefano.lattarini@gmail.com>
cleanup: remove stale references to 'lzma' option
* automake.in (preprocess_file): Here.
(handle_dist): And here.
2012-08-10 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
automake: remove an unused local variable
distcheck: more resilient against possible failures
cleanup: remove almost-unused global var 'am_relative_dir'
2012-08-10 Stefano Lattarini <stefano.lattarini@gmail.com>
automake: remove an unused local variable
* automake.in (handle_dist): Here, the '$extra_dist' variable.
2012-08-10 Stefano Lattarini <stefano.lattarini@gmail.com>
distcheck: more resilient against possible failures
* lib/am/distdir.am (distcheck): Ensure that a failure in the commands
making the just-extracted source tree read-only cause the recipe to fail.
While at it, save a fork by creating the '_build' and '_inst' subdir
with a single mkdir invocation.
2012-08-10 Stefano Lattarini <stefano.lattarini@gmail.com>
cleanup: remove almost-unused global var 'am_relative_dir'
Cherry picked from commit v1.12.2-741-g53b5d11 of Automake-NG.
* automake.in ($am_relative_dir): Delete, it was only used once ...
(generate_makefile): ... in here, so it's simpler to inline its
expansion.
(initialize_per_input): Don't reset the deleted variable.
2012-08-10 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
cleanup: remove two almost-unused global variables: {am,in}_file_name
cleanup: remove almost-unused global var 'topsrcdir'
automake: remove an unused variable
tests: make a test script more semantic
tests: remove an obsolete, no-op test script
tests: remove an obsolete test script
2012-08-10 Stefano Lattarini <stefano.lattarini@gmail.com>
cleanup: remove two almost-unused global variables: {am,in}_file_name
Cherry picked from commit v1.12.2-739-gbf2a8b0 of Automake-NG.
* automake.in ($am_file_name, $in_file_name): Delete these, which were
used only in the 'read_main_am_file' subroutine; instead ...
(read_main_am_file): ... modify it to only work from the '$makefile_am'
argument (which it was already receiving), and the new '$makefile_in'
argument, which is now passed to it ...
(generate_makefile): ... from here.
(initialize_per_input): Don't reset the two deleted variables anymore.
2012-08-10 Stefano Lattarini <stefano.lattarini@gmail.com>
cleanup: remove almost-unused global var 'topsrcdir'
Cherry picked from commit v1.12.2-740-ga7f24eb in Automake-NG.
* automake.in ($topsrcdir): Delete, it was only used once ...
(handle_LIBOBJS_or_ALLOCA): ... in here, so it's simpler to inline
its expansion. Improve formatting of immediately surrounding code
a little while we are at it.
(initialize_per_input): Don't reset the deleted variable.
2012-08-10 Stefano Lattarini <stefano.lattarini@gmail.com>
automake: remove an unused variable
* automake.in ($canonical_location): This.
(scan_autoconf_traces): Don't initialize it.
2012-08-08 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: make a test script more semantic
This is mostly useful for Automake-NG, that is heavily overhauling the
generated Makefiles and thus is prone to break grepping checks (which
can sometimes end up causing false negatives in the testsuite, sadly).
But this is not a reason not to strengthen the test for mainline
Automake as well.
* t/noinstdir.sh: Add semantic checks.
2012-08-08 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: remove an obsolete, no-op test script
* t/info.sh: This: it tried to operate by checking the contents of the
variable '$(INFOS)', but that is not even defined (and probably has been
obsolete for quite a long time). Since other tests already do thorough
testing of the Texinfo support, just remove this test.
* t/list-of-tests.mk: Adjust.
2012-08-08 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: remove an obsolete test script
* t/scripts.sh: This: it used to check that the 'AC_PROG_INSTALL' macro
was not uselessly required, but today that macro is AC_REQUIRE'd by
'AM_INIT_AUTOMAKE' anyway, so that the test is no more significant.
* t/list-of-tests.mk: Adjust.
2012-08-05 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
tests: avoid spurious failures with older Texinfo
tests: avoid tons of spurious failures on NetBSD
runtest: avoid spurious failures on NetBSD
news: dependency tracking for Portland Group Compilers is now supported
2012-08-05 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid spurious failures with older Texinfo
* t/distcheck-override-infodir.sh (main.texi): Add explicit calls to
'@dircategory' and '@direntry', to ensure a 'dir' file will be created
also by 'install-info' coming with Texinfo 4.8.
2012-08-05 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid tons of spurious failures on NetBSD
* t/ax/am-test-lib.sh (process_requirements): Set the '$am_tool' variable
to the empty string before trying to unset it; otherwise, we might be
attempting to unset an already-unset variable, which (together with the
presence of the 'errexit' shell flag) causes spurious failures at least
with the /bin/sh shell from NetBSD 5.1. This was actually causing the
great majority of the Automake tests (all those not using a "required=..."
declaration) to fail spuriously on that platform!
2012-08-05 Stefano Lattarini <stefano.lattarini@gmail.com>
runtest: avoid spurious failures on NetBSD
* runtest.in: Use ${1+"$@"} rather than simply "$@", because the 'set -u'
setting used in the script causes the latter to trigger a spurious error
with the NetBSD 5.1 /bin/sh ("./runtest: @: parameter not set") if there
are no arguments to the test.
2012-08-05 Stefano Lattarini <stefano.lattarini@gmail.com>
news: dependency tracking for Portland Group Compilers is now supported
* NEWS: So document it here.
2012-08-05 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'elisp-work'
* elisp-work:
news: document all the recent elisp-related changes and improvements
coverage: byte-compiling elisp files in different subdirectories
elisp: honour AM_ELCFLAFS and ELCFLAGS in byte-compilation
elisp: --batch implies -q, remove -q
elisp: support elisp files in subdirectories properly
elisp: simplify suffix rules using emacs '-L' option
elisp: no need to "absolutize" $(srcdir) and $(builddir) ...
elisp: prefer $(builddir) files over $(srcdir) ones
elisp: use suffix rules, get rid of 'elisp-comp' script (mostly a rewrite)
coverage: elisp path contains $(srcdir) and $(builddir)
coverage: emacs lisp files in subdirectories
2012-08-05 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
tests: cater to OpenSolaris 'zip'
2012-08-05 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: cater to OpenSolaris 'zip'
* t/dist-formats.tap: Here: OpenSolaris zip do not accept the
'--version' option, but accept the '-v' one with a similar
meaning (if no further arguments are given).
2012-08-04 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
tests: fix a spurious XPASS on OpenIndiana
tests: avoid spurious failure of 't/vala-vapi.sh' on OpenIndiana
tests: avoid spurious failure of 't/uninstall-fail.sh' on OpenIndiana
tests: reimplement wrappers for automake and aclocal in perl
tests: work around a ksh bug w.r.t. ${1+"$@"}
depcomp: style changes to Portland Group Compilers support
depcomp: initial support for Portland Group Compilers
2012-08-04 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix a spurious XPASS on OpenIndiana
* t/instspc.tap: Here, by isolating the $(DESTDIR) used by runs with
different "problematic strings" to prevent them to unduly interfering
with each other. With this, the Automake testsuite finally run cleanly
on the OpenIndiana and Solaris 10 systems I have access to.
2012-08-04 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid spurious failure of 't/vala-vapi.sh' on OpenIndiana
* t/vala-vapi.sh: Use 'printf', not 'echo', to print strings containing
substrings like '\n', that can be interpreted like escape strings. That
because the /bin/sh and the /bin/bash shell from OpenIndiana actually
interpret them that way:
$ /bin/sh -c 'echo "foo\nbar"'
foo
bar
$ /bin/bash -c 'echo "foo\nbar"'
foo
bar
2012-08-04 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid spurious failure of 't/uninstall-fail.sh' on OpenIndiana
On current OpenIndiana (based on what once was OpenSolaris 11), the shell
/bin/sh (which, differently from what happens on Solaris, is a true POSIX
shell, thus worthy of consideration) somehow manages to "eat" the
error message from 'rm' when that fails to remove a file due to lacking
permission on the parent directory:
$ /bin/sh -c "cd unwritable-dir || { echo OOPS; exit 1; }; rm -f foo"
$ echo rc = $?
rc = 1
$ /bin/bash -c "cd unwritable-dir || { echo OOPS; exit 1; }; rm -f foo"
rm: foo not removed: Permission denied
$ echo rc = $?
rc = 2
$ /bin/sh -c "cd unwritable-dir || { echo OOPS; exit 1; }; env rm -f foo"
rm: foo not removed: Permission denied
$ echo rc = $?
rc = 2
That is probably due to an improper optimization, that is, the shell tries
to be smart and remove the file itself instead of invoking 'rm', but fails
spectacularly in the attempt.
* t/uninstall-fail.sh: The just-described bug was causing a spurious
failure in this test case. Cater to thus situation, by relaxing the
test when a faulty shell is detected. And while at it, fix and improve
an unrelated comment.
2012-08-04 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: reimplement wrappers for automake and aclocal in perl
This will allow us to avoid one extra shell invocation per automake
and aclocal invocation in our testsuite, and, more importantly, will
allow us not to worry about potential shell portability issues, at
least in those wrappers. For an example of such a portability issue,
refer to the recent commit v1.12.2-80-g65dadf6 "tests: work around a
ksh bug w.r.t. ${1+"$@"}".
* t/wrap/automake.in, t/wrap/aclocal.in: Rewritten in perl.
2012-08-04 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: work around a ksh bug w.r.t. ${1+"$@"}
Fixes automake bug#10898. See also the older (much older) thread:
<http://lists.gnu.org/archive/html/automake-patches/2009-12/msg00036.html>
At least the AT&T and OpenSolaris versions of the Korn shell, as well
as the /bin/sh from OpenIndiana 11, have a strange bug regarding the
expansion of ${1+"$@"}: when exactly *one empty* argument is passed to
a script run by one of this shells, inside that script ${1+"$@"} will
expand to *nothing*, rather than to to the single empty string, as
one would expect (OTOH, $# will correctly expand to 1). This buggy
behaviour was causing a spurious failure in our testsuite (test 6 in
't/automake-cmdline.tap'). Work around it.
* t/wrap/automake.in: Here.
2012-08-04 Stefano Lattarini <stefano.lattarini@gmail.com>
news: document all the recent elisp-related changes and improvements
* NEWS (Elisp byte-compilation): Here. Also notice that the recent
changes have fixed the long-standing (almost two years old!) automake
bug#7441.
2012-08-04 Stefano Lattarini <stefano.lattarini@gmail.com>
coverage: byte-compiling elisp files in different subdirectories
Where a '.el' file in a subdirectory might require a '.el' file in
another one. This does not work out of the box, but can be made to
work with a judicious use of $(AM_ELCFLAGS) (just introduced in the
previous commit).
* t/lisp-subdir-mix.sh: New test.
* t/list-of-tests.mk: Add it.
2012-08-04 Stefano Lattarini <stefano.lattarini@gmail.com>
elisp: honour AM_ELCFLAFS and ELCFLAGS in byte-compilation
* lib/am/lisp.am (.el.elc): Add "$(AM_ELCFLAFS) $(ELCFLAGS)"
to the emacs command line.
* t/lisp-flags.sh: New test.
* t/list-of-tests.mk: Add it.
* doc/automake.texi (Emacs Lisp): Update.
2012-08-02 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'depcomp-pgcc' into maint
* depcomp-pgcc:
depcomp: style changes to Portland Group Compilers support
depcomp: initial support for Portland Group Compilers
2012-07-30 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
build: fix build in VPATH setup
gen-tests: simplify sourcing of helper shell files
2012-07-30 Stefano Lattarini <stefano.lattarini@gmail.com>
build: fix build in VPATH setup
* Makefile.am (t/ax/test-defs.sh): Ensure the 't/ax' directory exists,
before trying to create 'test-defs.sh' in there. This is required in
VPATH builds.
Reported-by: Akim Demaille <akim@lrde.epita.fr>
2012-07-26 Stefano Lattarini <stefano.lattarini@gmail.com>
news: fix a couple of minor formatting issues
* NEWS (New in 1.13): Here.
2012-07-26 Stefano Lattarini <stefano.lattarini@gmail.com>
gen-tests: simplify sourcing of helper shell files
This is a follow-up on commit v1.12.2-49-g42fb45b, for an occurrence
of '. "$am_testauxdir"/foo.sh' that wasn't in a test script, but
rather in 'gen-testsuite-part' (ending up in the tests generated by
that script).
* gen-testsuite-part: In the generated 'depcomp*.tap' tests, use
simply:
. depcomp.sh
rather than:
. "$am_testauxdir/depcomp.sh"
2012-07-26 Stefano Lattarini <stefano.lattarini@gmail.com>
typofix: in a comment in Makefile.am
2012-07-26 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint: (38 commits)
maintcheck: fixup list of files in $(xdefs)
tests: never source test-defs.sh directly, source test-lib.sh instead
runtest: sanitize test environment
tests: remove an obsolescent self test
tests: "am_using_tap=yes" -> "am_test_protocol=tap"
tests: protect test libs against multiple inclusion
configure: testsuite shell can return early from "dot-sourced" files
tests: move sanitization and "Bournification" in the generic test lib
tests: source test defs in the generic test lib
test defs: no need to re-add $srcdir/t/ax to $PATH
tests: split test libs into "generic" and "automake-specific"
test setup: move actual calling of testsuite setup in ./defs
test setup: merge definitions of function for simple tests
test init: refactor: new function 'am_test_setup'
test init: refactor: move displaying of debugging info later
test init: refactor: new function 'am_setup_testdir'
test init: refactor: new function 'am_set_exit_traps'
configure: testsuite shell set exit traps in shell functions
test init: refactor: new function 'am_exit_trap'
test init: refactor: new function 'process_requirements'
...
2012-07-26 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'testsuite-refactor' into maint
* testsuite-refactor: (33 commits)
maintcheck: fixup list of files in $(xdefs)
tests: never source test-defs.sh directly, source test-lib.sh instead
runtest: sanitize test environment
tests: remove an obsolescent self test
tests: "am_using_tap=yes" -> "am_test_protocol=tap"
tests: protect test libs against multiple inclusion
configure: testsuite shell can return early from "dot-sourced" files
tests: move sanitization and "Bournification" in the generic test lib
tests: source test defs in the generic test lib
test defs: no need to re-add $srcdir/t/ax to $PATH
tests: split test libs into "generic" and "automake-specific"
test setup: move actual calling of testsuite setup in ./defs
test setup: merge definitions of function for simple tests
test init: refactor: new function 'am_test_setup'
test init: refactor: move displaying of debugging info later
test init: refactor: new function 'am_setup_testdir'
test init: refactor: new function 'am_set_exit_traps'
configure: testsuite shell set exit traps in shell functions
test init: refactor: new function 'am_exit_trap'
test init: refactor: new function 'process_requirements'
...
2012-07-26 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'fix-pr12041' into maint
* fix-pr12041:
tests: avoid spurious failure when running as root
2012-07-26 Stefano Lattarini <stefano.lattarini@gmail.com>
maintcheck: fixup list of files in $(xdefs)
syntax-checks.mk (xdefs): Adjust to recent changes: add 't/ax/test-lib.sh'
and 't/ax/test-lib.sh', remove the now-deleted 't/ax/test-init.sh'
2012-07-26 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: never source test-defs.sh directly, source test-lib.sh instead
After the recent re-organization, sourcing 'test-defs.sh' directly might
not work well and cause spurious failures or other unexpected behaviours.
We should source 'test-lib.sh' instead, which contains not more direct
code execution (only definition of shell variables/functions, or sourcing
of other '*.sh' with the same property), is protected against multiple
inclusions, and sources 'test-defs.sh' automatically in in a proper way.
* t/testsuite-summary-count.sh, t/tap-summary.sh, t/tap-summary-color.sh,
t/testsuite-summary-color.sh: Source 'test-lib.sh', not 'test-defs.sh'.
* gen-testsuite-part: Likewise, in the generated wrapper scripts.
2012-07-26 Stefano Lattarini <stefano.lattarini@gmail.com>
runtest: sanitize test environment
* runtest.in: Here, similarly to what is done by AM_TESTS_ENVIRONMENT
in Makefile.am, unset variables that should be under the complete control
of the test framework, and that could create havoc if inherited from the
environment. This remove the need to check against possible environment
"pollution" ...
* t/ax/test-defs.in: ... in here.
* Makefile.am (AM_TESTS_ENVIRONMENT): Add a comment about the need of
synchronization with 'runtest.in'.
* t/self-check-env-sanitize.tap: Remove as obsolete.
* t/list-of-tests.mk: Adjust.
2012-07-26 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: remove an obsolescent self test
* t/self-check-tap.sh: This. The recent reorganization and code
moving between 'test-defs.sh' and 'test-lib.sh' has made it
brittle and prone to failures. Since the usefulness of this self
check is extremely limited, it's not worth trying to fix it. Just
remove it.
* t/list-of-tests.mk: Adjust.
2012-07-26 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: "am_using_tap=yes" -> "am_test_protocol=tap"
And similarly, "am_using_tap=no" -> "am_test_protocol=none".
The new '$am_test_protocol' name is clearer, and will allow the easy
addition of further test protocols in the future. This is not truly
relevant for automake, but we are trying to make some parts of our
testsuite framework as general as possible, in view of a future move
to a more generic project like Gnulib.
* Makefile.am, t/ax/am-test-lib.sh, t/ax/test-defs.in, t/ax/test-lib.sh,
t/self-check-env-sanitize.tap, t/self-check-tap.sh: Adjust.
* syntax-checks.mk (sc_tests_obsolete_variables): Add 'am_using_tap' to
the list of obsolete variables to check against.
2012-07-26 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: protect test libs against multiple inclusion
* t/ax/test-lib.sh, t/ax/am-test-lib.sh: Return early if already sourced.
Use the witness variables '$test_lib_sourced' and '$am_test_lib_sourced',
respectively, for this purpose.
* runtest.in, Makefile.am (AM_TESTS_ENVIRONMENT): Unset 'test_lib_sourced'
and 'am_test_lib_sourced', to avoid interferences from the environment.
2012-07-26 Stefano Lattarini <stefano.lattarini@gmail.com>
configure: testsuite shell can return early from "dot-sourced" files
* configure.ac: Check that the shell selected to run the test
scripts can call 'return' form within a file being sourced
with the '.' built-in.
2012-07-26 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: move sanitization and "Bournification" in the generic test lib
* t/ax/test-defs.sh: From here ...
* t/ax/test-lib.sh: ... to here. Also move the initialization of
'$argv0' and '$me'.
2012-07-26 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: source test defs in the generic test lib
* t/ax/test-lib.sh: That is, here ...
* defs: ... rather than here.
2012-07-26 Stefano Lattarini <stefano.lattarini@gmail.com>
test defs: no need to re-add $srcdir/t/ax to $PATH
* t/ax/test-defs.sh: Here. That is already done by both 'runtest' and
AM_TESTS_ENVIRONMENT, and the presence of '$srcdir/t/ax' in $PATH is
anyway required, after the recent changes, for our testsuite framework
to work at all.
2012-07-26 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: split test libs into "generic" and "automake-specific"
This is the first step in the quest to merge the generically useful
parts of our test suite framework in a more generic project, like
Gnulib. Time will tell if we'll succeed, and whether the success will
be worth the extra hassle.
* t/ax/test-init.sh: Split out ...
* t/ax/am-test-lib.sh, t/ax/test-lib.sh: ... into these two tests.
* defs, Makefile.am: Adjust.
2012-07-26 Stefano Lattarini <stefano.lattarini@gmail.com>
test setup: move actual calling of testsuite setup in ./defs
* t/ax/test-init.sh: Move call to 'am_test_setup' ...
* defs: ... here.
2012-07-26 Stefano Lattarini <stefano.lattarini@gmail.com>
test setup: merge definitions of function for simple tests
* t/ax/plain-functions.sh: Delete, moving the definitions of ...
($stderr_fileno_): ... this variable ...
(warn_, fail_, skip_, skip_all_, fatal_, framework_failure_): ... and
these functions ...
* t/ax/test-init.sh: ... in here. This allow us to use those functions
earlier in this file (instead of having to duplicate their behaviour
with inlined code). The TAP-based tests are still able to override these
functions later to their TAP-enhanced equivalents when 'tap-functions.sh'
is sourced.
* Makefile.am (dist_noinst_DATA): Remove 't/ax/plain-functions.sh'.
* t/ax/tap-functions.sh: Adjust a comment.
2012-07-26 Stefano Lattarini <stefano.lattarini@gmail.com>
test init: refactor: new function 'am_test_setup'
* t/ax/test-init.sh (am_test_setup): Here.
Call it from the main code. Remove other calls of functions and
settings that are now duly called by 'am_test_setup'.
2012-07-26 Stefano Lattarini <stefano.lattarini@gmail.com>
test init: refactor: move displaying of debugging info later
* t/ax/test-init.sh: Here, about the values of $PATH, $am_using_tap
and $am_running_installcheck.
2012-07-26 Stefano Lattarini <stefano.lattarini@gmail.com>
test init: refactor: new function 'am_setup_testdir'
* t/ax/test-init.sh (am_setup_testdir): Here.
Use it instead of inlining its contents in the main code.
2012-07-26 Stefano Lattarini <stefano.lattarini@gmail.com>
test init: refactor: new function 'am_set_exit_traps'
* t/ax/test-init.sh (am_set_exit_traps): Here.
(trap): Use it instead of inlining the cleanup/finalization code.
2012-07-26 Stefano Lattarini <stefano.lattarini@gmail.com>
configure: testsuite shell set exit traps in shell functions
* configure.ac: Check that the shell selected to run the test
scripts can set an exit trap in a shell function, without having
that trap executed at the termination of the function rather
than of the scripts. According to the Autoconf manual, at least
AUX 5.3 /bin/sh suffers of such a bug.
2012-07-26 Stefano Lattarini <stefano.lattarini@gmail.com>
test init: refactor: new function 'am_exit_trap'
* t/ax/test-init.sh (am_exit_trap): Here.
(trap): Use it instead of inlining the cleanup/finialization code.
2012-07-26 Stefano Lattarini <stefano.lattarini@gmail.com>
test init: refactor: new function 'process_requirements'
* t/ax/test-init.sh (process_requirements): Here.
Use it in to check that the tools in $required are present.
2012-07-26 Stefano Lattarini <stefano.lattarini@gmail.com>
test init: refactor: new function 'require_tool'
* t/ax/test-init.sh (require_tool): Here.
Use it in the loop in the prerequisites in $required.
2012-07-26 Stefano Lattarini <stefano.lattarini@gmail.com>
test init: remove a couple of paranoid sanity checks
* t/ax/test-init.sh: Here, about 'am_top_srcdir' and 'am_top_builddir';
the values of those variables are AC_SUBST'd, so it's nigh impossible
for the to be wrong or get "messed up".
2012-07-26 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: simplify sourcing of helper shell files
Now that the early $PATH setup in both 'runtest' and AM_TESTS_ENVIRONMENT
allow the '.' built-in to find to-be-sourced shell scripts in the 't/ax/'
directory automatically, we can simplify several usages like:
. "$am_testauxdir"/foo.sh
to just:
. foo.sh
Also, because our test scripts run with the 'errexit' flag active, and
because POSIX mandates that, when the '.' built-in is used,
... if no readable file is found, a non-interactive shell shall abort ...
we can further simplify usages like:
. "$am_testauxdir"/foo.sh || fatal_ "sourcing foo.sh"
once again to to just:
. foo.sh
* ./defs, several tests: Adjusted.
2012-07-26 Stefano Lattarini <stefano.lattarini@gmail.com>
test defs: move in 't/ax/test-defs.sh'
We can do so with minimal churn, now that the early setup of $PATH in
both 'runtest' and AM_TESTS_ENVIRONMENT allow the '.' built-in to find
to-be-sourced shell scripts in 't/ax' automatically, both in in-tree
and VPATH builds.
With this change, we take another step forward a more rational and
"segregated" organization of our testsuite framework.
* defs-static.in: Rename ...
* t/ax/test-defs.in: ... like this, and adjust.
* Makefile.am, syntax-checks.mk, t/README, gen-testsuite-part,
t/tests-init.sh, t/ax/tap-setup.sh, t/tap-summary.sh, .gitignore,
t/testsuite-summary-color.sh, t/testsuite-summary-count.sh,
t/self-check-tap.sh, defs: Adjust.
2012-07-26 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: update PATH early from AM_TESTS_ENVIRONMENT and runtest
Because the POSIX standards mandate that sourcing a file with ". FILE"
will cause FILE (assuming it is a relative containing no slashes) to be
looked for in PATH, such a move will allow us to simplify our sourcing
of shell testing libraries like (currently) 't/ax/test-init.sh' and
'defs', and to modularize and re-organize them better in the feature,
with minimal churn.
* runtest.in, Makefile.am (AM_TEST_ENVIRONMENT): Prepend $(abs_srcdir)/t/ax
and $(abs_builddir)/t/ax (in that order) to PATH; do so avoiding repetition
in the common case of non-VPATH builds.
2012-07-26 Stefano Lattarini <stefano.lattarini@gmail.com>
runtest: export $srcdir for use by the test scripts
This is mostly a preparatory change in view of future ones. But it
also make the behaviour of runtest more similar to that of the test
harness used by "make check".
* runtest.in: Export srcdir (was already defined to '@srcdir@').
2012-07-26 Stefano Lattarini <stefano.lattarini@gmail.com>
gen-tests: $testdir/ax -> $testauxdir
* gen-testsuite-part ($testauxdir): New, defined to "$testdir/ax".
Use it throughout, for better encapsulation and less duplication.
($auxdir): Remove as unneeded.
2012-07-26 Stefano Lattarini <stefano.lattarini@gmail.com>
gen-tests: less hard-coding of 't' as the test directory
This will make life easier for us in case we decide to rename the
testsuite directory in the future (perhaps to something like 'tests',
which is somewhat less cryptic than the current 't').
* gen-testsuite-part ($testdir): New variable, used throughout instead
of hard-coding the name of the test directory to 't'.
All the script adjusted to make proper use of '$testdir'.
($auxdir): Move its definition earlier, for consistency with the one
of '$testdir'.
2012-07-26 Stefano Lattarini <stefano.lattarini@gmail.com>
build: auxiliary testsuite files/scripts built by "make all"
This will allow the developers to run a tests case by hand out of
a newly extracted tarball simply doing:
$ ./configure && make
$ ./runtest t/the-test-case.sh
while before this change one has to resort to:
$ ./configure && make && make check TESTS=
$ ./runtest t/the-test-case.sh
or, with some non-GNU makes, even:
$ ./configure && make && make check TESTS= AM_MAKEFLAGS="TESTS="
$ ./runtest t/the-test-case.sh
This come very handy sometimes, especially when doing one-shot
debugging. Admittedly not a big deal, but one less friction in
the build system is always nice.
* Makefile.am (check_SCRIPTS, dist_check_DATA, nodist_check_DATA):
Move their content to ...
(noinst_SCRIPTS, dist_noinst_DATA, nodist_noinst_DATA): ... these
variables.
Adjust comments.
2012-07-26 Stefano Lattarini <stefano.lattarini@gmail.com>
perf tests: reorganize
* t/list-of-tests.mk (handwritten_TESTS): Don't list ($perf_TESTS) in
here anymore.
* Makefile.am (EXTRA_DIST): Add them explicitly.
(perf): New target, run the performance tests and save the logs of
the ones with unexpected results in the file 't/perf/test-suite.log',
which is thus ...
(PERF_TEST_SUITE_LOG): ... defined in this variable ...
(CLEANFILES): ... and added to this.
(test_subdirs): Remove 't/perf': the tests in there are no more
listed in $(TESTS).
* t/ax/test-init.sh: Don't explicitly skip "perf" test here.
2012-07-26 Stefano Lattarini <stefano.lattarini@gmail.com>
runtest: pass *all* the given shell options to the test invocation
* runtest.in: Here. This didn't work previously because, in our
option parsing loop, we were mistakenly redefining '$shell_opts'
each time, instead of appending to it.
2012-07-26 Stefano Lattarini <stefano.lattarini@gmail.com>
runtest: correctly pass shell option also for TAP tests
* runtest.in: Here. This required code refactoring not
completely trivial.
2012-07-26 Stefano Lattarini <stefano.lattarini@gmail.com>
cosmetics: remove leftover comment fragment from runtest.in
2012-07-25 Stefano Lattarini <stefano.lattarini@gmail.com>
test defs: improve a comment
* defs-static.in: Here, about the unsetting of CDPATH.
2012-07-25 Stefano Lattarini <stefano.lattarini@gmail.com>
test defs: remove obsolete comment
* defs-static.in: Here: do not state anymore that this file should execute
correctly with any system's /bin/sh shell, as this is not true anymore: the
testsuite assumes a POSIX shell throughout these days.
2012-07-25 Stefano Lattarini <stefano.lattarini@gmail.com>
runtest: support option --shell, tell which shell should run the test
* runtest.in: Here. The same effect could have been obtained by
exporting AM_TEST_RUNNER_SHELL to the desired value, but the new
API is simpler and requires less typing and less thinking.
2012-07-25 Stefano Lattarini <stefano.lattarini@gmail.com>
runtest: support passing options over to the shell
* runtest.in: Here. Also, support '--help' to display a nice
help screen.
2012-07-25 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid spurious failure when running as root
Fixes automake bug#12041.
* t/primary-prefix-couples-force-valid.sh: If run as root, don't expect
a "test -x" on a non-executable files to fail: for root, all files are
executable (as well as readable and writable), and at least on Solaris
10 that causes "test -x" to succeed also on non-executable files.
2012-07-24 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
tests: avoid non-textual output in a '.log' file
2012-07-24 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid non-textual output in a '.log' file
* t/dist-formats.tap: Here. Otherwise, some inferior awk implementations,
like OpenIndiana /usr/xpg4/bin/awk, could be confused and cause spurious
errors in the testsuite harness.
2012-07-24 Stefano Lattarini <stefano.lattarini@gmail.com>
tags: refactor to reduce code duplication (2)
No semantic change is intended.
* lib/am/tags.am (am__define_uniq_tagged_files): New variable,
factor out some code common to ...
(ctags-am, tags-am, ID): ... the recipes of these targets.
2012-07-24 Stefano Lattarini <stefano.lattarini@gmail.com>
tags: refactor to reduce code duplication (1)
No semantic change is intended.
* lib/am/tags.am (am__uniquify_input): New variable, factor
out some code common to ...
(ctags-am, tags-am, ID): ... the recipes of these targets.
2012-07-24 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branches 'tags-simplify-recursion' and 'color-tests-always'
* tags-simplify-recursion:
tags: unify recursion for tags targets with that of "usual" targets
* color-tests-always:
tests: better name for a couple of tests
check: support colorized testsuite output by default
2012-07-23 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid a spurious failure with Solaris /bin/sh
The /bin/sh shell on Solaris is dumb enough not to set the exit
status to 127 after the execution of a non-existing command is
attempted:
$ /bin/sh -c 'nonesuch'; echo stat = $?
/bin/sh: nonesuch: not found
stat = 1
This means that the missing script, when run through that shell,
cannot discriminate between a real failure of a maintainer tool
and a failure due to its absence. This is not a big deal in
practice (especially because all the 'missing' invocations in
our Makefiles are done with $(SHELL), and that is almost surely
set by configure to a proper POSIX shell), but was causing an
annoying failure in our testsuite. Fix it.
* t/missing3.sh: If 'missing' is run with a /bin/sh shell suffering
from the just-described bug, skip the check that would spuriously
fail due to that bug.
2012-07-23 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix buglet in t/missing3.sh
* t/missing3.sh: Be sure to use 'run_cmd' also in the first invocation
of 'missing', to ensure the stderr will actually be saved in a file we
can later grep.
2012-07-23 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
self tests: avoid spurious failures on older bash
tests: remove t/parallel-tests-many.sh (fixes spurious failure)
typofix: in a comment in the automake script
news: minor fixlets and reordering
2012-07-23 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'fix-pr11909' into maint
* fix-pr11909:
self tests: avoid spurious failures on older bash
2012-07-23 Stefano Lattarini <stefano.lattarini@gmail.com>
self tests: avoid spurious failures on older bash
Fixes automake bug#11909.
* t/self-check-explicit-skips.sh: Remove or rework few checks for use
cases that are no more relevant nor supported now that we've got rid
of the need to use the 'Exit' function explicitly. Make the other
existing checks stricter.
2012-07-23 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: remove t/parallel-tests-many.sh (fixes spurious failure)
That test was checking for automake#7868 "parallel-tests and command-line
length limit issue". That bug is still open, and the tests was xfailing.
What concerns us is that the test was also causing an annoying problem.
On Solaris 10, it produced a '.log' file with two overly-long lines (more
than 1 million characters long!) and that was causing the test harness to
experience spurious failures, with Solaris XPG4 awk complaining that:
/usr/xpg4/bin/awk: line 0 (NR=734): Record too long (LIMIT: 19999 bytes)
A little consideration shows that the bug#7868 checked by the culprit
test cannot be solved "by accident", e.g., by another bug fix or some
simple refactoring, so there is little added value in keeping the xfailing
test for it, if this causes other problems (and we've seen it does).
So we just remove the test. In case we ever manage to fix the bug in
mainline automake, we can copy over the similar test(s) from Automake-NG,
which has actually managed to fix the bug (and have simpler test cases
for it).
* t/parallel-tests-many.sh: Delete.
* t/list-of-tests.mk (XFAIL_TESTS, handwritten_TESTS): Remove it.
2012-07-22 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: better name for a couple of tests
* t/color.sh: Rename ...
* t/color-tests.sh: ... like this.
* t/color2.sh: Rename ...
* t/color-tests2.sh: ... like this.
* t/list-of-tests.mk: Adjust.
2012-07-22 Stefano Lattarini <stefano.lattarini@gmail.com>
check: support colorized testsuite output by default
Fixes automake bug#11855.
With this change, we make the 'color-tests' option enabled by default.
That option remains still silently accepted as a no-op, for backward
compatibility.
The developer of a package is still free to disable testsuite coloring on
a per-makefile basis (by adding "AM_COLOR_TESTS = no" to the Makefile.am)
or on a whole-project basis (by AC_SUBST'ing AM_COLOR_TESTS to "no" in
configure.ac). But now the user will be able to request the testsuite
output to be colorized, if he really wants to:
# With GNU make:
make AM_COLOR_TESTS=yes check
# With non-GNU make:
make AM_COLOR_TESTS=yes AM_MAKEFLAGS=AM_COLOR_TESTS=yes check
* NEWS: Update.
* doc/automake.texi: Updated, and some related minor reformatting
and rewording.
* automake.in (handle_tests): No need to pass the transform '%COLOR%'
when processing "check.am".
* lib/am/parallel-tests.am: Remove use of the '%?COLOR%' transform;
just act as if it were unconditionally TRUE.
* t/color.sh: No need to specify 'color-tests' in 'AUTOMAKE_OPTIONS'
nor in 'AM_INIT_AUTOMAKE'.
* t/ax/testsuite-summary-checks.sh: Likewise.
* t/ax/tap-summary-aux.sh: Likewise.
* t/color2.sh: Likewise. Also, ensure that colorized testsuite output
can be disabled by default by calling "AC_SUBST([AM_COLOR_TESTS], [no])".
* t/tap-realtime.sh: Define 'AM_COLOR_TESTS' to "no" in Makefile.am, to
avoid spurious colorization of the output due to the use of the 'expect'
program.
* t/color-tests-opt.sh: New test, check that the 'color-tests' option is
still recognized as a no-op.
* t/list-of-tests.mk: Add the new test.
2012-07-22 Stefano Lattarini <stefano.lattarini@gmail.com>
tags: unify recursion for tags targets with that of "usual" targets
This change has a side effect: now any failure of the 'tags', 'ctags',
'cscope' and 'cscopelist' targets in a subdirectory will cause the
recursive command issued from the top directory to fail. We believe
that this behavioural change is not only justified by the simplification
this patch entails, but actually offers better semantics: ignoring
failures by default is never a good idea, and with make, the user can
anyway order the completion of commands in the face of possible failures
with the '-k' option.
* NEWS: Update.
* automake.in (%required_targets): Add keys 'cscopelist-am', 'tags-am'
and 'ctags-am'.
(handle_tags): Greatly simplified, the major part of the handling of
recursion for the 'tags', 'ctags' and 'cscopelist' now moved out to ...
* lib/am/tags.am: ... this file, that has been adjusted and extended
accordingly.
* t/maken3.sh: Remove testing of the 'TAGS' target, that is now just
an alias to 'tags'. Without this change, this test would spuriously
fail.
2012-07-21 Stefano Lattarini <stefano.lattarini@gmail.com>
typofix: in a comment in the automake script
* automake.in (process_file): Here.
2012-07-17 Stefano Lattarini <stefano.lattarini@gmail.com>
news: minor fixlets and reordering
2012-07-16 Jack Kelly <jack@jackkelly.name>
elisp: --batch implies -q, remove -q
According to the emacs manual[1], --batch implies -q, so there's no
need to pass -q when compiling elisp.
* lib/am/lisp.am: Remove -q from $(EMACS) call.
[1]: http://gnu.org/s/emacs/manual/html_node/emacs/Initial-Options.html
2012-07-16 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
fixup: delete "# serial" line in m4/amversion.in
news: update about recent ylwrap changes and fixes
m4: get rid of "# serial" lines
configure: ${#param} must be supported by the shell for the testsuite
yacc tests: fix a spurious failure with parallel make
ylwrap: use proper quoting inside a `...` substitution
ylwrap: don't uselessly reset the exit status in case of failure
ylwrap: fix C++ support for Bison
ylwrap: refactor: move loop invariant
ylwrap: refactoring: don't rely on the file order
tests: upgrade and fix Bison test case
tests: fix bison input file
ylwrap: comment changes
ylwrap: modernize idioms
ylwrap: rename header inclusion in generated parsers
ylwrap: simplify the list of renamings
ylwrap: refactor: less duplication
2012-07-16 Stefano Lattarini <stefano.lattarini@gmail.com>
fixup: delete "# serial" line in m4/amversion.in
Otherwise, when m4/amversion.m4 is regenerated, it will contain a
serial line as well.
2012-07-16 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'yacc-work' into maint
* yacc-work:
news: update about recent ylwrap changes and fixes
yacc tests: fix a spurious failure with parallel make
ylwrap: use proper quoting inside a `...` substitution
ylwrap: don't uselessly reset the exit status in case of failure
ylwrap: fix C++ support for Bison
ylwrap: refactor: move loop invariant
ylwrap: refactoring: don't rely on the file order
tests: upgrade and fix Bison test case
tests: fix bison input file
ylwrap: comment changes
ylwrap: modernize idioms
ylwrap: rename header inclusion in generated parsers
ylwrap: simplify the list of renamings
ylwrap: refactor: less duplication
2012-07-16 Akim Demaille <akim@lrde.epita.fr>
news: update about recent ylwrap changes and fixes
* NEWS: In ylwrap, renamings are properly propagated, and unknown
files are preserved.
2012-07-15 Stefano Lattarini <stefano.lattarini@gmail.com>
elisp: support elisp files in subdirectories properly
For more reference, see:
<http://lists.gnu.org/archive/html/automake/2009-10/msg00013.html>
<http://thread.gmane.org/gmane.comp.sysutils.automake.bugs/4772>
* lib/am/lisp.am (.el.elc): If the file being byte-compiled is in
a subdirectory, add that (both as a subdirectory of the builddir
and the srcdir) to the emacs load path. While we are at it (and
for consistency), drop quoting of $(srcdir) and $(builddir), since
those variables are ensured (by configure-time checks) not to
contain white space nor shell metacharacters.
* t/list-of-tests.mk (XFAIL_TESTS): Add 't/lisp-subdir.sh' and
't/lisp-subdir2.sh', since they now passes.
2012-07-15 Stefano Lattarini <stefano.lattarini@gmail.com>
elisp: simplify suffix rules using emacs '-L' option
* lib/am/lisp.am (.el.elc): Use '-L dir' instead of calling '--eval' to
explicitly append to the 'load-path' variable.
2012-07-15 Stefano Lattarini <stefano.lattarini@gmail.com>
elisp: no need to "absolutize" $(srcdir) and $(builddir) ...
* lib/am/lisp.am (.el.elc): ... here: we don't chdir around anyway,
nor move or copy around our source '.el' files. Update comments,
and re-wrap them while we are at it.
2012-07-14 Stefano Lattarini <stefano.lattarini@gmail.com>
elisp: prefer $(builddir) files over $(srcdir) ones
* lib/am/lisp.am (.el.elc): Here. This better respects VPATH spirit.
Adjust and extends comments.
* t/list-of-tests.mk (XFAIL_TESTS): Remove 't/lisp-loadpath.sh', which
now passes.
2012-07-14 Jack Kelly <jack@jackkelly.name>
elisp: use suffix rules, get rid of 'elisp-comp' script (mostly a rewrite)
Motivated by automake bug#11806.
Traditionally, automake byte-compiled emacs-lisp '.el' files by invoking
'elisp-comp' on all of them in a bulk; this involved complex timestamping
and file-locking logic. It was also brittle in any slightly-unusual
setup, because 'elisp-comp' operated by copying all of the elisp files
to be compiled into a temporary sub-directory and compiling them in there,
the copying the resulting byte-compile files back in the build directory.
This patch removes all of that juggling and chicanery in favour of
defining a much simpler '.el.elc' suffix rule. Not only this is simpler,
but it also interacts better with "make -jN" calls, which are becoming
more and more common and useful on today's increasingly multicore systems.
* Makefile.am (dist_script_DATA): Remove 'elisp-comp'.
* automake.in (@common_files): Likewise.
(handle_emacs_lisp): Do not require 'elisp-comp'.
* doc/automake.texi: Remove references to 'elisp-comp'.
* lib/am/lisp.am: Define elisp compilation via a suffix rule; this
basically amounts to a complete re-write of the lisp byte-compilation
rules.
* lib/elisp-comp: Remove.
* t/add-missing.tap: Remove elisp-comp test.
* t/dist-auxdir-many-subdirs.sh: Remove reference to elisp-comp.
* t/primary-prefix-invalid-couples.tap: Likewise.
* t/primary-prefix-valid-couples.sh: Likewise.
* t/lisp4.sh: Remove reference to elc-stamp.
* t/lisp5.sh: Likewise.
* t/lisp6.sh: Likewise.
* t/lisp3.sh: Likewise. Also remove the recompilation check that
involves a (message) call.
* t/lisp7.sh: Remove check for "Warnings can be ignored". Remove
reference to elc-stamp.
* t/lisp8.sh: Likewise.
* t/lispdry.sh: Remove references to elc-stamp.
Acked-by: Stefano Lattarini <stefano.lattarini@gmail.com>
2012-07-14 Stefano Lattarini <stefano.lattarini@gmail.com>
coverage: elisp path contains $(srcdir) and $(builddir)
* t/lisp-loadpath.sh: Check that. Also check that, in true VPATH
spirit, elisp files in the build directory are preferred to those
in the source directory. This test currently fails.
* t/list-of-tests.mk (handwritten_TESTS): Add the new test.
(XFAIL_TESTS): Likewise.
2012-07-14 Stefano Lattarini <stefano.lattarini@gmail.com>
coverage: emacs lisp files in subdirectories
* t/lisp-subdir.sh, t/lisp-subdir2.sh: New tests, still failing.
* t/list-of-files.mk (handwritten_TESTS, XFAIL_TESTS): Add them.
2012-07-14 Stefano Lattarini <stefano.lattarini@gmail.com>
m4: get rid of "# serial" lines
The "#serial" lines are only considered by aclocal for the system-wide
third-party '.m4' files, not for the Automake-provided ones. So they
serve no real purpose in the Automake '.m4' files.
In addition, now that we use git and topic branches, and that we are also
writing the Automake-NG fork, the "#serial" lines are becoming more and
more unreliable (e.g., different version of the same file in different
branches can easily end up having the same serial numbers).
So let's just nuke all the "#serial" lines. See also automake bug#11932.
* m4/*.m4: All "# serial" lines removed.
2012-07-14 Stefano Lattarini <stefano.lattarini@gmail.com>
configure: ${#param} must be supported by the shell for the testsuite
This will be required at least by the Automake-NG branch.
* configure.ac: Require the $AM_TEST_RUNNER_SHELL supports ${#param} as
a way to obtain the length of the expansion of the variable $param.
2012-07-14 Stefano Lattarini <stefano.lattarini@gmail.com>
yacc tests: fix a spurious failure with parallel make
* t/yacc-bison-skeleton.sh (Makefile.am): Add 'zardoz.h'
to BUILT_SOURCES.
2012-07-14 Stefano Lattarini <stefano.lattarini@gmail.com>
ylwrap: use proper quoting inside a `...` substitution
* lib/ylwrap ($target): Here, when redefining this to a temporary file.
2012-07-14 Stefano Lattarini <stefano.lattarini@gmail.com>
ylwrap: don't uselessly reset the exit status in case of failure
* lib/ylwrap: Here. In case of a failure in the wrapped yacc/lex
invocation, '$ret' (holding the final exit status of ylwrap) was
being uselessly reset to '1' in the later if/else.
2012-07-14 Akim Demaille <akim@lrde.epita.fr>
ylwrap: fix C++ support for Bison
Fixes automake bug#7648.
The current logic of ylwrap is to call yacc in a sub directory, and
pull out of it all the files that were requested on its command line.
Reverse this approach: export *all* the files created in the
subdirectory, but rename them according to what the command says.
This way, extra files, such as position.hh, location.hh and stack.hh
for C++ parsers, but also parser.xml or parser.dot if XML or Dot
output is enabled, will be preserved.
* lib/ylwrap (pairlist): Remove.
(main loop): Don't loop over pairlist, but over the files in the
temporary directory.
* t/list-of-tests.mk (XFAIL_TESTS): Fixes t/yacc-bison-skeleton-cxx.sh.
* THANKS (James Bostock): Add, he reported bug#7648.
2012-07-14 Akim Demaille <akim@lrde.epita.fr>
ylwrap: refactor: move loop invariant
* lib/ylwrap (input_rx): Move its definition next to its sibling's,
outside of the main loop.
2012-07-14 Akim Demaille <akim@lrde.epita.fr>
ylwrap: refactoring: don't rely on the file order
Forthcoming changes will make us iterate over the files in a different
order.
lib/ylwrap (first): Remove, replaced by...
(parser): this.
2012-07-14 Akim Demaille <akim@lrde.epita.fr>
tests: upgrade and fix Bison test case
* t/yacc-bison-skeleton-cxx.sh: Request locations, to be
even more stressful.
Use %union to make sure the %{...%} is inserted where appropriate.
Fix some indentation/coding style issues.
2012-07-14 Akim Demaille <akim@lrde.epita.fr>
tests: fix bison input file
Do not provide implementations in the %{...%} section, especially if the
header is included elsewhere, since then the linker will complain about
multiple definitions.
Reported by Stefano Lattarini,
<http://lists.gnu.org/archive/html/automake-patches/2012-07/msg00126.html>.
* t/yacc-bison-skeleton.sh (zardoz.y): Define yylex and yyerror in the
epilogue.
2012-07-14 Akim Demaille <akim@lrde.epita.fr>
ylwrap: comment changes
* lib/ylwrap: Improve some comments.
2012-07-14 Akim Demaille <akim@lrde.epita.fr>
ylwrap: modernize idioms
* lib/ylwrap: Prefer printf to echo when special characters may
occur.
Replace the historical ',' sed separator with '|'.
2012-07-14 Akim Demaille <akim@lrde.epita.fr>
ylwrap: rename header inclusion in generated parsers
Some types of Bison parsers, such as the GLR ones, generate a header
file that they include. ylwrap, which renames the generated files,
does not rename the included file. Fix this shortcoming, reported
for instance here:
<http://lists.gnu.org/archive/html/bug-bison/2012-06/msg00033.html>.
Fixes t/yacc-bison-skeleton.sh, see Automake bug#7648 and PR automake/491.
* lib/ylwrap (quote_for_sed): Accept arguments.
Catch more special characters.
(rename_sed): New.
Improve the previous renaming sed commands using quote_for_sed.
Suggested by Stefano Lattarini here:
<http://lists.gnu.org/archive/html/automake-patches/2012-07/msg00095.html>.
(main loop): Use rename_sed to rename the dependencies to other files.
* t/yacc-d-basic.sh: Exercise this case, even if bison/yacc was
not issuing such an include.
* t/list-of-tests.mk (XFAIL_TESTS): Adjust.
2012-07-14 Akim Demaille <akim@lrde.epita.fr>
ylwrap: simplify the list of renamings
* lib/ylwrap (pairwise): Instead of being a straightforward copy from
the command line arguments, and having to deal with y.tab vs. y_tab
later, let pairwise store the real file names to process, y_tab
conversion included when needed.
(main loop): Use $to instead of $2, for symmetry with $from.
2012-07-14 Akim Demaille <akim@lrde.epita.fr>
ylwrap: refactor: less duplication
* lib/ylwrap (guard): New function.
Move functions before actual code.
2012-07-13 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
news: mention fixed testsuite weaknesses
news: bump, for future 1.12.3
tests: verify the shell test scripts are syntactically valid
tests: don't use C instead of C++ compiler on case-insensitive platforms
tests: avoid spurious TAP errors on Mac OS X 10.7
tests: fix spurious failure in aclocal7.sh on fast machines
2012-07-13 Stefano Lattarini <stefano.lattarini@gmail.com>
news: mention fixed testsuite weaknesses
2012-07-13 Stefano Lattarini <stefano.lattarini@gmail.com>
news: bump, for future 1.12.3
2012-07-13 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branches 'fix-pr11898' and 'fix-pr-11893-and-10766' into maint
* fix-pr11898:
tests: verify the shell test scripts are syntactically valid
* fix-pr-11893-and-10766:
tests: don't use C instead of C++ compiler on case-insensitive platforms
2012-07-13 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: verify the shell test scripts are syntactically valid
Fixes automake bug#11898.
This measure of extra safety is mostly motivated by the fact that some
shells (at least some versions of Bash in the 3.x release series, one
of which serves as /bin/sh on Mac OS X 10.7, as well as Bash 4.0 and the
/usr/xpg4/bin/sh shell from Solaris 10) erroneously exit with exit status
0 upon encountering a syntax error, if an exit trap is sett (as it is in
our test scripts).
* Makefile.am (check-tests-syntax): New, check that the shell test
scripts listed in $(TESTS) are syntactically correct.
(.PHONY, check-local): Depend on it.
* t/self-check-exit.tap : Remove checks verifying that a script exits
with non-zero status upon encountering a syntax error; as explained
above, we can't depend on that.
2012-07-12 Stefano Lattarini <stefano.lattarini@gmail.com>
depcomp: style changes to Portland Group Compilers support
* lib/depcomp (pgcc): Quote 'like this', not `like this'. Other minor
quoting improvements. Remove a commented-out command. In comments,
use proper capitalization and punctuation. Make a more consistent use
of whitespace. Make fatal error messages more nicely formatted, and
send them to standard error rather than to standard output.
2012-07-12 Dave Goodell <goodell@mcs.anl.gov>
Jeff A. Daily <jeff.daily@pnnl.gov>
depcomp: initial support for Portland Group Compilers
* lib/depcomp: Here. See automake bug#8880.
Acked-by: Stefano Lattarini <stefano.lattarini@gmail.com>
2012-07-12 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: don't use C instead of C++ compiler on case-insensitive platforms
This change fixes automake bug#11893 and bug#10766.
On at least Cygwin and Mac OS X 10.7, the file system where the system
compilers are located can be case-insensitive, so that looking for a
program named 'CC' might actually find the C compiler in /usr/bin/cc.
Now, the Automake configure script looks for a C++ compiler named 'CC'
before looking for more obvious names like c++ or g++ (that is done to
increase testsuite "coverage in the wild", e.g., preferring, on Solaris,
the Sun Studio C++ compiler /usr/bin/CC over the GNU C++ compiler).
Since the checks done in AC_PROG_CXX are apparently not strict enough
to rule out C compilers like those from GCC or Clang (which are smart
enough to recognize if a file has a C++ extension, passing it to the
C++ front end) the testsuite might end up using a C compiler where a
C++ one is expected, with some subtle bad consequences.
* configure.ac: Don't look for a C++ compiler named 'CC' if the
"top-level" file system(s) (where /bin and /usr/bin are) are detected
to be case-insensitive.
Reported-by: Peter Rosin <peda@lysator.liu.se>
Reported-by: Max Horn <max@quendi.de>
Helped-by: Eric Blake <eblake@redhat.com>
2012-07-10 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid spurious TAP errors on Mac OS X 10.7
Fixes automake bug#1897. Reported by Max Horn.
* t/suffix8.tap: The libtool bug#11895 was causing the ./configure script
to output a stray "ok" string on a line of its own, confusing the TAP
driver into thinking this was an extra test result (which resulted in the
next, real test results being flagged as "OUT-OF-ORDER"). Fix this by
protecting configure output.
* t/suffix10.tap: Likewise, and for the "make distcheck" output as well.
* THANKS: Update.
2012-07-10 Adam Sampson <ats@offog.org> (tiny change)
tests: fix spurious failure in aclocal7.sh on fast machines
Fixes automake bug#11896. Issue introduced in commit v1.12.1-46-g13dd512.
* t/aclocal7.sh: Since aclocal rewrites aclocal.m4 unless the input files
are all older than the existing aclocal.m4, so we must sleep to ensure
somedefs.m4 has an older timestamp than the aclocal.m4 the next aclocal
call will generate.
2012-07-09 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint' (with fix for CVE-2012-3386)
This makes the fix for a locally-exploitable security vulnerability
(CVE-2012-3386) available to the Automake master branch.
* maint:
sync: update files from upstream with "make fetch"
news: improve wording in entry about CVE-2012-3386
maint: post-release minor version bump
release: stable release 1.12.2
distcheck: never make part of $(distdir) world-writable
compat: automake should substitute @mkdir_p@, for backward compatibility
fixup: t/README: it's ./runtest, not ./t/ax/runtest
2012-07-09 Stefano Lattarini <stefano.lattarini@gmail.com>
sync: update files from upstream with "make fetch"
* lib/config.guess, lib/gitlog-to-changelog, lib/texinfo.tex: Update.
2012-07-09 Stefano Lattarini <stefano.lattarini@gmail.com>
news: improve wording in entry about CVE-2012-3386
2012-07-09 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: post-release minor version bump
* configure.ac (AC_INIT): Bump version number to 1.12.2a.
* m4/amversion.m4: Likewise (automatically regenerated by
"make bootstrap").
2012-07-09 Stefano Lattarini <stefano.lattarini@gmail.com>
release: stable release 1.12.2
* configure.ac (AC_INIT): Bump version number to 1.12.2.
* m4/amversion.m4: Likewise (auto-updated by "./bootstrap").
2012-07-09 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'distcheck-vulnerability-CVE-2012-3386' into maint
* distcheck-vulnerability-CVE-2012-3386:
distcheck: never make part of $(distdir) world-writable
2012-07-09 Stefano Lattarini <stefano.lattarini@gmail.com>
distcheck: never make part of $(distdir) world-writable
This fixes a locally-exploitable security vulnerability (CVE-2012-3386).
In the 'distcheck' rule, we used to make the just-extracted (from
the distribution tarball) $(distdir) directory and all its files and
subdirectories read-only; then, in order to create the '_inst' and
'_build' subdirectories in there (used by the rest of the recipe) we
made the top-level $(distdir) *world-writable* for an instant (the
time to create those two directories) before making it read-only
again.
Making that directory world-writable (albeit only briefly) introduced a
locally exploitable race condition for those who run "make distcheck" with
a non-restrictive umask (e.g., 022) in a directory that is accessible by
others. A successful exploit would result in arbitrary code execution
with the privileges of the user running "make distcheck" -- game over.
Jim Meyering wrote a proof-of-concept script showing that such exploit is
easily implemented.
This issue is similar to the CVE-2009-4029 vulnerability:
<http://lists.gnu.org/archive/html/automake/2009-12/msg00012.html>
* lib/am/distdir.am (distcheck): Don't make $(distdir) world-writable,
not even for an instant; make it user-writable instead, which is enough.
Helped-By: Jim Meyering <jim@meyering.net>
2012-07-09 Stefano Lattarini <stefano.lattarini@gmail.com>
compat: automake should substitute @mkdir_p@, for backward compatibility
That has been unwittingly broken by commit v1.12-19-g7a1eb9f of 2012-04-28,
"AM_PROG_MKDIR_P: deprecate, to be removed in Automake 1.13". We thought it
wasn't a big deal, but Jim Meyering reported that @mkdir_p@ is used in
gettext's Makefile.in.in template:
<http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
* lib/am/header-vars.am (mkdir_p): Don't define.
* m4/init.m4 (AM_INIT_AUTOMAKE): AC_SUBST 'mkdir_p' with $(MKDIR_P).
* t/mkdir_p.sh, t/mkdirp-deprecation.sh: Enhance.
* NEWS: Update.
2012-07-08 Stefano Lattarini <stefano.lattarini@gmail.com>
fixup: t/README: it's ./runtest, not ./t/ax/runtest
* t/README (Supported shells): Here. And remove an extra empty line.
2012-07-07 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
tests: move 'runtest' into the top-level directory
2012-07-07 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: move 'runtest' into the top-level directory
Move our wrapper script 'runtest' (meant to allow the execution of
Automake test cases from the command line) from the 't/ax/' directory
to the top-level one. This makes the script easier to find and to
invoke. Much more importantly, our DejaGNU-checking test cases won't
try anymore to use that script instead of the 'runtest' program provided
by DejaGNU (that happened because '$(srcdir)/t/ax/' is automatically
added early to the $PATH variable in our test cases), which was causing
spurious SKIPs.
* t/ax/runtest.in: Move ...
* runtest.in: ... here.
* Makefile.am, t/README, .gitignore: Adjust.
2012-07-07 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
cosmetics: rename t/ax/test-runner => t/ax/runtest
fixup: another "make recheck" failure with BSD make
test runner: work correctly in VPATH setups
compat: automake should define $(mkdir_p), for backward compatibility
coverage: test that AM_PROG_MKDIR_P and $(mkdir_p) still works
tests init: don't automatically re-execute tests with a POSIX shell
yacc tests: fix spurious failure with parallel make
tests: ignore minor 'recheck' regression for BSD make
tests: don't clutter the top-level dir with temporary test directories
tests: avoid spurious failures when @MKDIR_P@ points to "install-sh -d"
lisp: better support of VPATH builds
news: fixlets and updates
+ Extra non-trivial edits:
* NEWS: State that $(mkdir_p) is still provided as an alias to
$(MKDIR_P), for (partial) backward-compatibility.
2012-07-06 Stefano Lattarini <stefano.lattarini@gmail.com>
cosmetics: rename t/ax/test-runner => t/ax/runtest
The latter is shorter and clearer. Better to do the rename early,
before other developers or contributors begin to get used to the
'test-runner' name.
* t/ax/test-runner.in: Rename ...
* t/ax/runtest.in: ... like this.
* Makefile.am, t/README, .gitignore: Adjust.
2012-07-06 Stefano Lattarini <stefano.lattarini@gmail.com>
fixup: another "make recheck" failure with BSD make
* t/parallel-tests-log-override-recheck.sh: Here, add a proper $sleep
before calling "make recheck". This should ideally have been done
in the earlier commit 'v1.12.1-100-g19d84bc', but it somehow slipped
through the cracks.
* t/test-metadata-recheck.sh: Likewise.
2012-07-06 Stefano Lattarini <stefano.lattarini@gmail.com>
test runner: work correctly in VPATH setups
Due to a "feature" of AC_CONFIG_FILES, because 't/ax/test-runner.in'
is in a subdirectory, the '@srcdir@' value that is AC_SUBST'd in it
gets tweaked to contain as much '..' components as are the directory
components of 't/ax/test-runner'. Because our build system operates
in a non-recursive setup, this substitution is wrong; for example,
the final 't/ax/test-runner' build in a VPATH builds where the source
directory is ".." contains the line:
: ${srcdir='../../../t/ax'}
instead of the expected (and correct):
: ${srcdir='../t/ax'}
We solve the issue by building 't/ax/test-runner' with a Makefile
recipe instead of config.status substitutions; this is already done
for other testsuite-related files, like 'defs-static'.
* configure.ac (AC_CONFIG_FILES): Don't build 't/ax/test-runner'
anymore.
* Makefile.am (t/ax/test-runner): New rule.
(EXTRA_DIST): Add 't/ax/test-runner.in'.
(CLEANFILES, noinst_SCRIPTS): Add 't/ax/test-runner'.
2012-07-06 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'fix-pr11806' into maint
* fix-pr11806:
lisp: better support of VPATH builds
2012-07-06 Stefano Lattarini <stefano.lattarini@gmail.com>
tests init: don't automatically re-execute tests with a POSIX shell
I've unwittingly broken support for that feature *again* in some of
my recent testsuite tweaking. In this case, the re-execution code
works correctly when the tests are executed with a POSIX shells, but
breaks when they are invoked by an old-style Bourne shells (e.g.,
/bin/sh on Solaris).
It's time to face it: that feature is too much brittle, and too seldom
used (because the Makefile takes care of running the tests with the
correct shell anyway, so that a breakage is only experienced when
running the tests by hand). It just don't remain working for long, not
when we often touch the testsuite setup (which we are going to do again
when we'll try to move part of our testsuite framework to Gnulib, or a
similar project).
So, instead of trying to be extra-smart and automatically re-execute the
tests with the correct shell, we now offer a simple wrapper script that
the user can employ to run the test scripts with the proper shell. And
while we are at it, we write this wrapper to also deal with TAP tests in
a better way, running them through the prove(1) utility, so that their
results are correctly recognized and reported.
* t/ax/test-runner.in: New file; the wrapper script we were talking about.
* configure.ac (AC_CONFIG_FILES): Process it into 't/ax/test-runner'.
* .gitignore: Add 't/ax/test-runner'.
* defs: Remove code for automatic re-execution of the scripts with the
correct shell. This file now just a very thin layer around 'defs-static'
and 't/ax/test-init.sh'.
* t/README: Adjust, and remove or fix some imprecise or outdated text in
the process (like "... test scripts are written with portability in mind,
so that they should run with any decent Bourne-compatible shell ..." ).
* Makefile.am (AM_TESTS_ENVIRONMENT): No need to export 'AM_TESTS_REEXEC'
to "no" anymore.
* t/self-check-explicit-skips.sh: Likewise.
* t/self-check-exit.tap: Likewise.
* t/self-check-me.tap: Likewise.
* t/self-check-dir.tap: Likewise.
* t/self-check-reexec.tap: Remove as obsolete.
* t/list-of-tests.mk: Adjust.
2012-07-06 Stefano Lattarini <stefano.lattarini@gmail.com>
yacc tests: fix spurious failure with parallel make
* t/yacc-deleted-headers.sh: Here, by adding a missing dependency
in the Makefile.am. Revealed by a failure with Sun Distributed make
run on Solaris 10 in parallel mode.
2012-07-06 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: ignore minor 'recheck' regression for BSD make
It turns out that, with NetBSD 5.1 make and FreeBSD 9 make, running
"make recheck" two times in a row quickly fails to correctly re-run
the failed tests in the second run.
That issue has been introduced likely introduced in commit
'v1.12.1-95-gd5443e4' of 20102-07-01, "parallel-tests: reimplement
fix for bug#11791".
Anyway, the use case that has been broken is not realistic (who is
going to run "make recheck" two times in one second, without modifying
any of the tests or the tested programs in the meantime?), so we believe
the best fix is to simply work around the issue in the affected test
cases, rather than risking to slow down or uglify the 'recheck' rule.
* t/parallel-tests9.sh: Enhance a little.
* t/tap-recheck.sh: Adjust adding proper '$sleep' calls were required.
* t/parallel-tests-log-override-recheck.sh: Likewise.
* t/test-driver-custom-multitest-recheck.sh: Likewise.
* t/test-driver-custom-multitest-recheck2.sh: Likewise.
2012-07-06 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: don't clutter the top-level dir with temporary test directories
* t/self-check-me.tap: Be sure to initialize '$am_create_testdir' to "no"
in all the shell invocations sourcing './defs'. Otherwise, when running
the testsuite with 'keep_testdirs=yes', the following temporary director
are left cluttering the top-level directory:
./012.dir
./abc..dir
./a.b.c.dir
./foo.dir
./foo.bar.dir
./foo-bar-.dir
./_foo__bar.dir
2012-07-06 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid spurious failures when @MKDIR_P@ points to "install-sh -d"
* t/self-check-cleanup.tap: Several checks in this test were failing on
NetBSD 5.1. That happened because on that system, '@MKDIR_P@' expands to
an "install-sh -d" invocation that references the $(builddir), and the
code trying to duplicate some of the Automake testsuite infrastructure
in the test subdirectory of this self test wasn't smart enough to cater
to that situation. Granted, we could tweak the test case once more to
fix this Yet Another Spurious Failure, but at this point it has become
clear that the extra coverage offered by this test is not worth all the
hassle. Just remove the test. Since the testsuite is regularly run on
several systems and with different setups, most issues with the testsuite
framework will reveal themselves anyway; no actual need to unit-test them
in our testsuite, if that's too tricky.
* t/list-of-tests.mk: Adjust.
2012-07-06 Stefano Lattarini <stefano.lattarini@gmail.com>
compat: automake should define $(mkdir_p), for backward compatibility
That has been unwittingly broken by commit 'v1.12-19-g7a1eb9f'
of 2012-04-28, "AM_PROG_MKDIR_P: deprecate, to be removed in
Automake 1.13".
Report from Benoit Sigoure and Diego Elio Pattenò:
<http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
* lib/am/header-vars.am (mkdir_p): Define as an alias for $(MKDIR_P).
* t/list-of-tests.mk (XFAIL_TESTS): Remove 't/mkdir_p.sh'.
* NEWS: Update.
2012-07-06 Stefano Lattarini <stefano.lattarini@gmail.com>
coverage: test that AM_PROG_MKDIR_P and $(mkdir_p) still works
They are deprecated, but should continue to work in the 1.12.x
release series. Report from Benoit Sigoure and Diego Elio Pattenò:
<http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
* t/mkdirp-deprecation.sh: Enhance.
* t/mkdir_p.sh: New test, check that AM_INIT_AUTOMAKE still defines
the $(mkdir_p) make variable. Currently xfailing.
* t/list-of-tests.mk (handwritten_TESTS, XFAIL_TESTS): Add the new
test.
2012-07-06 Jack Kelly <jack@jackkelly.name> (tiny change)
Stefano Lattarini <stefano.lattarini@gnu.org>
lisp: better support of VPATH builds
Fixes automake bug#11806.
* lib/am/lisp.am: Pass the value of '$(abs_srcdir)' to the
elisp-compile script in the environment.
* lib/elisp-comp: Add the vale of '$abs_srcdir' to the emacs
load-path.
* t/lisp-pr11806.sh: New test.
* t/list-of-tests.mk: Add it.
Reported-by: Makoto Fujiwara <makoto@ki.nu>
2012-07-03 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: make 't/aclocal-macrodir.tap' executable
2012-07-03 Stefano Lattarini <stefano.lattarini@gmail.com>
maintcheck: fix spurious failure in 'maintainer-check-list-of-tests'
* Makefile.am (test_subdirs): Add 'contrib/t', otherwise we would get a
spurious error like:
List of tests in Makefile an on filesystem differ
+ diff -u in-makefile on-filesystem
--- tests-in-makefile-list.tmp 2012-07-03 23:07:47.000000000 +0200
+++ tests-on-filesystem-list.tmp 2012-07-03 23:07:47.000000000 +0200
@@ -1,7 +1,3 @@
-contrib/t/help-multilib.sh
-contrib/t/multilib.sh
-contrib/t/parallel-tests-html-recursive.sh
-contrib/t/parallel-tests-html.sh
t/ac-output-old.tap
t/acloca10.sh
t/acloca11.sh
make: *** [maintainer-check-list-of-tests] Error 1
2012-07-03 Stefano Lattarini <stefano.lattarini@gmail.com>
build: fix cleaning of test directories in contrib (and in t/perf)
* Makefile.am (clean-local-check): Update recipe to cater to the fact
that some tests using a temporary directory have been placed in other
directories that the 't/' directory (for the moment, at least 't/perf'
and 'contrib/t').
2012-07-03 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'aclocal-trace-macrodir'
* aclocal-trace-macrodir:
aclocal: deprecate ACLOCAL_AMFLAGS, trace AC_CONFIG_MACRO_DIR instead
2012-07-03 Stefano Lattarini <stefano.lattarini@gmail.com>
aclocal: deprecate ACLOCAL_AMFLAGS, trace AC_CONFIG_MACRO_DIR instead
Maintaining ACLOCAL_AMFLAGS in the Makefile.am to pass extra flags
to aclocal is (and have always been) quite of an hack. For example,
autoreconf is forced to grep Makefile.am to honour those flags. But
this is a bad obsolescent behaviour; in fact, the autotools have moved
consistently in the past years from custom grepping of Makefile.am and
configure.ac to tracing of m4 macro calls, which is more consistent,
more reliable and more flexible.
And when autoreconf is not used, the developer is forced to add *by hand*
the flags specified by ACLOCAL_AMFLAGS to the aclocal calls not triggered
by make rebuild rules; here lie again more duplication and more chances
for errors.
Moreover, ACLOCAL_AMFLAGS has only two typical use cases:
- to instruct aclocal to look for extra macro definition in a local
directory (as with "ACLOCAL_AMFLAGS = -I m4"); and
- to further instruct aclocal to copy in that local directory the
required third-party .m4 files found in the system-wide directory
(as with "ACLOCAL_AMFLAGS = -I m4 --install").
The first use case can be better covered if aclocal can instead trace and
honours call to the AC_CONFIG_MACRO_DIR autoconf macro; and the second
use case shouldn't be considered really legitimate, as it is quite (and
subtly) brittle (see automake bug#9037).
Thus we now make aclocal trace AC_CONFIG_MACRO_DIR macro, and act
accordingly. For backward compatibility, we continue to support the
ACLOCAL_AMFLAGS special variable (although removing any mention of it
from the documentation). Future Automake releases will likely start
to warn about the use of that variable, and eventually remove support
for it altogether.
From a suggestion by Eric Blake.
This is a much simplified (and IMHO saner) version of the patch series
discussed in the threads:
<http://lists.gnu.org/archive/html/automake-patches/2010-10/msg00045.html>
<http://lists.gnu.org/archive/html/automake-patches/2010-12/msg00156.html>
* aclocal.in ($ac_config_macro_dir): New global variable.
(trace_used_macros): Also trace the macro 'AC_CONFIG_MACRO_DIR',
and set the '$ac_config_macro_dir' variable accordingly.
(parse_arguments): Code for diagnosis of '--install' used without
any user-specified include directory moved ...
(while (1)): .. into the main loop. Which now also updates the
list of user-specified include directories to include the directory
given as argument to the call (if any) of 'AC_CONFIG_MACRO_DIR'.
* lib/am/configure.am: Update comments.
* NEWS: Updated.
* doc/automake.texi: Likewise. Also, stop advising the use of the
'--install' in ACLOCAL_AMFLAGS (see automake bug#9037 for a rationale),
and remove any reference to ACLOCAL_AMFLAGS (which is now considered
obsolescent).
* t/aclocal-path-install.sh: Adjust grepping check in the aclocal
error messages.
* t/subpkg.sh: Updated: add 'AC_CONFIG_MACRO_DIR' call to configure.ac,
remove setting of 'ACLOCAL_AMFLAGS' in Makefile.am and use of aclocal
command line arguments.
* t/subpkg2.sh: Likewise.
* t/subdir8.sh: Likewise.
* t/remake10c.sh: Likewise.
* t/remake8a.sh: Likewise.
* t/remake8b.sh: Likewise.
* t/aclocal4.sh: Likewise.
* t/aclocal6.sh: Likewise.
* t/acloca14.sh: Likewise.
* t/acloca22.sh: Likewise.
* t/aclocal5.sh: Likewise, and do not not invade the Automake
namespace (this avoids spurious failures).
* t/acloca14b.sh: New test, identical to the previous version of
'acloca14.test'; it is kept to verify backwards compatibility with
the use of ACLOCAL_AMFLAGS.
* t/acloca22b.sh: Likewise (but for 'acloca22.test').
* t/aclocal-amflags.sh: New test, check for backwards
compatibility that ACLOCAL_AMFLAGS still works.
* t/remake-macrodir.sh: New test, checking that aclocal's honoring of
AC_CONFIG_MACRO_DIR interacts nicely with automatic rebuild rules.
* t/list-of-tests.mk: Add the new tests.
2012-07-03 Stefano Lattarini <stefano.lattarini@gmail.com>
news: fixlets and updates
* NEWS: Here. In particular, report the change in 'missing'
semantics.
2012-07-02 Stefano Lattarini <stefano.lattarini@gmail.com>
contrib: check-html: pass flags to rst2html invocations
Related to automake bug#11287.
* contrib/t/check-html.am (.log.html): Here, passing $(AM_RST2HTMLFLAGS)
and $(RST2HTMLFLAGS) (in that order).
2012-07-02 Stefano Lattarini <stefano.lattarini@gmail.com>
contrib: simple improvements to check-html
Related to automake bug#11287.
* contrib/t/check-html.am (.log.html): Do not look for $RST2HTML in
the environment, looking for $(RST2HTML) should be enough (also, the
pre-existing code was broken, because it single-quoted $RST2HTML).
Fix the loop-and-search implementation to be more similar to the
one in 'contrib/t/parallel-tests-html.sh'. Prefer 'mv -f' over bare
'mv'. Do not break the recipe in
2012-07-02 Stefano Lattarini <stefano.lattarini@gmail.com>
coverage: check-html can be used recursively
Addresses the main part of Automake bug#11287.
* contrib/t/parallel-tests-html-recursive.sh: New test.
* contrib/t/local.am: Add it.
2012-07-02 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: tests for stuff in contrib goes in 'contrib/t'
* t/help-multilib.sh: Move ...
* contrib/t/help-multilib.sh: .. here. Remove a now-obsolete
"FIXME" comment.
* t/multlib.sh: Move ...
* contrib/t/multilib.sh: .. here. Remove a now-obsolete
"FIXME" comment.
* t/parallel-test2.sh: Move ...
* contrib/t/parallel-tests-html.sh: .. here. Remove a
now-obsolete "FIXME" comment.
* contrib/t/local.am: New, basically defining the list of
tests for stuff in 'contrib/'.
* t/list-of-tests.mk, Makefile.am: Adjust.
* .gitignore: Update.
* syntax-checks.mk (xtests): Likewise.
2012-07-02 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'user-recursive-targets'
* user-recursive-targets:
recursion: support user-defined recursive targets
tests: rename 'recurs*.sh' to 'var-recurs*.sh'
tests: minor improvements to 'recurs*.sh'
2012-07-02 Stefano Lattarini <stefano.lattarini@gmail.com>
recursion: support user-defined recursive targets
The user can now define his own recursive targets that recurse
in the directories specified in $(SUBDIRS). That can be done by
specifying the name of such targets in invocations of the new
'AM_EXTRA_RECURSIVE_TARGETS' m4 macro.
The API goes like this:
$ cat configure.ac
AC_INIT([pkg-name], [1.0]
AM_INIT_AUTOMAKE
AM_EXTRA_RECURSIVE_TARGETS([foo])
AC_CONFIG_FILES([Makefile sub/Makefile])
AC_OUTPUT
$ cat Makefile.am
SUBDIRS = sub
foo-local:
@echo This will be run by "make foo".
$ cat sub/Makefile.am
foo-local:
@echo This too will be run by a "make foo" issued either in
@echo the 'sub/' directory or in the top-level directory.
Like for the "default" recursive targets (e.g., 'all' and 'check'),
the user-defined recursive targets descend in the $(SUBDIRS) in a
depth-first fashion, and process '.' last (unless that is explicitly
specified in $(SUBDIRS)).
* NEWS, doc/automake.texi: Document the new feature.
* automake.in (@extra_recursive_targets): New global variable.
(scan_autoconf_traces): Trace macro '_AM_EXTRA_RECURSIVE_TARGETS'.
(handle_user_recursion): New subroutine; among other things, it defines
the new internal '$(am__extra_recursive_targets)' make variable, and
the '*-am', '*-local' and '*-recursive' targets associated with the
user-specified user recursive targets.
(generate_makefile): Call the new subroutine.
* lib/am/subdirs.am (am__recursive_targets): New internal make variable,
listing all of '$(RECURSIVE_TARGETS)', '$(RECURSIVE_CLEAN_TARGETS)' and
'$(am__extra_recursive_targets)' together.
(AM_RECURSIVE_TARGETS): Adjust the definition of this variable ...
(.PHONY, .MAKE): ... and the list of dependencies of these special targets
to take advantage of the new '$(am__recursive_targets)' variable.
($(am__recursive_targets)): New targets, superseding ...
($(RECURSIVE_TARGETS), $(RECURSIVE_CLEAN_TARGETS)): ... these, and
inheriting their rules. This way, the rules to handle recursion for
built-in recursive targets (e.g., 'all', 'dvi', 'clean') and for user
defined recursive targets are the same.
* m4/extra-recurs.m4: New file, contain definition of new macro
'AM_EXTRA_RECURSIVE_TARGETS' and '_AM_EXTRA_RECURSIVE_TARGETS'.
These macros are basically dummy, only used for tracing by automake.
* m4/Makefile.am (dist_automake_ac_DATA): Update.
* t/recurs-user.sh: New test.
* t/recurs-user2.sh: Likewise.
* t/recurs-user-deeply-nested.sh: Likewise.
* t/recurs-user-indir.sh: Likewise.
* t/recurs-user-keep-going.sh: Likewise.
* t/recurs-user-many.sh: Likewise.
* t/recurs-user-no-subdirs.sh: Likewise.
* t/recurs-user-no-top-level.sh: Likewise.
* t/recurs-user-override.sh: Likewise.
* t/recurs-user-phony.sh: Likewise.
* t/recurs-user-wrap.sh: Likewise.
* t/remake-recurs-user.sh: Likewise.
* t/list-of-tests.mk: Update.
2012-07-02 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: rename 'recurs*.sh' to 'var-recurs*.sh'
* t/recurs.sh: Rename ...
* t/var-recurs.sh: ... to this.
* t/recurs2.sh: Rename ...
* t/var-recurs2.sh: ... to this.
* tests/list-of-tests.mk: Adjust.
2012-07-02 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: minor improvements to 'recurs*.sh'
* t/recurs.sh: Removed useless calls to AM_CONDITIONAL in
the generated 'configure.ac'.
* t/recurs2.sh: Add trailing ':' command.
2012-07-01 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
tests: don't trust the exit status of "make -k" for non-GNU makes
parallel-tests: reimplement fix for bug#11791
tests setup: unset CDPATH
tests setup: more namespace safeness
tests setup: remove an unused variable
tests setup: less hard-coding of the test subdirectory
2012-07-01 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: don't trust the exit status of "make -k" for non-GNU makes
* t/parallel-tests-recheck-pr11791.sh: Here. At least some versions
of FreeBSD make botch it up, returning success when failure should be
returned.
2012-07-01 Stefano Lattarini <stefano.lattarini@gmail.com>
parallel-tests: reimplement fix for bug#11791
* lib/am/check.am: Here. The new implementation is shorter, slightly
more efficient (requiring less forks), less brittle in the face of
signals or unexpected interruptions in the make process, and should
also be easier to merge in the 'ng/master' branch (as of now, due to
the difficulties in merging our previous version of the fix in the
'ng/master' codebase, Automake-NG still lacks a fix for bug#11791).
2012-07-01 Stefano Lattarini <stefano.lattarini@gmail.com>
tests setup: unset CDPATH
So that our test scripts can safely chdir around using relative
paths as well, without having to worry abut possible CDPATH
interferences.
* defs-static.in: unset CDPATH.
* t/ax/tests-init.sh: Remove a now-unneeded workaround.
2012-07-01 Stefano Lattarini <stefano.lattarini@gmail.com>
tests setup: more namespace safeness
* t/ax/tests-init.sh ($testSubDir): Rename ...
($am_test_subdir): ... to this, throughout the file.
2012-07-01 Stefano Lattarini <stefano.lattarini@gmail.com>
tests setup: remove an unused variable
* defs-static.in ($testprefix): This one.
2012-07-01 Stefano Lattarini <stefano.lattarini@gmail.com>
tests setup: less hard-coding of the test subdirectory
* t/ax/tests-init.sh: Make the code creating the temporary
test subdirectory smart enough to automatically create it
in the same subdirectory of the test that is being run.
* defs-static.in ($MKDIR_P, $am_rel_srcdir): New variables,
AC_SUBST'd from @MKDIR_P@ and @srcdir@ respectively, and
used in the new 'tests-init.sh' code.
2012-07-01 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
parallel-tests: silence an overly verbose recipe
tests: fix some uses of 'Exit', where 'exit' should now be used instead
maintcheck: test scripts should be executable, check for that
2012-06-30 Stefano Lattarini <stefano.lattarini@gmail.com>
parallel-tests: silence an overly verbose recipe
* lib/am/check.am (check-TESTS): Here, the part of the recipe
removing the stale '.log' and '.trs' files.
2012-06-30 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix some uses of 'Exit', where 'exit' should now be used instead
* t/parallel-tests-recheck-pr11791.sh: Here.
2012-06-30 Stefano Lattarini <stefano.lattarini@gmail.com>
maintcheck: test scripts should be executable, check for that
* syntax-checks.mk (sc_tests_executable): Here, in this new check.
(syntax_check_rules): Add it.
* Makefile.am (dist-hook): Drop, no need to make test cases executable
anymore.
2012-06-30 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
parallel-tests: recipes for "check" and "recheck" are separated again
2012-06-30 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'recheck-fix' into maint
* recheck-fix:
parallel-tests: recipes for "check" and "recheck" are separated again
2012-06-30 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
parallel-tests: "recheck" behaves better in case of compilation failures
scripts: quote 'like this', not `like this'
2012-06-30 Stefano Lattarini <stefano.lattarini@gmail.com>
parallel-tests: recipes for "check" and "recheck" are separated again
* lib/am/check.am: Here. They have distinctly diverged recently, and
the reduction in code duplication obtained keeping their recipes united
is not anymore worth the extra complications.
2012-06-30 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'recheck-fix' into maint
* recheck-fix:
parallel-tests: "recheck" behaves better in case of compilation failures
scripts: quote 'like this', not `like this'
2012-06-30 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: prefer "test ! -e FILE" to check that a file doesn't exist
* t/autohdrdry.sh: Here, rather than using "test ! -r FILE".
2012-06-30 Jim Meyering <jim@meyering.net>
texi: clean after Texinfo manuals in $(SUBDIRS) directories correctly
Fixes the regression exposed by previous commit 'v1.12.1-165-g498492f'.
* automake.in (handle_texinfo_helper): Add $infobase.{t2d,t2p}
to @mostly_cleans, but *without* the '$relative_dir/' prefix.
2012-06-30 Stefano Lattarini <stefano.lattarini@gmail.com>
coverage: regression in texinfo "make mostlyclean" with $(SUBDIRS)
After commit v1.12.1-91-g205c757 of 2012-06-20, "texi: require
Texinfo >= 4.9, related enhancements", the presence of a Texinfo manual
'manual.texi' in a subdir (say 'doc/') of a package using a recursive
make setup would cause "make distcheck" to fail, due to the presence of
the 'manual.t2d/' directory created by texi2dvi. That directory would
not be correctly removed because the 'mostlyclean' rule would run, from
within the 'doc/' sub-directory, "rm -rf doc/manual.t2d", instead of
the expected (and correct) "rm -rf manual.t2d".
Reported by Jim Meyering:
<http://lists.gnu.org/archive/html/automake-patches/2012-06/msg00203.html>
* t/txinfo21.sh: Enhance to expose the issue.
* t/txinfo-no-clutter.sh: Likewise, and other miscellaneous improvements.
2012-06-30 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
tests: fix a spurious failure
configure: fix detection of POSIX shell to work in a VPATH build
tests: prefer "test ! -e FILE" to check that a file doesn't exist
2012-06-30 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix a spurious failure
* t/parallel-tests-dry-run-2.sh: Here.
2012-06-30 Stefano Lattarini <stefano.lattarini@gmail.com>
configure: fix detection of POSIX shell to work in a VPATH build
* configure.ac: When checking whether "test -e" works, use 'config.log',
not 'configure', as the witness file, because the latter does not exist
in the current directory during a VPATH build.
2012-06-29 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: prefer "test ! -e FILE" to check that a file doesn't exist
Once, for the sake of (at least) Solaris 10 /bin/sh, we had to use
"test ! -f FILE" or "test ! -r FILE" or "test ! -d FILE" instead,
because the that shell's 'test' built-in didn't grok the '-e' option.
Note however that we still can't use "test ! -e" in the Makefile recipes
used in the test cases; that is because those recipes are run with the
shell detected by 'configure', and Autoconf-generated configure scripts
do no guarantee to find or provide a POSIX-compatible shell.
* Several tests: Adjust.
* t/yacc-clean-cxx: Adjust, and remove a couple of useless commands.
* t/parallel-tests-dry-run-2.sh: Adjust, and add invocation to
"make -n" forgotten in previous versions of the test.
* t/txinfo26.sh: Adjust, and don't bother to skip the test when it's
run in a directory whose absolute path contain whitespace: that setup
is not supported anyway.
* t/maken3.sh: Adjust, and fix a typo that could cause a minor false
negative.
* t/test-trs-recover2.sh: Prefer using 'skip_' with a suitable error
message over a bare 'exit 77'.
2012-06-28 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
configure: move a misplaced "section" comment
configure: clump check for ${var%...} and ${var#...} expansion together
cosmetics: improve wording of a couple of configure messages
configure: the testsuite shell must support 'test -e' and 'test ! -e'
tests: remove stale workarounds for Solaris /bin/sh
2012-06-28 Stefano Lattarini <stefano.lattarini@gmail.com>
configure: move a misplaced "section" comment
* configure.ac (Create output files): This, move it towards the end
of the script.
2012-06-28 Stefano Lattarini <stefano.lattarini@gmail.com>
configure: clump check for ${var%...} and ${var#...} expansion together
And together with those for the ${var%%...} and ${var##...} expansions.
After all, it is basically impossible to find a shell that support one
of them but not the others.
Suggestion by Eric Blake.
* configure.ac: Here.
2012-06-28 Stefano Lattarini <stefano.lattarini@gmail.com>
cosmetics: improve wording of a couple of configure messages
* configure.ac: Fix a couple of messages so that the configure
output changes from this:
checking whether /bin/sh "set -e" preserves exit traps... yes
checking whether /bin/sh "set -x" corrupts stderr... no
to this:
checking whether /bin/sh preserves exit traps with "set -e"... yes
checking whether /bin/sh corrupts stderr with "set -x"... no
2012-06-28 Stefano Lattarini <stefano.lattarini@gmail.com>
configure: the testsuite shell must support 'test -e' and 'test ! -e'
* configure.ac: Require that the shell that is to be selected to run
the testsuite understands "set -e" and "set ! -e".
2012-06-28 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: remove stale workarounds for Solaris /bin/sh
Our testsuite cannot be run with that shell anymore (as it is
not POSIX-compliant).
* t/tap-more.sh: Remove outdated workarounds for Solaris /bin/sh.
* t/self-check-exit.tap: Likewise.
* t/ansi2knr-no-more.sh: Likewise.
* t/add-missing.tap: Likewise.
* t/dist-auxfile.sh: Likewise.
* t/test-driver-custom-multitest-recheck2.sh: Likewise.
* t/ax/test-init.sh: Remove obsolete references to Solaris
/bin/sh.
* t/confh5.sh: Likewise.
* t/uninstall-fail.sh: Likewise. And update comments about
quirks of Solaris /bin/ksh and /usr/xpg4/bin/sh.
2012-06-28 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
tests init: don't bother allowing '$me' to be overridable
tests init: typofixes in comments
2012-06-28 Stefano Lattarini <stefano.lattarini@gmail.com>
tests init: don't bother allowing '$me' to be overridable
We once used that feature in our wrapper tests; but now (and probably
even since commit 'v1.11-1308-g375f23d' of 2011-09-08, "testsuite:
revamp generation of autogenerated tests") it is not needed anymore.
By removing it we can simplify our growingly complex testsuite framework
a little.
* t/ax/test-inist.sh ($me): Do not initialize it here (and only if not
already set), instead ...
* defs-static.in ($me): ... initialize it here unconditionally.
Do not check anymore that $me doesn't come from the environment: that
wouldn't cause any problem now.
Now that '$me' is defined early, prefer it over 'argv0' in early error
messages, both here ...
* defs: ... and here.
* Makefile.am (AM_TESTS_ENVIRONMENT): Do not bother "nullifying" $me
anymore.
* t/self-check-env-sanitize.tap: Adjust.
* t/self-check-me.tap: Likewise.
2012-06-28 Stefano Lattarini <stefano.lattarini@gmail.com>
tests init: typofixes in comments
2012-06-28 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
tests: one test was not executable, make it so
readme: fix typo in t/README: s/$((...)/$((...))/
tests: don't skip if $(abs_builddir) or $(abs_srcdir) contain whitespace
tests: avoid spurious maintainer-check failures
tests: remove obsolete hacks around maintainer-check false positives
2012-06-28 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: one test was not executable, make it so
* t/subdir-order.sh: This test.
2012-06-28 Stefano Lattarini <stefano.lattarini@gmail.com>
readme: fix typo in t/README: s/$((...)/$((...))/
2012-06-28 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: don't skip if $(abs_builddir) or $(abs_srcdir) contain whitespace
We used to explicitly skip libtool and gettext tests if the absolute
path of the builddir or of the srcdir which Automake was configured
with contained any whitespace (or other metacharacters).
But several other tests would spuriously fail in such an unholy setup.
To be precise, it would cause 61 'FAIL's and 42 'ERROR's in the whole
Automake testsuite.
The fact that, as of today, nobody has reported any failure of this kind
means that (thankfully) nobody is building automake with $(abs_srcdir)
or $(abs_builddir) mangled by whitespace. So, instead of trying to cater
to such a broken setup consistently, we just drop the extra check in the
libtool/gettext tests.
In case someone will ever reports a failure due to extra whitespace in
either $(abs_srcdir) or or $(abs_builddir), we will simply enhance our
'configure.ac' to bail out flatly and loudly at such a setup.
* t/ax/test-init.sh: Simplify accordingly.
2012-06-28 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid spurious maintainer-check failures
* t/ax/test-init.sh: Here, by adding extra quoting for two
occurrences of the string "perl".
2012-06-28 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: remove obsolete hacks around maintainer-check false positives
* gen-testsuite-part, t/test-trs-recover.sh: Here.
2012-06-28 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
tests: simpler workaround for shells losing the exit status in exit trap
+ Extra non-trivial edits:
* Several tests: Adjusted to use 'exit' rather than 'Exit'.
2012-06-28 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'simplify-exit-trap-workaround' into maint
* simplify-exit-trap-workaround:
tests: simpler workaround for shells losing the exit status in exit trap
+ Extra non-trivial edits:
* t/am-missing-prog.sh: Use 'exit, not 'Exit'.
2012-06-28 Stefano Lattarini <stefano.lattarini@gmail.com>
cosmetics: remove trailing whitespace in some files
* lib/missing, t/comment7.sh, t/objc-flags.sh, t/objcxx-flags.sh,
t/perf/testsuite-summary.sh, t/self-check-explicit-skips.sh: Here.
Prompted by a report from Karl Berry.
2012-06-28 Stefano Lattarini <stefano.lattarini@gmail.com>
coverage: enhance tests in 'missing' script a little
* t/am-missing-prog.sh: Here, by also verifying its expected
exit status.
2012-06-28 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
coverage: tests AM_MISSING_PROG usage
docs: document AM_MISSING_PROG
2012-06-28 Stefano Lattarini <stefano.lattarini@gmail.com>
coverage: tests AM_MISSING_PROG usage
Now that AM_MISSING_PROG is documented, we want to make sure it
works as expected when used in third-party code.
* t/am-missing-prog.sh: New test.
* t/ammissing: Rename ...
* t/am-macro-not-found.sh: ... like this, to avoid confusion (this
test has nothing to do with the 'missing' script nor with the
'AM_MISSING_PROG' macro).
* t/list-of-tests.mk: Adjust.
2012-06-28 Eric Blake <eblake@redhat.com>
docs: document AM_MISSING_PROG
Addresses automake bug#11793.
This macro has been present for a long time, and coreutils has been
relying on it despite no documentation, which argues that it is stable
enough to be worth documenting.
Furthermore, since we are hoping to change our preferred invocation
from 'missing --run program' to 'missing program' in a future version
of automake, we need a way for packages to consistently get the
preferred invocation form rather than open-coding a call to 'missing'.
In particular, the Autoconf manual would love to recommend this macro
when discussing how to integrate an autotest suite with automake.
* doc/automake.texi (Public Macros): Document AM_MISSING_PROG.
2012-06-27 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
tests: fix a spurious failure with Solaris make
tests: avoid several spurious failures on Solaris
tests: avoid a spurious failure on NetBSD
2012-06-27 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix a spurious failure with Solaris make
* t/subdir-order.sh: Run make in parallel only if the make implementation
truly supports it.
2012-06-27 Stefano Lattarini <stefano.lattarini@gmail.com>
parallel-tests: "recheck" behaves better in case of compilation failures
With this change, the "recheck" target behaves better in the face of build
failures related to previously failed tests. For example, if a test is a
compiled program that must be rerun by "make recheck", and its compilation
fails, that test will still be rerun by further "make recheck" invocations.
Previously, its '.log' and '.trs' would have both been lost, so that the
test would have not been re-run.
This change fixes automake bug#11791.
* NEWS: Update.
* lib/am/check.am (recheck, check-TESTS): Adjust to cater to scenario
described above.
* t/parallel-tests-recheck-pr11791.sh: New test.
* t/list-of-tests.mk: Add it.
2012-06-27 Stefano Lattarini <stefano.lattarini@gmail.com>
scripts: quote 'like this', not `like this'
* lib/test-driver.sh: Here.
2012-06-26 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'missing-not-touch-just-warn'
* missing-not-touch-just-warn:
missing: --run is supported again (as a no-op) for use by older automake
2012-06-26 Eric Blake <eblake@redhat.com>
missing: --run is supported again (as a no-op) for use by older automake
Commit v1.12.1-87-ga22717d of 2012-06-21 ("missing: do not touch
timestamps; only warn for out-of-date files") has removed the '--run'
option, since our new preferred calling conventions now imply it; but
if a newer 'missing' is mixed with an already built project that used
an older Automake version (this happened in practice for GNU m4; see:
<http://lists.gnu.org/archive/html/bug-m4/2012-06/msg00001.html>), then
the 'Makefile' in that project will fail due to passing the '--run'
option when trying to bring the project up-to-date.
* lib/missing: Parse and ignore '--run'.
2012-06-25 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'missing-not-touch-just-warn'
* missing-not-touch-just-warn:
missing: don't cater to 'configure.in' in our advice
missing: better tips about missing tools
2012-06-25 Stefano Lattarini <stefano.lattarini@gmail.com>
missing: don't cater to 'configure.in' in our advice
The use of 'configure.in' as autoconf input now deprecated the development
versions of both Automake and Autoconf, and we'd like to speed up its
demise.
* missing: In the advice displayed in case some autotools are detected to
be missing, refer to 'configure.ac' unconditionally, instead of referring
to 'configure.in' when that file exists in the current directory (and no
'configure.ac' does).
2012-06-25 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: simpler workaround for shells losing the exit status in exit trap
Now that we can assume our tests are run by a decent POSIX shell, we
can simplify our workaround aimed at having the exit status propagated
correctly to the code in the exit trap. Unfortunately, we cannot
dispense with such a workaround altogether, because it's still required
by some shells we need to support (at least Solaris 10 /bin/ksh and
/usr/xpg4/bin/sh).
For more information about the need of that workaround, see the entry
about 'trap' in the section "Limitations of Shell Builtins" in the
Autoconf manual:
<http://www.gnu.org/software/autoconf/manual/autoconf.html#trap>
The new workaround has been tested successfully with the following
shells:
- Bash 4.1
- Bash 3.2
- Bash 3.0
- Bash 2.05b
- dash 0.5.5.1
- dash 0.5.2
- AT&T Ksh 93u (from official Debian package)
- MirBSD Korn Shell 40.2 (from official Debian package)
- Solaris 9, 10 and 11 /bin/ksh
- Solaris 9, 10 and 11 /usr/xpg4/bin/sh
- NetBSD 5.1 /bin/sh
- NetBSD 5.1 /bin/ksh
* t/ax/test-init.sh (Exit): Rename ...
(_am_exit): ... like this.
(exit): New alias for '_am_exit'. We cannot simply redefine 'exit'
as a shell function, because some shells (dash 0.5.5.1, Solaris 10
/bin/ksh and /usr/xpg4/bin/sh) do not allow it.
(_am_exit, trap): Add extra escaping for 'exit' calls, to ensure we
really invoke the 'exit' builtin and not our alias with the same
name.
* configure.ac: Check that the shell selected to run our testsuite
supports aliases named like shell builtins.
* t/REAMDE: Adjust.
* All tests: Adjust, by simply using 'exit' instead of 'Exit'.
* t/self-check-explicit-skips.sh: Adjust: the first usage of 'exit'
after it has been redefined as an alias must be on a new line w.r.t.
that where the alias is defined, in order for the redefinition to be
honored.
* syntax-checks.mk (sc_tests_Exit_not_exit): Delete.
(sc_tests_exit_not_Exit): New.
(syntax_check_rules): Adjust.
(sc_tests_automake_fails): Simplify the recipe a little.
* Several tests: Remove now useless spurious quoting once required
to placate the 'sc_tests_Exit_not_exit' maintainer check.
* gen-testsuite-part: Likewise. Also, avoid uses of 'Exit' in the
generated scripts.
2012-06-24 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid several spurious failures on Solaris
* t/ax/is_newest: Rewrite to be Bourne-compatible, for /bin/sh shells like
Solaris' that are not POSIX-conforming. The script is so small that such
a rewrite is easier than going through the hoops that would be required to
ensure this script is always executed with a POSIX shell.
* t/ax/is: Add a comment stating that this script is to be kept Bourne
compatible as well.
2012-06-24 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid a spurious failure on NetBSD
* t/maken.sh: Do not expect the timestamp of the current directory
to be unchanged after a "make -n".
2012-06-24 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
tests: fix automatic re-execution of tests with Zsh
tests: drop support for older Zsh shells
tests: allow AM_TEST_RUNNER_SHELL to be overridden
tests: fix setup for older Zsh
2012-06-23 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix automatic re-execution of tests with Zsh
* defs: Use '$argv0' instead of '$0'. With Zsh not started right
away in Bourne-compatibility mode, the latter will be the path not
of the test script itself, but of the file it's currently sourcing
-- i.e., in our case, './defs'. This would cause the automatic
re-execution code to execute './defs' (basically a no-op) rather
than re-run the test correctly.
2012-06-23 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: drop support for older Zsh shells
* defs-static.in: Here. The fact that such support has been broken for
almost a year (only fixed by today's commit 'v1.12.1-57-gf1e0300'),
causing no bug reports from anyone, shows that such support is not truly
warranted. And it will get in the way of future improvements in the
handling of the exit trap (because bugs in older Zsh versions will
prevent some of our planned improvements). So just drop it.
* t/README: Remove obsolete advice for working around bugs in older
versions of Zsh; instead, indicate version 4.3 is the oldest Zsh now
supported.
2012-06-23 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: allow AM_TEST_RUNNER_SHELL to be overridden
* defs-static.in: Here. This will make it easier for the maintainer
to run some self checks (like those in 't/self-check-exit.tap') with
different shells, to look for possible portability problems. Fix a
typo (doubled "the") while we are at it.
2012-06-23 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix setup for older Zsh
* defs-static.in: After the addition of TAP-based tests and our renaming
of "simple" test scripts from 'tests/foo.test' to 't/foo.sh', a test name
is valid if it matches the wildcard "*.sh" or "*.tap", not the wildcard
"*.test". Adjust accordingly.
2012-06-23 Stefano Lattarini <stefano.lattarini@gmail.com>
missing: better tips about missing tools
* lib/missing: Try to point the user to the home page of such tools
where possible. Also, make clear that some tools (e.g., aclocal or
autoheader) are distributed as part of bigger projects (resp. automake
and autoconf, in those cases). While at it, refactor and re-format
the existing code heavily, in particular introducing
(give_advice): ... this new function in the process.
2012-06-23 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'missing-not-touch-just-warn'
* missing-not-touch-just-warn:
missing: do not touch timestamps; only warn for out-of-date files
2012-06-23 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
tests: avoid one last `...` command substitution in 'test-init.sh'
maintcheck: guard against `...` for command substitution in test cases
tests: more uses of $(...) over `...` for command substitution
cosmetics: quote `like this', not 'like this', in a couple of tests
readme: clarify/extend few entries in 't/README'
readme: better separation of entries in 't/README'
readme: subsections "Do" and "Do not" in 't/README' merged
tests: new requirement 'grep-nonprint'
cosmetics: fix description of an expected error message in a test
tests: assume automake quotes 'like this', not `like this'
2012-06-23 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid one last `...` command substitution in 'test-init.sh'
* t/ax/test-init.sh (me): In the definition of this variable. This
also shave off a couple of forks, and the need for a sanity check
only required in fringe situations.
2012-06-23 Stefano Lattarini <stefano.lattarini@gmail.com>
maintcheck: guard against `...` for command substitution in test cases
But still allow them in configure.ac, Makefile.am and shell scripts
created or used inside test cases itself, because Autoconf (as of
version 2.69) does not yet ensure that $CONFIG_SHELL will be set to
a proper POSIX shell.
* syntax-checks.mk (sc_tests_command_subst): New check.
(syntax-check_rules): Add it.
* t/tap-global-log.sh: Minimal tweakings to avoid triggering the
new maintainer check.
2012-06-22 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: more uses of $(...) over `...` for command substitution
Somehow missed by the previous changes. No big deal, fix them now.
* t/ax/depcomp.sh: Here.
* t/autodist.sh: And here.
* t/autodist-no-duplicate.sh: And here.
* t/autodist-subdir.sh: Ad here.
* t/remake11.sh t/self-check-me.tap: And here.
* t/perf/testsuite-summary.sh: And here.
* t/perf/testsuite-recheck.sh: And here.
2012-06-22 Stefano Lattarini <stefano.lattarini@gmail.com>
cosmetics: quote `like this', not 'like this', in a couple of tests
* t/ansi2knr-no-more.sh: Here.
* t/aclocal-verbose-install.sh: And here.
2012-06-22 Stefano Lattarini <stefano.lattarini@gmail.com>
readme: clarify/extend few entries in 't/README'
* t/README (Writing test cases): Here.
2012-06-22 Stefano Lattarini <stefano.lattarini@gmail.com>
readme: better separation of entries in 't/README'
* t/README (Writing test cases): Prepend different entries with a '*'
character acting like a bullet in a list. This make different entries
better separated, visually-wise. Minor related reformatting.
2012-06-22 Stefano Lattarini <stefano.lattarini@gmail.com>
readme: subsections "Do" and "Do not" in 't/README' merged
* t/README (Writing test cases): Merge subsections "Do" and "Do not".
The distinction was rather artificial, and more confusing than helpful.
2012-06-22 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: new requirement 'grep-nonprint'
* t/ax/test-inist.sh ($esc): New, a literal escape character.
(grep-nonprint): New requirement, check that the grep implementation
available that can handle non-printing characters correctly.
* t/color.sh: Use it instead of hand-rolled equivalent, and do not
(re)define '$esc' explicitly.
* t/color2.sh: Likewise.
* t/tap-color.sh: Likewise.
* t/vtexi4.sh: Likewise.
* t/parallel-tests-no-color-in-log.sh: Likewise. Also prefer the use
of grep over that of $FGREP, because the new requirement only check
grep, and ensure we only grep non-printing characters from a pipe, to
avoid hitting a BSD grep limitation.
* t/parallel-tests-reset-term.sh: Likewise.
* t/ax/tap-summary-aux.sh: Use '$esc' instead of hard-coding the
literal escape character.
2012-06-22 Stefano Lattarini <stefano.lattarini@gmail.com>
cosmetics: fix description of an expected error message in a test
* t/vartypo2.sh: Here. This reflects the change from `this style'
of quoting to 'this style'.
2012-06-22 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: assume automake quotes 'like this', not `like this'
* t/add-missing.tap: Here. This slightly simplifies and/or enhances
some grepping checks on automake diagnostic.
2012-06-22 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
tests: prefer using 'is_newest' over 'ls -t' hacks
tests: implement is_newest as an auxiliary script, not shell function
tests: fix some spurious failures in VPATH setup
tests: work in VPATH setup again
2012-06-22 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: prefer using 'is_newest' over 'ls -t' hacks
To verify that a file 'new' is newer than the file 'old', it's much
cleaner to use "is_newest new old" rather than the more clumsy
"ls -t". Adjust several of our tests accordingly.
* syntax-checks.mk (sc_tests_ls_t): New check, guard against uses
of "ls -t" and similar.
(syntax_check_rules): Add it.
* t/maken.sh: Adjust.
* t/autohdr4.sh: Likewise.
* t/extradep2.sh: Likewise.
* t/lex-depend-cxx.sh: Likewise.
* t/extradep.sh: Likewise.
* t/yacc-depend2.sh: Likewise.
* t/yacc-pr204.sh: Likewise.
* t/lex-pr204.sh: Likewise.
* t/yacc8.sh: Likewise.
* t/acloca13.sh: Likewise.
* t/lex-depend.sh: Likewise, and enhance.
* t/acloca14.sh: Likewise.
* t/aclocal7.sh: Likewise.
2012-06-22 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: implement is_newest as an auxiliary script, not shell function
This will allow to also use it in the makefile recipes used in our
test cases.
* t/ax/test-init.sh (is_newest): Remove.
* t/ax/is_newest: New script.
* Makefile.am (EXTRA_DIST): Add it.
2012-06-22 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix some spurious failures in VPATH setup
* t/self-check-cleanup.tap: No need to copy the 'ax/t/test-init.sh'
file over in our temporary directory.
* t/self-check-reexec.tap: Likewise.
2012-06-22 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: work in VPATH setup again
* defs: Drop overly paranoid sanity checks that was causing all the tests
to fail spuriously when run in a VPATH setup, with a message like:
"../t/nodef.sh: ./t/ax/test-init.sh: not found in current directory".
Those checks looked for invariants that, even if broken, would still
cause the test to fail very early and with a pretty clear error message
anyway.
2012-06-22 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
tests: automatic re-execution works for non-POSIX shells too
tests: use more POSIX shell features our test scripts
+ Extra non-trivial edits:
* t/ax/test-init.sh: Apply the diffs between past versions of
'defs' in maint and in master; i.e., remove handling of $required
entries 'texi2dvi-o' and 'makeinfo-html', and adjust to the fact
that the parallel testsuite harness is now the default.
2012-06-22 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: automatic re-execution works for non-POSIX shells too
Some inferior shells are too greedy in parsing their input. If a
non-POSIX Bourne shell (like Solaris 10 /bin/sh) was used to launch
one of our test scripts, it would fail unconditionally, because it
unexpectedly saw some (by it) unsupported constructs, notwithstanding
such constructs being placed *after* the code implementing automatic
test re-execution with a better shell. In conclusion, the shell
bailed out like this:
$ /bin/sh t/ar.sh
$ t/ar.sh: syntax error at line 257: `is_newest_files=$' unexpected
By moving all the potentially problematic code in a separate file, to
be sourced only after the code for automatic re-execution with a better
shell, we ensure that inferior shell cannot see such code by mistake.
* defs: All code after automatic shell re-execution moved out ...
* t/ax/test-init.sh: ... to this new file.
* syntax-checks.mk (xdefs): Add it.
* Makefile.am (dist_check_DATA): Add it. Also move in 'defs' from
a less explicit 'check_DATA' declaration.
(nodist_check_DATA): Move in 'defs-static' from a less explicit
'check_DATA' declaration.
(check_DATA): Remove.
* t/self-check-sanity.sh: Remove, it was actually too hacky and brittle,
sanity-checking situations we don0t actually care about.
* t/list-of-tests.mk: Adjust.
* t/self-check-explicit-skips.sh: Adjust, and fix a botched heading
comments while we are at it.
* t/self-check-reexec.tap: Adjust.
* t/self-check-cleanup.tap: Likewise.
2012-06-22 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: use more POSIX shell features our test scripts
Since commit 'v1.12-36-g2d68fd9' of 2012-05-07, "configure: search a
sturdy POSIX shell to be used in the testsuite", the shell running
our test script is assured to be a POSIX-conforming shell, so we can
use the more modern and flexible idioms and features that we couldn't
use when we also aimed at compatibility with non-POSIX Bourne shells,
like Solaris /bin/sh.
* t/README: Suggest to use POSIX shell features liberally in test cases,
with possible exception of Makefile recipes and configure shell code.
* Several tests: Adjust to use more POSIX shell features; e.g., $(...)
rather than `...`, $((...)) rather than `expr ...`, "if ! CMD; then ..."
instead of "if CMD; then :; else ...", and so on.
In several places, when using the 'test' built-in, prefer '-eq' over
'=' for numeric comparisons, and prefer "grep -c PATTERN FILE" over
"grep PATTERN FILE | wc -l".
Throw in other low-hanging easy improvements and fixlets while we are
at it.
* t/ax/depcomp.sh, t/ax/tap-summary-aux.sh, t/ax/tap-functions.sh,
defs, defs-static.in: Likewise.
2012-06-21 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
docs: avoid failures with development version of Texinfo (4.13.90)
typofix: s/test derivers/test drivers/ in check.am comments
typofix: s/env/even/ in comments in GNUmakefile
2012-06-21 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: avoid failures with development version of Texinfo (4.13.90)
* doc/automake-history.texi: Use '@item' instead of '@itemx' where
appropriate.
2012-06-21 Stefano Lattarini <stefano.lattarini@gmail.com>
missing: do not touch timestamps; only warn for out-of-date files
Before this change, the missing script had a twofold role:
- it warned the user if some required maintainer tools was missing,
or too old;
- in such a case, it tried to "fix" the timestamp of the files that
should have been rebuilt by that tool (without actually updating
the file contents, of course), to allow the build to continue.
The second capability used to be quite useful in the days when most
projects committed files generated by maintainer-only tools in their
VCS repository (today the trend is not to keep such generated files
VCS-committed anymore). In such a setup, the "timestamp-fixing"
capability of 'missing' was quite useful, in that it allowed users
lacking some required maintainer tool to build from a VCS checkout
in the face of skewed timestamps (as could have been caused by
"cvs update" or "git checkout").
But then, when the automatic remake rules kicked in due to the
generated files being *actually out-of-date* (e.g., because the user
had modified 'configure.ac' but lacked a modern-enough autoconf to
rebuild it), that behaviour of 'missing' caused the same problem that
plagued AM_MAINTAINER_MODE; i.e., the user would get non-dependable
builds and inconsistent statuses of the build tree -- changes to
source files don't reflect on generated files, and this can be very
confusing and cause hard-to-spot errors).
So we now believe that the best approach to deal with timestamp-related
issues is not to have 'missing' to "automagically" try to resolve
them (with all the risk and brittleness entailed), but rather to
suggest those projects still keeping generated files committed in their
VCS to provide a proper (say) 'fix-timestamp.sh' script that touches
the timestamp of the checked-out files, to ensure no spurious rebuild
will be triggered. As a bonus, such a script can be more aware of the
particularities, nooks and corner cases of a project, and thus more
reliable than the old 'missing' script.
An example of this approach is offered by GNU awk (release 4.0.1, Git
tag 'gawk-4.0.1', commit b85b04e8). The GNU awk maintainers commit
the Autotools-generated files (configure, Makefile.in, etc.) and other
generated in the project's Git repository, but offer a useful script
'bootstrap.sh' that fixes the timestamps of those files, to ensure no
useless remake is triggered in a freshly cloned repository:
#! /bin/sh
# bootstrap.sh --- touch relevant files to avoid out-of-date issues
# in Git sandboxes
touch aclocal.m4
find awklib -type f -print | xargs touch
sleep 1
touch configure
sleep 2
touch configh.in
sleep 1
touch test/Maketests
find . -name Makefile.in -print | xargs touch
touch doc/*.info
touch po/*.gmo
touch po/stamp-po
touch awkgram.c
touch command.c
touch version.c
A similar, simplified script is also reported as an example in the
manual.
* NEWS: Update.
* doc/automake.texi (Auxiliary Programs, maintainer-mod): Update.
(CVS): Do not suggest that 'missing' can "automagically" fix botched
timestamp due to a "cvs update"; this isn't true anymore. Give an
example of a custom 'fix-timestamp.sh' script that can be used to
obtain the same effect (in a slightly more laborious but also more
explicit and less brittle way). Fix some minor typos and improper
wordings while we are at it.
* lib/missing: Basically rewritten to implement the new semantics.
As a side effect (one of the several), the '--run' option is no more
required nor recognized.
* m4/missing.m4 (AM_MISSING_HAS_RUN): Enhance the test on '$MISSING'
to ensure it actually provides the new semantics (by trying the new
"witness" option '--is-lightweight').
* lib/am/distdir.am (distdir): No need anymore to check for "bad"
distributed man pages that were actually dummy stubs generated by
the 'missing' script.
* t/missing4.sh: Rename ...
* t/remake-aclocal-version-mismatch.sh: ... like this.
* t/missing2.sh: Rename ...
* t/missing-version-mismatch.sh: ... like this, and adjust to the
new semantics.
* t/missing3.sh: Adjust to the new semantics.
* t/man4.sh: Remove as obsolete.
* t/missing.sh: Likewise.
* t/missing5.sh: Likewise.
* t/txinfo30.sh: Likewise.
* t/man6.sh: Adjust grepping checks.
* t/remake6.sh: Likewise.
* t/list-of-tests.mk: Adjust.
2012-06-21 Stefano Lattarini <stefano.lattarini@gmail.com>
typofix: s/test derivers/test drivers/ in check.am comments
2012-06-20 Stefano Lattarini <stefano.lattarini@gmail.com>
typofix: s/env/even/ in comments in GNUmakefile
Spotted by Eric Blake.
2012-06-20 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
bootstrap: overhaul and improve
docs: quote 'like this', not `like this'
2012-06-20 Stefano Lattarini <stefano.lattarini@gmail.com>
bootstrap: overhaul and improve
This fixes several weaknesses and buglets in the 'bootstrap' convenience
target offered in GNUmakefile (and its supporting code). Refer to the
extensive code comments in there for more details.
* GNUmakefile: Almost completely rewritten.
2012-06-20 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: quote 'like this', not `like this'
* doc/automake.texi: Fix the reported warnings and informative messages
from automake to quote 'like this' rather than as `like this'. Do the
same for comments and some text in our examples.
2012-06-20 Stefano Lattarini <stefano.lattarini@gmail.com>
fixup: tests: special requirement 'makeinfo-html' removed from ./defs
This should have ideally been part of earlier commit v1.12.1-93-g3c64d54.
* defs (makeinfo-html): Remove.
2012-06-20 Stefano Lattarini <stefano.lattarini@gmail.com>
maintcheck: guard against obsolete $required entries
* syntax-check.mk: Add rules guarding against the use of the
obsolete test requirements 'texi2dvi-o' and 'makeinfo-html'.
2012-06-20 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: drop requirement 'makeinfo-html'; 'makeinfo' is enough
* defs: Since we now require Texinfo 4.9 or later in the Automake
generated Makefiles, and since the '--html' option of makeinfo, as
well as its capability to generate HTML output, has been supported
since Texinfo 4.0 (according to the Texinfo NEWS file), the
requirement 'makeinfo-html' is obsolete -- the simpler requirement
'makeinfo' is enough.
* t/instdir-texi.sh ($required): Adjust by using simply 'makeinfo'
instead of 'makeinfo-html'.
* t/silent8.sh: Likewise.
* t/txinfo21.sh: Likewise.
2012-06-20 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: drop requirement 'texi2dvi-o'; 'texi2dvi' is enough
* defs: Since we now require Texinfo 4.9 or later in the Automake
generated Makefiles, and since the '-o' option of texi2dvi has been
supported since Texinfo 4.1, the requirement 'texi2dvi-o' is
obsolete -- the simpler requirement 'texi2dvi' is enough.
* t/silent8.sh ($required): Adjust by using simply 'texi2dvi'
instead of 'texi2dvi-o'
* t/txinfo-no-clutter.sh: Likewise.
* t/txinfo13.sh: Likewise.
* t/txinfo23.sh: Likewise.
* t/txinfo24.sh: Likewise.
* t/txinfo25.sh: Likewise.
* t/txinfo28.sh: Likewise.
* t/txinfo33.sh: Likewise.
* t/vtexi4.sh: Likewise.
2012-06-20 Stefano Lattarini <stefano.lattarini@gmail.com>
texi: require Texinfo >= 4.9, related enhancements
We start passing the '--build-dir' option to the texi2dvi and texi2pdf
invocations done in our Texinfo-related rules. The argument for this
option will be specific for each info_TEXINFOS entry, to work around a
texi2dvi bug that could otherwise cause racy failures in parallel make
builds:
<http://lists.gnu.org/archive/html/automake-patches/2012-06/msg00073.html>
That bug seems already fixed in the development version of texi2dvi,
though:
<http://lists.gnu.org/archive/html/automake-patches/2012-06/msg00074.html>
so the details of our '--build-dir' usage can be revisited once we can
assume Texinfo 5.0 or later.
Since the '--build-dir' options has been only supported since Texinfo
4.9, we lose compatibility with all older Texinfo versions.
But we also get some real improvements.
First, the '--build-dir' option implies the '--tidy' option; this, like
the '--clean' option that we were formerly using, prevents cluttering of
the build directory with all the TeX and Texinfo auxiliary files and
build by-products, but, differently from '--clean', keeps them around
for later re-runs to use; this shortens the rebuild times considerably.
Second, the use of '--build-dir' also allows us to specify different
build directories for the PDF and DVI output, preventing the rules
building them from stomping on each other's feet when run in parallel.
This is demonstrated by the test cases 'txinfo-no-clutter.sh' and
'txinfo33.sh', which before this change used to fail when run with
MAKE="make -j4", but now succeed even in that case.
* NEWS: Update.
* lib/am/texibuilds.am: Do not try to avoid texi2dvi/texi2pdf option
'-o'; it has been supported since Texinfo 4.1, and we now require
Texinfo >= 4.9. Remove an obsolete comment. Modify calls to texi2dvi
and texi2pdf to use the '--build-dir' option, so that TeX auxiliary
files and build by-products for a 'foo.texi' input will be placed in
a 'foo.t2d' directory (for texi2dvi) or in a 'foo.t2p' directory (for
texi2pdf).
* automake.in (scan_texinfo_file): Greatly simplify the implementation,
since we don't need anymore to keep track of the TeX auxiliary files and
build by-products to clean. Drop the '@CLEAN_FILES' part of the return
value.
(handle_texinfo_helper): Adjust the 'scan_texinfo_file()' call to its
new signature. Append the "work directories" now created by texi2dvi
and texi2pdf invocation to the list of files/directories removed upon
"make mostlyclean".
* lib/am/texinfos.am: Update the cleaning rules (and comments)
accordingly.
* t/txinfo-no-clutter.sh: Minimal adjustment to avoid spurious failures.
* .gitignore: Update.
2012-06-16 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: it's not true that DISTCHECK_CONFIGURE_FLAGS is maintainer-reserved
At least, not anymore since commit 'v1.11-372-g9760039' of 2001-06-10,
"distcheck: add support for AM_DISTCHECK_CONFIGURE_FLAGS". See also
automake bug#8784.
* doc/automake.texi (Flag Variables Ordering): Do not report
'DISTCHECK_CONFIGURE_FLAGS' as a "variables that are only useful
to the maintainer that has no user counterpart": now it is a
user-reserved variable, its maintainer-reserved counterpart
being 'AM_DISTCHECK_CONFIGURE_FLAGS' .
2012-06-15 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'am-preprocess-drop-tricky-transform'
* am-preprocess-drop-tricky-transform:
automake: stop supporting "%KEY?iftrue:iffalse%" transforms
am: stop using "%KEY:iffalse?iftrue%" transforms
2012-06-15 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
tests: minor reorganization of few tests
fixup: adjust t/list-of-tests.mk for renamed/added tests
subdirs: enhance coverage, tweak and rename few tests
sync: update files from upstream with "make fetch"
py-compile: consistently quote 'like this', not `like this'.
docs: recursive make considered harmful
docs: clean rules are not run in reverse order of build rules anymore
silent: new $(AM_V_P) variable, tell if we're running in silent mode
refactor: silent rules handling (a little)
refactor: &define_verbose_var: accept a third optional argument
+ Extra non-trivial edits:
These are due to the fact that support for silent rules is enabled
unconditionally these days (since commit 'v1.12-34-g14141f2' of
2012-05-01, "silent rules: support for them is always active now").
* automake.in: In the new silent related code, do not ever check
whether the 'silent-rules' option is active; just assume support
for silent rules is enabled.
* t/silent-obsolescent-warns.sh: Remove as obsolete.
* t/list-of-tests.mk: Adjust.
2012-06-15 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'docs-recursion' into maint
* docs-recursion:
docs: recursive make considered harmful
2012-06-15 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'silent-custom' into maint
* silent-custom:
silent: new $(AM_V_P) variable, tell if we're running in silent mode
refactor: silent rules handling (a little)
refactor: &define_verbose_var: accept a third optional argument
2012-06-14 Stefano Lattarini <stefano.lattarini@gmail.com>
automake: stop supporting "%KEY?iftrue:iffalse%" transforms
And the similar "reduced forms" "%KEY:iffalse%" and "%KEY?iftrue%"
as well.
They are convoluted, never used (after the previous change), and will
get in the way in the Automake-NG branch, where we'll soon want to use
GNU make static pattern rules in our internal '*.am' fragments.
* automake.in (preprocess_file, transform): Simplify not to support
those transform patterns.
2012-06-14 Stefano Lattarini <stefano.lattarini@gmail.com>
am: stop using "%KEY:iffalse?iftrue%" transforms
And the similar "reduced forms" "%KEY:iffalse%" and "%KEY?iftrue%"
as well.
They are harder to grasp, can be easily reformulated in function of
other "plainer" transforms ("?KEY?" and "?!KEY?"), and we'll remove
support for them anyway in a later change.
* lib/am/data.am, lib/am/libs.am, lib/am/lisp.am, lib/am/ltlib.am,
lib/am/progs.am, lib/am/python.am, lib/am/scripts.am: Adjusted not
to rely on those kinds of transforms.
2012-06-14 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: minor reorganization of few tests
* t/subdir3.sh: Rename ...
* t/sourcefile-in-subdir.sh: ... like this.
* t/subdir4.sh: Rename ...
* t/depcomp-implicit-auxdir.sh: ... like this.
* t/subdir6.sh: Rename ...
* t/confh-subdir-clean.sh: ... like this.
* t/subdir7.sh: Renamed ...
* t/dir-named-obj-is-bad.sh: ... like this, and enhance.
* t/srcsub.sh, t/srcsub2.sh: Unify ...
* t/src-acsubst.sh: ... as this test.
* t/list-of-tests.mk: Adjust.
2012-06-14 Stefano Lattarini <stefano.lattarini@gmail.com>
fixup: adjust t/list-of-tests.mk for renamed/added tests
2012-06-14 Stefano Lattarini <stefano.lattarini@gmail.com>
subdirs: enhance coverage, tweak and rename few tests
* t/subdir5.sh: Rename ...
* t/subdir-add-pr46.sh: ... like this.
* t/subdir8.sh: Rename ...
* t/subdir-add2-pr46.sh: ... like this.
* t/cond2.sh: Rename ...
* t/subdir-cond-err.sh: ... like this.
* t/subdir9.sh: Rename ...
* t/subdir-with-slash.sh: ... like this; improve heading comments.
* t/subcond.sh: Rename ...
* t/subdir-cond-gettext.sh: ... like this; improve m4 quoting.
* t/subcond2.sh: Rename ...
* t/subdir-am-cond.sh: ... like this; adjust heading comments.
* t/subcond3.sh: Rename ...
* t/subdir-ac-subst.sh: ... like this; adjust heading comments.
* t/subdir2.sh: Rename ...
* t/subdir-subsub.sh: ... like this; enhance so that it also runs
'./configure' and 'make'.
* t/subdir-order.sh: New test, check that the $(SUDBIRS) entries
are processed in the order they are specified.
* doc/automake.texi: Adjust references to tests.
2012-06-14 Stefano Lattarini <stefano.lattarini@gmail.com>
sync: update files from upstream with "make fetch"
* lib/config.guess, lib/gitlog-to-changelog, lib/texinfo.tex: Update.
2012-06-14 Stefano Lattarini <stefano.lattarini@gmail.com>
py-compile: consistently quote 'like this', not `like this'.
* lib/py-compile (usage_error): Here.
2012-06-12 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: recursive make considered harmful
In the documentation, we shouldn't confuse "packages using subdirectories"
with "packages using recursive make invocations". A package can have a
careful organization in subdirectories, make no (or almost no) use of make
recursion (examples of such packages are GNU bison, GNU cppi, and Automake
itself).
In fact, make recursion should be used as seldom as possible, because it
makes the build system more brittle and dependency declarations less
faithful. See Peter Miller's article "Recursive Make Considered Harmful"
for more a more in-depth discussion:
http://miller.emu.id.au/pmiller/books/rmch/
* doc/automake.texi (Directories): Clarify how a build system based on
make recursion does. Observe that such a system, albeit being very
widespread, has its own issues and drawbacks, and that one can have a
non-recursive setup also for projects using complex directory layout.
(Recursing subdirectories): Speak of "packages that use make recursion"
rather than of "packages with subdirectories".
2012-06-12 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'subdirs-simplify' into maint
* subdirs-simplify:
docs: clean rules are not run in reverse order of build rules anymore
2012-06-12 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: clean rules are not run in reverse order of build rules anymore
At least since commit 'v1.12.1-12-gec6a135' of 2012-06-10, "subdirs: unify
rules for "cleaning" and "normal" recursive targets"
* doc/automake.texi (Recursing subdirectories): Adjust.
2012-06-11 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
maintcheck: fix failures, both real and spurious
subdir tests: avoid an use of "make -j4", for portability
tests: avoid failure due to libtool quirks in C++ demo test
tests: fix spurious failures due to missing '$sleep'
subdirs: unify rules for "cleaning" and "normal" recursive targets
tests: add a "demo" test on C support
tests: look for '.lo' rather than '.o' object when using Libtool with C++
cosmetics: few typofixes in older ChangeLogs, suggested by "codespell.py"
maint: grammar fixes: s/all these/all of these/
subdir-objects: improve "make mostlyclean" efficiency and flexibility
2012-06-11 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'subdir-objects-pr10697' into maint
* subdir-objects-pr10697:
maintcheck: fix failures, both real and spurious
2012-06-11 Stefano Lattarini <stefano.lattarini@gmail.com>
maintcheck: fix failures, both real and spurious
* syntax-checks.mk (sc_rm_minus_f): Whitelist the
't/subobj-clean*-pr10697.sh' tests.
* t/subobj-clean-pr10697.sh: When redefining PATH,
use '$PATH_SEPARATOR', not hard-coded ':'.
* t/subobj-clean-lt-pr10697.sh: Likewise.
2012-06-11 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: merged some testsuite fixlets
* fix-cxx-libtool-demo:
tests: avoid failure due to libtool quirks in C++ demo test
* subdir-objects-pr10697:
tests: fix spurious failures due to missing '$sleep'
* subdirs-simplify:
subdir tests: avoid an use of "make -j4", for portability
2012-06-11 Stefano Lattarini <stefano.lattarini@gmail.com>
subdir tests: avoid an use of "make -j4", for portability
Otherwise, a spurious failure with Solaris CCS make can be triggered.
The coverage is not actually reduced, since the code path is still
covered when one runs the testsuite with AM_TESTSUITE_MAKE="make -jN"
(as should be done periodically).
* t/subdir-distclean.sh : Call simply "make maintainer-check", not
"make -j4 maintainer-check".
2012-06-11 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid failure due to libtool quirks in C++ demo test
Revealed by failures on NetBSD 5.1.
* t/cxx-lt-demo.sh: In "make distcheck" invocation, don't define 'CC'
to "false", as that value would be exported and passed to the child
./configure invocation, and some configure checks generated by libtool
autoconf macros can still require a C preprocessor even for packages
using only C++, and bail out if it's not found. The problem was not
apparent on Solaris and GNU/Linux because those systems have a
'/lib/cpp' program, and configure detected and used that as a fallback
C preprocessor.
2012-06-11 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix spurious failures due to missing '$sleep'
Revealed by failures on NetBSD 5.1.
* t/subobj-clean-pr10697.sh: Call '$sleep' before modifying the
files that should trigger an automatic remake.
* t/subobj-clean-lt-pr10697.sh: Likewise.
2012-06-11 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branches 'subdirs-simplify' and 'subdir-objects-pr10697' into maint
* subdirs-simplify:
subdirs: unify rules for "cleaning" and "normal" recursive targets
tests: add a "demo" test on C support
* subdir-objects-pr10697:
subdir-objects: improve "make mostlyclean" efficiency and flexibility
tests: look for '.lo' rather than '.o' object when using Libtool with C++
cosmetics: few typofixes in older ChangeLogs, suggested by "codespell.py"
2012-06-11 Stefano Lattarini <stefano.lattarini@gmail.com>
subdirs: unify rules for "cleaning" and "normal" recursive targets
Before this change, the recursive invocation of cleaning targets in
the $(SUBDIRS) where done in inverse order, i.e., starting from the
last $(SUBDIRS) entry and proceeding towards the first. According
to the code comments, this was done ...
... in an attempt to alleviate a problem that can happen when
dependencies are enabled. In this case, the .P file in one
directory can depend on some automatically generated header
in an earlier directory. Since the dependencies are required
before any target is examined, make bombs.
But this comment does not apply anymore to the current implementation
of automatic dependency tracking: the '.Po' and '.Plo' files does not
depend on any C header or source file, ever!
So it seems that the distinction between "normal" and "cleaning"
recursive targets is a stale leftover of an older implementation of
the automatic dependency tracking. In fact, the Automake History
manual seems to confirm this suspect; the section "First Take on
Dependency Tracking" reads:
Because each .P file was a dependency of Makefile, this meant
that dependency tracking was done eagerly by make. For instance,
"make clean" would cause all the dependency files to be updated,
and then immediately removed. This eagerness also caused problems
with some configurations; if a certain source file could not be
compiled on a given architecture for some reason, dependency
tracking would fail, aborting the entire build.
and the following section "Dependencies As Side Effects" reads:
In this approach, the .P files were included using the -include
command, which let us create these files lazily. This avoided
the "make clean" problem.
So the distinction between "normal" and "cleaning" recursive targets
has likely been obsolete since by then already. We can thus remove
such distinction, thus reducing some complications and duplication in
our rules. Doing so, the whole testsuite still passes (both with GCC
and Sun C 5.9), even the test 'c-demo.sh', which, among the other
things, exercise the setup described in the obsolete code comment
referenced above.
Finally, note that we still keep '$(RECURSIVE_CLEAN_TARGETS)' and
'$(RECURSIVE_TARGETS)' as two distinct variables, to ensure a better
backward-compatibility for any user-defined rules that happen to use
those variables.
* NEWS: Update.
* lib/am/subdirs.am ($(RECURSIVE_CLEAN_TARGETS), $(CLEAN_TARGETS)):
Merge their recipes.
* t/subdir-distclean.sh: New test, check that "./configure && make
&& make distclean" is actually a no-op, even when conditional SUBDIRS
are involved.
* t/list-of-tests.mk: Add it.
2012-06-11 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: add a "demo" test on C support
Showing and testing non-trivial use of C support, and its interaction
with other features.
* t/c-demo.sh: New test.
* t/list-of-tests.mk: Add it.
2012-06-11 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: look for '.lo' rather than '.o' object when using Libtool with C++
* t/cxx-lt-demo.sh: ... in this test.
2012-06-11 Stefano Lattarini <stefano.lattarini@gmail.com>
cosmetics: few typofixes in older ChangeLogs, suggested by "codespell.py"
The typofixes offered by this patch have been suggested by the
"codespell.py" script. Reference:
<http://git.profusion.mobi/cgit.cgi/lucas/codespell/>
* old/ChangeLog.01, old/ChangeLog.02, old/ChangeLog.03: Fix few typos.
2012-06-11 Stefano Lattarini <stefano.lattarini@gmail.com>
silent: new $(AM_V_P) variable, tell if we're running in silent mode
Addresses part of automake bug#8665.
* automake.in (handle_silent): Define a new make variable '$(AM_V_P)',
that expands to a shell conditional that can be used in make recipes to
determine whether they are being run in silent mode or not. The choice
of the name derives from the LISP convention of appending the letter
'P' to denote a predicate (see also "the '-P' convention" in the Jargon
File); we do so for lack of a better convention.
* t/automake.texi, NEWS: Document the new variable.
* t/silent6.sh: Adjust and extend. Move out the checks that didn't
actually deal with user extension of silent rules ...
* t/silent-obsolescent-warns.sh: ... into this test (bound to be
removed once 'maint' is merged into the 'master' branch).
* t/list-of-tests.mk: Add the new test.
2012-06-11 Stefano Lattarini <stefano.lattarini@gmail.com>
refactor: silent rules handling (a little)
* automake.in (handle_languages): Move definition of $(AM_V_GEN)
variable ...
(define_verbose_tagvar): ... and of '$(AM_V_at)' variable ...
(handle_silent): ... in this new subroutine.
(generate_makefile): Call it.
2012-06-11 Stefano Lattarini <stefano.lattarini@gmail.com>
refactor: &define_verbose_var: accept a third optional argument
This is only required by future changes.
* automake.in (define_verbose_var): Accept a third optional argument,
specifying the value to assign to the given make variable when silent
rules are disabled.
2012-06-10 Jim Meyering <meyering@redhat.com>
maint: grammar fixes: s/all these/all of these/
Run this command:
git grep -li '\<all.these\>' \
|xargs perl -pi -e 's/\b([Aa])ll these\b/${1}ll of these/'
2012-06-10 Stefano Lattarini <stefano.lattarini@gmail.com>
subdir-objects: improve "make mostlyclean" efficiency and flexibility
Fixes automake bug#10697.
Before this change, the generated Makefile issued one 'rm' invocation
for each subdir object file. Not only was this very inefficient when
there were several such files, but it also caused stale object files
to be left behind when a source file was renamed or removed.
* automake.in (handle_single_transform): When a subdir object is seen,
update '%compile_clean_files' to clean all the compiled objects in its
same subdirectory, and all the libtool compiled objects ('.lo') there
as well is that subdir object is a libtool one.
* t/subobj-clean-pr10697.sh: New test.
* t/subobj-clean-lt-pr10697.sh: Likewise.
* t/list-of-tests.mk: Add them.
* NEWS: Update.
2012-06-09 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
tests: look for '.lo' rather than '.o' object when using Libtool with C++
cosmetics: few typofixes in older ChangeLogs, suggested by "codespell.py"
tests: add basic semantic tests on C++ support
tests: minor tweak to 't/objc-megademo.sh'
2012-06-09 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: look for '.lo' rather than '.o' object when using Libtool with C++
* t/cxx-lt-demo.sh: ... in this test.
2012-06-09 Stefano Lattarini <stefano.lattarini@gmail.com>
cosmetics: few typofixes in older ChangeLogs, suggested by "codespell.py"
The typofixes offered by this patch have been suggested by the
"codespell.py" script. Reference:
<http://git.profusion.mobi/cgit.cgi/lucas/codespell/>
* old/ChangeLog.01, old/ChangeLog.02, old/ChangeLog.03: Fix few typos.
2012-06-09 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: add basic semantic tests on C++ support
Strange as it might seem, we were still missing them (yikes).
* t/cxx-demo.sh: New test.
* t/cxx-lt-demo.sh: Likewise (using libtool).
* t/list-of-tests.mk: Add them.
2012-06-09 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: minor tweak to 't/objc-megademo.sh'
* t/objc-megademo.sh (am_create_testdir): Define to "empty" before
including ./defs, because this test doesn't rely on the files usually
pre-set by the setup in there.
2012-06-08 Stefano Lattarini <stefano.lattarini@gmail.com>
cleanup: simplify subroutine '&saw_extension'
* automake.in (saw_extension): Now that we use the '%extension_seen'
hash only as a set (it's keys being its elements), we can simplify
the implementation of this function accordingly.
2012-06-08 Stefano Lattarini <stefano.lattarini@gmail.com>
cleanup: remove subroutine '&saw_sources_p'
* automake.in (saw_sources_p): Remove, its implementation is now so
trivial that it's easier to inline it into ...
(handle_languages): ... it's only caller.
2012-06-08 Stefano Lattarini <stefano.lattarini@gmail.com>
cleanup: remove unused '&count_files_for_language' subroutine
* automake.in (count_files_for_language): Remove. Its only remaining
caller (saw_sources_p) has stopped calling it in the previous commit.
2012-06-08 Stefano Lattarini <stefano.lattarini@gmail.com>
automake: simplify '&saw_sources_p'
This is just a minor cleanup. No semantic change is intended.
* automake.in (saw_sources_p): Since its now-only caller calls it with
the '0' argument, remove the code paths that assumed the argument could
be '1', and assume no arguments.
(handle_languages): Drop the arguments '0' in the '&saw_sources_p'
invocation.
2012-06-08 Stefano Lattarini <stefano.lattarini@gmail.com>
tags: look at $(am__tagged_files) to decide whether to activate
This is just a preparatory refactoring in view of future changes.
* automake.in (handle_tags): To decide whether to include the tags rules,
rely on whether the automake-defined variable $(SOURCES) is non-empty,
rather than on the fact that '&saw_sources(1)' returns true.
2012-06-08 Stefano Lattarini <stefano.lattarini@gmail.com>
tags: new var $(am__tagged_files) to list all files to run taggers on
This change reduce code duplication a little, and will be needed by
future simplifications.
* automake.in (handle_tags): Define a new 'am__tagged_files' private
make variable that lists all files to run taggers (mkid, cscope, ctags,
etc) on. Drop the now-useless transform '%CONFIG%' when including
'tags.am'.
* lib/am/tags.am: Use it in several recipes and dependencies list to
reduce code duplication.
2012-06-08 Stefano Lattarini <stefano.lattarini@gmail.com>
tags (cscope): also process $(TAGS_FILES)
* lib/am/tags.am (cscopelist): Also scan the files (if any) listed in
the '$(TAGS_FILES) variable, for consistency by what is done by the
'ID', 'TAGS' and 'CTAGS' rules.
2012-06-08 Stefano Lattarini <stefano.lattarini@gmail.com>
tags (ID, cscope): also process config header (if any)
* lib/am/tags.am (cscopelist, ID): Also scan the file given by the
'%CONFIG%' transform, for consistency by what is done by the 'TAGS'
and 'CTAGS' rules.
2012-06-02 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
news: document deprecation of configure.in
news: put planned backward compatibilities early
sync: update files from upstream with "make fetch"
maint: deprecate 'configure.in' as autoconf input
maint: post-release minor version bump
release: stable release 1.12.1
copyright: update copyright years in a couple of files
tests: avoid spurious failures with Solaris 9 cscope program
maintcheck: fix a spurious failure
perf: beginning of a performance testsuite
aclocal: declare function prototypes, do not use '&' in function calls
news: support for configure.in will be dropped in future automake versions
tests: fix botched heading comments in 'lex-clean-cxx.sh'
[ng] maintcheck: some tweaks and fixlets
help: fix a typo in the list of warning categories
maint: version bump after beta release
release: beta release 1.12.0b (will become 1.12.1)
release: remove overly picky check
2012-06-02 Stefano Lattarini <stefano.lattarini@gmail.com>
news: document deprecation of configure.in
* NEWS (Warnings and deprecations): We now warn if 'configure.in' is
used instead of 'configure.ac' as autoconf input.
(Future backward-incompatibilities): Adjust.
2012-06-02 Stefano Lattarini <stefano.lattarini@gmail.com>
news: put planned backward compatibilities early
* NEWS (Future backward-incompatibilities): Put them in the news
entries for the future 1.12.2 release.
2012-06-01 Stefano Lattarini <stefano.lattarini@gmail.com>
sync: update files from upstream with "make fetch"
* lib/config.sub, lib/gitlog-to-changelog, lib/texinfo.tex: Update.
2012-06-01 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: deprecate 'configure.in' as autoconf input
It has been years since that has been deprecated in the documentation,
in favour of 'configure.ac':
Previous versions of Autoconf promoted the name configure.in, which
is somewhat ambiguous (the tool needed to process this file is not
described by its extension), and introduces a slight confusion with
config.h.in and so on (for which '.in' means "to be processed by
configure"). Using configure.ac is now preferred.
It's now time to start giving runtime warning about the use of
'configure.in', so that support for it can be removed in future
versions of autoconf/automake.
See also, in the Autoconf repository, commit 'v2.69-4-g560f16b' of
2012-05-23, "general: deprecate 'configure.in' as autoconf input".
* lib/Automake/Configure_ac.pm: Issue a warning in the 'obsolete'
category if 'configure.in' is detected. Since this module is synced
from Automake, this change is to be backported there (and will be
soon).
* t/help.sh: Adjust.
* t/configure.sh: Adjust and enhance.
2012-06-01 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: post-release minor version bump
* configure.ac (AC_INIT): Bump version number to 1.12.1a.
* m4/amversion.m4: Likewise (automatically regenerated by
"make bootstrap").
2012-06-01 Stefano Lattarini <stefano.lattarini@gmail.com>
release: stable release 1.12.1
* configure.ac (AC_INIT): Bump version number to 1.12.1.
* m4/amversion.m4: Likewise (auto-updated by "./bootstrap").
2012-06-01 Stefano Lattarini <stefano.lattarini@gmail.com>
copyright: update copyright years in a couple of files
* doc/help2man, t/aclocal-verbose-install.sh: Update copyright,
thanks to "make update-copyright".
2012-06-01 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid spurious failures with Solaris 9 cscope program
* t/cscope.tap: Also check that the cscope program in use supports the
'-q' option; if this is not the case, some cscope usages in the generated
Makefiles would fail, so we must skip the checks involving those usages.
2012-06-01 Stefano Lattarini <stefano.lattarini@gmail.com>
maintcheck: fix a spurious failure
* Makefile.am (test_subdirs): Add 't/perf'. Fix spurious failure
of the 'maintainer-check-list-of-tests' target.
2012-05-29 Stefano Lattarini <stefano.lattarini@gmail.com>
perf: beginning of a performance testsuite
Some tests in the Automake testsuite already aims only at verifying
the performance, rather than the correctness, of some operations.
Still, they are somewhat shoehorned and forced into the PASS/FAIL
framework (say, with the 'ulimit' shell builtin used to verify some
operation doesn't take up too much time or memory), but that is
conceptually a stretch, and has already caused problems in practice
(see automake bug#11512 for an example).
So we start moving the "performance tests" out of the testsuite proper,
and make them run only "on demand" (when the user exports the variable
'AM_TESTSUITE_PERF' to "yes"). Ideally, we should provide those tests
with a custom runner/driver that measures and displays the relevant
performance information, but doing that correctly and with the right
APIs is definitely more difficult, so we leave it for a later step
(an hope we'll take such a step eventually).
* t/cond29.sh: Move ...
* t/perf/cond.sh: ... here, and adjust.
* t/testsuite-recheck-speed.sh: Move ...
* t/perf/testsuite-recheck.sh: ... here.
* t/testsuite-summary-speed.sh: Move ...
* t/perf/testsuite-summary.sh: ... here.
* t/list-of-tests.mk (perf_TESTS): New variable, listing the tests in
the 't/perf' directory.
(handwritten_TESTS): Adjust.
* defs: Skip any tests in the 't/perf/' subdirectory unless the
'AM_TESTSUITE_PERF' variable is set to "yes" or "y".
* .gitignore: Update.
2012-05-29 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'fix-pr11543' into maint
* fix-pr11543:
aclocal: declare function prototypes, do not use '&' in function calls
2012-05-29 Stefano Lattarini <stefano.lattarini@gmail.com>
aclocal: declare function prototypes, do not use '&' in function calls
This change will also fix automake bug#11543 (from a report by Matt
Burgess).
* aclocal.in: Declare prototypes for almost all functions early, before
any actual function definition (but omit the prototype for the dynamically
generated '&search' function). Add prototypes to any function definition.
Remove '&' from function invocations (i.e., simply use "func(ARGS..)"
instead of "&func(ARGS...)").
* THANKS, NEWS: Update.
2012-05-28 Stefano Lattarini <stefano.lattarini@gmail.com>
news: support for configure.in will be dropped in future automake versions
The use of configure.in as Autoconf input has been deprecated for a
very long time in the Autoconf documentation, and the next version of
Autoconf (2.70) will start warning about it ar runtime as well (see
commit 'v2.69-4-g560f16b' or 2012-05-23, "general: deprecate
'configure.in' as autoconf input", in the Autoconf's git repository).
* NEWS (Future backward-incompatibilities): Update.
2012-05-27 Stefano Lattarini <stefano.lattarini@gmail.com>
missing: support AC_CONFIG_HEADERS in addition to obsolete AC_CONFIG_HEADER
* missing (autoheader*): Do not look only for AC_CONFIG_HEADER when
grepping configure.ac, but also for AC_CONFIG_HEADERS: the latter has
been preferred to the former by several years now in Autoconf.
2012-05-27 Stefano Lattarini <stefano.lattarini@gmail.com>
missing: don't bother checking for AM_CONFIG_HEADER: it is gone now
* missing (autoheader*): Do not look for AM_CONFIG_HEADER when
grepping configure.ac: it is not supported anymore (has been in
fact deleted in commit v1.12-15-gd2ca168 of 2012-04-27, "m4: delete
several obsolete macros").
2012-05-27 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: remove mention of AM_CONFIG_HEADER: it is obsolete and removed now
* doc/automake.texi (Variables used when building a program): Remove
obsolete mention of AM_CONFIG_HEADER as an alias to AC_CONFIG_HEADERS.
2012-05-26 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix botched heading comments in 'lex-clean-cxx.sh'
* t/lex-clean-cxx.sh: This file tests lex, not yacc.
2012-05-25 Stefano Lattarini <stefano.lattarini@gmail.com>
[ng] maintcheck: some tweaks and fixlets
* syntax-checks.mk (sc_no_brace_variable_expansions): Do not complain
about ${MAKEVAR} usages in comments: they might be legitimate. This
change is not strictly required for mainline automake, but will help
in the Automake-NG branch.
* sc_tests_here_document_format: Relax a bit, so that usages like
"cout << "string" << endl;" in the test scripts (usages which can be
used in here documents defining C++ sources) are not flagged as uses
of bad delimiters for here documents. This change is not strictly
required for mainline automake, but will help in the Automake-NG
branch, and will anyway be more future proof w.r.t. possible future
testsuite additions.
(sc_tests_Exit_not_exit): Do not whitelist lines containing $PERL
explicitly (that was only required for one test); instead ...
* t/ext2.sh: ... use "exit (1)" instead of "exit 1" in the perl
invocation of the guilty script.
2012-05-25 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'am-init-automake'
* am-init-automake:
init: obsolete usages of AM_INIT_AUTOMAKE not supported anymore
2012-05-25 Stefano Lattarini <stefano.lattarini@gmail.com>
init: obsolete usages of AM_INIT_AUTOMAKE not supported anymore
This is a follow-up on commit v1.12-66-g27136df of 2012-05-06, "init: warn
against obsolete usage of AM_INIT_AUTOMAKE".
With this change, we drop support for the two-arguments and three-arguments
invocation forms of the AM_INIT_AUTOMAKE macro, as in either of:
AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
AM_INIT_AUTOMAKE($PACKAGE, $VERSION, NODEFINE)
* NEWS, doc/automake.texi: Update.
* m4/init.m4 (AM_INIT_AUTOMAKE): Report the two- and three-arguments
invocation form as a hard error.
* t/aminit-moreargs-deprecation.sh: Renamed ...
* t/aminit-moreargs-deprecation.sh: ... to this, and updated to check
the new semantics.
* t/ac-output-old.tap: Adjust by avoiding old-style uses of AC_INIT
and AM_INIT_AUTOMAKE.
* t/acsilent.sh: Likewise.
* t/dirlist.sh: Likewise.
* t/dirlist2.sh: Likewise.
* t/req.sh: Likewise.
* t/nodef.sh: Remove as obsolete.
* t/version.sh: Likewise.
* t/version2.sh: Likewise.
* t/backcompat.sh: Likewise.
* t/backcompat2.sh: Likewise.
* t/backcompat3.sh: Likewise.
* t/backcompat5.sh: Likewise.
* t/backcompat4.sh: Renamed ...
* t/backcompat-acout.sh: ... to this.
* t/list-of-tests.mk: Adjust.
2012-05-21 Stefano Lattarini <stefano.lattarini@gmail.com>
help: fix a typo in the list of warning categories
* lib/Automake/ChannelDefs.pm (usage): s/none'/none/.
2012-05-19 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: version bump after beta release
* configure.ac (AC_INIT): Bump version number to 1.12.0c.
* m4/amversion.m4: Likewise (auto-updated by "./bootstrap").
2012-05-19 Stefano Lattarini <stefano.lattarini@gmail.com>
release: beta release 1.12.0b (will become 1.12.1)
* configure.ac (AC_INIT): Bump version number to 1.12.0b.
* m4/amversion.m4: Likewise (auto-updated by "./bootstrap").
2012-05-19 Stefano Lattarini <stefano.lattarini@gmail.com>
release: remove overly picky check
* Makefile.am (git-tag-release): Do not check that the version number
NEWS is updated w.r.t. $(VERSION); given the new way we manage NEWS,
that would cause gratuitous spurious failures.
* HACKING: Update.
2012-05-19 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'parallel-tests-default'
* parallel-tests-default:
check: the parallel-tests driver is now the default
2012-05-19 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
ylwrap: preserve subdirectories in "#line" munging
ylwrap: preparatory refactoring
2012-05-19 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'ylwrap-line-filename' into maint
* ylwrap-line-filename:
ylwrap: preserve subdirectories in "#line" munging
ylwrap: preparatory refactoring
2012-05-18 Stefano Lattarini <stefano.lattarini@gmail.com>
check: the parallel-tests driver is now the default
The old serial testsuite driver is still supported, and can be activated
by the 'serial-tests' option (introduced by commit 'v1.11-1989-gdeb7773'
of 2012-02-20, "automake: new option 'serial-tests'").
* lib/Automake/Options.pm: Now, the 'parallel-tests' option is a no-op
(but still explicitly recognized, for backward compatibility), while the
'serial-tests' option is recognized and registered.
* automake.in: Adjust to ensure that the parallel test harness is used by
default; mostly, this amounts at using "! option('serial-tests')" where
"option('parallel-tests')" was used before.
* NEWS, doc/automake.texi: Update.
* configure.ac (AM_INIT_AUTOMAKE): Drop 'parallel-tests' option, is
redundant now.
* defs: In the generated AM_INIT_AUTOMAKE call, use the 'serial-tests'
when the serial testsuite harness is to be used, and no option otherwise.
* lib/am/check.am: Use (static) conditional '%SERIAL_TESTS%' instead of
conditional '%PARALLEL_TESTS%'.
* lib/test-driver: Adjust heading comments.
* t/ax/extract-testsuite-summary.pl: Likewise.
* t/check-exported-srcdir.sh: Likewise.
* t/check-subst.sh: Likewise.
* t/java-compile-run-nested.sh: Likewise.
* t/parallel-tests-dry-run-1.sh: Likewise.
* t/parallel-tests-dry-run-2.sh: Likewise.
* t/parallel-tests-interrupt.sh: Likewise.
* t/parallel-tests-many.sh: Likewise.
* t/test-metadata-global-log.sh: Likewise.
* t/tests-environment-backcompat.sh: Likewise.
* m4/init.m4 (AM_INIT_AUTOMAKE): Adjust a comment.
* t/check8.sh: Likewise.
* t/check-tests-in-builddir.sh: Likewise.
* t/java-compile-run-flat.sh: Adjust a botched comment.
* t/ax/tap-summary-aux.sh: Remove explicit use of the 'parallel-tests'
option.
* t/ax/testsuite-summary-checks.sh: Likewise.
* t/aclocal-path-precedence.sh: Likewise.
* t/dist-aux-many-subdirs.sh: Likewise.
* t/parallel-tests-no-color-in-log.sh: Likewise.
* t/parallel-tests-reset-term.sh: Likewise.
* t/parallel-tests-subdir.sh: Likewise.
* t/check-no-test-driver.sh: Fix setup to adjust to the changed
semantics. Update heading comments.
* t/parallel-tests-driver-install.sh: Adjust to the new semantic.
* t/test-driver-is-distributed.sh: Simplified according to the
new semantics.
2012-05-18 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
tests: use 'parallel-tests' Automake option by default
doc: fix location of Automake's own test-suite.log file
yacc tests: avoid a spurious failure with Sun C++ 5.9
self tests: cater for /bin/ksh symlinked to Zsh
tests: fix spurious failures due to dpkg install-info
2012-05-18 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: use 'parallel-tests' Automake option by default
This will help our transition from 'serial-tests' to 'parallel-tests'
as the default test suite driver enabled by a TESTS assignment in the
input Makefile.am. Note that that change of default will only take
place in master, though.
* defs: Pass the 'parallel-tests' option to the AM_INIT_AUTOMAKE
invocation in the created 'configure.ac' stub, unless the variable
'am_serial_tests' is set to "yes". Don't pay attention anymore to
the 'am_parallel_tests' variable, that's obsolete now.
* defs-static.in: Warn if the 'am_serial_tests' variable is set in the
environment; conversely, don't warn anymore about 'am_parallel_tests'
being set in the environment.
* Makefile.am (AM_TESTS_ENVIRONMENT): Nullify the 'am_serial_tests'
variable instead of the now-obsolete 'am_parallel_tests' one.
* syntax-checks.mk (sc_tests_obsolete_variables): Also warn against
uses of 'am_parallel_tests', which is now deprecated in favor of
'am_serial_tests'. Similarly, if a use of 'parallel_tests' is seen,
suggest using 'am_serial_tests' instead, not 'am_parallel_tests'.
* gen-testsuite-part: Now that we use the 'parallel-tests' by default
in our tests, we need to completely change the logic and semantics of
generation of sibling tests for those tests that check the Automake
generated testsuite harness itself. Do that, and give a complete
explanation of the new logic and semantics in the relevant comments.
* t/README: Update.
* Lots of test cases: Adjust.
2012-05-17 Stefano Lattarini <stefano.lattarini@gmail.com>
doc: fix location of Automake's own test-suite.log file
* doc/automake.texi (Reporting Bugs): The global testsuite log of
Automake is now (basically since we have removed make recursion from
the Automake's build system) saved in the file 'test-suite.log', not
in the file 'tests/test-suite.log'. Adjust accordingly.
2012-05-16 Nikolai Weibull <now@bitwi.se> (tiny change)
Stefano Lattarini <stefano.lattarini@gmail.com>
ylwrap: preserve subdirectories in "#line" munging
If Automake is used in non-recursive mode and one of the inputs is a
yacc file, for example, "src/grammar.y", ylwrap will remove too many
directories from the output file when it adjusts the paths in it.
This results in #line directives referring to "grammar.y" instead of
"src/grammar.y".
This is a result of $input_rx simply taking all the directory
components of the absolute input path and removing them.
One solution is to store the path passed to ylwrap and replace
$input_rx with it. This is what we do.
Suggestion and initial patch (without tests) by Nikolai Weibull:
<http://lists.gnu.org/archive/html/automake/2012-05/msg00013.html>
Final patch by Stefano Lattarini.
* lib/ylwrap ($input_sub_rx): New.
When munging the #line directives, substitute '$input_rx' with it,
instead of stripping it altogether.
Adjust comments.
* t/yacc-line.sh, t/lex-line: Adjust and extend.
* NEWS, THANKS: Update.
2012-05-16 Stefano Lattarini <stefano.lattarini@gmail.com>
ylwrap: preparatory refactoring
This commit should cause no semantic change in the ylwrap behaviour.
It will only be needed in light of a future change. See:
<http://lists.gnu.org/archive/html/automake/2012-05/msg00013.html>
* lib/ylwrap (get_dirname, quote_for_sed): New functions, factoring
out some non-trivial code. Use them where appropriate.
2012-05-16 Stefano Lattarini <stefano.lattarini@gmail.com>
yacc tests: avoid a spurious failure with Sun C++ 5.9
* t/yacc-cxx.sh (parse1.yy): When calling the 'getchar' function declared
in the #included <cstdio>, fully qualify it as std::getchar', to avoid
Sun C++ 5.9 erroring out with:
"parse1.yy", line 5: Error: The function "getc" must have a prototype.
* t/yacc-clean-cxx.sh (sub1/parsefoo.yxx): Likewise.
2012-05-16 Stefano Lattarini <stefano.lattarini@gmail.com>
self tests: cater for /bin/ksh symlinked to Zsh
* t/self-check-reexec.tap: When searching for a suitable non-Bash
shells, be sure to reject any shell that is Zsh "in disguise" (as
can be found on some Debian systems, where /bin/ksh can be symlinked
to /bin/zsh4). This is required because our testsuite does not
support older versions of Zsh, and that was causing the test to fail
in the setup just described.
2012-05-16 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix spurious failures due to dpkg install-info
* t/install-info-dir.sh: Skip some checks if 'install-info' is the one
from dpkg, not the one from GNU info; the former might try to create
files in '/var/backups/', causing spurious failures like this for any
non-root user:
install-info(.../install-info-dir.dir/_inst/info/foo.info): \
creating new section `Dummy utilities'
cp: cannot create regular file `/var/backups/infodir.bak': \
Permission denied
install-info(.../install-info-dir.dir/_inst/info/foo.info): \
could not backup .../install-info-dir.dir/_inst/info/dir in \
/var/backups/infodir.bak: No such file or directory
2012-05-13 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
tests: fix spurious failure due to i18n issue
tests: add few missing 'cc' and 'c++' requirements
2012-05-13 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix spurious failure due to i18n issue
Fixes automake bug#11452.
* t/parallel-tests-fork-bomb.sh: Export LANG, LANGUAGE and LC_ALL to
'C', to ensure error messages will be in English, and thus avoiding
possible false negatives in our grepping of them.
2012-05-10 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: add few missing 'cc' and 'c++' requirements
Without that requirements, the configure-time overrides of CC and CXX
wouldn't be honored in the affected tests.
* t/silent-yacc.sh ($required): Require 'cc'.
* t/silent-yacc-headers.sh: Likewise.
* t/silent-lex.sh: Likewise.
* t/lex-clean.sh: Likewise.
* t/lex-depend.sh: Likewise.
* t/lex-line.sh: Likewise.
* t/lex-depend.sh: Likewise.
* t/lex-pr204.sh: Likewise.
* t/yacc-deleted-headers.sh: Likewise.
* t/yacc-line.sh: Likewise.
* t/yacc-depend.sh: Likewise.
* t/yacc-depend2.sh: Likewise.
* t/yacc-dist-nobuild-subdir.sh: Likewise.
* t/yacc-bison-skeleton.sh: Likewise.
* t/yacc-bison-skeleton-cxx.sh ($required): Require 'c++'.
* t/yacc-clean-cxx.sh: Likewise.
* t/yacc-d-cxx.sh: Likewise.
* t/yacc-cxx.sh: Likewise.
* t/yacc-mix-c-cxx.sh ($required): Require 'cc' and 'c++'.
2012-05-08 Stefano Lattarini <stefano.lattarini@gmail.com>
fixup: s/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/ in 't/confsub.sh'
Issue introduced in the recent merge 'v1.12-101-g12405c9'.
2012-05-08 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
tests: fix a spurious failure with dash
test defs: fix indentation (cosmetic change)
tests: remove obsolete uses of $sh_errexit_works
configure: search a sturdy POSIX shell to be used in the testsuite
tests: shell running test scripts is now named AM_TEST_RUNNER_SHELL
fixup: distribute t/README
init: warn against obsolete usage of AM_INIT_AUTOMAKE
2012-05-07 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'testsuite-saner-shell' into maint
* testsuite-saner-shell:
tests: fix a spurious failure with dash
test defs: fix indentation (cosmetic change)
tests: remove obsolete uses of $sh_errexit_works
configure: search a sturdy POSIX shell to be used in the testsuite
tests: shell running test scripts is now named AM_TEST_RUNNER_SHELL
2012-05-07 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix a spurious failure with dash
The dash shell, at least version 0.5.5.1, doesn't always bail out
with a syntax error when a stray "fi" in encountered:
$ dash -c ":; fi"; echo stat = $?
stat = 0
See also the relevant bug report:
<http://permalink.gmane.org/gmane.comp.shells.dash/717>
This behaviour was causing a spurious error in our testsuite. Fix it.
* t/self-check-exit.tap: Use a stray parentheses rather than a stray
'fi' to trigger a syntax error.
2012-05-07 Stefano Lattarini <stefano.lattarini@gmail.com>
test defs: fix indentation (cosmetic change)
* defs (exit trap): Fix indentation left botched by previous
patch 'v1.11b-51-g626bf65'.
2012-05-07 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: remove obsolete uses of $sh_errexit_works
After the last changes, configure will ensure that the shell
selected to run the test scripts can correctly propagate exit
status to the exit trap when 'set -e' is in effect.
* configure.ac (sh_errexit_works): Do not AC_SUBST it anymore.
* defs-static.in (sh_errexit_works): Do not initialize
from the AC_SUBST value anymore.
* defs (trap): Trap the EXIT signal unconditionally.
* t/self-check-explicit-skips.sh: Do not skip the test if
'$sh_errexit_works' is != "yes", this check doesn't make
sense anymore.
* t/self-check-cleanup.tap: Likewise.
* t/self-check-exit.tap: Assume the exit trap is always
installed by ./defs.
2012-05-07 Stefano Lattarini <stefano.lattarini@gmail.com>
configure: search a sturdy POSIX shell to be used in the testsuite
* configure.ac: Add code (partially inspired to checks in gnulib's
'tests/init.sh') to search for a good-enough, not-buggy POSIX/XSI
shell to be used in our testsuite. Accordingly AC_SUBSTitute the
variable 'AM_TEST_RUNNER_SHELL'.
* NEWS: Update.
2012-05-07 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: shell running test scripts is now named AM_TEST_RUNNER_SHELL
This is just a preparatory refactoring for future changes.
* configure.ac (AM_TEST_RUNNER_SHELL): New variable, defined
to $SHELL', and AC_SUBST'd.
* Makefile.am (LOG_COMPILER): Redefine from $(SHELL) to
$(AM_TEST_RUNNER_SHELL).
* defs: Adjust to use $AM_TEST_RUNNER_SHELL instead
of $CONFIG_SHELL and/or $SHELL, where appropriate. Minor
opportunistic changes.
* t/self-check-explicit-skips.sh: Likewise.
* t/self-check-sanity.sh: Likewise.
* t/self-check-tap.sh: Likewise.
* t/self-check-cleanup.tap: Likewise.
* t/self-check-dir.tap: Likewise.
* t/self-check-env-sanitize.tap: Likewise.
* t/self-check-exit.tap: Likewise.
* t/self-check-me.tap: Likewise.
* t/self-check-reexec.tap: Likewise.
2012-05-06 Stefano Lattarini <stefano.lattarini@gmail.com>
fixup: distribute t/README
Since commit v1.11-2128-g8e02441 of 2012-04-06, "maint: no more make
recursion in Automake's build system" we haven't been distributing the
testsuite README file in our release tarballs. Oops.
* Makefile.am (EXTRA_DIST): Add 't/README'.
2012-05-06 Stefano Lattarini <stefano.lattarini@gmail.com>
init: warn against obsolete usage of AM_INIT_AUTOMAKE
Support for the two- and three-arguments invocation forms of the
AM_INIT_AUTOMAKE macro, as in:
AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
or:
AM_INIT_AUTOMAKE($PACKAGE, $VERSION, NODEFINE)
will be removed in the next major Automake release (1.13).
Such usages have already been deprecated in the documentation
starting from commit v1.11-2015-ge99690a of 23-02-2012 "docs,
news: document planned removal of obsolete macros and features".
We now start giving runtime warnings as well (in the 'obsolete'
category).
* NEWS: Update.
* m4/init.m4 (AM_INIT_AUTOMAKE): Report the two- and three-arguments
form invocation.
* automake.in (scan_autoconf_traces): Likewise.
* doc/automake.texi: Minor adjustments. Add an @anchor to the
location where it's described how to modernize outdated invocation
of AM_INIT_AUTOMAKE, so that it can be referenced from automake
warning/error messages.
* t/aminit-moreargs-deprecation.sh: New test.
* tests/list-of-tests.mk: Add it.
* tests/ac-output-old.tap: Adjust by calling automake with the
warnings in the 'obsolete' category disabled.
* t/backcompat.test: Likewise.
* t/backcompat3.test: Likewise.
* t/backcompat5.test: Likewise.
* t/backcompat6.test: Likewise.
* t/version.test: Likewise.
* t/version2.test: Likewise.
* t/pr2.test: Modernize style of AC_INIT and AM_INIT_AUTOMAKE
invocations, and use proper m4 quoting.
* t/pr87.test: Likewise.
* t/confsub.test: Likewise.
* t/install2.test: Likewise.
2012-05-06 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
m4: prepend m4 builtins with "m4_"
docs: fix clumsy grammar in the scripts-based testsuite chapter
2012-05-06 Stefano Lattarini <stefano.lattarini@gmail.com>
m4: prepend m4 builtins with "m4_"
The comments in 'lib/autoconf/autoconf.m4' from Autoconf 2.69 read:
We discourage the use of the non prefixed macro names: M4sugar maps
all the builtins into 'm4_'. Autoconf has been converted to these
names too. But users may still depend upon these, so reestablish
them.
Alas, in our init.m4 files, we were still using m4 builtins without
prefixing them with "m4_". Not nice for a package that is one of the
major clients of Autoconf, and an integral part of the GNU Autotools!
Fix the issue.
* m4/init.m4 (AM_INIT_AUTOMAKE): Use 'm4_define' and 'm4_defn' instead
of 'define' and 'defn'.
2012-05-05 Stefano Lattarini <stefano.lattarini@gmail.com>
require: autoconf >= 2.65; related simplifications
The new support for Objective C++ (to be added in Automake 1.12.1) can be
simplified if we assume Autoconf version 2.65 or later (2.65 being the
version that introduced support for Objective C++). Since such an Autoconf
version is two and half years old now (and will likely be almost three
years old when Automake 1.13 gets released), requiring it is acceptable.
This will also simplify testing and maintenance of Automake, because we'll
need to test with fewer Autoconf version, and possibly rely on new Autoconf
features.
* NEWS (Version requirements): Automake 1.13 will require Autoconf
2.65 or later.
* configure.ac ($required_autoconf_version): Bump to 2.65.
* m4/init.m4 (AM_INIT_AUTOMAKE): Require Autoconf >= 2.65.
Assume AC_PROG_OBJCXX is unconditionally defined.
* m4/depout.m4: Adjust a comment about a nugget of defensive programming.
* t/ext.sh: Assume that AC_PROG_OBJCXX is unconditionally defined,
and that we are using Autoconf >= 2.65. Related simplifications.
* t/objc-megademo.sh: Likewise.
* t/objcxx-basic.sh: Likewise.
* t/objcxx-deps.sh: Likewise.
* t/objcxx-flags.sh: Likewise.
* t/objcxx-minidemo.sh: Likewise.
* t/nodep2.sh: Likewise.
* t/backcompat3.sh: Assume AC_INIT accepts an URL argument.
* t/depend5.sh: Adjust a comment.
* syntax-checks.mk (sc_test_names): Delete this check as now useless:
autoconf >= 2.65 (>= 2.63, actually) can handle arguments to AC_INIT
that contain or are m4 builtins or predefined macros.
(m4_builtin): Delete this now-useless variable as well, was used only
by the check above.
(syntax_check_rules): Update.
2012-05-05 Nick Alcock <nick.alcock@oracle.com> (tiny change)
docs: fix clumsy grammar in the scripts-based testsuite chapter
* doc/automake.texi (Scripts-based Testsuites): "We'll have later" is
a rare example of English in the Automake manual clearly not written
by a native English-speaker: while comprehensible, it can be better
formulated.
2012-05-05 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
tests: use append mode to capture parallel make output
parallel-tests: separate different logs with an empty line
2012-05-05 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: use append mode to capture parallel make output
This should fix the spurious failure reported in automake bug#11413.
This is due to the fact that the redirected output of parallel make
can racily loose lines. For example, if GNU make (3.82) is run on
a Makefile like this:
all = 0 1 2 3 4 5 6 7 8 9
default: $(all)
$(all):
@sleep 0.$$(($RANDOM % 10)); echo $@
and has its standard output redirected in overwrite-mode to a regular
file, it looses a line of that output every 15 runs or so on a Fedora
17 system with 64 ppc64 cores and Linux 3.3.1. Redirection in append
mode does not suffer of this problem.
See also similar commit 'Release-1-10-280-g6426999' of 2009-03-10,
"Use append mode to capture parallel test output", which tackled a
similar problem for 't/parallel-tests3.sh' and 't/lisp8.sh'.
* t/tap-more.sh: Use append mode for output from "make -j", to avoid
dropped lines.
* t/parallel-tests3.sh, t/lisp8.sh: Enhance comments.
2012-05-05 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'parallel-tests-performance' into maint
* parallel-tests-performance:
parallel-tests: separate different logs with an empty line
2012-05-05 Stefano Lattarini <stefano.lattarini@gmail.com>
parallel-tests: separate different logs with an empty line
After commit v1.12-21-g5eeb366 "parallel-tests: optimize global log
creation", the log files copied in the global log are not anymore
separated by a blank line, causing unclear output like this:
FAIL: test1
===========
output from test 1
FAIL: test2
===========
output from test 2
where we would want something like this:
FAIL: test1
===========
output from test 1
FAIL: test2
===========
output from test 2
Fix this regression.
* lib/am/check.am (am__create_global_log): Print an extra empty line
after having displayed the content of a '.log' file.
2012-05-05 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
maintcheck: avoid a couple of spurious failures
maintcheck: reduce code duplication, increase coverage
2012-05-05 Stefano Lattarini <stefano.lattarini@gmail.com>
maintcheck: avoid a couple of spurious failures
* t/objcxx-deps.sh, t/objcxx-minidemo.sh: In C++ files, use
"std::cout <<", not "cout <<", to avoid triggering a spurious
failure by the syntax check 'sc_tests_here_document_format'.
Cherry-picked from yesterday's commit v1.12-81-g7f3f467, that
had erroneously been applied to 'master' only rather than to
'maint'.
2012-05-05 Stefano Lattarini <stefano.lattarini@gmail.com>
maintcheck: reduce code duplication, increase coverage
* syntax-checks.mk: Move ...
(sc_tests_plain_aclocal,
sc_tests_plain_autoconf,
sc_tests_plain_perl,
sc_tests_plain_autoupdate,
sc_tests_plain_automake,
sc_tests_plain_make,
sc_tests_plain_autoheader,
sc_tests_plain_autoreconf,
sc_tests_plain_autom4te): ... all these targets ...
(sc_tests_plain_egrep_fgrep): ... and part of this target ...
(sc_tests_plain_check_rules): ... into this variable, and
reimplement their recipes ...
($(sc_tests_plain_check_rules)): ... with this static pattern
rule. Enhance the coverage they offer a little since we are
at it.
(sc_m4_am_plain_egrep_fgrep): New rule, the part of the old
'sc_tests_plain_egrep_fgrep' rule that checked for use of
'fgrep' and 'egrep' in *.am and *.m4 fragments (rather than
in test scripts).
(syntax_check_rules): Update.
* t/dist-formats.tap: Fix bad use of "make" instead of "$MAKE"
revealed by the extra coverage.
* t/cond5.sh, t/auxdir-autodetect.sh: Cosmetic changes to avoid
spuriously triggering the maintainer checks due to the
enhanced coverage.
2012-05-04 Stefano Lattarini <stefano.lattarini@gmail.com>
maintcheck: avoid a couple of spurious failures
* t/objcxx-deps.sh, t/objcxx-minidemo.sh: In C++ files, use
"std::cout <<", not "cout <<", to avoid triggering a spurious
failure by the syntax check 'sc_tests_here_document_format'.
2012-05-04 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
tests: avoid spurious failure on missing Obj C/C++ compiler
objc, objc++: test support for compilation flags
objc, objc++: add stress test
objc, objc++: test automatic dependency tracking
objc: reorganize basic tests
objc++, objc: add first semantic tests
objc++: add first basic test
news: announce initial support for Objective C++
objc++: test support for '.mm' suffix in _SOURCES entries
objc++: add documentation
objc++: initial support for Objective C++
2012-05-04 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'objc++' into maint
* objc++:
tests: avoid spurious failure on missing Obj C/C++ compiler
2012-05-04 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid spurious failure on missing Obj C/C++ compiler
* t/objc-megademo.sh: Arrange the test to SKIP, not FAIL, if there is
no Objective C or no Objective C++ compiler. Since we are at it, remove
some checks that were actually testing Autoconf (not Automake) behaviour.
2012-05-04 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'objc++' into maint
* objc++:
objc, objc++: test support for compilation flags
objc, objc++: add stress test
objc, objc++: test automatic dependency tracking
objc: reorganize basic tests
objc++, objc: add first semantic tests
objc++: add first basic test
news: announce initial support for Objective C++
objc++: test support for '.mm' suffix in _SOURCES entries
objc++: add documentation
objc++: initial support for Objective C++
2012-05-03 Stefano Lattarini <stefano.lattarini@gmail.com>
dist: don't bother putting README first in $(DIST_COMMON)
Comments on some of our automake-time pre-processing of $(DIST_COMMON)
said that it was done in order to "put README first because it then
becomes easier to make a Usenet-compliant shar file". But such a
format is hardly relevant anymore, and not worth the (albeit small)
added complexity.
* automake.in (handle_dist): Don't sort @dist_common.
(for_dist_common): Delete this function, is not used anymore.
* lib/am/distdir.am (DISTFILES): Remove obsolete comment.
* t/distcom4.sh: Adjust.
2012-05-02 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'always-support-silent-rules'
* always-support-silent-rules:
silent rules: support for them is always active now
2012-05-02 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
news: document improvement in parallel-tests performance
tests: fix spurious failure due to autom4te caching
news: fix typos
aclocal: error out again on unrecognized arguments
parallel-tests: save few forks when possible
parallel-tests: optimize global log creation
parallel-tests: optimize 'recheck' target for speed
coverage: add performance tests on some parallel-tests aspects
2012-05-02 Stefano Lattarini <stefano.lattarini@gmail.com>
news: document improvement in parallel-tests performance
* NEWS: Document the improved performances of the parallel-tests targets
'check' and 'recheck'. See recent commits:
- v1.12-20-gf5733aa of 2012-04-26,
"parallel-tests: optimize 'recheck' target for speed"
- v1.12-21-g5eeb366 of 2012-02-26,
"parallel-tests: optimize global log creation"
- v1.12-22-g4c2dd6e of 2012-04-30,
"parallel-tests: save few forks when possible"
2012-05-02 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix spurious failure due to autom4te caching
Reported by Peter Breitenlohner :
<http://lists.gnu.org/archive/html/automake-patches/2012-05/msg00045.html>
* t/suffix.sh: 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).
2012-05-02 Stefano Lattarini <stefano.lattarini@gmail.com>
Peter Breitenlohner <peb@mppmu.mpg.de>
objc, objc++: test support for compilation flags
* t/objc-flags.sh, t/objcxx-flags.sh: New tests.
* t/list-of-tests.mk: Add them.
2012-05-02 Peter Breitenlohner <peb@mppmu.mpg.de>
objc, objc++: add stress test
* t/objc-megademo.sh: New test, trying out a package using all
of C, C++, Objective C and Objective C++ at the same time.
* t/list-of-tests.mk: Add it.
2012-05-02 Stefano Lattarini <stefano.lattarini@gmail.com>
objc, objc++: test automatic dependency tracking
* t/objc-deps.sh, t/objcxx-deps.sh: New tests.
* t/list-of-tests.mk: Add them.
2012-05-02 Stefano Lattarini <stefano.lattarini@gmail.com>
objc: reorganize basic tests
* t/objc.sh, t/objc2.sh: Removed, merged into ...
* t/objc-basic.sh: ... this new test.
* t/objcxx-basic.sh: Add reference to new sister test.
* t/list-of-tests.mk: Update.
2012-05-02 Stefano Lattarini <stefano.lattarini@gmail.com>
Peter Breitenlohner <peb@mppmu.mpg.de>
objc++, objc: add first semantic tests
* t/objcxx-minidemo.sh: New test.
* t/objc-minidemo.sh: Likewise.
* t/list-of-tests.mk: Add them.
2012-05-02 Peter Breitenlohner <peb@mppmu.mpg.de>
objc++: add first basic test
* t/objcxx-basic.sh: New test.
* t/list-of-tests.mk: Add it.
2012-05-02 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'parallel-tests-performance' into maint
* parallel-tests-performance:
parallel-tests: save few forks when possible
parallel-tests: optimize global log creation
parallel-tests: optimize 'recheck' target for speed
coverage: add performance tests on some parallel-tests aspects
2012-05-02 Stefano Lattarini <stefano.lattarini@gmail.com>
news: fix typos
* NEWS (Bugs fixed in 1.12.1): Fix botched indentation of an entry,
add a forgotten "and", remove a redundant "the".
2012-05-02 Stefano Lattarini <stefano.lattarini@gmail.com>
aclocal: error out again on unrecognized arguments
Starting from commit v1.11-662-g52246cc of 2102-02-18, "cmdline parsing:
move into a dedicated perl module", aclocal has been silently ignoring
non-option arguments instead of correctly reporting them.
Fix this regression.
* t/aclocal.sh: Update to catch the regression.
* aclocal.in (parse_arguments): Explicitly reject non-option arguments.
* NEWS: Update.
2012-05-02 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'cygnus-remove'
* cygnus-remove:
cygnus: remove support for Cygnus-style trees
2012-05-02 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
cosmetics: fix typo in aclocal m4 directory README
cygnus: warn when it's used (flagged as 'obsolete' now)
2012-05-02 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'cygnus-deprecate' into maint
* cygnus-deprecate:
cygnus: warn when it's used (flagged as 'obsolete' now)
2012-05-01 Andrew Eikum <aeikum@codeweavers.com> (tiny change)
cosmetics: fix typo in aclocal m4 directory README
* m4/acdir/README: Add forgotten "if".
* THANKS: Update.
2012-05-01 Stefano Lattarini <stefano.lattarini@gmail.com>
silent rules: support for them is always active now
Before this change, support for silent rules was optional and activated
only if the 'silent-rules' option was specified.
The rationale behind that behaviour was that the silent-rules machinery
originally only worked with make implementations supporting nested
variables expansions, which isn't (or wasn't) a POSIX-specified features;
so that packages wanting to be "extra-portable" couldn't use the
silent-rules machinery at all.
But after Paul Eggert's commit 'v1.11-598-g8493499' of 25-12-2011,
"silent-rules: fallback for makes without nested vars" (motivated
by automake bugs #9928 and #10237), Makefiles generated when the
'silent-rules' option is enabled can work also with those make
implementations that don't support nested variables expansion (albeit
the configure-time selected verbosity cannot be overridden at make
runtime in such case).
In light of that, and since silent rules are disabled by default even
when the 'silent-rules' option is given (unless the developer explicitly
makes them enabled by default be calling "AM_SILENT_RULES([yes])" in
configure.ac), we can now have the support for silent rules always
enabled.
The 'silent-rules' option will thus become a no-op, but will reaming a
valid option for the time being, for better backward-compatibility.
A collateral effect of this change is that the use of the 'silent-rules'
option will not anymore automatically disable the warnings in the
'portability-recursive' category.
The present change is basically a backport of the Automake-NG commit
'v1.11d-75-g61ca923' of 19-04-2012, "[ng] silent rules: support for
them is always active now". Stemmed by this thread on the Automake-NG
list:
<http://lists.gnu.org/archive/html/automake-ng/2012-04/msg00027.html>
* automake.in: Enable silent-rules machinery unconditionally. Reword
some comments. Do not switch off warnings in the category
'portability-recursive' anymore if the 'silent-rules' option is
given.
* m4/init.m4: Call 'AC_REQUIRE' on 'AM_SILENT_RULES' unconditionally.
* lib/Automake/Options.pm: Recognize 'silent-rules' as a dummy option.
Do not bother anymore checking that it is set in 'configure.ac'.
* t/silent.sh: Remove now-redundant calls to AM_SILENT_RULES.
* t/silent2.sh: Likewise.
* t/silent3.sh: Likewise.
* t/silent4.sh: Likewise.
* t/silent8.sh: Likewise.
* t/silent9.sh: Likewise.
* t/silent-lex.sh: Likewise.
* t/silent-many-gcc.sh: Likewise.
* t/silent-many-generic.sh: Likewise.
* t/silent-yacc-headers.sh: Likewise.
* t/silent-yacc.sh: Likewise.
* t/silentcxx-gcc.sh: Likewise.
* t/silentcxx.sh: Likewise.
* t/silentf77.sh: Likewise.
* t/silentf90.sh: Likewise.
* t/help-silent.sh: Likewise.
* t/silent-configsite.sh: Likewise, and other minor adjustments.
* t/silent7.sh: Likewise. Also, extend to check that silent rules
are disabled by default, and remove obsoleted checks about the
'silent-rules' option being rejected in 'AUTOMAKE_OPTIONS'.
* t/silent6.sh: Remove now-redundant calls to 'AM_SILENT_RULES'.
Call automake with '-Wno-portability-recursive'. Remove other
obsoleted checks.
* t/dollarvar.sh: Don't expect the use of 'AM_SILENT_RULES' in
'configure.ac' to disable warning in the 'portability-recursive'
category anymore.
* t/compile_f_c_cxx.sh: Adjust to avoid a spurious failure.
* t/silent-amopts.sh: Remove as obsolete.
* t/silent-nowarn.sh: Likewise.
* t/list-of-tests.mk: Adjust.
* NEWS: Update.
* doc/automake.texi: Update and simplify accordingly.
* configure.ac (AM_INIT_AUTOMAKE): Remove 'silent-rules' option.
2012-05-01 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
fixup: botched edit in bootstrap.sh
2012-05-01 Stefano Lattarini <stefano.lattarini@gmail.com>
fixup: botched edit in bootstrap.sh
* bootstrap.sh (dosubst): Fix botched option ("G" instead of "g")
in a sed "s///" expression. Issue introduced in today's commit
'v1.12-17-g5f810d0'.
2012-05-01 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
news: fix confusing wording
news: fixed weaknesses in build system and testsuite
bootstrap: consistently use correct copyright year
fixup: remove leftover "TERM=ansi" definition in 't/color.sh'
2012-05-01 Stefano Lattarini <stefano.lattarini@gmail.com>
news: fix confusing wording
Reported by Dave Hart.
* NEWS (Future backward-incompatibilities): Fix possibly confusing
wording about the upcoming requirement of Autoconf >= 2.65.
2012-05-01 Stefano Lattarini <stefano.lattarini@gmail.com>
news: fixed weaknesses in build system and testsuite
* NEWS (Bugs fixed in 1.12.1): Report that several weaknesses in the
Automake's own build system and test suite have been fixed. See for
example recent commits:
- commit v1.12-5-geb7e8f3, for bug#11345
- commit v1.12-5-g63e07a9, for bug#11346
- commit v1.12-5-gf31fe4f
- commit v1.12-10-gab14841
- commit v1.12-19-g807f3cf, for bug#11369
- commit v1.12-20-gd330368, for bug#11369
- bug#11387, pre-emptively solved by commit v1.12-4-g444618b
2012-05-01 Stefano Lattarini <stefano.lattarini@gmail.com>
bootstrap: consistently use correct copyright year
Suggested by Peter Johansson in the discussion about automake bug#11356:
<http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11356#41>
* boostrap.sh (dosubst): Don't initialize the substituted value for the
release year from the current year (using `date +%Y`); instead, do it
through ...
($RELEASE_YEAR): ... this new statically-defined variable. To ensure it
won't get out-of-sync, it will be automatically updated ...
* Makefile.am (update-copyright): ... by this target's recipe.
Since are at it, fix a botched output redirection for an error message,
i.e., use ">&2" instead of ">&1".
2012-04-30 Stefano Lattarini <stefano.lattarini@gmail.com>
fixup: remove leftover "TERM=ansi" definition in 't/color.sh'
It should have actually be removed in commit 'v1.12-23-gb105d40'.
2012-04-30 Stefano Lattarini <stefano.lattarini@gmail.com>
parallel-tests: save few forks when possible
* lib/am/check.am (am__check_pre): Save some forks, by analyzing more
carefully the value of '$@' to decide how to extract its dirname part,
and whether that should be created as a directory.
2012-04-30 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
news: Automake 1.13 will require Autoconf >= 2.65
news: put planned future backward-incompatibilities on top
readme: update INSTALL to latest version from Autoconf
sync: some auxiliary files synced from upstream
hacking: copyright notices must be updated before releasing
color-tests: coloring can be forced on non-ANSI terminals as well
2012-04-30 Stefano Lattarini <stefano.lattarini@gmail.com>
news: Automake 1.13 will require Autoconf >= 2.65
Autoconf 2.65 is almost three years old now, so requiring it is
acceptable. Also, the soon-to-appear support for Objective C++
in Automake will be simplified if we can assume that Autoconf
version (which is the one that introduced support for Objective
C++).
* NEWS (Planned future backward-incompatibilities): Automake 1.13
will require Autoconf 2.65 or later.
2012-04-30 Stefano Lattarini <stefano.lattarini@gmail.com>
news: put planned future backward-incompatibilities on top
* NEWS (New in 1.12): List of planned future backward-incompatibilities
moved from here ...
(New in 1.12.1): ... to here.
2012-04-30 Stefano Lattarini <stefano.lattarini@gmail.com>
readme: update INSTALL to latest version from Autoconf
* INSTALL: Updated to the version coming with Autoconf 2.69. This
is warranted now that we use and require that same Autoconf version
in our build system.
2012-04-30 Stefano Lattarini <stefano.lattarini@gmail.com>
sync: some auxiliary files synced from upstream
* lib/config.sub: Synced from upstream, by "make fetch".
2012-04-30 Stefano Lattarini <stefano.lattarini@gmail.com>
hacking: copyright notices must be updated before releasing
* HACKING (Release procedure): Suggest to use "make update-copyright".
2012-04-30 Stefano Lattarini <stefano.lattarini@gmail.com>
color-tests: coloring can be forced on non-ANSI terminals as well
Before this change, colorization of testsuite output was suppressed
whenever the terminal was recognized to be a "dumb" one, incapable
of handling ANSI coloring (i.e., when the environment variable TERM
had a value of "dumb"). This happened even when the AM_COLOR_TESTS
variable was set to a value of "always".
Such a behaviour was suboptimal and slightly confusing; in fact, if
a user wants to force coloring of testsuite output that is being
redirected to a regular file, he should be able to do so even if his
terminal is not capable of handling ANSI colors -- in fact, such
terminal wouldn't be involved with the testsuite output in any way,
so why should it be allowed to influence it?
Thus, we now enable coloring of test output whenever AM_COLOR_TESTS
is set to "always", irrespective of the value of the TERM environment
variable.
* NEWS: Update.
* lib/am/check.am [%?COLOR%] (am__tty_colors): Activate colorization
of testsuite output whenever AM_COLOR_TESTS has the value of "always".
* t/ax/tap-summary-aux.sh: Export the TERM environment variable to
"dumb" when forcing colorization of the testsuite output; this should
*not* prevent such colorization from taking place, and we want to
check that this expectation really holds.
* t/ax/testsuite-summary-checks.sh: Likewise.
* t/color.sh: Likewise, and adjust some grepping checks.
* t/tap-color.sh: Likewise. Also, remove redundant "make check"
invocation since we are at it.
* t/color2.sh: Likewise, and check that exporting TERM=dumb actually
prevents testsuite output colorization when AM_COLOR_TESTS is unset.
* t/parallel-tests-reset-term.sh: Relax, to prevent it from failing
spuriously due to the new semantic.
2012-04-30 Stefano Lattarini <stefano.lattarini@gmail.com>
cygnus: remove support for Cygnus-style trees
Support for "Cygnus-style" tree as enabled by the 'cygnus' option
has been deprecated in the documentation and with runtime warning
since Automake 1.12.1. It's now time to remove it.
Closes automake bug#11034.
* lib/Automake/Options.pm (_process_option_list): Issue a proper
error when the 'cygnus' option is seen.
* automake.in: Don't handle the 'cygnus' option anymore.
* docs/automake.texi: Remove references to cygnus option and
Cygnus-style trees.
* lib/am/dejagnu.am, lib/am/texinfos.am: Drop special setups for
cygnus mode.
* NEWS: Update.
* t/cygnus-no-more.sh: New test.
* t/flavor.sh: Adjust.
* t/cygnus-deprecation.sh: Remove.
* t/cygnus-check-without-all.sh: Likewise.
* t/cygnus-requires-maintainer-mode.sh: Likewise.
* t/cygnus-dependency-tracking.sh: Likewise.
* t/cygnus-imply-foreign.sh: Likewise.
* t/cygnus-no-installinfo.sh: Likewise.
* t/cygnus-no-dist.sh: Likewise.
* t/clean2.sh: Likewise.
* t/txinfo5.sh: Likewise.
* t/txinfo5b.sh: Likewise.
* t/list-of-tests.mk: Update.
2012-04-30 Stefano Lattarini <stefano.lattarini@gmail.com>
cygnus: warn when it's used (flagged as 'obsolete' now)
Support for "Cygnus-style" tree as enabled by the 'cygnus'
option is now reported as obsolete when the warnings in the
'obsolete' category are enabled.
See automake bug#11034.
* automake.in (check_cygnus): Report the use of 'cygnus' mode as
obsolete.
* NEWS: Update.
* docs/automake.texi: Minor adjustments.
* t/cygnus-deprecation.sh: New test.
* t/list-of-tests.mk: Add it.
* tests/cygnus-check-without-all.sh: Adjust by calling automake
with the warnings in the 'obsolete' category disabled.
* t/cygnus-requires-maintainer-mode.sh: Likewise.
* t/cygnus-dependency-tracking.sh: Likewise.
* t/cygnus-imply-foreign.sh: Likewise.
* t/cygnus-no-installinfo.sh: Likewise.
* t/cygnus-no-dist.sh: Likewise.
* t/clean2.sh: Likewise.
* t/flavor.sh: Likewise.
* t/txinfo5.sh: Likewise.
* t/txinfo5b.sh: Likewise.
* t/library.sh: Remove use of 'cygnus' and 'dejagnu' options,
and of AM_MAINTAINER_MODE macro.
2012-04-30 Stefano Lattarini <stefano.lattarini@gmail.com>
parallel-tests: optimize global log creation
With this change, the time required to execute the test case
'testsuite-summary-speed.sh' has dropped as follows:
+ Slow Debian i686 system, 1 core x 1.5 GHz, 768 MB of RAM,
GNU make 3.81:
- 1 run: 4 minutes => 30/40 seconds
+ Fast Solaris 10 i686 system, 4 cores x 3 GHz, 20 GB of RAM,
Solaris CCS make:
- 2 runs: 6 minutes => 30 seconds
+ Very fast Fedora ppc64 system, 64 cores x 3.5 GHz, 64 GB of RAM,
GNU make 3.82:
- 5 runs: 7 minutes => 1 minute and 10 seconds
* lib/am/check.am ($(TEST_SUITE_LOG)): Optimize for speed, by avoiding
lots of forks with the help of ...
(am__create_global_log): ... this new internal variable, basically
defining a smart awk program, and ...
(am__global_test_result_rx, am__copy_in_global_log_rx): ... these new
internal variables, used by the one above.
(am__rst_section): Remove as obsolete
* t/rst-formatting.trs: Remove.
* t/list-of-tests.mk: Update.
* t/testsuite-summary-count-many.sh: Improve its stress testing by
using 1 million tests rather than just 5 thousands: we can afford
this with our new optimization, and still have the test completed
in a reasonable time.
2012-04-30 Stefano Lattarini <stefano.lattarini@gmail.com>
parallel-tests: optimize 'recheck' target for speed
With this change, the time required to execute the test case
'testsuite-recheck-speed.sh' has dropped as follows:
+ Slow Debian i686 system, 1 core x 1.5 GHz, 768 MB of RAM,
GNU make 3.81:
- 1 run: 6 minutes => 40 seconds
+ Fast Solaris 10 i686 system, 4 cores x 3 GHz, 20 GB of RAM,
Solaris CCS make:
- 4 runs: 3 minutes => 1 minute
+ Very fast Fedora ppc64 system, 64 cores x 3.5 GHz, 64 GB of RAM,
GNU make 3.82:
- 5 runs: 4 minutes => 1 minute 30 seconds
* lib/am/check.am (recheck): Optimize for speed, by avoiding lots of
forks with the help of ...
(am__list_recheck_tests): ... this new internal variable, basically
defining a proper awk program, and ...
(am__recheck_rx): ... this other new internal variable, used by the
one above.
* t/test-trs-recover2.sh: Relax by not checking for a very corner
case ('.log' and '.trs' files both unreadable) that we don't handle
anymore.
2012-04-30 Stefano Lattarini <stefano.lattarini@gmail.com>
news: announce initial support for Objective C++
2012-04-30 Peter Breitenlohner <peb@mppmu.mpg.de>
Stefano Lattarini <stefano.lattarini@gmail.com>
objc++: test support for '.mm' suffix in _SOURCES entries
* t/ext.sh: Enhance by adding a file with the '.mm' suffix in
the 'foo_SOURCES' definition.
* t/nodep2.sh: Likewise.
2012-04-30 Stefano Lattarini <stefano.lattarini@gmail.com>
coverage: add performance tests on some parallel-tests aspects
* t/testsuite-recheck-speed.sh: New test.
* t/testsuite-summary-speed.sh: Likewise.
* t/list-of-tests.mk: Update.
The new tests are not meant to PASS/FAIL, but rather to help us to
obtain quantitative measurements of the performance improvements
offered by soon-to-appear optimization patches.
Timing before the optimizations implemented by following patches:
+ Slow Debian i686 system, 1 core x 1.5 GHz, 768 MB of RAM,
GNU make 3.81:
- testsuite-recheck-speed.sh: 1 run, ~ 6 minutes
- testsuite-summary-speed.sh: 1 run, ~ 4 minutes
+ Fast Solaris 10 i686 system, 4 cores x 3 GHz, 20 GB of RAM,
Solaris CCS make:
- testsuite-recheck-speed.sh: 4 runs, ~ 3 minutes
- testsuite-summary-speed.sh: 2 runs, ~ 6 minutes
+ Very fast Fedora ppc64 system, 64 cores x 3.5 GHz, 64 GB of RAM,
GNU make 3.82:
- testsuite-recheck-speed.sh: 5 runs, ~ 4 minutes
- testsuite-summary-speed.sh: 5 runs, ~ 7 minutes
2012-04-30 Peter Breitenlohner <peb@mppmu.mpg.de>
objc++: add documentation
* doc/automake.texi (Objective C++ Support): New node.
(How the Linker is Chosen, Support for Other Languages): Adjust.
2012-04-30 Peter Breitenlohner <peb@mppmu.mpg.de>
objc++: initial support for Objective C++
Original thread (dating back to almost three years ago):
<http://lists.gnu.org/archive/html/automake-patches/2009-07/msg00016.html>
* automake.in: Register new language 'objcxx'.
(lang_objcxx_rewrite): New subroutine.
(resolve_linker): Add OBJCXXLINK.
(%_am_macro_for_cond): Add am__fastdepOBJCXX and AC_PROG_OBJCXX.
(%_ac_macro_for_var): Add OBJCXX and OBJCXXFLAGS.
* m4/depend.m4 (_AM_DEPENDENCIES): Add OBJCXX.
* m4/init.m4 (AM_INIT_AUTOMAKE): Add AC_PROG_OBJCXX hook.
2012-04-29 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'mkdirp-remove' into master
* mkdirp-remove:
AM_PROG_MKDIR_P: remove as obsolete
2012-04-29 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
AM_PROG_MKDIR_P: deprecate, to be removed in Automake 1.13
2012-04-29 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'mkdirp-deprecate' into maint
* mkdirp-deprecate:
AM_PROG_MKDIR_P: deprecate, to be removed in Automake 1.13
2012-04-29 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
tests: root can write on files without write perms; cater for this
tests: require lex, not yacc, in a lex test case
maint: fix a comment typo
2012-04-28 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: root can write on files without write perms; cater for this
Fixes last part of automake bug#11369.
* t/dist-readonly.sh ($required): Add 'non-root'.
2012-04-28 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: require lex, not yacc, in a lex test case
See automake bug#11369.
* t/lex-clean.sh ($required): Require 'lex', not 'yacc'.
2012-04-28 Stefano Lattarini <stefano.lattarini@gmail.com>
AM_PROG_MKDIR_P: remove as obsolete
Support for the obsolescent 'AM_PROG_MKDIR_P' m4 macro (and its
output variable '$(mkdir_p)') has in the documentation and with
runtime warning since Automake 1.12.1. It's now time to remove it.
* automake.in (scan_autoconf_traces): Remove special handling of
'AM_PROG_MKDIR_P'.
* m4/mkdirp.m4: Delete.
* Makefile.am (dist_automake_ac_DATA): Remove it.
* t/mkdirp-deprecation.sh: Delete.
* t/list-of-tests.mk: Remove it.
* doc/automake.texi: Remove references to the 'AM_MKDIR_P' m4 macro
and the '$(mkdir_p)' output variable.
* t/gettext-macros.sh: Ensure the gettext-requiring tests will
still see the now-removed 'AM_PROG_MKDIR_P' macro as an alias for
the 'AC_PROG_MKDIR_P' macro, since even recent versions of gettext
uses 'AM_PROG_MKDIR_P' in their '.m4' files.
* NEWS: Update.
2012-04-28 Stefano Lattarini <stefano.lattarini@gmail.com>
AM_PROG_MKDIR_P: deprecate, to be removed in Automake 1.13
Support for the obsolescent 'AM_PROG_MKDIR_P' macro (and its
output variable '$(mkdir_p)') has already been deprecated in
the documentation. It's now time to make its use actively
emit warnings in the 'obsolete' category as well.
* automake.in (scan_autoconf_traces): Warn about 'AM_PROG_MKDIR_P'
obsolescent if that macro is seen.
* m4/mkdirp.m4 (AM_PROG_MKDIR_P): Warn about its own obsolescence.
* m4/init.m4: Require 'AC_PROG_MKDIR_P', not 'AM_PROG_MKDIR_P'.
* t/mkdirp-deprecation.sh: New test.
* t/list-of-tests.mk: Add it.
* syntax-check.mk (sc_mkdir_p): Delete this check as obsolete.
(syntax_check_rules): Remove it.
* t/gettext-macros.sh: Ensure the gettext-requiring tests will
call aclocal and automake with the 'obsolete' warnings disabled,
since even recent versions of gettext used the now-deprecated
'AM_PROG_MKDIR_P' m4 macro.
* NEWS: Update.
2012-04-28 Jim Meyering <meyering@redhat.com>
maint: fix a comment typo
* configure.ac: Fix typo in comment: s/out/our/
2012-04-28 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branches 'remove-acdir-option' and 'remove-obsolete-m4'
* remove-acdir-option:
aclocal: remove the --acdir option
* remove-obsolete-m4:
m4: delete several obsolete macros
2012-04-28 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
fixup: avoid unconditional re-bootstrapping on "make dist"
build: ensure release year in copyright notice is up-to-date
cosmetics: fix spacing in THANKS
readme: explicitly state we use ranges in copyright years
bootstrap: add convenience make target
automake, aclocal: update copyright year in output
2012-04-28 Stefano Lattarini <stefano.lattarini@gmail.com>
fixup: avoid unconditional re-bootstrapping on "make dist"
Since our 'bootstrap' script is distributed, the 'distdir' target depends
on it. But in our GNUmakefile, we also have a 'bootstrap' target declared
.PHONY, which when called re-bootstrap the Automake distribution. Thus,
whenever we run "make dist", GNU make sees it must remake the 'bootstrap'
target (as it is a dependency of the 'distdir' target), and thus ends up
re-bootstrapping all the package (because of the .PHONY 'bootstrap' target
in GNUmakefile).
We fix this issue by renaming our bootstrap script to 'bootstrap.sh'.
* bootstrap: Renamed ...
* bootstrap.sh: ... to this.
* GNUmakefile (bootstrap): Adjust.
* Makefile.am (EXTRA_DIST): Likewise.
(autodiffs): Likewise.
* HACKING: Likewise.
2012-04-28 Stefano Lattarini <stefano.lattarini@gmail.com>
build: ensure release year in copyright notice is up-to-date
From a suggestion by Eric Blake. See automake bug#11356.
This is a follow-up to previous patch 'v1.12-12-gb99b5be'.
* configure.ac (RELEASE_YEAR): New AC_SUBST'd variable, should hold
the value of the current year.
* Makefile.am (update-copyright): Be sure to also update the
definition of 'RELEASE_YEAR' in configure.ac.
* lib/Automake/Config.in ($RELEASE_YEAR): New exported variable,
initialized from the value substituted for '@RELEASE_YEAR@'.
(@EXPORT): Add it.
* automake.in, aclocal.in: Use '$RELEASE_YEAR' (which will be
substituted at make time) instead of hard-coding the release
year. This should ensure the copyright range in the version
message and in the generated files (Makefile.in and aclocal.m4)
are automatically kept up-to-date.
* bootstrap (dosubst): Update, also substitute '@RELEASE_YEAR@'.
2012-04-28 Stefano Lattarini <stefano.lattarini@gmail.com>
cosmetics: fix spacing in THANKS
* THANKS: Use spaces, not tabs, to separate a reporter's name from
his e-mail address. Also, increase such spacing, to allow a more
consistent formatting with longer names.
2012-04-28 Stefano Lattarini <stefano.lattarini@gmail.com>
readme: explicitly state we use ranges in copyright years
Reported by Jack Kelly in automake bug#11356.
* README: Explicitly state we use ranges in copyright years; this is
mandated by the GNU Coding Standards for each package that wants to
actually use ranges in copyright years.
2012-04-27 Stefano Lattarini <stefano.lattarini@gmail.com>
aclocal: remove the --acdir option
It not documented in the manual anymore, its use has already been
causing a deprecation warning, and its oncoming removal has already
been announced in the NEWS file. So let's finally remove it.
* aclocal.in (parse_arguments): Don't recognize the '--acdir' option
anymore.
(handle_acdir_option): Remove subroutine.
* configure.ac ($ACLOCAL): Adjust.
($AUTOMAKE): Cosmetic changes, for consistency.
* tests/aclocal-acdir.test: Remove usages of the '--acdir' option.
* tests/aclocal-print-acdir.test: Likewise.
* NEWS: Update.
2012-04-27 Stefano Lattarini <stefano.lattarini@gmail.com>
bootstrap: add convenience make target
Dependencies in the Automake build system are not completely specified
(see for example the commit log of recent commit 'v1.12-10-gab14841',
"build: avoid too greedy rebuilds in the testsuite"). In fact, some of
them cannot even be; for example, Makefile is generated at configure
time from Makefile.in, which should be regenerated by our bleeding-edge
automake script, which is generated by out Makefile -- specifying the
complete chain of dependencies here would bring to a circular dependency
issue.
For this reason, before testing or deploying a change, we are often
forced to perform a full re-bootstrap of the Automake package, to ensure
all our files are actually up-to-date. Until now, this has to be done
manually, thus causing wasted keystrokes and more possibilities of error.
With this change, we introduce a new 'bootstrap' make target to
automatize all the (easy) steps of this re-bootstrapping (plus some
minor bells & whistles since we are at it).
* GNUmakefile: Rewrite to allow an easy bootstrapping and clean rebuild
of the whole package, in particular with the help of ...
(bootstrap): ... this new target.
2012-04-27 Stefano Lattarini <stefano.lattarini@gmail.com>
m4: delete several obsolete macros
Support for several obsolescent macros has already been deprecated,
and their removal already announced in the documentation and in the
NEWS file. It's now time to finally remove them.
* m4/dmalloc.m4 (fp_WITH_DMALLOC): Don't define anymore.
* m4/maintainer.m4 (jm_MAINTAINER_MODE): Likewise.
* m4/lispdir.m4 (ud_PATH_LISPDIR): Likewise.
* m4/protos.m4 (fp_C_PROTOTYPES): Likewise.
* m4/ccstdc.m4: Delete file.
* m4/header.m4: Likewise.
* m4/obsol-gt.m4: Likewise.
* m4/obsol-lt.m4: Likewise.
* m4/obsolete.m4: Likewise.
* Makefile.am (dist_automake_ac_DATA): Don't list the deleted '.m4'
files anymore.
* t/confh.sh: Use 'AC_CONFIG_HEADERS' instead of the now-removed
AM_CONFIG_HEADER.
* t/confh.sh: Likewise.
* t/confh4.sh: Likewise.
* t/confh6.sh: Likewise.
* t/confh7.sh: Likewise.
* t/confh8.sh: Likewise.
* t/confsub.sh: Likewise.
* t/stamph2.sh: Likewise.
* t/subdir6.sh: Likewise.
* t/autohdr2.sh: Remove as obsolete.
* t/obsolete.sh: Likewise.
* t/list-of-tests.mk. Don't list the deleted test cases anymore.
* NEWS: Update.
* doc/automake.texi: Likewise. In particular ...
(Obsolete Macros): Remove this node altogether.
2012-04-27 Stefano Lattarini <stefano.lattarini@gmail.com>
automake, aclocal: update copyright year in output
Fixes automake bug#11356.
* aclocal.in, automake.in: Add copyright year '2012' in the version
message. Ditto for the copyright notice in the generated Makefile.in
or aclocal.m4 files; and for those, since we are at it, prefer using
a range for copyright years, rather than listing each copyright year
individually.
2012-04-26 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
maint: don't use "union" merge driver for NEWS anymore
build: avoid too greedy rebuilds in the testsuite
tests: avoid yet another spurious environment influence
tests: fix a failure in Lex/C++ tests on Mac OS X
tests: fix a spurious failure due to truncated timestamps
build: require autoconf 2.69
build: don't require minimal automake version in AM_INIT_AUTOMAKE
2012-04-26 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: don't use "union" merge driver for NEWS anymore
The use of the "union" merge driver to avoid conflicts in NEWS has
proven to be problematic, as it often silently produced mis-merges
(instead of spurious conflicts, but a spurious conflict is better
than a mis-merge). Also, our new branching policy (see automake
bug#11153 for a description) should greatly mitigate the problem of
merge conflicts in NEWS. For further discussion, see:
<http://lists.gnu.org/archive/html/automake-patches/2012-04/msg00148.html>
2012-04-26 Stefano Lattarini <stefano.lattarini@gmail.com>
build: avoid too greedy rebuilds in the testsuite
The autogenerated makefile fragment 't/testsuite-part.am' used to depend
on the list of *all* the hand-written files. This was technically correct,
since that makefile fragment was (and still is) generated by the script
'gen-testsuite-part', which scans all the hand-written files to detect
implicit dependencies and to decide for which tests a further wrapper test
should be generated.
However, the presence of such a dependency implied that, whenever *any*
test case was modified (no matter how slightly), the 't/testsuite-part.am'
file was rebuilt, and since that is included by our 'Makefile.am', the
'Makefile.in' file was rebuilt as well by automake. In order to do so,
automake scanned our 'configure.ac' file, which requires the latest
Autoconf version (2.69 at the time of writing), and the casual user can
easily lack that on his machine (and that should be allowed, as automake
currently supports any autoconf version >= 2.62).
The described situation could hinder in-field testing or debugging by
users (even experienced ones) that are not automake developers; see for
example automake bug#11347.
So we drop the explicit dependency of 't/testsuite-part.am' on the
hand-written test cases. (As an aside, note that this has already
been done in Automake-NG, albeit for other reasons; see the commit
'v1.11b-129-g1690aca' of 2012-04-23, "[ng] build: define $(TESTS)
through a wildcard").
This is not a serious regression in the faithfulness of the Automake
build systems, since it unfortunately already had several undeclared
dependencies; e.g., 'Makefile.in' should depend on the automake script,
and 'aclocal.m4' should depend on the aclocal script (but this isn't
possible, as it would mean that distributed files depend on ones generated
at make time). Similarly, 'Makefile.in' should depend on some of the
'lib/am/*.am' files, but does not.
Currently, the workaround to get a faithful and correct rebuild is to run
./bootstrap && ./config.status --recheck && make clean all
and the present commit does not change that.
* Makefile.am ($(srcdir)/t/testsuite-part.am): Don't depend on
't/list-of-tests.mk' nor on '$(handwritten_TESTS)' anymore.
($(generated_TESTS)): Likewise, and don't depend on 'Makefile.am'
either.
2012-04-26 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'fix-pr11345-lex' into maint
* fix-pr11345-lex:
tests: fix a failure in Lex/C++ tests on Mac OS X
2012-04-26 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'fix-pr11346-timestamp' into maint
* fix-pr11346-timestamp:
tests: fix a spurious failure due to truncated timestamps
2012-04-26 Thien-Thi Nguyen <ttn@gnuvola.org> (tiny change)
tests: avoid yet another spurious environment influence
* t/remake11.sh: Unset 'd' before first use.
2012-04-26 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix a failure in Lex/C++ tests on Mac OS X
The <cstdio> header from Xcode-4.3.2 on Mac OS X 10.7.3 declares a 'isatty'
function with C++ linkage, that conflicts with our dummy definition of the
same function, which in turn is required to work around the absence of the
unistd.h header on MinGW (see commit 'v1.11-2138-gfeea090' of 11-04-2012).
So we tweak the affected tests to work around this new problem as well.
This fixes automake bug#11345.
* t/lex-clean-cxx.sh ($required): Since we are at it, add an explicit
'c++' requirement.
* t/lex-depend-cxx.sh ($required): Likewise.
(my-hdr.hxx): Don't include <cstdio>. The "using namespace" directive
should still be enough to ensure the content of this header is not valid
C, albeit being of course valid C++.
Fix unrelated typos in comments.
(joe.ll): Adjust, by removing the call to 'printf'.
* THANKS: Add entry for reporter "Adam Mercer".
2012-04-26 Stefano Lattarini <stefano.lattarini@gmail.com>
Peter Breitenlohner <peb@mppmu.mpg.de>
tests: fix a spurious failure due to truncated timestamps
Fixes automake bug#11346.
* t/self-check-is_newest.tap: Apparently, on some systems (or file
systems), "touch -r" can truncate timestamps :-( Work around that.
2012-04-26 Stefano Lattarini <stefano.lattarini@gmail.com>
build: require autoconf 2.69
It is only from version 2.69 that the 'AC_PROG_FC' macro has started to
set the '$GFC' variable to "yes" if the selected Fortran compiler is a
GNU compiler. Since we use this variable in our configure.ac, we better
require autoconf 2.69 explicitly.
* configure.ac (AC_PRERQ): Require autoconf >= 2.69.
Remove a now-obsolete "FIXME" comment.
2012-04-25 Stefano Lattarini <stefano.lattarini@gmail.com>
build: don't require minimal automake version in AM_INIT_AUTOMAKE
* configure.ac (AM_INIT_AUTOMAKE): Don't explicitly require a minimal
automake version number. Since the Automake build system is only meant
to work with the bleeding-edge automake, that requirement was redundant
and misleading.
2012-04-25 Stefano Lattarini <stefano.lattarini@gmail.com>
post-release: major version bump
This is for the master branch.
* configure.ac, m4/amversion.m4: Bump version to 1.12a.
2012-04-25 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
post-release: minor version bump
2012-04-25 Stefano Lattarini <stefano.lattarini@gmail.com>
post-release: minor version bump
This is for the maint branch.
* configure.ac, m4/amversion.m4: Bump version to 1.12.0a.
2012-04-25 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch master into maint after 1.12 release
2012-04-25 Stefano Lattarini <stefano.lattarini@gmail.com>
release: stable major release 1.12
* configure.ac (AC_INIT): Bump version number to 1.12.
* NEWS: Likewise.
* m4/amversion.m4 (AM_AUTOMAKE_VERSION): Likewise (autoupdated
by ./bootstrap).
2012-04-25 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branches 'fix-pr11302-opensuse' and 'fix-pr11306-macosx'
* fix-pr11302-opensuse:
tests: cater to systems installing libs in /lib64
* fix-pr11306-macosx:
tests: fix spurious failure on Mac OS X
2012-04-23 Stefano Lattarini <stefano.lattarini@gmail.com>
coverage: test the internal $(am__relativize) variable
This new coverage might turn out be useful for the planned changes
in Automake-NG. Even if it eventually doesn't, we gen an improved
testsuite exposure of some non-trivial internals, so it's always a
win for us.
* t/relativize.tap: New test.
* t/list-of-tests.mk: Add it.
2012-04-23 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: cater to systems installing libs in /lib64
See automake bug#11302.
On at least OpenSUSE 12.1, "make install" will install libraries in
the '${prefix}/lib64' directory by default. This is due to the
$CONFIG_SITE set by /etc/profile.d/site.sh, which sets a libdir
that ends in '/lib64' rather than '/lib' if it finds that the compiler
is generating 64-bit code. This behaviour was causing some spurious
failures in our testsuite. Fix them.
* t/posixsubst-libraries.sh: Assume the libraries are installed in
'$(libdir)' rather than in '$(prefix)/lib'.
* t/posixsubst-ltlibraries.sh: Likewise.
* t/posixsubst-scripts.sh: Similarly, don't assume that '$(bindir)',
'$(sbindir)' and '$(libexedir)' always defaults to respectively
'$(prefix)/bin', '$(prefix)/sbin' and '$(prefix)/libexec'.
* t/transform3.test: Likewise.
2012-04-23 Stefano Lattarini <stefano.lattarini@gmail.com>
Bruno Haible <bruno@clisp.org>
tests: fix spurious failure on Mac OS X
See automake bug#11306.
* t/lex-libobj.sh: We used to pass LEXLIB='-L /lib' to the ./configure
invocation, to prevent it from explicitly searching for a "lex library".
But the linker on MacOS X 10.5 apparently chokes on that:
cc -g -O2 -o foo foo.o -L /lib yywrap.o
ld: file not found: /lib
collect2: ld returned 1 exit status
So, we now instead pass LEXLIB=' ', which being non-empty is enough
to prevent the search of a "lex library". And since we are at it,
enhance comments on this non-obvious usage.
2012-04-22 Stefano Lattarini <stefano.lattarini@gmail.com>
coverage: parallel make with vala
* t/vala-parallel.sh: New test.
* t/list-of-tests.mk: Add it.
2012-04-21 Stefano Lattarini <stefano.lattarini@gmail.com>
vala: configure exit with status 77, not 1, if valac version is too old
From a report by Bruno Haible in automake bug#1193. This change should
also automatically avoid spurious testsuite failures with older vala
versions.
* m4/vala.m4 (AM_PROG_VALAC): Exit with status 77, rather than 1, if
the Vala compiler found older than the minimal required version (if
any). This is more consistent with what is done by other macros like
AM_PROG_UPC or AC_PROG_CC.
* NEWS: Update.
* t/vala-headers.sh: Adjust, so that the test is only skipped of the
vala compiler is too old or the required PKG_CHECK_MODULES third-party
macro is not found by aclocal, and not if a generic error happens in
the configure script.
* t/vala-libs.sh: Likewise.
* t/vala2.sh: Likewise.
* t/vala3.sh: Likewise.
* t/vala5.sh: Likewise.
* t/vala-vpath.sh: Likewise (but don't check for the potential error
with PKG_CHECK_MODULES, as that macro is not used in any way here).
* t/vala4.sh: Adjust, to avoid the new semantic causing this test to
skip instead of failing.
2012-04-21 Stefano Lattarini <stefano.lattarini@gmail.com>
refactor: processing of input makefile rules
This is a pure refactoring, with no intended functional or semantic
changes. It breaks up an overly-long function in three smaller
sub-functions. This change will very especially useful for the work
on Automake-NG.
* lib/Automake/Rule.pm (define): Move quite a lot of code out, into ...
(_rule_defn_with_exeext_awareness, _maybe_warn_about_duplicated_target,
_conditionals_for_rule): ... these new subroutines.
2012-04-21 Stefano Lattarini <stefano.lattarini@gmail.com>
automake: refactor pre-processing of makefile fragments
This change will provide the automake script with a new function that
reads in a Makefile fragment *without* performing Automake ad-hoc parsing,
but only the pre-processing step, i.e., removal of '##' comments and
substitution of tokens like '%SUBDIRS%', '%?LIBTOOL%' or '?GENENRIC?'.
This will very likely be useful for the work on Automake-NG.
This is a pure refactoring, with no intended functional or semantic
changes.
* automake.in (preprocess_file): New function, extracted ...
(make_paragraphs): ... from here.
2012-04-20 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: remove obsolete references to Autoconf 2.13
Autoconf 2.13 is definitely obsolete today, so giving hints or caveats
about it in the Automake documentation is not only obsolescent, but
also counter-productive, as it suggests that autoconf 2.13 is still
relevant.
* doc/automake.texi: Adjust. Related rewordings. Since we are at it,
prefer using a more modern autoconf version number (2.68 instead of 2.57)
in an example showing how to correctly use 'AC_PREREQ' in third-party
.m4 files.
2012-04-20 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix spurious failure with non-ANSI terminals
* t/ax/tap-summary-aux.sh: When checking colored testsuite output,
be sure to export the TERM variable to the value "ansi"; otherwise
the automake testsuite driver will not display colored output, not
even if AM_COLOR_TESTS is exported to "always". Failure revealed
by NixOS Hydra.
2012-04-18 Stefano Lattarini <stefano.lattarini@gmail.com>
hacking: fix typo
* HACKING (Test suite): Refer to file 't/README', not to the
non-existent 'tests/README'.
2012-04-18 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: version bump after beta release
* configure.ac (AC_INIT): Bump version number to 1.11e, as per
HACKING suggestion.
* NEWS: Likewise.
* m4/amversion.m4: Likewise (autoupdated by ./bootstrap).
2012-04-18 Stefano Lattarini <stefano.lattarini@gmail.com>
Beta release 1.11d (will become 1.12)
* configure.ac (AC_INIT): Bump version number to 1.11d.
* NEWS: Likewise.
* m4/amversion.m4: Likewise (autoupdated by ./bootstrap).
2012-04-18 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: remove redundant 'set -e' calls
* t/aclocal-install-fail.sh: Do not set the 'errexit' shell flag,
as it is already set by './defs'.
* t/aclocal-install-mkdir.sh: Likewise.
* t/aclocal-no-install-no-mkdir.sh: Likewise.
* t/aclocal-verbose-install.sh: Likewise.
* t/instdir-no-empty.sh: Likewise.
* t/link_cond.sh: Likewise.
* t/python-pr10995.sh: Likewise.
* t/vala-vapi.sh: Likewise.
2012-04-18 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid spurious failures when cross-compiling
* t/parallel-tests-recheck-depends-on-all.sh: Skip the test
when cross-compiling.
* t/vala-vapi.sh: Skip tests that do not make sense when
cross-compiling.
* t/yacc-basic.sh: Likewise.
* t/yacc-cxx.sh: Likewise.
2012-04-18 Stefano Lattarini <stefano.lattarini@gmail.com>
maintainer-check: fix definition of $(ams) again
* syntax-checks.mk (ams): The previous change 'v1.11b-36-g127adfb' solved
one problem in the definition of this variable, but also caused it contain
the names of all the left-behind 't/*.dir' temporary test directories.
Fix that.
2012-04-18 Stefano Lattarini <stefano.lattarini@gmail.com>
maintainer-check: do not hang
* syntax-checks.mk (ams): The definition of this variable was invoking
the 'find' utility in an incorrect way, which resulted into the variable
being empty, thus reducing coverage in some maintainer check and making
other hang. Fix this.
2012-04-18 Stefano Lattarini <stefano.lattarini@gmail.com>
parallel-tests: 'recheck' must depend on 'all'
Fixes automake bug#11252.
When a developer experience one or more failures in the testsuite, a good
workflow is for him to modify its program's sources to fix the bug thus
revealed, run "make recheck" to verify that the change has indeed solved
the testsuite failures previously experienced, and then run "make check"
to verify that the change has not introduced any new failure or regression.
Unfortunately, this apparently natural workflow couldn't have worked until
now, since the Automake-provided 'recheck' target (which didn't depend on
'all') wouldn't have causes the program to be recompiled, and the failed
tests would have thus been run with the older, buggy version of the
program, failing the same way as before.
* lib/am/check.am (recheck): Depend on 'all'.
* t/parallel-tests-recheck-depends-on-all.sh: New test.
* t/list-of-tests.mk: Add it.
* NEWS: Update.
2012-04-17 Stefano Lattarini <stefano.lattarini@gmail.com>
vala tests: building libraries, and more on '.vapi' files
* t/vala1.sh: Remove, turned into ...
* t/vala-libs.sh: ... this functional test instead.
* t/list-of-tests.mk: Adjust.
2012-04-17 Stefano Lattarini <stefano.lattarini@gmail.com>
automake: fix botched call to 'check_user_variables'
* automake.in (lang_vala_finish_target): The 'check_user_variables' function
takes an array, not an array ref, as argument; adjust its call accordingly.
2012-04-17 Stefano Lattarini <stefano.lattarini@gmail.com>
vala: cleanup rules are better and more complete now
* automake.in (lang_vala_finish_target): Ensure Vala-generated C sources
and header files and our custom stamp files are correctly cleaned.
* t/vala-headers.sh, t/vala-vpath.sh: Enhance.
* NEWS: Update.
2012-04-17 Stefano Lattarini <stefano.lattarini@gmail.com>
vala tests: check headers generation
* t/vala-headers.sh: New test, checking use of 'valac' options for
header generation (e.g., '-H', '--vapi', ...) in '$(..._VALAFLAGS)'.
* t/list-of-tests.mk: Add it.
2012-04-17 Stefano Lattarini <stefano.lattarini@gmail.com>
vala tests: remove redundant libtool requirements and usages
* t/vala2.sh: Don't require libtool m4 macros, don't run libtoolize,
don't invoke AC_PROG_LIBTOOL: none of there is really needed.
* t/vala3.test: Likewise.
2012-04-16 Stefano Lattarini <stefano.lattarini@gmail.com>
vala tests: some enhancements
* t/vala-vpath.sh, t/vala2.sh, t/vala3.sh, t/vala5.sh: Enhance a little.
2012-04-16 Stefano Lattarini <stefano.lattarini@gmail.com>
vala tests: few adjustments and improvements
* t/vala4.sh: Don't run 'libtoolize', it's not truly required.
($required): Don't require 'libtoolize'.
(configure.ac): Don't invoke 'AC_PROG_LIBTOOL'.
* t/vala-mix.sh ($required): Require 'cc'.
Avoid some calls to 'framework_failure_', they were only useful when
this test was xfailing (to ensure it wasn't failing for the wrong
reasons).
Ensure the stamp file is created in the source directory.
2012-04-16 Jim Meyering <meyering@redhat.com>
build: use latest help2man, but without locale support
* doc/help2man: Update to latest (1.40.8), but built with
--disable-nls, which elides the less-portable locale-related
code, and with the "use 5.008" manually changed to "use 5.006".
Thanks to Brendan O'Dea for the tips.
* THANKS: Update Brendan's address.
2012-04-14 Stefano Lattarini <stefano.lattarini@gmail.com>
parallel-tests: print error messages on stderr, not stdout
* lib/am/check.am ($(TEST_SUITE_LOG)): Be sure to print error messages
on stderr, not on stdout.
2012-04-13 Stefano Lattarini <stefano.lattarini@gmail.com>
dist tests: fix reduced coverage due to typo
* t/dist-formats.tap: Append to 'Makefile.am', not to 'Makefil.am'.
2012-04-13 Jim Meyering <meyering@redhat.com>
build: use slightly older help2man, for improved portability
Fixes automake bug#11235
* doc/help2man: Downgrade to help2man-1.36.4, so that it does
not require Locale/gettext.pm, which is not available on a
default Fedora 16 installation. Reported by Stefano Lattarini.
2012-04-13 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid spurious failure when 'install-info' program is unavailable
From a report by Dmitry V. Levin:
<http://lists.gnu.org/archive/html/automake-patches/2012-04/msg00085.html>
* t/install-info-dir.sh : When 'install-info' is unavailable, create a
dummy '${infodir}/dir' file by hand when that file is required by later
checks.
2012-04-13 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
install: shell parameter expansions can be used in directory names
2012-04-13 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'fix-pr11232' into maint
* fix-pr11232:
install: shell parameter expansions can be used in directory names
2012-04-13 Dmitry V. Levin <ldv@altlinux.org>
install: shell parameter expansions can be used in directory names
Fixes automake bug#11232.
GNU automake used to support shell parameter expansion and command
substitutions in installation directories, but that was inadvertently
broken by commit v1.11-759-g368f1c4 "install: don't create empty dirs
when an empty 'foo_PRIMARY' is used" of 18-03-2012, where shell quoting
of generated MKDIR_P command was changed from double to single quotes
in 3 places, while some 21 other places still use double quotes for
generated MKDIR_P commands.
* lib/am/data.am: Use double quotes for generated "mkdir -p" commands.
* lib/am/libs.am: Likewise.
* lib/am/ltlib.am: Likewise.
2012-04-13 Stefano Lattarini <stefano.lattarini@gmail.com>
test defs: more environment cleanups
* defs (SH_LOG_COMPILER, SH_LOG_COMPILE, SH_LOG_FLAGS,
AM_SH_LOG_FLAGS, SH_LOG_DRIVER, SH_LOG_DRIVER_FLAGS,
AM_SH_LOG_DRIVER_FLAGS): Unset these variable to avoid
potential interferences from the environment.
2012-04-13 Stefano Lattarini <stefano.lattarini@gmail.com>
test defs: unset 'AM_UPDATE_INFO_DIR' environment variable
* defs (AM_UPDATE_INFO_DIR): Unset, to be sure to avoid unduly
interferences from the environment. See also automake bug#11204.
* THANKS: Add entry for David Fang.
2012-04-12 Jim Meyering <meyering@redhat.com>
build: generate doc/*.1 files; include help2man
This change is required to avoid making a distributed file depend
on a generated (non-distributed) one. The preceding change
introduced one such dependency, with the distributed doc/*.1
depending on the generated aclocal and automake files. Here,
we avoid the problem by generating the doc/*.1 files rather than
distributing them.
* doc/help2man: New file, version 1.37.1.
* Makefile.am (EXTRA_DIST): Add doc/help2man.
(man1_MANS): Rename from $(dist_man1_MANS). Remove $(srcdir) prefix.
(CLEANFILES): Add these files here, rather than to
$(MAINTAINERCLEANFILES), since we are no longer distributing them.
(update_mans): Use doc/help2man, not $(HELP2MAN).
* configure.ac: Don't test for help2man, now that we bundle it.
2012-04-12 Jim Meyering <meyering@redhat.com>
build: avoid parallel build failures
A parallel build would fail when two concurrent sub-make processes
tried to build lib/Automake/Config.pm. The loser would complain that
grep: lib/Automake/Config.pm-t: No such file or directory
chmod: cannot access `lib/Automake/Config.pm-t': No such file or\
directory
make[1]: *** [lib/Automake/Config.pm] Error 1
* Makefile.am (update_mans): Don't build lib/Automake/Config.pm here.
Instead, depend on it from the two rules that use it:
($(srcdir)/doc/aclocal-$(APIVERSION).1): Depend on it.
($(srcdir)/doc/automake-$(APIVERSION).1): Likewise.
[ Note that technically, the above is incorrect, since it makes those
distributed doc/*.1 files depend on generated aclocal and automake.
That problem is addressed by the following commit. ]
However, that was not enough, since even then, a parallel build
would still fail, now with this:
help2man: can't get `--help' info from automake-1.11a
Try `--no-discard-stderr' if option outputs to stderr
make: *** [doc/automake-1.11a.1] Error 1
a subsequent "make -j3" would create the missing file.
That was because help2man would invoke t/wrap/aclocal.in and
t/wrap/automake.in, each of which would require aclocal and
automake, yet those two files weren't guaranteed to be created.
Add explicit dependencies:
($(srcdir)/doc/aclocal-$(APIVERSION).1): Depend on aclocal.
($(srcdir)/doc/automake-$(APIVERSION).1): Depend on automake.
2012-04-12 Stefano Lattarini <stefano.lattarini@gmail.com>
news: remove older entry for "future backward incompatibilities"
* NEWS (New in 1.11.4): Remove subsection about "Future backward
incompatibilities"; they are now either documented changes for the
upcoming 1.12 release, or re-casted as planned future backward
incompatibilities for the next 1.13 release.
2012-04-12 Stefano Lattarini <stefano.lattarini@gmail.com>
news: document fixes for bug#11222 and bug#11229
* NEWS (Bugs fixed in 1.11.5): New, documenting the fixes.
2012-04-12 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
vala: fix distcheck with c/vala mixed projects
vala: fix vapi files handling
vala: test vapi files handling (still failing)
2012-04-12 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branches 'vala-fix-pr11222' and 'vala-fix-pr11229' into maint
* vala-fix-pr11222:
vala: fix vapi files handling
vala: test vapi files handling (still failing)
* vala-fix-pr11229:
vala: fix distcheck with c/vala mixed projects
2012-04-12 Marc-Antoine Perennou <Marc-Antoine@Perennou.com> (tiny change)
vala: fix distcheck with c/vala mixed projects
Fixes automake bug#11229.
* automake.in (lang_vala_finish_target): Return early if the
current '_SOURCES' variable does not contain any '.vala' nor
'.vapi' source. Otherwise, the vala compiler will be called
without arguments, causing an error.
* tests/vala-mix.test: Enhance to catch the fixed bug.
2012-04-12 Stefano Lattarini <stefano.lattarini@gmail.com>
news: fix typo
* NEWS (Changes to Automake-generated testsuite harnesses): It's
'perl', not 'per'. Reported by Akim Demaille in a private mail.
2012-04-12 Marc-Antoine Perennou <Marc-Antoine@Perennou.com> (tiny change)
vala: fix vapi files handling
Fixes automake bug#11222.
Issue introduced in commit 'v1.11-696-g51f61df' of 27-02-2012,
"vala: fix 'valac' calls for projects with mixed Vala/C", which
fixed automake bug#10894.
* automake.in (lang_vala_finish_target): Also recognize '.vapi'
as an extension for vala input files.
* tests/list-of-tests.mk (XFAIL_TESTS): Remove 'vala-vapi.test'.
2012-04-12 Stefano Lattarini <stefano.lattarini@gmail.com> (tiny change)
Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
vala: test vapi files handling (still failing)
Exposes automake bug#11222.
* tests/vala-vapi.test: New test, still failing.
* tests/list-of-tests.mk (handwritten_TESTS): Add it.
(XFAIL_TESTS): Likewise.
* THANKS: Update.
2012-04-11 Stefano Lattarini <stefano.lattarini@gmail.com>
self checks: avoid spurious failures when keep_testdirs=yes
* t/self-check-cleanup.tap, t/self-check-dir.tap: Unset the
'keep_testdirs' environment variable, to avoid spurious errors
when the testsuite is run with "keep_testdirs=yes make check".
2012-04-11 Stefano Lattarini <stefano.lattarini@gmail.com>
fixup: some weaknesses in a self-check test case
* t/self-check-cleanup.tap: This test contained several buglets
introduced in the recent row of commits that converted the Automake
build system to a non-recursive setup. Fix them. Since we are at
it, enhance the test to cover also the use of the 'keep_testdirs'
environment variable in order to keep the temporary test directories
around.
2012-04-11 Stefano Lattarini <stefano.lattarini@gmail.com>
maintcheck: avoid yet more spurious failures (2)
Some maintainer checks were too greedy in processing 'Makefile.am'
files, looking for them even in temporary directories left behind
by the test cases, thus causing occasional spurious failures.
* syntax-checks.mk (ams): Ignore 'Makefile.am' files in the
temporary test directories.
2012-04-11 Stefano Lattarini <stefano.lattarini@gmail.com>
maintcheck: avoid yet more spurious failures (1)
The 'sc_tests_makefile_variable_order' maintainer check is too
strict sometimes, blaming automake for outputting out-of-order
variables when this is in fact due to the result of post-processing
of third-party tools or custom test code.
* t/tap-doc2.sh: Ensure the final Makefile.in (that we hack by
hand) is removed, to avoid a spurious maintainer-check failure.
* t/gettext-macros.sh: Ensure that any leftover Makefile.in (that
is generated by gettext/autopoint) is removed, to avoid a spurious
maintainer-check failure.
2012-04-11 Stefano Lattarini <stefano.lattarini@gmail.com>
hacking: fixlets w.r.t. the release procedure
* HACKING (Release procedure): Do not state that the result of
"make fetch" is woefully incomplete: this is not true anymore today.
Suggest to re-run the testsuite after a "make fetch", in case any
file has been updated.
2012-04-11 Stefano Lattarini <stefano.lattarini@gmail.com>
maintcheck: fix spurious failures
* syntax-check.mk (sc_mkinstalldirs): Now the 'mkinstalldirs' is
listed in the top-level 'Makefile.am', not in 'lib/Makefile.am';
adjust the "whitelist" accordingly.
(sc_ensure_testsuite_has_run): The 'test-suite.log' file created by
"make check" is now placed in the top-level directory, not in the
't/' subdirectory. Adjust by using '$(TEST_SUITE_LOG)' instead of
an hand-crafted path for the 'test-suite.log' file.
2012-04-11 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: version bump after beta release
* configure.ac (AC_INIT): Bump version number to 1.11c, as per
HACKING suggestion.
* NEWS: Likewise.
* m4/amversion.m4: Likewise (autoupdated by ./bootstrap).
2012-04-11 Stefano Lattarini <stefano.lattarini@gmail.com>
Beta release 1.11b (will become 1.12)
* configure.ac (AC_INIT): Bump version number to 1.11b.
* NEWS: Likewise.
* m4/amversion.m4: Likewise (autoupdated by ./bootstrap).
2012-04-11 Stefano Lattarini <stefano.lattarini@gmail.com>
sync: some auxiliary files synced from upstream
* lib/texinfo.tex: Synced from upstream, by "make fetch".
* lib/INSTALL: Likewise.
2012-04-11 Stefano Lattarini <stefano.lattarini@gmail.com>
hacking: described new branching policy for 1.12 an later
This change closes automake bug#11153.
* HACKING (Working with git): Document the new policy for automake
branching and merging, which will start being applied after 1.12 is
released:
- the maintenance branch will be 'maint', and we will cut the
maintenance releases directly from there;
- the development branch will be 'master', and we will cut the
new releases directly from there;
- 'maint' will be kept regularly merged into 'master'.
2012-04-11 Stefano Lattarini <stefano.lattarini@gmail.com>
vala tests: avoid spurious failure with older GObject
* t/vala2.sh: In the 'PKG_CHECK_MODULES' call in 'configure.ac',
don't require gobject >= 2.10, but just >= 2.4: that is enough in
order for the test to pass.
* t/vala3.sh: Likewise.
* t/vala5.sh: Likewise. Also, skip the test instead of failing
if the ./configure invocation fails: that is likely due to the
fact that the GObject library is too old or missing, and that is
not automake's fault.
2012-04-11 Stefano Lattarini <stefano.lattarini@gmail.com>
vala tests: force the use of automatic dependency tracking
* t/vala-mix2.sh: Invoke ./configure with the option
'--enable-dependency-tracking', so that slower dependency
extractors are not rejected. This avoids a spurious failure
at least on Solaris when the Sun C compiler is used.
2012-04-11 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid spurious failures in tests on C++ and lex
This is a follow-up to commit v1.11-2128-g7f2bc63 of 09-04-2012,
"tests: avoid spurious failures with non-flex 'lex' programs and
C++". It is required to avoid a couple of spurious failures on
Solaris and NetBSD systems (at least). See also automake bug#11185.
* t/lex-clean-cxx.sh (parsefoo.lxx): Do not declared the provided
dummy 'isatty' function as 'static', since that might conflict with
a declaration of it as 'extern' pulled in through other system
* t/lex-depend-cxx.sh (joe.ll): Likewise.
* t/README: Update advice, to avoid similar issues in the future.
2012-04-11 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'rmch'
* rmch:
maint: simplify generation of files with @substed@ stuff
t/README: update w.r.t. recent overhaul (non-recursive build system)
docs: fix names of relevant test cases in comments
NEWS: automake build systems avoids make recursion
maint: no more make recursion in Automake's build system
tests: rename 'tests/' => 't/', '*.test' => '*.sh'
tests: remove recipes that run tests with 'prove'
tests: move most helper scripts and files into the 'ax' subdirectory
2012-04-09 Stefano Lattarini <stefano.lattarini@gmail.com>
Peter Rosin <peda@lysator.liu.se>
tests: avoid spurious failures with non-flex 'lex' programs and C++
This change fixes automake bug#11185.
The commit v1.11-2058-g6f4b08d of 06-03-2012, "tests: explicitly
state that our lexers do not require unistd.h" has broken the tests
'lex-clean-cxx.test' and 'lex-depend-cxx.test' on Solaris, where lex
is not flex and does not understand the "%option never-interactive"
directive. Remove the use of this directive, resorting to defining
a dummy 'isatty()' function instead to keep the flex-generated tests
able to compile also on MinGW/MSYS.
* tests/lex-clean-cxx.test (parsefoo.lxx): Define a dummy 'isatty()'
function.
* tests/lex-depend-cxx.test (joe.ll): Likewise.
* tests/README: Adjust. Fix an unrelated typo since we are at it.
2012-04-08 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid a spurious failures for shells with busted 'set -e'
Some versions of the BSD Korn shell wrongly bail out when the
'errexit' shell flag is active and the left-hand command in a
"&&" list fails and that list is the *last* command of the body
of a "while" or "for" loop.
* tests/install-info-dir.test: Work around that behaviour.
2012-04-08 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: simplify generation of files with @substed@ stuff
Use a proper "config.status --file=-" idiom to do most substitutions
in our generated files, to avoid too much duplications between the
various $(do_subst) commands in Makefile.am and the (explicit or
implicit AC_SUBST) invocation in configure.ac.
From a suggestion by Eric Blake and Federico Simoncelli:
<http://lists.gnu.org/archive/html/automake/2012-01/msg00011.html>
* Makefile.am (do_subst): Rewrite to take advantage of the
"config.status --file=-" idiom.
(generated_file_finalize): New, to help checking that generated
files don't contain unexpanded '@substitutions@', and are made
read-only.
(automake, aclocal): Take advantage of the improved $(do_subst).
Improve comments.
(lib/Automake/Config.pm): Likewise, and of the new variable
$(generated_file_finalize) as well.
($(top_srcdir)/m4/amversion.m4): Likewise.
(defs-static): Likewise, and depend explicitly on 'Makefile'.
(do_subst_t): Remove as obsolete.
* THANKS: Update.
2012-04-07 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: remove redundant requirement
* tests/txinfo19.test ($required): Drop required "tex", it is not
really needed.
Add trailing ':' command since we are at it.
2012-04-07 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: make two test scripts executable
* tests/instdir-cond.test: Add executable bit.
* tests/instdir-cond2.test: Likewise.
2012-04-06 Stefano Lattarini <stefano.lattarini@gmail.com>
t/README: update w.r.t. recent overhaul (non-recursive build system)
And other miscellaneous improvements since we are at it.
2012-04-06 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: fix names of relevant test cases in comments
* doc/automake.texi: In comments reporting which test(s) check a
given feature/idiom, fix the names of the referenced tests, to
reflect the recent 'tests/foo.test' => 't/foo.sh' "Great Rename".
2012-04-06 Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS: automake build systems avoids make recursion
2012-04-06 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: no more make recursion in Automake's build system
We finally merge testsuite-related part of the Automake build
system with the top-level one. See also yesterday's commit
'v1.11-2124-ga4b0f4b', "maint: remove most recursion in automake's
own build system".
* t/gen-testsuite-part: Move ...
* gen-testsuite-part: ... here, with required adjustments.
* t/defs-static.in: Move ...
* defs-static.in: ... here, with required adjustments. In
particular ...
($testsrcdir, $testbuilddir): Removed.
($top_testsrcdir): Renamed ...
($am_top_srcdir): ... to this.
($top_testbuilddir): Renamed ...
($am_top_builddir): ... to this.
* t/defs: Move ...
* defs: ... here, and adjust as required.
* t/Makefile.am: Merge ...
* Makefile.am: ... in here, with related adjustments and
simplifications.
* bootstrap: Adjust as required.
* syntax-checks.mk: Likewise.
* .gitignore: Likewise.
* t/ax/tap-setup.sh: Likewise.
* t/get-sysconf.sh: Likewise.
* t/help-multilib.sh: Likewise.
* t/multlib.sh: Likewise.
* t/parallel-tests2.sh: Likewise.
* t/self-check-cleanup.tap: Likewise.
* t/self-check-exit.tap: Likewise.
* t/self-check-dir.tap: Likewise.
* t/self-check-explicit-skips.sh: Likewise.
* t/self-check-reexec.tap: Likewise.
* t/self-check-sanity.sh: Likewise.
* t/yacc-d-cxx.sh: Likewise.
2012-04-06 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: rename 'tests/' => 't/', '*.test' => '*.sh'
When we (soon) convert the Automake testsuite to a non-recursive
make setup, we'll have to fix the entries of $(TESTS) to be
prepended with the subdirectory they are in; this will increase
the length of $(TESTS), and thus increase the possibility of
exceeding the command-line length limits on some systems (most
notably, MinGW/MSYS). See automake bug#7868 for more information.
Thus we rename the 'tests/' subdirectory to 't/', and each 'x.test'
script in there to 'x.sh'; this way, the $(TESTS) entry 'foo.test'
will become 't/foo.sh', which have the same number of characters.
* tests/: Rename ...
* t/: ... to this.
* t/*.test: Rename ...
* t/*.sh: ... to this.
* t/.gitignore: Removed as obsolete.
* t/defs: Adjust.
* t/gen-testsuite-part: Likewise.
* t/list-of-tests.mk: Likewise.
* t/ccnoco.sh: Likewise.
* t/ccnoco3.sh: Likewise.
* t/self-check-cleanup.tap: Likewise.
* t/self-check-dir.tap: Likewise.
* t/self-check-me.tap: Likewise.
* t/self-check-reexec.tap: Likewise.
* README: Likewise.
* bootstrap: Likewise
* configure.ac: Likewise.
* Makefile.am: Likewise.
* .gitignore: Likewise.
* syntax-check.mk: Likewise.
2012-04-06 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: remove recipes that run tests with 'prove'
Those recipes has served its purpose by helping us during the
development of TAP support in Automake, to ensure our TAP driver
didn't have gratuitous incompatibilities with the 'prove' test
runner. But they are now unused, out-of-date and bitrotting. So
it's better to just remove them. We can resurrect them at a later
time if the need arises.
* tests/Makefile.am (PROVE, AM_PROVEFLAGS, AM_PROVECMD): Remove
these variables.
(prove, installprove): Remove these targets and their recipe.
(EXTRA_DIST): Don't distribute 'ax/prove-runner' anymore.
* ax/prove-runner: Delete.
2012-04-06 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: move most helper scripts and files into the 'ax' subdirectory
* tests/defs-static.in ($am_testauxdir): New variable.
* tests/testsuite-summary-checks.sh: Moved ...
* tests/ax/testsuite-summary-checks.sh: ... here.
* tests/trivial-test-driver: Moved ...
* tests/ax/trivial-test-driver: ... here.
* tests/tap-summary-aux.sh: Moved ...
* tests/ax/tap-summary-aux.sh: ... here.
* tests/distcheck-hook-m4.am: Moved ...
* tests/ax/distcheck-hook-m4.am: ... here.
* tests/prove-runner: Moved ...
* tests/ax/prove-runner: ... here.
* tests/depcomp.sh: Moved ...
* tests/ax/depcomp.sh: ... here.
* tests/tap-setup.sh: Moved ...
* tests/ax/tap-setup.sh: ... here.
* tests/tap-functions.sh: Moved ...
* tests/ax/tap-functions.sh: ... here.
* tests/plain-functions.sh: Moved ...
* tests/ax/plain-functions.sh: ... here.
* tests/extract-testsuite-summary: Moved ...
* tests/ax/extract-testsuite-summary.pl: .. . here.
* tests/gen-testsuite-part: Adjusted accordingly.
* tests/Makefile.am: Likewise.
* tests/defs: Likewise.
* syntax-check.mk: Likewise.
* Several tests: Likewise.
2012-04-05 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: remove most recursion in automake's own build system
Recursive make-based build systems tend to be slower, more fragile
and less faithful than "flat" ones. See Peter Miller's article
"Recursive Make Considered Harmful" for more a more in-depth
discussion:
<http://miller.emu.id.au/pmiller/books/rmch/>
While in the case of automake this isn't a big problem (given the
small size of its build systems), it still creates occasional
glitches and annoyances.
With this change, the use of recursion in Automake's own build
system is eliminated *but for the testsuite*. Converting that
is a little more tricky, and better left for a later change (or
series of changes).
See also commit v1.11-769-gfeeb7f6 of 28-03-2012.
* contrib/Makefile.am, lib/Makefile.am, m4/Makefile.am,
doc/Makefile.am: Removed, their content merged ...
* Makefile.am: ... here, with required adjustments and few
other "opportunistic" changes.
(SUBDIRS): Update.
* configure.ac (AC_CONFIG_FILES): Likewise.
* .gitignore: Likewise.
2012-04-05 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix a spurious failures with non-GNU make
* tests/instdir-no-empty.test: Also pass proper AM_MAKEFLAGS to
make invocations that might recurse, to ensure the macro definitions
passed from the command line are properly propagated.
2012-04-04 Stefano Lattarini <stefano.lattarini@gmail.com>
texinfo: warn about future use of '--tidy'
Starting from the next major release of Automake (likely 1.13) we
want to start passing the '--tidy' option to texi2dvi and texi2pdf
invocations, so that auxiliary TeX-generated files can be kept
around (thus speeding up rebuilding of DVI and PDF output) without
cluttering the build directory too much.
Since the '--tidy' option was introduced in Texinfo 4.9 (as
documented in the Texinfo distribution's NEWS file), this also
means that Makefiles generated by future Automake versions will
require at least that version of Texinfo (at the time of writing
four years and nine months old).
The users should be warned about the planned behavioral change
and the new version requirement it will entail.
See also automake bug#11146.
* NEWS (Planned Backward Incompatibilities): Add entry about use
of the '--tidy' option and requirement of Texinfo 4.9.
2012-04-04 Stefano Lattarini <stefano.lattarini@gmail.com>
texinfo: don't clutter the builddir when using modern texi2dvi
In modern versions of texi2dvi (at least since version 1.135, which
comes with Texinfo 4.13) the '-o' option does not imply anymore the
'--clean' option. As a consequence, lots of TeX-generated auxiliary
files are now left in the build directory by the 'pdf', 'ps' and
'dvi' rules.
This is especially annoying with non-recursive setups having the
'.texi' files in a subdirectory, as in:
info_TEXINFOS = doc/foo.texi
In this case, the stray auxiliary files are left in the top build
directory (since TeX is run from there). See for example:
<http://lists.gnu.org/archive/html/bug-bison/2012-04/msg00002.html>
See also automake bug#11146.
* lib/am/texibuild.am: Call 'texi2dvi' and 'texi2pdf' with the
'--clean' option. Update comments accordingly.
* tests/txinfo-noclutter.test: New test.
* tests/txinfo18.test: Remove as obsolete, the still relevant parts
of it moved into the new test.
* tests/list-of-tests.mk: Adjust.
* NEWS: Update.
2012-04-02 Stefano Lattarini <stefano.lattarini@gmail.com>
hacking: autotools-generated files are not committed anymore
* HACKING (Working with git) Generated files like 'configure',
'Makefile.in' and 'aclocal.m4' are not committed anymore in our
git repository since some months. Remove obsoleted advices that
assumed they still were.
2012-04-02 Stefano Lattarini <stefano.lattarini@gmail.com>
hacking: simplify documentation of bootstrapping process
* HACKING (Working with git): Do not suggest that, to ensure the
bootstrapping process is performed with the latest autotools, the
developer could explicitly pass $AUTOCONF and $AUTOM4TE in the
environment to the ./bootstrap and ./configure invocations: that
is a little tricky and quite fragile. Instead, suggest to just
put modern-enough version of the autotools early in PATH.
2012-04-01 Stefano Lattarini <stefano.lattarini@gmail.com>
cosmetics: remove repeated line in comment, fix quoting
* automake.in: Drop a repeated line in a comment. In the same
comment, prefer quoting 'like this' rather than `like this'.
Issue introduced in one of the commits that converted from quoting
`like this' to quoting 'like this'.
2012-03-31 Stefano Lattarini <stefano.lattarini@gmail.com>
cosmetics: remove useless import in automake script
* automake.in (Automake::Version): This import is not needed;
remove it.
2012-03-31 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
docs: deprecate 'cygnus' mode, help the transition
2012-03-31 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: deprecate 'cygnus' mode, help the transition
Support for "Cygnus-style" trees (so far enabled by the 'cygnus'
option) will be deprecated in one release of the next major series
(1.12.x) and removed in the next major release after that (1.13).
Better to start warning about this in the manual.
* docs/automake.texi: Warn about the oncoming deprecation of the
'cygnus' mode. Suggest some idioms that can be used to retain some
effects of the 'cygnus' option.
* THANKS: Update.
From a suggestion by Joseph S. Myers in automake bug#11034.
2012-03-29 Stefano Lattarini <stefano.lattarini@gmail.com>
perl refactor: use modern semantics of 'open'
* lib/Automake/XFile.pm: Update comments and POD documentation to
suggest a more idiomatic/modern usage.
(open): Be more robust in detecting whether the created file handle
is being opened for writing.
* lib/Automake/FileUtils.pm (update_file, contents): Call the
'Automake::XFile' and 'File::IO' constructors with two arguments
rather than one; this change obsoletes ...
(open_quote): ... this subroutine, which has thus been removed.
(@EXPORT): Drop '&open_quote'.
2012-03-28 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
cosmetics: don't make the generated Config.pm executable
maint: reduce use of recursion in automake build system
+ Extra non-trivial extra edits follows.
* lib/Makefile.am (amdir): Deleted this definition, it is already
provided by a proper AC_SUBST in configure.ac.
(dist_am_DATA): Remove 'am/ansi2knr.am', 'am/check-html.am' and
'am/multilib.am'.
(dist_perllib_DATA): Remove 'Automake/Struct.pm'.
2012-03-28 Stefano Lattarini <stefano.lattarini@gmail.com>
cosmetics: don't make the generated Config.pm executable
* lib/Makefile.am (Automake/Config.pm): Don't make this executable,
there's not need for it to be (it's a perl module, not a script).
2012-03-28 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: reduce use of recursion in automake build system
Recursive make-based build systems tend to be slower, more fragile
and less faithful than "flat" ones. See Peter Miller's article
"Recursive Make Considered Harmful" for more a more in-depth
discussion:
<http://miller.emu.id.au/pmiller/books/rmch/>
While in the case of automake this isn't a big problem (given the
small size of its build systems), it still creates occasional
glitches and annoyances. So, with this change, we start making
less use of make recursion in the Automake's own build system
(future changes will reduce it even more).
* lib/am/Makefile.am, lib/Automake/Makefile.am: Removed, their
content merged ...
* lib/Makefile.am: ... here, with required adjustments.
* configure.ac (AC_CONFIG_FILES): Update.
2012-03-28 Stefano Lattarini <stefano.lattarini@gmail.com>
news: sync with branch-1.11, fix mis-merges
2012-03-28 Stefano Lattarini <stefano.lattarini@gmail.com>
acinstall: remove, it has never been really used
Accordingly to the git history (see for example the 'README-alpha'
in commit 'Release-1-1e-39-g9beb4ec' of 06-10-1996), the 'acinstall'
script should have been used to install m4 files for aclocal. The
comments in this script report that "... A script is needed to do
this because we want to do serial-number checking; newer versions
of macro files should always be preferred".
But the 'acinstall' script has never been really used: for example,
the entry "actually use acinstall program" was removed (unfixed)
from the TODO file in commit 'Release-1-1k-12-g1201405' of
08-12-1996, and the only citation of 'acinstall' in the manual was
removed in commit 'Release-1-1l-37-g128c3d7' of 19-03-1997, and
never added back. In addition, the last non-trivial edit to the
script (that is, besides updates to the copyright notice) dates
back to 1996.
More importantly, now that aclocal supports the ACLOCAL_PATH
environment variable, installing m4 files directly in the
system-wide acdir is discouraged, and better left only to
distros' package managers (which already have their own way to
do so, with which third-party build systems should not directly
meddle).
So we just remove the 'acinstall' script.
* lib/acinstall: Remove.
* lib/Makefile.am (dist_script_DATA): Update.
2012-03-28 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: reorganize the source tree and make it less cluttered
* TODO: Move ...
* old/TODO: ... here. This is done because this file is quite
outdated, and today TODO and wishlist items are better handled
though the debbugs tracker.
* ChangeLog.00: Move ...
* old/ChangeLog.00: ... here.
* ChangeLog.01: Move ...
* old/ChangeLog.01: ... here.
* ChangeLog.02: Move ...
* old/ChangeLog.02: ... here.
* ChangeLog.03: Move ...
* old/ChangeLog.03: ... here.
* ChangeLog.04: Move ...
* old/ChangeLog.04: ... here.
* ChangeLog.09: Move ...
* old/ChangeLog.09: ... here.
* ChangeLog.11: Move ...
* old/ChangeLog.11: ... here.
* ChangeLog.96: Move ...
* old/ChangeLog.96: ... here.
* ChangeLog.98: Move ...
* old/ChangeLog.98: ... here.
* tests/ChangeLog-old: Move ...
* old/ChangeLog-tests: .. here.
* tests/Makefile.am (EXTRA_DIST): Adjust.
* Makefile.am (EXTRA_DIST): Likewise.
* .autom4te.cfg: New file, instructing the autotools to place the
autom4te cache directory in '.autom4te.cache' rather than in
'autom4te.cache'.
* .gitignore: Adjust.
* Makefile.am (maintainer-clean-local): Remove the '.autom4te.cache'
directory.
2012-03-27 Stefano Lattarini <stefano.lattarini@gmail.com>
news: we are going to drop 'cygnus' soonish
* NEWS (Future backward incompatibilities): Support for
"Cygnus-style" trees (so far enabled by the 'cygnus' option)
will be deprecated in the next minor release and removed in
in the next major release.
2012-03-27 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
depcomp: support tcc (Tiny C Compiler)
tests: workaround for automatic linker determination and conditionals
info: allow user to inhibit pruning of '${infodir}/dir'
vala tests: fix spurious failures with older valac (<= 0.7.2)
tests: fix a timestamp issue, and other minor buglets
tests: fix spurious failure with older autoconf
build: remove duplicated entries in $(TESTS)
+ Extra non-trivia edits:
* tests/link_cond.test: Use 'configure.ac', not 'configure.in'.
2012-03-27 Stefano Lattarini <stefano.lattarini@gmail.com>
depcomp: support tcc (Tiny C Compiler)
This change fixes automake bug#11007.
Since git commit 0c928da9 of 21-06-2010, "tcc: Draft suppoprt for
-MD/-MF options" (sic, with typo in summary line), tcc has supported
automatic dependency generation with a command-line interface
similar to what old (pre-8.0) Intel compilers did. This caused
Automake-generated code for automatic dependency tracking to
recognize tcc dependency style as "icc". However, the format of
the dependency files generated by tcc is apparently different enough
from that of icc to cause spurious failures in the post-processing
operated by our 'depcomp' script on such files.
The failure was exposed with the development version of tcc 0.9.26
(as installed with debian package "tcc 0.9.26~git20120104.83d") by
test case 'depcomp-auto.tap' (available only in the master branch).
* lib/depcomp (icc): Cater to tcc as well. Update comments
accordingly.
* NEWS: Update.
2012-03-27 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: workaround for automatic linker determination and conditionals
See automake bug#11089.
Automake is not very smart in automatically determining the command
to be used to link a program whose source files' languages are
conditionally defined. For example, an input like:
if HAVE_CXX
foo_SOURCES = more.c++
else
foo_SOURCES = less.c
endif
will cause the build rules for 'foo' to *unconditionally* use the
C++ compiler for linking, even when the 'HAVE_CXX' conditional
evaluates to false (which might mean that no C++ compiler is
available).
This behaviour is not really correct, but it's easy enough to work
around, and it's only relevant for fringe use cases (at best). So
let's just test that the workaround really works.
* tests/link_cond.test: New test.
* tests/list-of-tests.mk: Add it.
* THANKS: Update.
2012-03-27 Stefano Lattarini <stefano.lattarini@gmail.com>
info: allow user to inhibit pruning of '${infodir}/dir'
This should have ideally been part of commit 'v1.11-519-g1ec1668'
of 23-11-2011 "info: allow user to inhibit creation/update of
'${infodir}/dir'". Well, better late than never.
* lib/am/texinfos.am (uninstall-info-am): Don't look anymore at the
output of "install-info --version" to decide whether to use it to
update the '${infodir}/dir' or not; instead, honour the environment
variable 'AM_UPDATE_INFO_DIR'. To avoid code duplication with ...
(install-info-am): ... the recipe of this target, move common code
out to ...
(am__can_run_installinfo): ... this new internal variable.
* tests/install-info-dir.test: Enhance.
* doc/automake.texi (Texinfo): Update.
* NEWS: Likewise.
2012-03-26 Bruno Haible <bruno@clisp.org>
Stefano Lattarini <stefano.lattarini@gmail.com>
vala tests: fix spurious failures with older valac (<= 0.7.2)
See automake bug#11093.
The Vala compiler before the 0.7.3 release does not support the
'--profile' option. But some of our tests were relying on it, so
skip those tests if the detected Vala compiler is too old.
* tests/vala-vpath.test, tests/vala-mix.test, tests/vala-mix2.test
(configure.in): Require vala version >= 0.7.3 in AM_PROG_VALAC call.
2012-03-26 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix a timestamp issue, and other minor buglets
Cherry picked from commit v1.11-1988-g82616f0 of 21-02-2012.
Reported by Panther Martin in automake bug#10848. See also
automake bug#11093.
* tests/conffile-leading-dot.test: Add a proper '$sleep' invocation,
to avoid spurious failures on fast systems without sub-second
timestamp resolutions. Add other minor related and unrelated
improvements and fixlets since we are at it.
2012-03-26 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix spurious failure with older autoconf
Cherry picked from commit v1.11-1950-gba5a89b of 16-02-2012.
* tests/conffile-leading-dot.test: Relax grepping of 'config.status'
stderr, to cater for older autoconf. Issue revealed by a failure
with autoconf 2.63 on Cygwin 1.5.25. See also automake bug#11093.
2012-03-24 Stefano Lattarini <stefano.lattarini@gmail.com>
fixup: update THANKS
* THANKS: Add entry for Tim Landscheidt.
2012-03-24 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: terminate unfinished sentence, fix reference to a test case
* doc/automake.texi (Using the TAP test protocol): Here.
2012-03-24 Tim Landscheidt <tim@tim-landscheidt.de> (tiny change)
docs: fix some small typos and grammaros
* doc/automake.texi (Using the TAP test protocol): Here ...
* tests/tap-doc2.test: ... and here.
2012-03-24 Stefano Lattarini <stefano.lattarini@gmail.com>
build: remove duplicated entries in $(TESTS)
* tests/list-of-tests.mk (handwritten_TESTS): Remove duplicated
entries for test cases 'extra-portability*.test'.
2012-03-23 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: update TODO file
We don't have to make creation of $(foodir) conditional when
foo_PRIMARY is conditionally defined; that has been solved in
a more sweeping way by commit v1.11-759-g368f1c4 of March 18,
which solved bug#11030 and bug#10997.
The "check" target already depends on the "all" target.
Remove comment "investigate problems with conditionally defined
libraries"; it is aimed at automake 1.5 (!) and too terse and old
to be useful now.
Remove the 12 years old suggestion that "distcheck should make sure
that each file that uses _() is listed in POTFILES.in"; this is
handled by gnulib-provided syntax check 'sc_po_check' already today.
Don't tell to "Run automake before libtool"; automake does not
automatically run libtool anymore today.
Remove hint about the possibility to "rewrite automake in guile" or
"add a GUI": we are not going to do so.
The automatic de-ANSI-fication feature has already been remove, so
no need to suggest its potential removal in the future.
Remove reference to a prospective "cvs" option that could add some
cvs-specific rules. First of all, CVS is falling out of use today.
Secondly, and most to the point, instead of guessing which VCS
is going to be most popular and try to hack support for it into
automake, we should leave it to developer-specific makefile
fragments offered by projects like Gnulib to provide such rules
(they are already doing so with succcess).
About DOS support: it should actually be dropped, not extended.
Add link about Karl Berry's proposal of preferring HTML over Info
documentation installed in the local system:
<http://lists.gnu.org/archive/html/texinfo-devel/2012-03/msg00018.html>
Remove items about "beautification" of output Makefile.in; they
are pretty obvious, and mostly noise (after all, everybody prefers
clean output where possible). Leave it to any developer doing
future refactorings to find out low-hanging and/or high-impact
optimizations and beatifications of the generated Makefiles.
Remove item about internationalization: we're not going to
implement it.
Remove an item explicitly marked as "not that it matters".
The order of files in a distribution tarball does not really
matter, nobody has ever complained about it, so do not worry
about it.
Remove the suggestions about allowing hierarchy of dirs to share
one aclocal.m4 and about printing full file name of Makefile.am
or configure.in when giving error, in order to help very large
trees: nobody has ever complained about the current behaviours,
so no real need to change them.
2012-03-21 Stefano Lattarini <stefano.lattarini@gmail.com>
fixup: bootstrapping issues with 'list-of-tests.mk'
* tests/list-of-tests.mk: This file is expected to be executed
directly with make from the bootstrap script, so we can't use
Automake '##' comments after line continuations.
2012-03-21 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
maint: move definition of XFAIL_TESTS near TESTS
Actually, after the trivial merge conflicts have been solved, what
this change actually does is moving the definition of XFAIL_TESTS
near that of handwritten_TESTS. But the rationale is the same of
that of commit 'v1.11-761-gabf40ce' (being merged here), and still
works, so all is good.
2012-03-21 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: move definition of XFAIL_TESTS near TESTS
The $(TESTS) variable is defined in file 'tests/list-of-tests.mk',
while the $(XFAIL_TESTS) variable is defined in 'tests/Makefile.am'.
This means that when a new xfailing test is to be added, two files
must be touched; this is suboptimal and slightly confusing.
* tests/Makefile.am (XFAIL_TESTS): Definition moved ...
* tests/list-of-tests.mk: ... here.
2012-03-19 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix spurious failures caused by uses of 'configure.in'
Issue introduced by the recent merges of maint into master, and
revealed by "make maintainer-check".
* tests/aclocal-install-fail.test: Likewise.
* tests/aclocal-install-mkdir.test: Likewise.
* tests/aclocal-verbose-install.test: Likewise.
* tests/installdir.test: Likewise.
* tests/instdir-cond2.test: Likewise.
* tests/instdir-no-empty.test: Likewise.
* tests/python-pr10995.test: Likewise.
* tests/aclocal-no-install-no-mkdir.test: Likewise.
2012-03-18 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
install-mans: avoid spurious failure with NetBSD make
install: don't create empty dirs when an empty 'foo_PRIMARY' is used
aclocal: remove a couple of useless imports
aclocal: create local directory where to install m4 files
2012-03-18 Stefano Lattarini <stefano.lattarini@gmail.com>
install-mans: avoid spurious failure with NetBSD make
* lib/am/mans.am: After the changes introduced by previous commit
v1.11-759-g368f1c4, some manpage installation recipes started to
fail spuriously on NetBSD 5.1 make. Apparently, the system make
there eats backslashes used to escape whitespace characters in the
relevant recipes. Revert to slightly slower but safer idioms that
avoid the need of such escaping.
2012-03-18 Stefano Lattarini <stefano.lattarini@gmail.com>
install: don't create empty dirs when an empty 'foo_PRIMARY' is used
Fixes automake bug#11030 and bug#10997.
An empty declaration of "foo_PRIMARY" in a Makefile.am used to
cause the generated install rules to create the directory $(foodir)
anyway, even if nothing was to be installed there.
While this could be seen as a convenient way to create a $(foodir)
directory upon "make install" (respecting $(DESTDIR) settings and
such), it also caused problems with conditionals; for example, an
input of:
if FALSE
pgkdata_DATA = something
endif
caused the generated install rules to unconditionally create the
$(pkgdatadir) directory (see automake bug#10997).
Also, a user wanting to create an empty directory upon installation
can easily do so with a custom install hook, as in:
installdirs-local:
$(MKDIR_P) $(DESTDIR)$(foodir)
install-data-hook: installdirs-local
On the other hand, the old behavior of "always create $(foodir),
even if 'foo_PRIMARY' is empty" was harder and more tricky to
override.
Thus, from now on, an empty declaration of "foo_PRIMARY" will not
cause the directory $(foodir) to be created upon "make install"
anymore.
* lib/am/data.am, lib/am/java.am, lib/am/libs.am, lib/am/lisp.am,
lib/am/ltlib.am, lib/am/mans.am, lib/am/progs.am, lib/am/python.am,
lib/am/scripts.am, lib/am/texinfos.am: Adjust install rules to avoid
creating an installation directory if no files are actually to be
installed there.
* tests/instdir-empty.test: Remove, it was testing a semantic
opposite to the one we now want and implement.
* tests/instdir-no-empty.test: New test, check the new semantic.
* tests/instdir-cond.test: Enhance. Move the still-failing part
of the test ...
* tests/instdir-cond2.test: ... here.
* tests/list-of-tests.mk, tests/Makefile.am (XFAIL_TESTS): Update.
* tests/java3.test: Adjust to avoid spurious failures.
* HACKING, NEWS, THANKS: Update.
2012-03-17 Stefano Lattarini <stefano.lattarini@gmail.com>
aclocal: remove a couple of useless imports
* aclocal.in (File::stat, Cwd): Remove these imports, they are not
really required.
2012-03-16 Stefano Lattarini <stefano.lattarini@gmail.com>
aclocal: create local directory where to install m4 files
Fixes automake bug#8168 and bug#10816.
A call like "aclocal -I m4 --install" used to fail if the 'm4'
directory wasn't pre-existing. This could be particularly
annoying when running in a checked-out version from a VCS like
git, which doesn't allow empty directories to be tracked.
* aclocal.in (File::Path): New import.
(scan_m4_dirs): Don't die if the first directory of type FT_USER
doesn't exist and the '--install' option was given; that directory
will be created later ...
(install_file): ... here. Change signature of this function: now
it takes as second argument the destination directory rather than
the destination file. Crate the destination directory if it
doesn't already exist. In verbose mode, tell what is being copied
where.
(write_aclocal): Update to the changes in 'install_file'.
* NEWS, THANKS: Update.
* tests/aclocal-install-fail.test: New test.
* tests/aclocal-install-mkdir.test: Likewise.
* tests/aclocal-no-install-no-mkdir.test: Likewise.
* tests/aclocal-verbose-install.test: Likewise.
* tests/list-of-tests.mk: Add them.
2012-03-15 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
python: avoid failures due to $(am__py_compile) being undefined
python: expose automake bug#10995
2012-03-15 Steven Drake <sbd@NetBSD.org> (tiny change)
python: avoid failures due to $(am__py_compile) being undefined
Fixes automake bug#10995, introduced in commit v1.11-372-gb46debf.
* lib/am/python.am: Move the definition of 'am__py_compile' to
ensure it is always emitted in the output Makefile.in. Previously,
this wouldn't have happened if the input Makefile.am contained a
'noinst_PYTHON' declaration before a 'python_PYTHON' one.
* tests/Makefile.am (XFAIL_TESTS): Remove 'python-pr10995.test' and
'python.test'.
* NEWS: Update.
2012-03-15 Stefano Lattarini <stefano.lattarini@gmail.com>
python: expose automake bug#10995
* tests/python.test: Expose the bug in grepping tests.
* tests/python-noinst.test: New functional test to expose the
bug.
* tests/list-of-tests.mk: Add it.
* tests/Makefile.am (XFAIL_TESTS): Add the new test and the
extended one.
* THANKS: Update.
2012-03-14 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: one more use of 'unindent' function
* tests/yacc-d-cxx.test (write_parse, write_main): Use 'unindent'
instead of ad-hoc sed invocation to strip extra leading whitespace.
2012-03-14 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: remove redundant 'set -e' calls
* tests/dist-pr109765.test: Do not set the 'errexit' shell flag,
as it is already set by 'tests/defs'.
* tests/instdir-cond.test: Likewise.
* tests/instdir-empty.test: Likewise.
* tests/lex-clean-cxx.test: Likewise.
* tests/lex-clean.test: Likewise.
* tests/lex-depend-cxx.test: Likewise.
* tests/lex-depend.test: Likewise.
* tests/lex-line.test: Likewise.
* tests/lex-nodist.test: Likewise.
* tests/lex-pr204.test: Likewise.
* tests/silent-lex.test: Likewise.
* tests/silent-yacc-headers.test: Likewise.
* tests/silent-yacc.test: Likewise.
* tests/vala-mix2.test: Likewise.
* tests/yacc-auxdir.test: Likewise.
* tests/yacc-bison-skeleton-cxx.test: Likewise.
* tests/yacc-bison-skeleton.test: Likewise.
* tests/yacc-clean-cxx.test: Likewise.
* tests/yacc-cxx.test: Likewise.
* tests/yacc-d-cxx.test: Likewise.
* tests/yacc-deleted-headers.test: Likewise.
* tests/yacc-depend.test: Likewise.
* tests/yacc-depend2.test: Likewise.
* tests/yacc-line.test: Likewise.
* tests/yacc-mix-c-cxx.test: Likewise.
* tests/yacc-weirdnames.test: Likewise.
2012-03-14 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
tests: avoid spurious failures in get-sysconf.test
scripts: bump the depcomp scriptversion
sync: some auxiliary files synced from upstream
coverage: an empty foo_PRIMARY should create directory $(foodir)
coverage: make sure am__py_compile is defined when needed
coverage: expose automake bug#10997
coverage: expose automake bug#10975
getopt: relax version requirement for perl
+ Extra non-trivial edits:
* tests/dist-pr109765.test: Use 'configure.ac', not 'configure.in'.
* tests/instdir-cond.test: Likewise.
* tests/instdir-empty.test: Likewise.
2012-03-14 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix spurious failure with older m4
Reported by Panther Martin in automake bug#10866, diagnosed by
Panther Martin and Eric Blake.
Older GNU m4 versions (e.g., 1.4.6) did error reporting at the end
of an error construct rather than the beginning. This was causing
a spurious testsuite failure due to an off-by-one error in the line
number reported in an aclocal diagnostic.
* tests/cond41.test: Keep all the body of the 'AM_COND_IF'
invocation on a single line, to avoid the off-by-one error.
2012-03-14 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid spurious failures in get-sysconf.test
This change fixes the last bit of automake bug#10866.
* tests/get-sysconf.test: When Homebrew spawns a build, even if
from a project's VCS, it stages the files in a new temporary
directory, instead of building directly from a VCS checkout.
This behaviour was causing a spurious failure in this test, which
expected to find either a ChangeLog file or a .git directory in
the source directory (the former happening when the test was run
from a distribution tarball, the latter when it was run from a
git checkout). The Homebrew issue shows that these expectations
are not truly warranted, so relax the test to just give a warning,
not a failure, in case they do not hold. Since we are at it, fix
an unrelated weakness in the displaying of the git log, which
could have failed when the builddir was not a subdirectory of the
srcdir.
2012-03-12 Peter Rosin <peda@lysator.liu.se>
scripts: bump the depcomp scriptversion
* lib/depcomp (scriptversion): Bump, to account for recent changes.
2012-03-12 Stefano Lattarini <stefano.lattarini@gmail.com>
sync: some auxiliary files synced from upstream
* lib/texinfo.tex: Synced from upstream, by "make fetch".
* lib/config.guess: Likewise.
* lib/config.sub: Likewise.
* lib/gnupload: Likewise.
2012-03-12 Stefano Lattarini <stefano.lattarini@gmail.com>
coverage: an empty foo_PRIMARY should create directory $(foodir)
For example, a Makefile.am containing the definition:
pkgdata_DATA =
should cause the 'install' rule of the generated Makefile.in to
create the '$(pkgdatadir)' directory (respecting any DESTDIR
setting as well).
Suggestion by Peter Breitenlohner in automake bug#10997.
2012-03-12 Stefano Lattarini <stefano.lattarini@gmail.com>
coverage: make sure am__py_compile is defined when needed
See automake bug#10995.
* tests/python.test: Also make sure 'am__py_compile' is defined
correctly in the generated Makefile.in.
2012-03-12 Daiki Ueno <ueno@unixuser.org> (tiny change)
coverage: expose automake bug#10997
* tests/instdir-cond.test: New test.
* tests/list-of-tests.mk: Add it.
* tests/Makefile.am (XFAIL_TESTS): Likewise.
2012-03-09 Stefano Lattarini <stefano.lattarini@gmail.com>
coverage: expose automake bug#10975
* tests/dist-pr10975.test: New test.
* tests/list-of-tests.mk: Add it.
* tests/Makefile.am (XFAIL_TESTS): Likewise.
2012-03-07 Stefano Lattarini <stefano.lattarini@gmail.com>
getopt: relax version requirement for perl
* lib/Automake/Getopt.pm: Require perl 5.6.0, not 5.6.2: the former
is enough. See also commit 'v1.11-2054-g7df05a0' on master (dated
04-03-2012).
2012-03-07 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
cosmetics: fix repeated changelog entry heading
2012-03-07 Stefano Lattarini <stefano.lattarini@gmail.com>
cosmetics: fix repeated changelog entry heading
2012-03-07 Peter Rosin <peda@lysator.liu.se>
Merge branch 'maint'
2012-03-07 Peter Rosin <peda@lysator.liu.se>
Merge branch 'msvc' into maint
This merge remedies the confusing situation that some changes
destined for both the master branch and the release branch (a.k.a.
branch-1.11) currently needs to be made on the non-obvious msvc
branch and not on the more natural maint branch. This has caused
a seemingly endless string of less than optimal commits.
The reason for the confusion stems from the fact that the changes made
on the msvc branch became too radical and was considered only suitable
for the master branch, and was thus written in a form suitable for
master and then merged there. Later, the msvc branch was merged
directly into branch-1.11, in order to rush the new features to the
market and to keep the released scripts (lib/ar-lib, lib/compile and
lib/depcomp) consistent with those on the master branch. However,
some changes had to be made to the features added by the msvc branch
in order for them to fit the requirements of branch-1.11, notably that
the warnings issued in the extra-portability class cannot be enabled
by -Wall in the 1.11.x maintenance releases.
In retrospect, it would have been better to not merge msvc directly
into branch-1.11, but instead do it via the maint branch (followed up
with a dummy merge from maint into master) the moment it was decided
that the msvc changes should make it into branch-1.11.
All in all, this merge is going to affect neither the master branch
nor branch-1.11, since it is followed up with dummy merges masking all
changes. The merge is made to maintain the sanity of the poor
developers, who wishes to once again have a working maint branch.
Discussion about merging the msvc branch into branch-1.11:
http://lists.gnu.org/archive/html/automake/2011-10/msg00030.html
Discussion about why this merge hasn't happened before:
http://lists.gnu.org/archive/html/automake/2011-12/msg00051.html
Extra edits below.
* lib/Automake/ChannelDefs.pm: Use the version from branch-1.11.
* tests/ar-lib3.test: Likewise.
* tests/ar-lib4.test: Likewise.
* tests/extra-portability.test: Likewise.
* tests/extra-portability2.test: Likewise.
* tests/extradep.test: Likewise.
* tests/extradep2.test: Likewise.
* tests/list-of-tests.mk: Likewise.
* HACKING: Backport the version from branch-1.11 while at it (as the
change on branch-1.11 is also present on master via an unrelated
commit), even though this change has nothing to do with the changes
on the msvc branch.
2012-03-07 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: remove useless sleep from tests on remake rules
The sleeps were there to make generated autotools files strictly
newer than their sources; however, this is not necessary, since
POSIX mandates that make considers files with the same timestamp
of their dependencies to be up-to-date.
* tests/remake9a.test: Remove useless $sleep.
* tests/remake9b.test: Likewise.
* tests/remake9c.test: Likewise.
* tests/remake9d.test: Likewise.
* tests/remake10a.test: Likewise.
* tests/remake10b.test: Likewise.
* tests/remake10c.test: Likewise.
2012-03-07 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'msvc' into master (dummy merge)
2012-03-07 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint' into msvc
* maint:
news: describe recently-fixed bug in vala support
depcomp: add support for IBM xlc/xlC compilers
2012-03-06 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge remote-tracking branch 'origin/master'
2012-03-06 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
news: describe recently-fixed bug in vala support
depcomp: add support for IBM xlc/xlC compilers
2012-03-06 Stefano Lattarini <stefano.lattarini@gmail.com>
news: describe recently-fixed bug in vala support
* NEWS (Long-standing bugs): Document fix for bug#10894, fixed
by commit 'v1.11-696-g51f61df' of 27-02-2012.
2012-03-06 Michael Hofmannm <hofma@googlemail.com> (tiny change)
depcomp: add support for IBM xlc/xlC compilers
* lib/depcomp (xlc): New depmode.
* NEWS, THANKS: Update.
2012-03-06 Peter Rosin <peda@lysator.liu.se>
tests: do not clobber the $CC set by AM_PROG_CC_C_O
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/yacc-dist-nobuild-subdir.test: Drop -e from the $MAKE
invocations. This is safe since DISTCHECK_CONFIGURE_FLAGS is not
specified in the Makefile and since the YACC override is carried
over from the configure invocation into the Makefile making it
redundant to specifiy it again in the environment for $MAKE.
2012-03-06 Peter Rosin <peda@lysator.liu.se>
tests: explicitly state that our lexers do not require unistd.h
By default, GNU flex generates code that is dependent on unistd.h,
which is not portable to non-ANSI systems causing spurious test
failures.
* tests/cond35.test (tscan.l): Define YY_NO_UNISTD_H.
* tests/lex-clean.test (lexer.l): Likewise.
* tests/lex-depend.test (joe.l): Likewise.
* tests/lex-lib-external.test (foo.l): Likewise.
* tests/lex-lib.test (foo.l): Likewise.
* tests/lex-libobj.test (foo.l): Likewise.
* tests/lex-line.test (zardoz.l): Likewise.
* tests/lex-nodist.test (lexer.l): Likewise.
* tests/lex-noyywrap.test (foo.l): Likewise.
* tests/lex-pr204.test (lexer.l): Likewise.
* tests/lex-subobj-nodep.test (subl/sl.l): Likewise.
* tests/lex3.test (foo.l): Likewise.
* tests/lex5.test (foo/foo.l): Likewise.
* tests/lexvpath.test (lexer.l): Likewise.
* tests/silent-lex.test (foo.l): Likewise.
* tests/silent-many-gcc.test (foo5.l): Likewise.
* tests/silent-many-generic.test (foo5.l): Likewise.
* tests/lex-clean-cxx.test (parsefoo.lxx): Likewise. Also specify
the never-interactive option to prevent usage of the non-ANSI
function isatty(3) (from unistd.h).
* tests/lex-depend-cxx.test (joe.ll): Likewise.
* tests/README: Describe these quirks.
2012-03-06 Peter Rosin <peda@lysator.liu.se>
Merge branch 'msvc'
* msvc:
scripts: support -I <dir> -L <dir> and -l <lib> for cl in compile
2012-03-06 Peter Rosin <peda@lysator.liu.se>
scripts: support -I <dir> -L <dir> and -l <lib> for cl in compile
POSIX mandates that the compiler accepts a space between the -I,
-l and -L options and their respective arguments. See
http://pubs.opengroup.org/onlinepubs/000095399/utilities/c99.html
* lib/compile (func_cl_dashl): New function with factored out code
for implementing the -l option for the cl wrapper.
(func_cl_dashL): New function with factored out code implementing
the -L option for the cl wrapper.
(func_cl_wrapper): Use func_cl_dashl to implement both -l <lib>
and -l<lib>, and func_cl_dashL to implement both -L <dir> and
-L<dir>. Also add support for -I <dir>.
(scriptversion): Update.
* tests/compile3.test: Test both with and without a space between
-I, -l and -L and their respective arguments.
* tests/compile5.test: Likewise.
* tests/compile6.test: Likewise.
* tests/compile3.test: Likewise.
* NEWS: Update.
2012-03-04 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: drop 'Automake::Struct' module
Now that we require Perl 5.6, we can drop the 'Automake::Struct'
module, which was basically just a backport of Perl 5.6's
'Class::Struct' to Perl 5.5.
* automake.in: Use 'Class::Struct', not 'Automake::Struct'.
* lib/Automake/Struct.pm: Delete.
* lib/Automake/Makefile.am (dist_perllib_DATA): Remove it.
2012-03-04 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: require perl 5.6 throughout
That version of perl is quite old already, so it should be OK to
require it. More importantly, it is the older perl versions the
developers can currently use for testing, thus it's safer and more
honest to just require it throughout. And anyway, we were already
requiring it in Automake::Getopt, which implied that both automake
and aclocal wouldn't have worked in practice with an older perl
version.
See also the discussion related to automake bug#10925.
* lib/Automake/ChannelDefs.pm: Adjusted to require perl 5.6.
* lib/Automake/Channels.pm: Likewise.
* lib/Automake/Condition.pm: Likewise.
* lib/Automake/Configure_ac.pm: Likewise.
* lib/Automake/DisjConditions.pm: Likewise.
* lib/Automake/FileUtils.pm: Likewise.
* lib/Automake/General.pm: Likewise.
* lib/Automake/Item.pm: Likewise.
* lib/Automake/ItemDef.pm: Likewise.
* lib/Automake/Location.pm: Likewise.
* lib/Automake/Options.pm: Likewise.
* lib/Automake/Rule.pm: Likewise.
* lib/Automake/RuleDef.pm: Likewise.
* lib/Automake/Struct.pm: Likewise.
* lib/Automake/VarDef.pm: Likewise.
* lib/Automake/Variable.pm: Likewise.
* lib/Automake/Version.pm: Likewise.
* lib/Automake/Wrap.pm: Likewise.
* lib/Automake/XFile.pm: Likewise.
2012-03-04 Stefano Lattarini <stefano.lattarini@gmail.com>
cosmetics: remove useless escaping for "'" character
2012-03-04 Stefano Lattarini <stefano.lattarini@gmail.com>
test defs: remove redundant and unused requirements
* tests/defs (xsi-bin-sh, xsi-shell): Remove these requirements,
they have never been used.
(cygpath, cscope): Recognizing these explicitly is mostly redundant;
just merge them with the default "catch all" rule, and adjust that
accordingly.
(bzip2): Adjust some outdated comments.
2012-03-03 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix spurious failure on case-insensitive file systems
See automake bug#10866.
* tests/java-uninstall.test: Relax the test a little to cater to
case-insensitive file systems, like HFS+ on MacOS X.
2012-03-02 Stefano Lattarini <stefano.lattarini@gmail.com>
news: more about planned backward incompatibilities
* NEWS (Future backward-incompatibilities): Starting from the next
major Automake versions, the parallel testsuite driver will be used
by default, instead of the serial testsuite driver as in the past.
2012-03-02 Stefano Lattarini <stefano.lattarini@gmail.com>
maintcheck: fix few spurious failures
* syntax-checks.mk: Fix some spurious failures by tightening and/or
tweaking few checks so that some false positives end up whitelisted.
2012-03-02 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix spurious failure due to exported MAKEINFO
* tests/txinfo30.test: Unset variable MAKEINFO, as its content could
take precedence over our faked makeinfo script and cause a spurious
failure. Reported as part of automake bug#10866. Add trailing ':'
command since we are at it.
2012-03-02 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix spurious failure in a vala test
* tests/vala-mix2.test: Append to 'configure.ac' rather than to
'configure.in'. Reported as part of automake bug#10866, and also
revealed by "make maintainer-check".
2012-03-02 Stefano Lattarini <stefano.lattarini@gmail.com>
self checks: relax tests on cleanup
Some find(1) implementations have problems operating recursively on
directories having subdirectories with null permissions, even when
the permissions of such subdirectory should be fixed by find before
it descends into them; for example, with this setup:
% mkdir a a/b
% chmod 000 a/b
a command like this:
% find a -type d ! -perm -700 -exec chmod u+rwx '{}' ';'
fails with this diagnostic on MacOS X 10.7:
find: a/b: Permission denied
and with this diagnostic on Solaris 10:
find: cannot read dir a/b: Permission denied
The problem is that our self checks were simply demanding too much
from our cleanup trap: our tests never use subdirectories with null
permissions, so it doesn't matter if the cleanup trap fails to
handle those. Just relax the self checks to avoid such useless
testsuite noise.
* tests/self-check-cleanup.tap: Only try directories missing
write permissions, not with null permission. That should be
enough for our usages.
2012-03-02 Peter Rosin <peda@lysator.liu.se>
Merge branch 'msvc'
* msvc:
news: add entry about recent 'ar-lib' changes
2012-03-02 Peter Rosin <peda@lysator.liu.se>
news: add entry about recent 'ar-lib' changes
* NEWS: Add information about recent 'ar-lib' changes.
2012-03-02 Peter Rosin <peda@lysator.liu.se>
scripts: recognize the "q", "s" and "S" actions/modifiers in ar-lib
* lib/ar-lib: Implement the "q" (quick) action as a synonym
for "r" (replace). Ignore "s" (symbol index) and "S" (no symbol
index) when used as modifiers and "s" when used as a command,
there is simply no way for Microsoft lib to not update the
symbol table index in the archive.
(scriptversion): Update.
* tests/ar-lib.test: Check the added behavior. Also add checks
for the recently added "u" (update) and "v" (verbose) modifiers.
2012-03-02 Peter Rosin <peda@lysator.liu.se>
Merge branch 'fix-vala-test'
* fix-vala-test:
tests: fix (harmless) botched merge
2012-03-02 Peter Rosin <peda@lysator.liu.se>
tests: fix (harmless) botched merge
Commit v1.11-1750-g9928ea5 of 2012-01-16 (Merge branch 'maint')
reordered the macro calls so that AM_PROG_AR ended up after
AC_PROG_LIBTOOL, which is not allowed. This error went by
undetected since AC_PROG_LIBTOOL was redefined, but that also
removed the ordering requirement making the error benign.
* tests/vala.test: Put AM_PROG_AR before AC_PROG_LIBTOOL.
2012-03-02 Peter Rosin <peda@lysator.liu.se>
Merge branch 'maint' into msvc
2012-03-01 Peter Rosin <peda@lysator.liu.se>
scripts: recognize the "q", "s" and "S" actions/modifiers in ar-lib
* lib/ar-lib: Implement the "q" (quick) action as a synonym
for "r" (replace). Ignore "s" (symbol index) and "S" (no symbol
index) when used as modifiers and "s" when used as a command,
there is simply no way for Microsoft lib to not update the
symbol table index in the archive.
(scriptversion): Update.
* tests/ar-lib.test: Check the added behavior. Also add checks
for the recently added "u" (update) and "v" (verbose) modifiers.
2012-02-29 Peter Rosin <peda@lysator.liu.se>
tests: do not try to use ar(1) when $AR points to something else
* tests/libobj10.test: Move the archive listing commands to the
Makefile, so that $AR - as determined by configure - can be
used.
* tests/libobj17.test: Likewise.
2012-02-29 Peter Rosin <peda@lysator.liu.se>
tests: make tests behave for the AR=lib case
These below tests were left mostly as-is when AM_PROG_AR was
introduced (with libobj16b being the exception, that test was
forgotten or has regressed since), in a misguided attempt to
not make them diverge from the original problem reports.
Modernize them so that they do not FAIL when $AR is Microsoft
'lib'.
* tests/libobj16b.test: Add AM_PROG_AR to configure.ac and remove
the no-longer-needed -Wno-extra-portability option when invoking
automake.
* tests/pr300-lib.test: Likewise.
* tests/pr300-ltlib.test: Likewise.
* tests/pr307.test: Likewise.
* tests/pr401.test: Likewise. Also fetch the 'ar-lib' script.
* tests/pr401b.test: Likewise.
* tests/pr401c.test: Likewise.
2012-02-29 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
vala: fix 'valac' calls for projects with mixed Vala/C
vala: expose automake bug#10894
2012-02-29 Dave Goodell <goodell@mcs.anl.gov> (tiny change)
Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix spurious failure with Portland Compilers
* tests/silent-many-generic.test (configure.ac): Be more careful
in the workaround to avoid spurious failures with C++ compilers
containing the string "CC" in their names; this avoids spurious
failures with at least the Sun Studio C++ compiler (when named
"sunCC") and the Portland Group C++ Compiler ("pgCC").
Also handle arguments with whitespace correctly in the 'am--cxx'
temporary wrapper.
* THANKS: Update.
2012-02-28 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix spurious failure when dependency tracking is unavailable
Report by Dave Goodell. See automake bug#8880.
* tests/yacc-dist-nobuild.test: Run the sanity check that aims at
ensuring we really cover the expected code paths in a new build
directory, to avoid spurious failures when automatic dependency
tracking is disabled.
2012-02-27 Stefano Lattarini <stefano.lattarini@gmail.com>
vala: fix 'valac' calls for projects with mixed Vala/C
Fixes automake bug#10894.
* automake.in (lang_vala_finish_target): Strip non-vala files
from the dependencies of vala stamps, and from the invocation
of valac compiler. Related refactorings.
* tests/Makefile.am (XFAIL_TESTS): Remove 'vala-mix2.test'.
2012-02-27 Stefano Lattarini <stefano.lattarini@gmail.com>
vala: expose automake bug#10894
* tests/vala-mix2.test: New test.
* tests/list-of-tests.mk: Add it.
* tests/Makefile.am (XFAIL_TESTS): Likewise.
* THANKS: Update.
2012-02-27 Stefano Lattarini <stefano.lattarini@gmail.com>
cosmetics: remove a duplicated copyright line
* tests/list-of-tests.mk: Remove a duplicated copyright line.
2012-02-27 Stefano Lattarini <stefano.lattarini@gmail.com>
coverage: --program-transform shouldn't transform too much
Stemmed from a report by Vladimir 'φ-coder/phcoder' Serbinenko:
<http://lists.gnu.org/archive/html/automake/2012-02/msg00025.html>
* tests/transform3.test: New test, checking that --program-transform
does not transform too much stuff (in particular, pkglibexecdir,
pgklibdir and pkgdatadir).
* tests/list-of-tests.mk: Add it.
* THANKS: Update.
2012-02-26 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid spurious failure (line too long in awk)
* tests/parallel-tests-many.test: Use perl, not awk, to write the
Makefile.am with (deliberately) overly long TESTS content, as some
inferior awk implementations (e.g., Solaris 10 /usr/bin/awk) are
unable to handle the long lines used there and die with errors like:
"awk: string too long near line 5".
2012-02-26 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid spurious failures when awk is "traditional awk"
* tests/Makefile.am (do_subst): Also substitute '@AWK@'.
* tests/defs-static.in ($AWK): New, user-overridable and defaulting
to the substituted '@AWK@'.
* tests/defs (fetch_tap_driver): When the shell+awk implementation
of the TAP driver is required, export AM_TAP_AWK to point to a
properly capable awk, since the default awk might be a "traditional"
implementation, which won't be enough for our driver. This is the
right fix, since a proper setting of AM_TAP_AWK in the driver's
environment is expected (and documented to be required) in real
world uses of 'tap-driver.sh'.
2012-02-26 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid many spurious failures for shells with busted 'set -e'
Some versions of the BSD Korn shell wrongly bail out when the
'errexit' shell flag is active and the left-hand command in a
"&&" list fails and that list is the *last* command of an entry
in a "case" statement.
* tests/defs (gcc, g++, gcj): Work around that.
2012-02-26 Stefano Lattarini <stefano.lattarini@gmail.com>
aclocal: don't create /usr/share/aclocal as empty
Related to automake bug#10791.
Since automake 1.11.2, aclocal no longer succeeds if the system
acdir '${datadir}/aclocal' (i.e., "/usr/share/aclocal" when
${prefix} is "/usr") does not exist. So we now have a directory
*installed empty by default*, but whose existence is required by
aclocal in order for it to function at all. This might be
confusing, and sounds like asking for trouble in the long term.
So we now also install a simple README file in that directory,
which briefly explains its purpose and warn that its existence
is required by the normal aclocal functioning.
* m4/acdir/README: New file.
* m4/Makefile.am (dist_system_ac_DATA): Add it.
* m4/acdir/.placeholder: Delete, no more needed.
* m4/Makefile.am (EXTRA_DIST): Remove it.
* THANKS: Update.
2012-02-26 Stefano Lattarini <stefano.lattarini@gmail.com>
hacking: document format for git commit messages
* HACKING (Writing a good commit message): New section.
(Working with git): A related minor adjustment.
2012-02-25 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: improve 'dist-hook' documentation
* doc/automake.texi (The dist Hook): Explicitly document the fact
that the dist-hook should account for the case where the source
tree is read-only, mostly for the benefit of distcheck. Since
we are at it, do some minor unrelated rewordings, and remove
obsolescent advice. Motivated by the discussion on automake
bug#10878.
* tests/disthook.test: New test.
* tests/disthook-perms.test: Delete as obsolete.
* tests/list-of-tests.mk: Adjust.
2012-02-25 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: improve "make distcheck" documentation
* doc/automake.texi (Checking the Distribution): The fact that
"make distcheck" uses a read-only srcdir wasn't documented clearly
enough here. Fix that. Since we are at it, be more explicit
about the steps undertaken by "make distcheck", and re-organize
this section a bit. Motivated by the discussion on automake
bug#10878.
(distcleancheck): Rename this node (in the "FAQ" section) ...
(Errors with distclean): ... to this.
Add a proper "FIXME" comment.
2012-02-25 Stefano Lattarini <stefano.lattarini@gmail.com>
cosmetics: proper capitalization and full stops in 'm4/depend.m4'
2012-02-25 Stefano Lattarini <stefano.lattarini@gmail.com>
coverage: dist-hook and distcheck-hook can modify file permission
See automake bug#10878.
* tests/dist-hook-perms.test: New test, checking that the user can
use the 'dist-hook' target to modify permissions of distributed
files before putting them in the distribution tarball.
* tests/distcheck-writable-srcdir.test: New test, checking that the
user can use 'distcheck-hook' to ensure his packages is built by
"make distcheck" with a writable srcdir. This goes against the GNU
Coding Standards, but some package authors might not care about
them too much, and it's nice to support their use case too.
* tests/list-of-tests.mk: Add them.
2012-02-25 Jim Meyering <meyering@redhat.com>
tests: avoid spurious failure when gcj is not installed
Since yesterday's commit, v1.11-2019-g4d2bf42,
the gcj4 test would fail when gcj is not installed.
* tests/defs-static.in (GNU_GCJ, GNU_GCJFLAGS): Define.
* tests/Makefile.am (do_subust): Add those to the list of
substituted symbols.
2012-02-24 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: look for GNU Java compiler at configure time
Do this for consistency with what is done with other compilers.
* configure.ac: Look for GNU java compiler at configure time.
* tests/defs (gcj): Adjust and simplify.
($am__tool_prefix): Remove definition, it's not used anymore.
2012-02-24 Stefano Lattarini <stefano.lattarini@gmail.com>
refactor: in Automake::Options (no semantic change)
* lib/Automake/Options.pm: Prefer leading spaces to leading tabs
throughout. Minor whitespace and comment changes.
(_process_option_list): Simple refactoring to make the code more
pleasant to read and easier to modify in the future. This
refactoring also reduces code duplication, with the help of ...
(_option_must_be_from_configure, _is_valid_easy_option): ... these
new internal subroutines.
* tests/tar3.test: Enhance.
* tests/silent-amopts.test: New, checks that automake complains if
the 'silent-rules' option is used in AUTOMAKE_OPTIONS.
* tests/list-of-tests.mk: Add it.
2012-02-24 Stefano Lattarini <stefano.lattarini@gmail.com>
cosmetics: typofixes and whitespace changes
* configure.ac: Fix a typo in comments.
* aclocal.in: Get rid of latest form-feed (^L) usages.
* automake.in: Likewise.
2012-02-24 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: looks for GNU compilers at configure time
This way, if the generic C compiler determined configure time is
recognized to be the GNU C compiler, we can reuse it instead of
looking for a compiler named "gcc" (over and over again) in the
test scripts requiring the GNU C compiler. Ditto for the C++,
Fortran, and Fortran 77 compilers.
This change will improve coverage by allowing us to more easily
use non-default GNU compilers throughout the testsuite.
And as a bonus, this change also removes a weakness from our
testsuite that could cause spurious failures when flags passed
to the generic compilers were erroneously reused for the GNU
compilers; see automake bug#10859.
* configure.ac: Look for the GNU compilers explicitly. Improve
some configure output and diagnostic since we are at it.
* tests/defs-static.in ($GNU_CC, $GNU_CXX, $GNU_FC, $GNU_F77):
Initialize with the values determined at configure time (while
allowing user overrides).
* tests/Makefile.am (do_edit): Also substitute the configure-time
values of GNU_CC, GNU_CXX, GNU_FC and GNU_F77.
* tests/defs (gcc, g++, gfortran, g77): Use the values for the GNU
compilers determined at configure time (i.e., $GNU_CC for the GNU
C compiler, and so on).
2012-02-24 Stefano Lattarini <stefano.lattarini@gmail.com>
docs, news: document planned removal of obsolete macros and features
* NEWS (Future backward-incompatibilities): Document planned removal
of several superseded and/or obsoleted macros, of the $(mkdir_p)
variable and @mkdir_p@ substitution, and of the support for the
two- or three-arguments invocation forms of AM_INIT_AUTOMAKE.
* doc/automake.texi: Likewise.
2012-02-24 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: remove reference to lzma support, it has been removed
Support for lzma compression in distribution tarball has been
removed in commit 'v1.11-1674-g02e9072' of 01-01-2012, "dist:
remove support for lzma (superseded by xz and lzip)", but was
still documented in the manual.
* doc/automake.texi: Remove references to the 'dist-lzma' option
and to the lzma compression support.
2012-02-24 Stefano Lattarini <stefano.lattarini@gmail.com>
cosmetics: fixlet in comment in automake
* automake.in ($configure_dist_common): In the associated comment,
refer to scanning of 'configure.ac', not 'configure.in'.
2012-02-24 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: assume 'test -x' is portable
* lib/Makefile.am (installcheck-local): To verify that the installed
scripts are actually executable, simply use 'test -x', instead of
resorting to perl and its '-x' file operator. Today, 'test -x'
should today be portable to any non-museum system. Since we are at
it, improve diagnostic in case of failure.
2012-02-24 Stefano Lattarini <stefano.lattarini@gmail.com>
deptrack: avoid few forks in configure (minor optimization)
* m4/depend.m4 (_AM_DEPENDENCIES): Use 'echo > file' instead of
'touch file' to ensure the creation of a dummy file. Adjust the
comment that explains why we can't simply use ': > file': the
problem this latter idiom tickles is present also with Solaris 10
/bin/sh, not merely with Solaris 8 /bin/sh.
2012-02-23 Stefano Lattarini <stefano.lattarini@gmail.com>
maintcheck: remove an obsolete check
* syntax-checks.mk (sc_perl_local_no_parens): Remove, we don't even
allow the use of local but for the '$_' and '$~' special variables.
(syntax_check_rules): Adjust.
2012-02-23 Stefano Lattarini <stefano.lattarini@gmail.com>
news: update w.r.t. change in quoting format
* NEWS (New in 1.11.1a): State that we prefer to quote 'like this'
or "like this" rather than `like this', as according to the new GCS
recommendations.
2012-02-23 Stefano Lattarini <stefano.lattarini@gmail.com>
automake: do not quote `like this', as per GCS recommendation
* automake.in: Convert comments, diagnostic and help screen to the
use of new quoting format 'like this' or "like this" rather than
`like this'.
* tests/stdlib2.test: Adjust.
* tests/ltinstloc.test: Likewise.
* tests/location.test: Likewise.
* tests/libtool8.test: Likewise.
* tests/ldadd.test: Likewise, and prefer trailing ':' over trailing
'Exit 0'.
2012-02-23 Stefano Lattarini <stefano.lattarini@gmail.com>
aclocal: do not quote `like this', as per GCS recommendation
* aclocal.in: Convert comments, diagnostic and help screen
to the use of new quoting format 'like this' or "like this"
rather than `like this'.
2012-02-23 Stefano Lattarini <stefano.lattarini@gmail.com>
pm: do not quote `like this', as per GCS recommendation
This patch converts the internal perl modules used by automake and
aclocal to the use of new quoting format 'like this' or "like this"
rather than `like this'.
* lib/Automake/ChannelDefs.pm, lib/Automake/Channels.pm,
lib/Automake/Condition.pm, lib/Automake/Configure_ac.pm,
lib/Automake/DisjConditions.pm, lib/Automake/FileUtils.pm,
lib/Automake/General.pm, lib/Automake/Item.pm,
lib/Automake/Rule.pm, lib/Automake/Getopt.pm,
lib/Automake/Options.pm, lib/Automake/Struct.pm,
lib/Automake/VarDef.pm, lib/Automake/Variable.pm,
lib/Automake/Version.pm, lib/Automake/XFile.pm: Update and
adjust quoting format throughout, in comments and diagnostic.
Some minor related rewordings and reformatting since we are
at it.
2012-02-23 Stefano Lattarini <stefano.lattarini@gmail.com>
m4: do not quote `like this', as per GCS recommendation
This patch converts the files comprising the automake's own build
system to the use of new quoting format 'like this' or "like this"
rather than `like this'.
* m4/auxdir.m4, m4/ccstdc.m4, m4/depend.m4, m4/depout.m4, m4/tar.m4,
m4/init.m4, m4/maintainer.m4, m4/make.m4, m4/missing.m4, m4/vala.m4,
m4/mkdirp.m4, m4/sanity.m4, m4/silent.m4, m4/strip.m4: Update and
adjust quoting format throughout, in comments and diagnostic. Some
minor related rewordings and reformatting since we are at it. Bump
serial numbers.
2012-02-23 Stefano Lattarini <stefano.lattarini@gmail.com>
build: do not quote `like this', as per GCS recommendation
This patch converts the files implementing the automake's own build
system to the use of new quoting format 'like this' or "like this"
rather than `like this'.
* bootstrap, configure.ac, syntax-checks.mk, Makefile.am,
lib/Makefile.am, m4/Makefile.am, syntax-checks.mk: Update quoting
format throughout, in comments and diagnostic. Some minor related
rewordings and reformatting since we are at it.
2012-02-23 Stefano Lattarini <stefano.lattarini@gmail.com>
hacking: update advice w.r.t. release process
* HACKING: Don't describe the obsolete 'git-release' target anymore.
Instead, document the new and improved targets 'git-tag-release' and
'git-upload-release' (introduced in commit v1.11-674-gaf5f939 of
25-01-2012, "release: revamp rules to tag and upload the releases").
2012-02-23 Stefano Lattarini <stefano.lattarini@gmail.com>
hacking: do not quote `like this', as per GCS recommendation
* HACKING: Quote 'like this' or "like this", not `like this'. This
is done for consistency with the new recommendations in the GNU
Coding Standards, and because I've come to actually prefer the '...'
and "..." quoting format over the `...' one.
2012-02-23 Stefano Lattarini <stefano.lattarini@gmail.com>
am: do not quote `like this', as per GCS recommendation
This patch converts the automake-provided '*.am' fragments, and
related files, to the use of new quoting format 'like this' or
"like this" rather than `like this'.
* lib/am/check.am: Update quoting format throughout, in comments
and diagnostic. Some related rewordings, reformatting, and removal
of redundant commands since we are at it.
* lib/am/configure.am: Likewise.
* lib/am/dejagnu.am: Likewise.
* lib/am/depend2.am: Likewise.
* lib/am/distdir.am: Likewise.
* lib/am/inst-vars.am: Likewise.
* lib/am/install.am: Likewise.
* lib/am/lang-compile.am: Likewise.
* lib/am/lisp.am: Likewise.
* lib/am/ltlib.am: Likewise.
* lib/am/mans.am: Likewise.
* lib/am/progs.am: Likewise.
* lib/am/remake-hdr.am: Likewise.
* lib/am/subdirs.am: Likewise.
* lib/am/tags.am: Likewise.
* lib/am/texi-vers.am: Likewise.
* lib/am/texibuild.am: Likewise.
* lib/am/texinfos.am: Likewise.
* lib/am/yacc.am: Likewise.
2012-02-23 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: quote 'like this', not `like this', as per GCS recommendation
This patch converts the automake testsuite and related files, to
the use of new quoting format 'like this' or "like this" rather
than `like this'.
This is done for consistency with the new recommendations in the GNU
Coding Standards, and, well, because I've come to actually prefer
the '...' and "..." quoting formats over the `...' one.
* tests/README: Update quoting format throughout. Remove some
"excessive" use of quoting, and throw in minor rewording where
appropriate.
* tests/Makefile.am: Likewise, for comments.
* tests/CheckListOfTests.am: Likewise.
* tests/defs-static.in: Likewise.
* tests/defs: Likewise.
* tests/trivial-test-driver: Likewise.
* Many tests/*.tap, tests/*.test and tests/*.sh files: Likewise,
and for the diagnostic and informational messages as well.
* tests/gen-testsuite-part: Likewise, and for the generated tests
as well.
2012-02-22 Stefano Lattarini <stefano.lattarini@gmail.com>
spy: "rm -f" and "rm -rf" without args are portable
According to recent testing by Eric Blake, it seems that all
non-museum rm(1) implementations don't complain if called without
file operands, *if* the '-f' option is used. This behaviour will
likely be mandated by future versions of the POSIX standard as
well.
We'd like to start assuming this rm(1) behaviour in future Automake
releases, in order to simplify some automake-provided cleanup rules.
So, for the moment, we add a new "spy" test in our test suite, to
try ensuring that all the rm(1) implementation we encounter "in the
wild" truly behaves as expected in this regard.
For more references, see this discussion on the bug-autoconf list:
<http://lists.gnu.org/archive/html/bug-autoconf/2012-02/msg00002.html>
which sprang from coreutils bug#10819:
<http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10819>
and brought to the POSIX issue#542:
<http://austingroupbugs.net/view.php?id=542>
which has been accepted and will ensure that future version of the
POSIX standards will mandate that 'rm' shouldn't complain if called
without file operands, when the '-f' option is in use.
* tests/spy-rm.test: New test.
* tests/list-of-tests.mk: Add it.
2012-02-22 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid spurious failures under "make distcheck"
* tests/tap-setup.sh: Pass also '-f' option to 'cp' invocations,
so that files that have already been copied in without write
permissions will still be overwritten where needed, instead of
causing a spurious testsuite failure. Issue seen when the
testsuite is run under "distcheck".
* tests/defs (get_shell_script): Remove target file before
overwriting it, for the same reason. Rework code flow a bit
since we are at it.
2012-02-22 Stefano Lattarini <stefano.lattarini@gmail.com>
fixup: avoid spurious failure for 'parallel-tests-many.test'
* tests/parallel-tests-many.test: Adjust grepping of "make check"
and "make recheck" output to match the new format of the testsuite
summary. Remove redundant 'set -e' call since we are at it.
2012-02-22 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: prefer 'configure.ac' over 'configure.in'
With this change, our testsuite now uses 'configure.ac' as the
name for the typical autoconf input, instead of the obsolescent
'configure.in' (which has been deprecated for several years, at
least since autoconf 2.50).
Most of the test cases changed by this commit have been
automatically modified with this sed command (using GNU
sed):
sed -i 's/\<configure\(\\\?\)\.in\>/configure\1.ac/g'
* syntax-checks.mk (sc_tests_no_configure_in): New syntax check.
(syntax_check_rules): Add it.
* tests/defs: Create stub for autoconf input in 'configure.ac',
not in 'configure.in'. Adjust comments.
($AUTOCONF, $AUTOHEADER, $AUTORECONF): Remove workaround for the
infamous debian autoconf wrapper: we don't need such workaround
anymore now that we name our autoconf input as 'configure.ac'.
For more information, see commit v1.11-564-g63da492 "test defs:
hack to support autoconf-wrapper programs" of 16-12-2011.
* tests/README: Use 'configure.ac', not 'configure.in'.
* Many many tests: Likewise.
* tests/backcompat3.test: Adjust to avoid spurious failures.
* tests/backcompat5.test: Likewise.
* tests/missing6.test: Likewise.
* tests/backcompat6.test: Likewise, and extend a bit since we
are at it.
2012-02-22 Stefano Lattarini <stefano.lattarini@gmail.com>
coverage: expose automake bug#7868
Expose the command-line length limit issue that can affect the
Automake-generated parallel-tests harness, especially on systems
where this limit is smaller (e.g., MinGW/MSYS).
Suggestion by Bob Friesenhahn.
* tests/parallel-tests-many.test: New test. We have verified that
it actually exposes the bug#7868, as it passes when we opportunely
reduce the number of test cases in $(TESTS). Checked on NetBSD 5.1
64bit, Debian unstable 32bit, Solaris 10 64bit and Cygwin 1.5 32bit.
* tests/list-of-tests.mk (handwritten_TESTS): Add it.
* tests/Makefile.am (XFAIL_TESTS): Likewise.
2012-02-21 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: remove obsoleted "icc" requirement
* tests/defs (icc): This requirement is not used anymore by any
test case, so remove it.
2012-02-21 Stefano Lattarini <stefano.lattarini@gmail.com>
readme: fix typo in tests/README
2012-02-21 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: "make installcheck" shouldn't run the testsuite twice
* Makefile.am (installcheck-local): Remove. The "installcheck"
target provided by automake is already a recursive target, so
there's no need to have an 'installcheck-local' recipe that
manually recurse into 'tests/'. In fact, such a manual recursion
was causing the testsuite to be run twice by "make installcheck".
2012-02-21 Stefano Lattarini <stefano.lattarini@gmail.com>
news: minor fixlets and reorganization
* NEWS: Get rid of form-feed characters (^L) throughout the file.
Use separator lines instead (composed by 76 '~' characters), or
just an extra blank lines for older less verbose entries (those
predating the 1.8 release).
(New in 1.11.3): Move description of planned future backward
incompatibilities that won't make it to 1.12 ...
(New in 1.11a): ... in here. Quote 'like this', not `like this'.
Other minor miscellaneous rewordings and fixlets.
2012-02-21 Stefano Lattarini <stefano.lattarini@gmail.com>
cosmetics: few typofixes
2012-02-21 Stefano Lattarini <stefano.lattarini@gmail.com>
automake: new option 'serial-tests'
Currently, automake offers a 'parallel-tests' option to enable the
use of the parallel testsuite harness in the generated Makefiles,
but no option to explicitly state the intention of using the older
serial testsuite driver (which is currently the default).
This makes the parallel test harness seems like a second-class
citizen (while actually it should be the other way around); more
importantly, it will prevent us from making the parallel harness
be the default one in future automake versions, since the users
of the serial harness would then have no way to instruct automake
to continue using it.
We solve all of this by introducing a new 'serial-tests' option.
* lib/Automake/Options.pm (_process_option_list): Recognize the
new option, and related minor refactoring.
* tests/serial-tests.test: New test.
* tests/list-of-tests.mk: Add it.
* doc/automake.texi: Update.
* NEWS: Likewise.
2012-02-21 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix a timestamp issue, and other minor buglets
Reported by Panther Martin in automake bug#10848.
* tests/conffile-leading-dot.test: Add a proper '$sleep' invocation,
to avoid spurious failures on fast systems without sub-second
timestamp resolutions. Add other minor related and unrelated
improvements and fixlets since we are at it.
2012-02-21 Stefano Lattarini <stefano.lattarini@gmail.com>
automake: new option to print location of scripts and data files
With this change, we add a new automake option '--print-libdir'
that prints (on stdout) the path of the directory containing the
Automake-provided scripts (e.g., 'missing' and 'install-sh') and
data files (e.g., INSTALL or texinfo.tex).
Suggestion by Nick Bowler. See also automake bug#10473.
* automake.in (parse_arguments): Handle the new option.
(usage): Mention it.
* doc/automake.texi (automake Invocation): Document it.
* NEWS: Update.
* tests/print-dir.test: New test.
* tests/list-of-tests.mk: Add it.
2012-02-19 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: prefer the awk+sh TAP driver over the perl one
We had completed our shell+awk implementation of the TAP driver
months ago, but never documented it in the manual, continuing to
document only the "prototype" written in perl instead. Time to
fix this, before the 1.12 release.
* doc/automake.texi (Use TAP with the Automake test harness): Now
we document the use of the awk+shell implementation of our TAP
driver, rather than of the perl one.
* tests/tap-doc2.test: Adjust to use the shell+awk implementation
of the TAP driver.
2012-02-19 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: be stricter in determining whether "make -jN" works
* tests/parallel-tests3.test: With at least Solaris 10 CCS make,
"make -jN" does not fail, but merely prints a warning about
"DistributedMake -j option" being ignored. This was causing this
test case to fail spuriously. So we now use a stricter check in
determining whether make works in parallel mode. Since we are at
it, we try to cater also to Sun Distributed make, which understands
"-j N" but *not* "-jN".
2012-02-19 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: don't trust exit status of "make -k"
* tests/parallel-tests-extra-programs.test: Unless $MAKE is GNU
make, don't trust the exit status of "$MAKE -k". Fixes a spurious
failure with OpenBSD 5.0 make and NetBSD 5.1 make.
2012-02-19 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix race condition in 'self-check-dir.tap'
* tests/self-check-dir.tap (do_check): Don't fail if "ls -l" fails.
2012-02-18 Stefano Lattarini <stefano.lattarini@gmail.com>
parallel-tests: fix another BSD parallel make issue
When BSD make is run in parallel mode, it apparently strips any
leading directory component from the automatic variable '$*' (of
course, against what POSIX mandates). This was causing FreeBSD 9.0
make and NetBSD 5.1 make to spuriously fail with automake-generated
test harnesses if subdir tests were present *and* make was being
run in parallel mode. This issue affected also the Automake own
testsuite.
* lib/am/check2.am (am__set_b): New internal variable.
(%OBJ%, %EXT%.log, %EXT%$(EXEEXT).log): Use it to work around
the described BSD make issue.
* tests/parallel-tests3.test: Enhanced to expose the bug.
* tests/parallel-tests-subdir.test: Enhance a little, since we
are at it.
* NEWS: Update.
2012-02-18 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid FreeBSD make VPATH issues in more tests (see bug#7884)
See also similar change 'v1.11-755-g818bc40' of 07-02-2012,
"tests: work around bug#7884 in many yacc/lex tests". The
rationale for this change is basically the same.
* tests/lex-lib-external.test: Use "yl_distcheck" instead of
bare "$MAKE distcheck" to avoid extra failures caused by
automake bug#7884.
* tests/lex-noyywrap.test: Likewise.
* tests/lex-libobj.test: Likewise.
* tests/man6.test: This test suffers from the same FreeBSD make
incompatibility in VPATH handling that is the source of automake
bug#7884. Since this is caused by rules that are defined in the
Makefile.am by the test itself, rather that being generated by
automake, the best thing to do is to skip this test if we detect
the presence of said make incompatibility (through the function
'useless_vpath_rebuild').
* tests/man8.test: Likewise.
2012-02-18 Stefano Lattarini <stefano.lattarini@gmail.com>
cosmetics: remove extra trailing whitespace in configure.ac
2012-02-18 Peter Rosin <peda@lysator.liu.se>
Merge branch 'yacc-quote-fix'
2012-02-17 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid spurious failure with FreeBSD make
* tests/parallel-tests-extra-programs.test: FreeBSD make seems to
write (some) diagnostic messages on stdout instead than on stderr,
so now we also grep the stdout for the expected make diagnostic.
2012-02-17 Peter Rosin <peda@lysator.liu.se>
tests: fix broken quoting in the generated yacc grammar
Fixes problem introduced by v1.11-1912-ge0906b7 "tests: avoid
spurious failure with non-bison yacc" from 12-02-2012.
* tests/suffix10.tap (Makefile.am): Avoid outer single quotes
when we need to produce single quotes.
2012-02-17 Stefano Lattarini <stefano.lattarini@gmail.com>
fixup: always use correct path for automake/aclocal wrappers
Otherwise, bootstrapping from a git checkout won't work anymore.
Issue introduced in today's commit 'v1.11-1974-ga98e58f'.
* doc/Makefile.am ($(srcdir)/amhello-1.0.tar.gz): Export PATH in a
way that makes the automake and aclocal wrappers truly accessible
(the location of this wrappers has been modified in a recent commit,
but this makefile hadn't been updated accordingly).
(update_mans): Likewise.
2012-02-17 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix spurious failure in VPATH build
* tests/self-check-dir.tap: Adjust to handle running in a VPATH
build correctly.
2012-02-17 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix many spurious failures in VPATH builds
The 'is' helper script, used by some test cases since commit
'v1.11-1830-g96401cb' of 08-02-2012, "tests: better way to compare
lists in Makefile rules", is not available in VPATH builds, since
it resides in $(srcdir), nor in $(builddir), and only $(builddir)
is added to $PATH in the test script. This was causing spurious
failures.
Solve this issue by re-organizing a bit the layout and placing of
wrapper and help scripts used by the testsuite. This reorganization
is by no mean complete, but should be enough to solve the VPATH
issues.
* tests/is: Moved ...
* tests/ax/is: ... here
* tests/automake.in: Moved ...
* tests/wrap/automake.in: ... here.
* tests/aclocal.in: Moved ...
* tests/wrap/aclocal.in: ... here.
* tests/defs-static.in ($am_bindir, $PATH): Adjust.
* configure.ac (AC_CONFIG_FILES): Likewise.
* tests/Makefile.am (EXTRA_DIST, check_SCRIPTS): Likewise.
* tests/get-sysconf.test: Likewise.
* .gitignore: Likewise.
2012-02-17 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: relax a test to cater to NetBSD make
* tests/parallel-tests-empty-testlogs.test: When $(TESTS) is empty,
NetBSD 5.1 make ends up defining $(TESTS_LOGS) to ".log" rather than
to the empty string (as would be expected). This behaviour was
causing a check in this test case to fail. But that check was in
fact overly strict, since our recipes are smart enough to work
around the botched-up substitution. Also, the failure wasn't a
regression from Automake 1.11, since that version too would have
triggered the same error with NetBSD 5.1 make. So we just relax
the test a little to avoid extra noise in the testsuite.
2012-02-17 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
dryrun: $(am__dry_run) not confused by metachars in $(MAKEFLAGS)
2012-02-17 Stefano Lattarini <stefano.lattarini@gmail.com>
dryrun: $(am__dry_run) not confused by metachars in $(MAKEFLAGS)
* lib/am/header-vars.am (am__make_dryrun): Be smarter and more
correct in handling shell metacharacters in $(MAKEFLAGS).
2012-02-17 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: TAP-based tests should error if no plan was specified
After this change, it will still be OK for TAP-based tests not to
report any explicit TAP plan -- but they should state *explicitly*
that they want to do so, by calling the 'plan_' function with a
proper argument (currently, either "later" or "unknonwn").
Motivated by a recent issue introduced by yesterday's commit
'v1.11-1959-g0699a84' (pointed out by Peter Rosin, and fixed
by follow-up commit 'v1.11-1961-gea44190').
* tests/tap-functions.sh (plan_): Get rid of '$have_tap_plan_',
and refactor use and initialization of '$planned_' in a way that
will allow client script to get more information on which kind
of plan (if any) has been declared by the former 'plan_' invocation.
(skip_all_): Adjust.
* tests/defs (exit trap): Only print the "lazy" TAP plan if 'plan_'
has requested that *explicitly*.
* syntax-check.mk (sc_tests_tap_plan): Remove: it's obsolete now,
since a TAP-based test that doesn't call 'plan_' explicitly won't
print any TAP plan, and the TAP driver will catch that and report
an error.
(syntax_check_rules): Adjust.
2012-02-17 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: expose $(am__dry_run) limitations
Currently, the internal $(am__dry_run) macro can fail in weird ways
when $(MAKEFLAGS) contains shell metacharacters. Let's expose this
limitation in the testsuite (and fix a couple of related weaknesses
since we are at it).
* tests/make-dryrun.test: Moved ...
* tests/make-dryrun.tap: ... here, converted to TAP, and extended to
expose the described limitations. Also ...
(am_parallel_tests): Define this so that the 'gen-testsuite-part'
script won't generate a useless wrapper script.
* test/list-of-tests.mk: Update.
2012-02-17 Peter Rosin <peda@lysator.liu.se>
cosmetics: fix commit message typo in previous
* .git-log-fix: The file is called .git-log-fix, nothing else.
2012-02-17 Peter Rosin <peda@lysator.liu.se>
fixup: .git-log-fix should not be executable
* .git-log-fix: Set mode 644.
2012-02-17 Peter Rosin <peda@lysator.liu.se>
maint: support amending the generated ChangeLog, and fix a typo
* Makefile.am (gitlog_to_changelog_options): Add support for
amending the generated ChangeLog.
(EXTRA_DIST): Update.
* .git-log-fix: New file with things to amend to the generated
ChangeLog, starting with a fix for a typo in v1.11-1963-g3b369e6
"maint: use AC_PACKAGE_BUGREPORT to avoid duplication" from
yesterday.
2012-02-16 Stefano Lattarini <stefano.lattarini@gmail.com>
cosmetics: normalize copyright notice in some tests
* tests/lisp3.test: Normalize copyright notice to read the
same of that of other tests.
* tests/lisp4.test: Likewise.
* tests/lisp5.test: Likewise.
* tests/lisp6.test: Likewise.
* tests/lisp7.test: Likewise.
* tests/lisp8.test: Likewise.
* tests/lispdry.test: Likewise.
2012-02-16 Stefano Lattarini <stefano.lattarini@gmail.com>
readme: fix grammaro
Reported by Eric Blake.
* README: Use "also has" instead of "has also"; the former sounds
better to a native speaker.
2012-02-16 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: use AC_PACKAGE_BUGREPORT to avoid duplication
* configure.ac: In the message reporting whether the user is about
to build an alpha or beta version, use the autoconf-provided
AC_PACKAGE_BUGREPORT macro instead of duplicating the bug reporting
address.
2012-02-16 Stefano Lattarini <stefano.lattarini@gmail.com>
readme: update and renew
* README: Remove stale or now-obvious description and advices.
Add reference to the INSTALL file. Some minor rewordings.
2012-02-16 Stefano Lattarini <stefano.lattarini@gmail.com>
depcomp tests: fix up today's botched commit
Today's commit 'v1.11-1959-g0699a84' has caused the generated
'depcomp*.tap' tests to call the 'plan_' function *before* it is
defined, and has also caused the extra checks required for better
libtool coverage to be run only when libtool is *not* in use,
rather than the other way around. Fix this mess.
Report by Peter Rosin.
* tests/gen-testsuite-part: Include './defs' in the generated
tests, rather than doing so from 'depcomp.sh'. Adjust the count
of TAP tests for 'depcomp-lt-auto.test' (it's 84, not 72).
* tests/depcomp.sh: Adjust accordingly, and fix inverted logic
about the decision of when to run extra checks for libtool.
2012-02-16 Stefano Lattarini <stefano.lattarini@gmail.com>
build: clearer diagnostic if "make" is invoked before "./configure"
Since a GNUmakefile wrapper has been introduced in our build
system, a "make" invocation issued before a "./configure" one
has caused GNU make to die with the cryptic message:
GNUmakefile:18: Makefile: No such file or directory
GNUmakefile:19: /syntax-checks.mk: No such file or directory
make: *** No rule to make target `/syntax-checks.mk'. Stop.
* GNUmakefile: Detect when we are being run from an unconfigured
tree, and give helpful diagnostic.
2012-02-16 Stefano Lattarini <stefano.lattarini@gmail.com>
depcomp tests: put TAP plan in generated tests
This avoids a spurious maintcheck failure, and also simplifies
the 'depcomp.sh' helper script a little.
* tests/gen-testsuite-part: Create and place also a proper 'plan_'
call (to emit the TAP plan) in each generated 'depmod*.tap' test.
* tests/depcomp.sh: Remove 'plan_' invocations, and simplify a
little since we are at it.
2012-02-16 Stefano Lattarini <stefano.lattarini@gmail.com>
update-copyright: don't touch COPYING and INSTALL
Reported by Peter Rosin.
* update-copyright: Also exclude the COPYING and INSTALL files
found in the top-level directory.
* COPYING, INSTALL: Revert update of copyright years done in
today's commit 'v1.11-1948-g641a5a4'.
2012-02-16 Stefano Lattarini <stefano.lattarini@gmail.com>
maintcheck: whitelist some false positives
Instead of tweaking or dumbing down some of our sources or tests
in order not to make them spuriously trigger few maintainer checks,
we tweak such checks instead.
* syntax-checks.mk (sc_tests_overriding_macros_on_cmdline): Also
allow the variable 'exp' to be overridden on the make command line.
Whitelist the test 'make-dryrun.test' where appropriate.
(sc_mkinstalldirs): When whitelisting the 'mkinstalldirs' occurrence
in 'lib/Makefile.am', do not look for the exact line number: it is
obviously too fragile.
2012-02-16 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid spurious failure with parallel make
* tests/parallel-tests-extra-programs.test: Run make with the '-k'
option where appropriate, to ensure it doesn't stop at the first
error, which would prevent the building of the extra programs we
expect it to build.
2012-02-16 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid spurious failure on older Cygwin
* tests/tap-signal.tap: Sending a SIGQUIT on Cygwin 1.5 can cause a
segmentation fault instead (sometimes at least). Don't let this
older bug pollute the results of our testsuite.
2012-02-16 Stefano Lattarini <stefano.lattarini@gmail.com>
fixup: display captured make stdout in 'tap-signal.tap'
2012-02-16 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid spurious failure in 'suffix3.tap'
* tests/suffix3.tap (foo.zoo): This C++ file fails to compile with
older g++ (3.4.4) on Cygwin 1.5.25 if we #include <iostream>. Don't
do that, since it's not strictly required, and the "using namespace"
directive is already enough to ensure the file contents is valid C++
but invalid C.
2012-02-16 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: fix typo in description of AM_YFLAGS
Report by Akim Demaille.
* doc/automake.texi (Program variables): Don't list "-d -t" twice
in the examples of valid ways to specify the '-d' flag to Yacc;
instead, use "-d -t" and "-t -d". Add missing period.
2012-02-16 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: another spurious failure with older autoconf fixed
* tests/aclocal8.test (configure.in): Also call 'AC_INIT', it's
required by some older autoconf versions (e.g., 2.63).
* tests/acloca15.test: Likewise. Add trailing ':' command since
we are at it.
2012-02-16 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix spurious failure with older autoconf
* tests/conffile-leading-dot.test: Relax grepping of 'config.status'
stderr, to cater for older autoconf. Issue revealed by a failure
with autoconf 2.63 on Cygwin 1.5.25.
2012-02-16 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: sync auxiliary files from upstream
* lib/texinfo.tex: Synced from upstream, by "make fetch".
* lib/config.guess: Likewise.
* lib/config.sub: Likewise.
2012-02-16 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: run "make update-copyright"
2012-02-16 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: add some missing copyright notices
* tests/ChangeLog-old: Add copyright notice.
* tests/aclocal.in: Likewise.
* tests/automake.in: Likewise.
* tests/extract-testsuite-summary: Likewise.
* tests/prove-runner: Likewise.
2012-02-16 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
update-copyright: don't touch files synced from external packages
2012-02-16 Stefano Lattarini <stefano.lattarini@gmail.com>
update-copyright: don't touch files synced from external packages
* Makefile.am (update-copyright): Do not update copyright years of
files synced from external packages, as given by the '$(FETCHFILES)'
variable. Silence the recipe since we are at it.
2012-02-16 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'extra-dist-tests-ksh-bug'
* extra-dist-tests-ksh-bug:
tests: fix spurious failure when testing wildcards in EXTRA_DIST
2012-02-16 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix spurious failure when testing wildcards in EXTRA_DIST
* tests/extra10.test: Remove the "make distcheck" call, since, at
least with GNU make 3.82, it trips on the fact that $(srcdir) is
not explicitly used in the wildcard in EXTRA_DIST.
2012-02-15 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
fixup: distribute 'lib/update-copyright'
2012-02-15 Stefano Lattarini <stefano.lattarini@gmail.com>
fixup: distribute 'lib/update-copyright'
While the 'update-copyright' script shouldn't be needed by final
users, that's not a good reason to keep it out by the distribution,
as doing so might be unhelpful toward occasional but curious users
interested in peeking into the automake build system.
* lib/Makefile.am (EXTRA_DIST): Distribute 'update-copyright'.
2012-02-15 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: prefer $(GIT) over hard-coded "git" in maintainer recipes
* Makefile.am (update-copyright, autodiffs): Use '$(GIT)' instead
of hard-coding 'git'.
2012-02-15 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
maint: add a rule to use gnulib's update-copyright
2012-02-15 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'extra-dist-tests-ksh-bug'
* extra-dist-tests-ksh-bug:
tests: avoid ksh bug for wildcards in EXTRA_DIST
2012-02-15 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'yl-work-for-master'
* yl-work-for-master: (44 commits)
tests: truly use Lex and Yacc selected by configure
news: fix grammaros related to Yacc
yacc/lex tests: avoid spurious skips with non-GNU make
fixup: remove double news entry
tests: workaround for shells with broken 'set -e'
tests: avoid spurious failure with non-bison yacc
tests: fix spurious failures due to missing 'yywrap()' function
fixup: list of yacc/lex tests was botched
tests: work around bug#7884 in many yacc/lex tests
yacc/lex tests: remove an unneeded workaround for bug#8485
yacc/lex tests: avoid too much failures with FreeBSD make
yacc-dist-nobuild.test: add reference to bug#7884
yacc tests: fix bug in 'yacc-cxx.test'
lex tests: fix spurious link errors on Solaris
lex: "make clean" removes .c files from non-distributed .l
lex tests: make test on Lex dependency tracking more "semantic"
lex tests: remove erroneous check about ylwrap distribution
yacc tests: "make clean" removes C++ files from non-distributed .y
tests: add a workaround for automake bug#8485
tests: add a couple of inter-tests reference
...
2012-02-15 Stefano Lattarini <stefano.lattarini@gmail.com>
cscope: is only expected to work with GNU make in VPATH setup
The 'cscope' functionality does not properly handle VPATH rewrites;
so we explicitly document that, for now, it is only ensured to work
with GNU make when doing a VPATH build, and we adjust testsuite
requirements accordingly.
Issue revealed by a failure of 'cscope.test' with Solaris 10 CCS
make.
* doc/automake.texi (Tags): Document the limitations of the cscope
support. Couple of fixlets to formatting since we are at it.
* tests/cscope.test: Converted to TAP, and thus moved ...
* tests/cscope.tap: ... here. Only run tests with VPATH builds when
using GNU make. Adjust so that no C, C++, Fortran or Java compiler,
nor any Emacs program, will be required to run this test.
* tests/list-of-tests.mk: Adjust.
2012-02-14 Jim Meyering <meyering@redhat.com>
maint: add a rule to use gnulib's update-copyright
* lib/update-copyright: New file, from gnulib.
* Makefile.am (FETCHFILES): Add update-copyright to the list.
(fetch): Fetch it.
(update-copyright): New rule.
2012-02-14 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'doc-no-history'
* doc-no-history:
docs: move chapter on automake history out of main manual
2012-02-14 Stefano Lattarini <stefano.lattarini@gmail.com>
check: fix test-suite.log formatting with NetBSD sed
* lib/am/check.am (am__rst_section): Tweak to ensure en extra final
newline is printed also with NetBSD sed. Issue revealed by a
failure of 'test-metadata-global-result.test'.
* tests/rst-formatting.test: New test, checking the internal
variables '$(am__rst_title)' and '$(am__rst_section)'.
* tests/list-of-tests.mk: Add it.
2012-02-14 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid ksh bug for wildcards in EXTRA_DIST
Some shells, like NetBSD 5.1 /bin/ksh, have a bug that causes
wildcards resulting from an unquoted parameter expansion not to
be expanded as expected in some cases:
$ touch a b c d
$ /bin/sh -c 'var="[ab]" && echo $var' # As expected.
a b
$ /bin/ksh -c 'var="[ab]" && echo $var' # Oops.
[ab]
$ /bin/ksh -c 'var="?" && echo $var' # But this as expected.
a b c d
This was causing a failure in our testsuite. Work around that.
See also:
<http://lists.gnu.org/archive/html/automake-patches/2012-02/msg00149.html>
* tests/extra11.test: Work around the described issue by using the
$(wildcard) builtin in the EXTRA_DIST definition. This is not a
problem, since this test was assuming GNU make anyway. Since we are
at it, enhance coverage a little by also running "make distcheck".
* tests/extra10.test: Similarly, enhance coverage by also running
"make distcheck", and fix a minor bug in the process. But continue
using a "bare" wildcard expression in EXTRA_DIST, without involving
the $(wildcard) builtin, to ensure coverage of similar usages "in
the wild".
2012-02-14 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'fix-tap-signal-test'
* fix-tap-signal-test:
fixup: fix test tap-signal.tap to avoid false negatives
2012-02-14 Stefano Lattarini <stefano.lattarini@gmail.com>
fixup: fix test tap-signal.tap to avoid false negatives
Problem introduced by yesterday commit v1.11-1851-g79b2c6a,
"tests: avoid yet other spurious failures on NetBSD"
* tests/tap-signal.tap: Truly ensure the exit status of the make
call under test is correctly reflected in the TAP result displayed
by the corresponding 'command_ok_' invocation.
2012-02-14 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
fixup: do not tickle makefile-deps.test with the make_dryrun code
gitattributes: custom merge driver for ChangeLog not needed anymore
gitattributes: use "union" merge driver for NEWS
2012-02-14 Peter Rosin <peda@lysator.liu.se>
fixup: do not tickle makefile-deps.test with the make_dryrun code
* lib/am/header-vars.am (am__make_dryrun): Avoid code matching
'^ *:' in the Makefile, as that tickles makefile-deps.test.
2012-02-14 Stefano Lattarini <stefano.lattarini@gmail.com>
gitattributes: custom merge driver for ChangeLog not needed anymore
* .gitattributes: We don't maintain a version-controlled ChangeLog
file anymore, so we have no need to specify a custom merge driver
for it anymore. Update accordingly.
2012-02-14 Stefano Lattarini <stefano.lattarini@gmail.com>
gitattributes: use "union" merge driver for NEWS
This should help in reducing the spurious merge conflicts for the
NEWS file, which have already caused a great deal of confusion and
wasted time.
Suggestion by Eric Blake:
http://lists.gnu.org/archive/html/automake-patches/2012-02/msg00119.html
* .gitattributes (NEWS): Use the "union" merge driver.
2012-02-14 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: truly use Lex and Yacc selected by configure
When 'yacc-work' was merged into 'yl-work-for-master' in commit
v1.11-1910-ge6c40d4 (12-02-2012), the values for $YACC and $LEX
stopped being substituted directly by config.status, and started
being substituted by a Makefile rule using the contents of the
$(YACC) and $(LEX) makefile variables.
Unfortunately, our configure.ac was calling AM_SUBST_NOTMAKE on
'YACC' and 'LEX' (see commit v1.11-284-g34ca92b of 29-01-2011,
"tests: don't define YACC and LEX in the Makefiles", for a
rationale), so that the $(YACC) and $(LEX) in the Makefile simply
hold the default make-provided values (that is, "yacc" and "lex"
respectively), independently of what yacc and lex programs were
defined at configure time.
Apart from reducing coverage and creating confusion, this behaviour
also caused spurious failures on systems lacking a yacc and/or lex
programs.
Problem reported by Peter Rosin. References:
<http://lists.gnu.org/archive/html/automake-patches/2012-02/msg00131.html>
<http://lists.gnu.org/archive/html/automake-patches/2012-02/msg00132.html>
* configure.ac (AM_SUBST_NOTMAKE): Don't call anymore on 'YACC' nor
on 'LEX'.
2012-02-14 Peter Rosin <peda@lysator.liu.se>
depcomp tests: do not specify LDFLAGS for static libraries
Commit v1.11-1848-gb3f34ca accidentally specified LDFLAGS
for libbaz even when built as a static library, which is
not allowed.
* tests/depcomp.sh (src/Makefile.am): Don't add any LDFLAGS
when libbaz is built as a static library.
2012-02-14 Peter Rosin <peda@lysator.liu.se>
depcomp tests: avoid redundant runs for non-libtool test
When running the dependency tests without libtool, it's
not meaningful to run the tests three-fold, the libtool
configure options are simply ignored anyway.
* tests/depcomp.sh: Only run the tests three-fold when
libtool is in use.
2012-02-14 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid yet other spurious failures on NetBSD
* tests/tap-signal.tap: Add a "strategically placed" extra 'echo'
command and a temporary silencing of xtraces; they are required
to avoid possible garbled output with NetBSD make, which would
miss some final newlines in the expected places and thus mess up
our TAP output.
2012-02-13 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid a spurious failure on NetBSD
* tests/test-driver-is-distributed.test: Rewrite to avoid having to
edit configure.in; such editing was subtly botched on NetBSD (the
'AC_CONFIG_AUX_DIR' call got misplaced, ending up *before* the
'AC_INIT' call), and that caused an hard-to-track bug. Since we
are at it, extend coverage a little.
2012-02-13 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid spurious failure with NetBSD /bin/ksh
* tests/parallel-tests-fd-redirect-exeext.test (configure.in): Tweak
so that we don't end up with the generated configure script having
two nested subshells that start with '((':
((./conftest$EXEEXT 9>&1) | grep "^foobar") >&5 2>&5
which is unportable and could confuse some shells (e.g., NetBSD 5.1
/bin/ksh) into thinking we are trying to perform an arithmetic
operation.
2012-02-13 Peter Rosin <peda@lysator.liu.se>
tests: increase coverage for depcomp tests
On platforms requiring that no undefined symbols exist in order
to build shared libraries (e.g. Windows DLLs), you have to
explicitly declare that the libtool library you are building
does not actually have any undefined symbols, for libtool to
even try to build it as a shared library. Without that
explicit declaration, libtool falls back to a static library
only, regardless of any --enable-shared flags etc.
tests/depcomp.sh (Makefile.am): Add -no-undefined if a libtool
library (.la) is built.
(src/Makefile.am): Likewise.
2012-02-13 Peter Rosin <peda@lysator.liu.se>
news: fix grammaros related to Yacc
* NEWS: Fix some grammaros and typos.
2012-02-13 Stefano Lattarini <stefano.lattarini@gmail.com>
yacc/lex tests: avoid spurious skips with non-GNU make
* tests/defs (useless_vpath_rebuild): Fix botched logic that
was causing this function to always diagnose non-GNU make
implementations as being affected by the "useless rebuilds
in VPATH setup" bug (that affects FreeBSD make and causes
automake bug#7884).
2012-02-13 Peter Rosin <peda@lysator.liu.se>
fixup: remove double news entry
* NEWS: Remove double (stale) news entry introduced by a botched
merge.
2012-02-12 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: workaround for shells with broken 'set -e'
* tests/dist-formats.tap: 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 and that list is the *last* command
of a "case" statement. This was causing an incorrect initialization
of the '$missing_compressors' variable, and thus potential spurious
failures when non-existing programs were assumed to be available.
2012-02-12 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: workaround for shells with broken 'set -e'
* tests/yacc-cxx.test: Some versions of the BSD shell wrongly bail
out when the 'errexit' shell flag is active if the left-hand
command in a "&&" list fails and such list is the *last* command
of a "for" or "while" loop or of an "if" construct. Work around
this issue.
* tests/check12.test: Likewise.
2012-02-12 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid spurious failure with non-bison yacc
Issue revealed by a failure on NetBSD 5.1.
* tests/suffix10.tap (Makefile.am): Adjust the rule generating
the '.y' files so that such files won't use bison-only features.
2012-02-12 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix spurious failures due to missing 'yywrap()' function
The AC_PROG_LEX Autoconf macro does not diagnose a failure to find
the "lex library" expected to provide a 'yywrap' function (function
which is required to link most lex-generated programs). On the
contrary, when all the link attempts (i.e., with '-ll' and '-lfl')
fail, configure declares that no lex library is needed, and simply
proceeds with the configuration process -- only for the build to
possibly fail later, at make time.
This behaviour is intended; the Autoconf manual reads:
You are encouraged to use Flex in your sources, since it is
both more pleasant to use than plain Lex and the C source it
produces is portable. In order to ensure portability, however,
you must either provide a function 'yywrap' or, if you don't use
it (e.g., your scanner has no '#include'-like feature), simply
include a '%noyywrap' statement in the scanner's source.
This AC_PROG_LEX behaviour is causing some spurious failures of
the Automake testsuite in environments which lack a proper library
providing 'yywrap' (this happens for example on Fedora-based
systems). The proper workaround is to simply provide a fall-back
implementation of 'yywrap' in our lexers.
See also similar commits 'v1.11-546-gca0ba5d' (24-10-2011),
'v1.11-1085-gb5c3968' (24-10-2011) and 'v1.11-871-geb147a1'
(25-05-2011).
* tests/lex-clean.test: Provide a dummy 'yywrap' function.
* tests/lex-line.test: Likewise.
* tests/lex-nodist.test: Likewise.
* tests/lex-depend.test: Likewise.
* tests/lex-clean-cxx.test: Move the dummy 'yywrap' function
from the main '.cc' file into the '.lxx' file, so that it won't
be subject to the namespace declaration in the '.cc' file (which
was causing a spurious link error in systems without a default
"lex library").
2012-02-12 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'yacc-work' into yl-work-for-master
* yacc-work: (37 commits)
fixup: list of yacc/lex tests was botched
tests: work around bug#7884 in many yacc/lex tests
yacc/lex tests: remove an unneeded workaround for bug#8485
yacc/lex tests: avoid too much failures with FreeBSD make
yacc-dist-nobuild.test: add reference to bug#7884
yacc tests: fix bug in 'yacc-cxx.test'
lex tests: fix spurious link errors on Solaris
lex: "make clean" removes .c files from non-distributed .l
lex tests: make test on Lex dependency tracking more "semantic"
lex tests: remove erroneous check about ylwrap distribution
yacc tests: "make clean" removes C++ files from non-distributed .y
tests: add a workaround for automake bug#8485
tests: add a couple of inter-tests reference
lex tests: require just `lex' instead of `flex'
fix typo in ChangeLog (2011-05-04)
tests defs: use `skip_' for skipping yacc/lex related tests
lex/yacc tests: remove redundant $distdir definition
coverage: test lex-generated "#line" directives postprocessing
tests: minor improvements to a couple of yacc tests
tests: fix spurious failure in test 'yacc-d-cxx.test'
...
+ Extra non-trivial edits:
* tests/defs.in: Delete; the differences from maint has been
merged into 'tests/defs' and 'tests/defs-static.in'.
* tests/defs (yacc, lex): Use 'skip_all_', not 'skip_', to
skip the whole test case if yacc (resp. lex) is missing.
(bison): New, set up the environment so that 'bison -y' will
be used as the yacc program.
(useless_vpath_rebuild, yl_distcheck): Moved in from
'tests/defs.in'.
* tests/defs-static.in ($YACC, $LEX): Default to the values
determined at configure time, and allow them to be overridden
by the more namespace-safe variables '$AM_TESTSUITE_YACC' and
'$AM_TESTSUITE_LEX' respectively.
* tests/Makefile.am (do_subst): Also substitute '@YACC@' and
'@LEX@'.
* Several tests: Fix requirements declarations, by preferring
'lex' and 'yacc' over 'flex' and 'bison' whenever possible.
2012-02-12 Stefano Lattarini <stefano.lattarini@gmail.com>
fixup: list of yacc/lex tests was botched
* tests/list-of-tests.mk: Update to take into account the addition,
renaming, removing or split-ups of Yacc/Lex tests that have taken
place in the 'yacc-work' branch. Problem likely introduced by a
botched merge of 'maint' into 'yacc-work'.
2012-02-12 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: move chapter on automake history out of main manual
The chapter on Automake history, while certainly interesting and
even fascinating, does not truly pertain to a reference manual,
so move it out from there and into its own dedicated file. This
change is made more advisable and pressing by the fact that such
and "Automake history" chapter hasn't been updated since the 1.9.6
release, so it has been becoming less faithful and useful since
then.
* doc/history.texi: New, manual on the history of the automake
package; extracted from ...
* doc/automake.texi: ... this file, with related adjustments.
* doc/Makefile.am (info_TEXINFOS): Add 'history.texi'.
(history_TEXINFOS): New, list included file 'fdl.texi'.
* Makefile.am (release-stats): Remove as obsolete.
* HACKING (Release Procedure): Don't advise anymore to run the
"release-stats" target and to update the manual with its output.
* NEWS: Update.
* .gitignore: Likewise.
2012-02-12 Stefano Lattarini <stefano.lattarini@gmail.com>
depcomp tests: avoid redundant runs for libtool tests
When running libtool-oriented tests, our 'depcomp.sh' script used
to run the same checks thrice: once after having run configure
with the '--disable-shared' option, once after having run it with
the '--enable-shared' option, and once by allowing configure to
automatically select which kind of library (or libraries) to build.
This was done to offer extra coverage for the less-common depmodes
(like "aix" of "hp2") where the name of the compiler-generated
depfiles can depend on whether libtool is in use *and* on which
kind of libraries libtool is building (static, shared, or both).
About this, see commit 'Release-1-10-24-ge89ec38' of 28-03-2007,
"* lib/depcomp (aix): Rewrite depmode in the spirit of the tru64
one".
But that extra coverage came at the price of *considerably* slowing
down the depcomp libtool-oriented tests, since for each of them the
tested source tree was configured and built *twelve* times (rather
than "just" four as it is for the non-libtool case).
So, to strike a balance between coverage and speed, we now run the
libtool-oriented tests with the three different configuration modes
*only* when it is possible that the depmode that will get selected
is one of those which can actually benefit from the extra coverage.
* tests/depcomp.sh: Adjust to only run the threefold libtool tests
when that can truly be potentially useful. Add related explanatory
comments.
2012-02-09 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid wrong skips in dist-formats.tap
* 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.
2012-02-09 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: few tweakings and cosmetic changes
* tests/dist-formats.tap: Fix botched spacing.
* tests/subobjname.test: Prefer spaces to tabs in indentation.
* tests/cond43.test: Likewise.
* tests/comment7.test: Likewise.
* tests/compile_f90_c_cxx.test: Use "$tab" instead of literal
tab characters in the grep regexp.
* tests/compile_f_c_cxx.test: Likewise.
* tests/pluseq3.test: Likewise.
* tests/cond-basic.test: Likewise.
* tests/acloca16.test: Add empty line before trailing ':' command.
* tests/bsource.test: Likewise.
* tests/depend5.test: Likewise.
* tests/depend6.test: Likewise.
* tests/destdir.test: Likewise.
* tests/fort2.test: Likewise.
* tests/instdir-java.test: Likewise.
* tests/instdir-lisp.test: Likewise.
* tests/instdir-python.test: Likewise.
* tests/instdir.test: Likewise.
* tests/instdir2.test: Likewise.
* tests/ltinstloc.test: Likewise.
* tests/missing.test: Likewise.
* tests/missing2.test: Likewise.
* tests/nodef.test: Likewise.
* tests/nodef2.test: Likewise.
* tests/subst4.test: Likewise.
* tests/werror3.test: Likewise.
* tests/commen11.test: Likewise. Also, make grepping of automake
stderr slightly stricter, and properly quote strings with shell
metacharacters.
* tests/nodep2.test: Add empty line before trailing ':' command.
Do not create unneeded dummy source files.
2012-02-09 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: remove a couple of redundant 'set -e' calls
* tests/conffile-leading-dot.test: Do not set the 'errexit'
shell flag, as it is already set by 'tests/defs'.
* tests/make-dryrun.test: Likewise.
2012-02-09 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* 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
2012-02-09 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'dryrun-fix' into maint
* dryrun-fix:
dryrun: fix regression with '$(am__make_dryrun)'
2012-02-09 Peter Rosin <peda@lysator.liu.se>
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.
2012-02-08 Peter Rosin <peda@lysator.liu.se>
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'
2012-02-08 Stefano Lattarini <stefano.lattarini@gmail.com>
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.
2012-02-08 Peter Rosin <peda@lysator.liu.se>
depcomp: try to prevent whitespace regressions
Suggested by Stefano Lattarini.
* lib/depcomp: Add $tab and $nl variables and use them
throughout.
2012-02-08 Peter Rosin <peda@lysator.liu.se>
depcomp: recognize tabs as whitespace in the dashmstdout mode
Commit Release-1-7-2b-2-gf03ceab "Cope with DOS filenames in
dependencies." inadvertedly converted tabs into spaces.
* lib/depcomp (dashmstdout): Add a tab character to all sets
matching whitespace.
2012-02-08 Peter Rosin <peda@lysator.liu.se>
depcomp: quote 'like this', not `like this'
Cherry-picked from recent changes from master.
* lib/depcomp: Quote 'like this', not `like this'.
2012-02-08 Peter Rosin <peda@lysator.liu.se>
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'.
2012-02-08 Stefano Lattarini <stefano.lattarini@gmail.com>
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
2012-02-08 Stefano Lattarini <stefano.lattarini@gmail.com>
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.
2012-02-07 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix a timestamp-related spurious failures
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.
2012-02-07 Stefano Lattarini <stefano.lattarini@gmail.com>
dryrun: fix regression with '$(am__make_dryrun)'
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.
2012-02-07 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: work around bug#7884 in many yacc/lex tests
Due to automake bug#7884, many test cases on Yacc/Lex support are
failing when run with FreeBSD make. Since these failures are all
due to the same bug, and that bug is well understood and already
explicitly exposed in the dedicated 'yacc-dist-nobuild.test' test,
the reported failures are mostly noise, that not only is annoying,
but which might end up covering different real bugs or regressions.
Thus we minimize such spurious failures, by ensuring the commands
triggering them (most of them being "make distcheck" invocations)
will be skipped when $MAKE suffers of the bug/limitation that
triggers automake bug#7884.
* tests/defs.in (useless_vpath_rebuild): New function.
(yl_distcheck): Likewise.
* tests/lex3.test, tests/subpkg-yacc.test, tests/yacc-basic.test,
tests/yacc-cxx.test, tests/yacc-d-basic.test, tests/yacc-d-cxx.test,
tests/yacc-dist-nobuild-subdir.test : Use them to avoid extra
failures caused by automake bug#7884. Where possible, throw in
some related simplifications.
2012-02-06 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint' into yacc-work
* maint: (75 commits)
test defs: function 'is_newest' now works also with directories
refactor: new variable telling whether make is running in "dry mode"
...
2012-02-06 Stefano Lattarini <stefano.lattarini@gmail.com>
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.
2012-02-06 Stefano Lattarini <stefano.lattarini@gmail.com>
cosmetics: few whitespace fixlets
2012-02-06 Stefano Lattarini <stefano.lattarini@gmail.com>
cosmetics: various typofixes
Several typofixes in documentation and comments, as
suggested by the "codespell.py" script. Reference:
<http://git.profusion.mobi/cgit.cgi/lucas/codespell/>
2012-02-06 Stefano Lattarini <stefano.lattarini@gmail.com>
cosmetics: convert encoding from ISO-8859 to UTF-8 in some tests
The changed files have been converted using iconv; specifically,
the command "iconv --from-code=ISO-8859-1 --to-code=UTF-8".
* tests/block.test, tests/tagsub.test: Converted to UTF-8 encoding.
2012-02-06 Stefano Lattarini <stefano.lattarini@gmail.com>
test defs: remove obsolete requirement 'rst2html'
* 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'.
2012-02-06 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: workaround for shells with broken 'set -e'
* 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.
2012-02-06 Stefano Lattarini <stefano.lattarini@gmail.com>
cosmetics: fix a typo in comments
* tests/extra-programs-empty.test: Fix typo in heading comments.
2012-02-05 Stefano Lattarini <stefano.lattarini@gmail.com>
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.
Backported from commit v1.11-914-gb6a40fa (originally on master).
2012-02-05 Stefano Lattarini <stefano.lattarini@gmail.com>
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.
2012-02-05 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
refactor: new variable telling whether make is running in "dry mode"
tests: do not clobber the modified CC
2012-02-05 Stefano Lattarini <stefano.lattarini@gmail.com>
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.
2012-02-02 Peter Rosin <peda@lysator.liu.se>
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.
2012-02-02 Stefano Lattarini <stefano.lattarini@gmail.com>
cosmetics: fix indentation and typos in perl TAP driver
* lib/tap-driver.pl (get_test_exit_message): Fix botched
indentation. Fix typo in error message: s/ststus/status/.
2012-02-02 Stefano Lattarini <stefano.lattarini@gmail.com>
test defs: fix typo in variable name ($AM_TESTSUITE_PERL)
* tests/defs-static.in: Fix typo: it's '$AM_TESTSUITE_PERL',
not '$AM_TESTUITE_PERL'.
2012-02-02 Stefano Lattarini <stefano.lattarini@gmail.com>
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.
2012-02-01 Peter Rosin <peda@lysator.liu.se>
Merge branch 'maint'
2012-02-01 Peter Rosin <peda@lysator.liu.se>
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.
2012-01-31 Stefano Lattarini <stefano.lattarini@gmail.com>
cleanup: remove unused .am file
* 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.
2012-01-31 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* 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.
2012-01-30 Peter Rosin <peda@lysator.liu.se>
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
2012-01-30 Peter Rosin <peda@lysator.liu.se>
ar-lib: ignore the verbose modifier instead of erroring out
* lib/ar-lib: A number of tests uses the v modifier when listing
the archive content, ignore it to make them pass.
2012-01-30 Peter Rosin <peda@lysator.liu.se>
scripts: cherry-pick recent changes from master
* lib/ar-lib: prefer the term "Windows" over "Win32" and quote
'like this', not `like this'.
* lib/compile: Likewise.
2012-01-30 Stefano Lattarini <stefano.lattarini@gmail.com>
maintcheck: fix real and spurious warnings
* 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.
2012-01-30 Stefano Lattarini <stefano.lattarini@gmail.com>
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.
2012-01-30 Stefano Lattarini <stefano.lattarini@gmail.com>
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.
2012-01-30 Stefano Lattarini <stefano.lattarini@gmail.com>
maintcheck: refactor rules checking '*.am' files
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.
2012-01-30 Peter Rosin <peda@lysator.liu.se>
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.
2012-01-30 Peter Rosin <peda@lysator.liu.se>
tests: fetch the 'compile' script for subdir objects
* tests/libobj19.test: Subdir objects are used, so the 'compile'
script needs to be present for inferior hosts. Fetch it.
2012-01-30 Peter Rosin <peda@lysator.liu.se>
tests: fetch the 'ar-lib' script for archiver usage
* tests/libobj10.test: The archiver is used, so the 'ar-lib'
script needs to be present for inferior hosts. Fetch it.
2012-01-28 Stefano Lattarini <stefano.lattarini@gmail.com>
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:
install bla.exe .../inst/bin/foo.exe
install script.sh .../inst/bin/foo
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.
Analysis by Peter Rosin and Ralf Wildenhues.
References:
<http://lists.gnu.org/archive/html/automake-patches/2010-08/msg00153.html>
<http://thread.gmane.org/gmane.os.cygwin/119380>
* tests/transform2.test: Skip the affected part of the test
if the described Cygwin behaviour is detected.
2012-01-28 Stefano Lattarini <stefano.lattarini@gmail.com>
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.
2012-01-27 Stefano Lattarini <stefano.lattarini@gmail.com>
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.
Suggestion by Peter Rosin.
2012-01-27 Stefano Lattarini <stefano.lattarini@gmail.com>
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.
2012-01-27 Stefano Lattarini <stefano.lattarini@gmail.com>
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.
2012-01-25 Stefano Lattarini <stefano.lattarini@gmail.com>
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.
2012-01-25 Stefano Lattarini <stefano.lattarini@gmail.com>
amversion: add missing dependency
* m4/Makefile.am ($(top_srcdir)/m4/amversion.m4): Depend on
configure.ac, since the value of $(VERSION) can change every
time configure.ac is updated.
2012-01-25 Stefano Lattarini <stefano.lattarini@gmail.com>
hacking: update advice w.r.t. synced files
* 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.
2012-01-25 Stefano Lattarini <stefano.lattarini@gmail.com>
hacking: don't reference ChangeLog anymore
* 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.
2012-01-24 Stefano Lattarini <stefano.lattarini@gmail.com>
multilib: move to contrib
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.
2012-01-23 Peter Rosin <peda@lysator.liu.se>
tests: improve diagnostics when write(2) fails
MinGW programs can't redirect file descriptor 9, they can only redirect
stdin, stdout and stderr. So, improve the information in the test log.
See automake bug#10466.
* tests/parallel-tests-fd-redirect.test (baz.c, zardoz.c): Check the
return value from the write(2) call, and report detected errors.
2012-01-23 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'compilers-for-testsuite'
* 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
2012-01-23 Stefano Lattarini <stefano.lattarini@gmail.com>
Peter Rosin <peda@lysator.liu.se>
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.
2012-01-23 Stefano Lattarini <stefano.lattarini@gmail.com>
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.
2012-01-23 Stefano Lattarini <stefano.lattarini@gmail.com>
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.
2012-01-23 Stefano Lattarini <stefano.lattarini@gmail.com>
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.
2012-01-23 Stefano Lattarini <stefano.lattarini@gmail.com>
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').
2012-01-23 Stefano Lattarini <stefano.lattarini@gmail.com>
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".
2012-01-22 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: remove redundant 'set -e' calls
* 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.
2012-01-22 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* 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
2012-01-22 Stefano Lattarini <stefano.lattarini@gmail.com>
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).
2012-01-22 Stefano Lattarini <stefano.lattarini@gmail.com>
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".
2012-01-22 Stefano Lattarini <stefano.lattarini@gmail.com>
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:
rm -f $@ && echo stamp > $10t
instead of the expected:
rm -f $@ && echo stamp > $@-t
* automake.in (lang_vala_finish_target): Fix that.
* tests/vala.test: Enhance.
2012-01-22 Stefano Lattarini <stefano.lattarini@gmail.com>
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.
2012-01-22 Stefano Lattarini <stefano.lattarini@gmail.com>
news: fix grammaro
* NEWS (Miscellaneous changes): Fix grammaro: s/don't/doesn't/.
Reported by Jim Meyering.
2012-01-21 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* 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
2012-01-21 Stefano Lattarini <stefano.lattarini@gmail.com>
fixup: distribute 'contrib/multilib/multi.m4'
This fix up a blunder in commit v1.11-665-gc5df21e of 2012-01-17,
"multilib: deprecate, will be moved to contrib".
* contrib/Makefile.am (EXTRA_DIST): Add 'multilib/multi.m4'.
2012-01-21 Stefano Lattarini <stefano.lattarini@gmail.com>
multilib: deprecate, will be moved to contrib
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.
2012-01-21 Stefano Lattarini <stefano.lattarini@gmail.com>
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.
2012-01-19 Stefano Lattarini <stefano.lattarini@gmail.com>
cosmetics: fix a botched comment in a maintainer check
* Makefile.am (sc_tests_make_without_am_makeflags): Adjust
botched description of this check.
2012-01-18 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
cmdline parsing: move into a dedicated perl module
2012-01-18 Stefano Lattarini <stefano.lattarini@gmail.com>
cmdline parsing: move into a dedicated perl module
With this change, we delegate most of the automake and aclocal code
for command-line options parsing to a new module "Automake::Getopt".
This allows better code sharing between automake and aclocal, and
also with Autoconf, which will sync the new module from us. See
also autoconf commit 'v2.68-120-gf4be358' (2012-01-17, "getopt: new
Autom4te::Getopt module"), and this mailing list discussion:
<http://lists.gnu.org/archive/html/autoconf-patches/2012-01/msg00033.html>
This change might interact with the behaviour described in automake
bug#7434; for example, starting from now, "automake -Wfoo --version"
will cause automake to emit diagnostic like "unknown warning
category 'foo'" before actually printing the version number and
exiting. This is not a big deal in practice, and the code sharing
and simplifications introduced by this patch is certainly worth it.
Still, we should revisited the issue in the future.
* lib/Automake/Getopt.pm: New module, basically a slightly-edited
copy of the 'lib/Autom4te/Getopt.pm' file from the autoconf devel
repository (commit v2.68-120-gf4be358). It defines and exports ...
(parse_options): ... this new function.
* automake.in (parse_arguments): Use the new function.
* aclocal.in (parse_arguments): Likewise.
* lib/Automake/Makefile.am (dist_perllib_DATA): Add the new file.
* tests/getopt.test: Remove.
* tests/list-of-tests.mk: Update.
2012-01-18 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: don't use custom TAP diagnostic in our own tests
We simply don't need it (yet), we are not actually using it (the
set up for using it is there in the Makefile, but no test script
makes actual use of that).
* tests/Makefile.am (TAP_LOG_DRIVER_FLAGS): Remove '-comments' and
'--diagnostic-string' options.
* tests/defs ($diag_string_): Remove redefinition.
2012-01-18 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: better name for a couple of tests
Two tests checking "make -n" behaviour with the parallel-tests
harness has been introduced in the Automake repository in the past:
one of them ('parallel-tests-dryrun.test') in the maint branch, the
other one ('parallel-tests-dry-run.test') in the master branch.
Needless to say, their too-much-similar names can be a great source
of confusion now. Moreover, the two tests have been written during
distinct refactorings, and are meant to exercise different code
paths and/or usage scenarios, so that no one of them subsumes the
other, and they should be both kept.
Thus we simply rename both of them to avoid future confusion.
* tests/parallel-tests-dryrun.test: Renamed ...
* tests/parallel-tests-dry-run-1.test: .. to this.
* tests/parallel-tests-dry-run.test: Renamed ...
* tests/parallel-tests-dry-run-2.test: .. to this.
Add cross-reference among them.
* tests/list-of-tests.mk: Adjust.
2012-01-18 Stefano Lattarini <stefano.lattarini@gmail.com>
build: simplify our top-level "recheck" target
* Makefile.am (recheck): Now that all the test scripts are in
the 'tests/' directory, its recipe can be greatly simplified,
as we don't need to deal with recursion in multiple subdirectories
anymore.
2012-01-18 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
cosmetics: move CheckListOfTests.am into tests/
tests: move all under the same hierarchy ('tests/' directory)
gitlog-to-changelog: update from upstream
changelog: don't cluster multiple entries under the same "date line"
+ Extra non-trivial edits:
* tests/Makefile.am (XFAIL_TESTS): Update with the xfailing tests
that were in 'lib/Automake/tests'. Add proper "FIXME" comment.
2012-01-18 Stefano Lattarini <stefano.lattarini@gmail.com>
cosmetics: move CheckListOfTests.am into tests/
After the previous change 'v1.11-660-gfbeda3d', the makefile
fragment 'CheckListOfTests.am' is used only by the Makefile.am
in 'tests'; so keeping them two nearer makes sense. It also help
in reducing potential confusion, since (after that same change)
the whole Automake testsuite is expected to be (and remain)
contained into the 'tests' subdirectory.
* CheckListOfTests.am: Move ...
* tests/CheckListOfTests.am: ... to this.
* tests/Makefile.am (include): Adjust.
2012-01-18 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: move all under the same hierarchy ('tests/' directory)
This simplifies the organization of the Automake source tree and
reduces the (lamentably high) number of Makefiles in the Automake
build system by one. It also makes the maintainer check that
verifies the consistency of list of tests more self-contained and
simpler. Finally, it might be a first step forward the transition
to a non-recursive build system for automake (if we ever decide to
go down that road fully some day).
* lib/Automake/tests: All the '*.pl' tests in here moved ...
* tests/pm: ... into this new directory.
* lib/Automake/tests/Makefile.am: Remove, its meaningful
contents moved ...
* tests/Makefile.am: ... here, with obvious adjustments.
(test_subdirs): New variable, for the sake of the recipe
of 'maintainer-check-list-of-tests'.
* CheckListOfTests (maintainer-check-list-of-tests): Enhance
its recipe to make it able to deal with test script residing
in subdirectories.
* Makefile.am (maintainer-check-list-of-tests): Simplified.
(TEST_SUBDIRS): Remove, no more needed.
* tests/list-of-tests.mk (perl_TESTS): New variable, lists
the '.pl' tests just moved into 'tests/pm'.
(handwritten_TESTS): Add the contents of '$(perl_TESTS)'.
* lib/Automake/Makefile.am (SUBDIRS): Remove.
* configure.ac (AC_CONFIG_FILES): Update.
* .gitignore: Adjust.
2012-01-18 Stefano Lattarini <stefano.lattarini@gmail.com>
gitlog-to-changelog: update from upstream
* lib/gitlog-to-changelog: Update from gnulib upstream. The only
changes should be cosmetic and/or minor fixlets.
2012-01-17 Stefano Lattarini <stefano.lattarini@gmail.com>
changelog: don't cluster multiple entries under the same "date line"
* lib/gitlog-to-changelog: Synced from gnulib. The new version
has a new option '--no-cluster', that disables clustering of
adjacent commit messages under the same "date line".
* Makefile.am (gitlog_to_changelog_options): Add '--no-cluster'.
Also add a proper '--format' specification to ensure we have a
blank line between the summary line and the commit message body.
2012-01-17 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
fixup: contrib: really integrate in automake build system
2012-01-17 Stefano Lattarini <stefano.lattarini@gmail.com>
fixup: contrib: really integrate in automake build system
* configure.ac (AC_CONFIG_FILES): Add 'contrib/Makefile'.
* Makefile.am (SUBDIRS): Add 'contrib'.
2012-01-17 Stefano Lattarini <stefano.lattarini@gmail.com>
check: move ".log -> .html" conversion in contrib
That feature has been deprecated in the 1.11.x series, and marked
for removal from the automake core in the 1.12 release. Here we
implement such removal.
Reference:
<http://lists.gnu.org/archive/html/automake/2012-01/msg00005.html>
See also commit 'v1.11-650-g20f2ac9'.
* doc/automake.texi, NEWS: Update.
* lib/am/check.am: Don't include 'check-html.am' anymore.
* lib/am/check-html.am: Move ...
* contrib/check-html.am: ... to this, and adjust comments.
* lib/am/Makefile.am (dist_am_DATA): Update.
* contrib/Makefile.am (EXTRA_DIST): Likewise.
* tests/parallel-tests2.test: Adjust.
* tests/parallel-tests-dryrun.test: Remove checks on the
".log -> .html" conversion.
* tests/test-driver-custom-html.test: Remove as obsolete.
* tests/test-driver-custom-no-html.test: Likewise.
* tests/tap-html.test: Likewise.
* tests/list-of-tests.mk: Don't list removed tests anymore.
2012-01-17 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
contrib: new, a directory for non-mainstream functionalities
2012-01-17 Stefano Lattarini <stefano.lattarini@gmail.com>
tap: some makes in parallel mode unconditionally serialize output
Some make implementations (among them, FreeBSD make, NetBSD make,
and Solaris Distributed Make), when run in parallel mode, serialize
the output from their targets' recipes unconditionally. This has
the nasty side effect that the user won't see the partial results
of a TAP test until the test has terminated. This is not something
our TAP driver script can work around unfortunately; in fact, the
driver is sending out its output progressively and "in sync" with
test execution -- it is make that is stowing such output away
instead of presenting it to the user as soon as it gets it.
So we content ourself with working around the issue in our
testsuite, to at least avoid failures we could do nothing to
prevent.
* tests/tap-realtime.test: Skip this test if the make program used
is a non-GNU make running in parallel mode. And if Sun dmake is
being used, try to force it to run in serial mode, by exporting the
'DMAKE_MODE' environment variable to "serial".
2012-01-17 Stefano Lattarini <stefano.lattarini@gmail.com>
contrib: new, a directory for non-mainstream functionalities
This new 'contrib' hierarchy will be a good place were to move
implementation/support for obsolescent features we are not yet
ready to remove completely, or were to leave experimental or
third-party features to cook before their eventual inclusion in
the automake core.
* contrib: New directory.
* contrib/README: New file.
* contrib/Makefile.am: New file.
(EXTRA_DIST): Distribute README.
2012-01-17 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: APIs for custom test drivers are highly experimental
* doc/automake.texi (API for Custom Test Drivers): The APIs
described here are not "somewhat experimental", but rather
"highly experimental". Don't promise the sure a sort of
backward-compatibility that we are very likely not going to
keep.
2012-01-17 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid spurious failures with parallel make
Some tests are unprepared to be run with a make command that runs
in parallel mode by default. This can happen e.g., if the user
explicitly run the tests with something like:
AM_TESTSUITE_MAKE="gmake -j3" in the
in the environment, but also if the make used in the testsuite is
Sun Distributed Make, and the 'DMAKE_MODE' environment variable is
set to "parallel".
Fix some instances of this issue.
* tests/tap-doc.test (Makefile.am): Declare explicit dependencies
among the test cases, to ensure they are run in the correct order.
* tests/tap-doc2.test: Set the 'DMAKE_MODE' environment variable
to "serial", to prevent Sun dmake from trying to run in parallel.
Remove other now-superfluous workarounds for dmake.
2012-01-17 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix spurious failures with Solaris dmake
Solaris Distributed Make, when run in parallel mode, can sprinkle
its standard output with lines like:
hostname --> 2 jobs
...
hostname --> Job output
...
This behaviour was causing spurious errors in some tests where we
compare the output of make with a known, expected value. Fix that.
* tests/tap-doc.test: Before comparing the output from make with its
expected value, remove extra lines that could have been printed by
Solaris dmake.
* tests/tap-doc2.test: Likewise.
2012-01-16 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
recheck: fix interaction with "make -n"
vala: avoid potential useless remakes (minor bugfix)
vala: enhance tests
recheck: behave better with non-GNU make
check: separate .log -> .html conversion from core testsuite harness
docs: deprecate .log -> .html conversion by parallel-tests
tests: list some forgotten test cases in $(TESTS)
maintcheck: consistency of list of test scripts
build: explicitly declare some targets as .PHONY
maint: remove obsolete/broken maintainer targets
build: improve silencing of automake build system
tests: move list of tests in its own Makefile fragment
+ Extra non-trivial edits:
* tests/parallel-tests2.test: Obvious edits to merge the slightly
inconsistent enhancements to coverage done in master with those
done in maint.
* lib/am/check.am (check-TESTS, recheck): Sweeping and rather
complex changes to merge the considerable divergences between
maint and master in a way that is meaningful and, where possible,
retains the semantic changes from both maint and master.
2012-01-16 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'check-html-deprecate' into maint
* check-html-deprecate:
recheck: fix interaction with "make -n"
recheck: behave better with non-GNU make
check: separate .log -> .html conversion from core testsuite harness
docs: deprecate .log -> .html conversion by parallel-tests
2012-01-16 Stefano Lattarini <stefano.lattarini@gmail.com>
recheck: fix interaction with "make -n"
* lib/am/check.am (recheck): Ensure the recipe does not erroneously
remove '.log' files when running under "make -n". For the sake of
NetBSD make, this also means that ...
(.MAKE): ... this cannot depend on 'recheck' anymore.
* tests/parallel-tests-dryrun.test: New test.
* tests/list-of-tests.mk: Add it.
2012-01-16 Stefano Lattarini <stefano.lattarini@gmail.com>
vala: avoid potential useless remakes (minor bugfix)
* automake.in (lang_vala_finish_target): Ensure the timestamp file
from which the C files generated from Vala sources depend on gets
created with a modification time that is truly older than those of
said generated C files. This prevents make from attempting useless
rebuilds (which were bound to happen deterministically on systems
with sub-second timestamp resolutions). It is worth noting that,
luckily, those useless rebuild ended up being a no-op, since the
Vala compiler is careful not to update the timestamp of an output
file if its content has not changed from the previous version.
Still, the useless rebuilds messed up "make -q" and "make -n"
invocations, and were technically incorrect (despite being, as
noted, inoffensive in practice).
Problem revealed by failure of tests vala-mix.test and vala5.test
on a fast Solaris 10 system whose filesystem had a sub-second
timestamp resolution.
2012-01-16 Stefano Lattarini <stefano.lattarini@gmail.com>
vala: enhance tests
* tests/vala.test: Extend test. Throw in some cosmetic and
consistency changes since we are at it.
* tests/vala5.test: Avoid uselessly requiring libtool. Ensure a
failure happens in case VALAFLAGS are not supported as expected.
Extend test in some ways. Throw in some cosmetic and consistency
changes since we are at it.
* tests/vala-mix.test: New test.
* tests/list-of-tests.mk: Add it.
2012-01-16 Stefano Lattarini <stefano.lattarini@gmail.com>
recheck: behave better with non-GNU make
* automake.in (handle_tests): Also substitute '%CHECK_DEPS%' with
the value of the '@check' array, containing the list of early
test dependencies like '$(check_SCRIPTS)', $(check_PROGRAMS)',
etc.
* lib/am/check.am (recheck): Explicitly depend on '%CHECK_DEPS%'.
(check, recheck): Unify the implementation of their recipes, with
different code paths taken depending on the name of the target.
This makes the implementation of "recheck" less brittle in the
process (especially when non-GNU make and AM_MAKEFLAGS overriding
are involved).
* lib/am/check-html.am (check-html, recheck-html): Likewise.
* tests/check.test: Adjust to avoid spurious failure.
* tests/parallel-tests2.test: Improve coverage.
2012-01-16 Stefano Lattarini <stefano.lattarini@gmail.com>
check: separate .log -> .html conversion from core testsuite harness
That feature is to be deprecated in the 1.11.x series, and removed
from the automake core in the 1.12 release, where it will instead
be offered in a semi-independent extra '*.am' fragment. So let's
start better separating the .log -> .html conversion from the "core
code" of the parallel-tests harness.
Reference:
<http://lists.gnu.org/archive/html/automake/2012-01/msg00005.html>
* lib/am/check.am (.log.html, check-html, recheck-html): Move these
targets ...
* automake.in (handle_tests): ... and the initialization of the
TEST_SUITE_HTML variable and the cleaning of the $(TEST_SUITE_HTML)
file ...
* lib/am/check-html.am: ... in this new file, with related (minor)
refactorings, enhancements and simplifications.
* lib/am/check.am (.MAKE. PHONY, AM_RECURSIVE_TARGETS): Adjust.
* lib/am/Makefile.am (dist_am_DATA): Add 'check-html.am'.
* tests/parallel-tests2.test: Improve coverage.
2012-01-16 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: deprecate .log -> .html conversion by parallel-tests
That feature is to be deprecated in the 1.11.x series, and
removed in the 1.12 release.
Reference:
<http://lists.gnu.org/archive/html/automake/2012-01/msg00005.html>
* doc/automake.texi (Simple Tests using parallel-tests): Deprecate
the '.log' -> '.html' conversion and the targets 'check-html' and
'recheck-html'. Related rewording and reformatting.
* NEWS (Future backward-incompatibilities): Update.
2012-01-16 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: list some forgotten test cases in $(TESTS)
This way, they will be properly executed by "make check", and
properly distributed. Our previous commit 'v1.11-647-g27f1a1c'
is already paying its dividends!
* tests/list-of-tests.mk (handwritten_TESTS): Add check12.test,
dist-missing-included-m4.test, dist-missing-am.test, and
dist-missing-m4.test.
2012-01-16 Stefano Lattarini <stefano.lattarini@gmail.com>
maintcheck: consistency of list of test scripts
This is basically a backport of commit 'v1.11-358-g7b6ab07'
and its follow-ups. The possibility of easily checking that
the list of test scripts listed in a Makefile equals that of
the tests on the filesystem has proved itself so useful that
it's worth taking the annoyance of backporting it to maint.
* CheckListOfTests.am: New file, backported from master (commit
'v1.11-1736-g083a75b') with minor adjustments.
(maintainer-check-list-of-tests): New target, check for consistency
between the list of tests defined in the including Makefile and the
list of tests on the filesystem.
(clean-maintcheck-testslist-tmp): New rule, to clean up temporary
files that might be left around by the rules associated with the
previous target.
(clean-local): Depend on it.
* lib/Automake/tests/Makefile.am: Include `CheckListOfTests.am'.
* tests/Makefile.am: Likewise.
* Makefile.am (maintainer-check-list-of-test): New target,
calling recursively into `tests/' and `lib/Automake/tests/',
using ...
(TEST_SUBDIRS): ... this new variable.
(maintainer-check): Added dependency from the new target
`maintainer-check-list-of-tests'.
2012-01-16 Stefano Lattarini <stefano.lattarini@gmail.com>
maintcheck: completeness check on list of tests simplified
* CheckListOfTests.am: Simplify the recipe, accordingly to the
assumption that all the entries in $(TEST_EXTENSIONS) and in
$(TESTS) have an associated real test script. This was not the
case when we used to have some entries in $(TESTS) that were not
real files, but rather "parameters" (sort of) for the corresponding
$(LOG_COMPILER). However, that usage had proven to be confusing
and brittle, and thus removed (see commit 'v1.11-1308-g375f23d' of
September 8 2011, "testsuite: revamp generation of autogenerated
tests").
2012-01-15 Stefano Lattarini <stefano.lattarini@gmail.com>
build: explicitly declare some targets as .PHONY
* Makefile.am (fetch, git-dist, git-release, maintainer-check):
Declare as ".PHONY".
2012-01-15 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: remove obsolete/broken maintainer targets
* Makefile.am (git-diff): Remove. First, we don't distribute diffs
between an automake version and the next one anyway, so this target
is pointless. Moreover, its recipe has been broken for quite a
long time now, always generating an empty diff due to the spurious
'$(PACKAGE)' argument that was passed to the "git diff" invocation.
(path-check): Remove. The 'pathchk' program running in this check
complains about any file with name longer than 14 characters, which
is a ridiculously low limit for today standards. Also, we already
had several test scripts (no less than 195!) that were exceeding
that limit, and nobody ever complained (not even on MinGW/MSYS nor
Cygwin).
2012-01-15 Stefano Lattarini <stefano.lattarini@gmail.com>
build: improve silencing of automake build system
In this change, we continue the silencing of the automake build
system that has been started in commit v1.11-642-g17542c3, but
which has been left incomplete there for an (absent-mindness)
mistake.
* Makefile.am (INSTALL): Silence the recipe.
(automake, aclocal): Likewise, and improve them a little since
we are at it.
* lib/Automake/Makefile.am (Config.pm): Likewise.
2012-01-15 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: move list of tests in its own Makefile fragment
This change will make it easier to merge maint into master, which
has a similar Makefile setup in the testsuite.
* tests/Makefile.am (include): Inclusion of ...
* tests/list-of-tests.mk: ... this new file.
* tests/Makefile.am (TESTS): Move most of its content into,
and redefine in function of, ...
* tests/list-of-tests.mk (handwritten_TESTS): ... this new
variable.
* tests/gen-parallel-tests: Update.
2012-01-15 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
tests: move list of tests in its own Makefile fragment
build: silence automake build system
2012-01-15 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: move list of tests in its own Makefile fragment
This change will make it easier to merge maint into master, which
has a similar Makefile setup in the testsuite.
* tests/Makefile.am (include): Inclusion of ...
* tests/list-of-tests.mk: ... this new file.
* tests/Makefile.am (TESTS): Move most of its content into,
and redefine in function of ...
* tests/list-of-tests.mk (handwritten_TESTS): ... this new
variable.
* tests/gen-parallel-tests: Update.
2012-01-15 Stefano Lattarini <stefano.lattarini@gmail.com>
build: silence automake build system
* configure.ac (AM_SILENT_RULES): Invoke with "yes" as a parameter,
to activate silent rules by default.
* NEWS: Update.
* Makefile.am (sc_perl_syntax): Silence its recipe unconditionally,
similarly to what is done for other syntax checks.
(release-stats): Be silent by default *but not unconditionally*,
thanks to the use of $(AM_V_GEN).
(path-check, git-diff): Be silent by default, thanks to the use
of $(AM_V_GEN).
* m4/Makefile.am ($(top_srcdir)/m4/amversion.m4): Likewise.
* doc/Makefile.am ($(srcdir)/amhello-1.0.tar.gz): Likewise.
* tests/Makefile.am ($(srcdir)/parallel-tests.am): Likewise.
($(parallel_tests)): Likewise.
2012-01-15 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
gnupload: moved to gnulib
sync: gitlog-to-changelog from gnulib upstream
test defs: backport optimized 'using_gmake' implementation
tests: unify some tests on "make -n", reducing duplication
vala: use "$(am__cd) $(srcdir)", not "cd $(srcdir)"
+ Extra edits:
* tests/maken3.test: Carry over (with necessary adjustments) the
code from maken4.test that determines whether $MAKE supports the
special '.MAKE' target.
2012-01-15 Stefano Lattarini <stefano.lattarini@gmail.com>
gnupload: moved to gnulib
Since the gnupload script is not required by automake-generated
code (be it configure or Makefile content), and is not specifically
tied to automake in any way, it is better to have its master copy
installed in the gnulib repository, as is already done for similar
generally-useful, maintainer-oriented scripts. We can them sync it
from there.
See also gnulib commit v0.0-6822-gf8b7120, and:
<http://lists.gnu.org/archive/html/bug-gnulib/2012-01/msg00222.html>
* Makefile.am (FETCHFILES): Added 'gnupload'.
(fetch): Also sync 'gnupload' from the gnulib repository.
* lib/gnupload: Synced from gnulib.
* NEWS: Update.
2012-01-15 Stefano Lattarini <stefano.lattarini@gmail.com>
sync: gitlog-to-changelog from gnulib upstream
* lib/gitlog-to-changelog: Synced from upstream, by "make fetch".
2012-01-14 Stefano Lattarini <stefano.lattarini@gmail.com>
test defs: backport optimized 'using_gmake' implementation
* tests/defs.in (using_gmake): Backport optimized, result-caching
implementation from master.
2012-01-14 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: unify some tests on "make -n", reducing duplication
* tests/maken2.test: Merge into ...
* tests/maken.test: ... this test, to avoid unnecessary code
duplication. Make checks depending on GNU make conditional to
the actual presence of GNU make.
* tests/maken4.test: Similarly, merge into ...
* tests/maken3.test: ... this test.
* tests/Makefile.am (TESTS): Remove maken2.test and maken4.test.
2012-01-14 Stefano Lattarini <stefano.lattarini@gmail.com>
vala: use "$(am__cd) $(srcdir)", not "cd $(srcdir)"
* automake.in (lang_vala_finish_target): In the generated rules,
use '$(am__cd)', not bare 'cd', to chdir into $(scdir). Issue
revealed by the maintainer check 'sc_cd_relative_dir'.
2012-01-13 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
dist: avoid $(distdir) removal failure on MSYS/MinGW
tests: fix spurious failure of 'get-sysconf.test'
coverage: expose automake bug#10470 (distcheck-related)
tests: make 'aclocal-install-absdir.test' executable
tests: require GNU make in 'vala-vapth.test'
vala: fix VPATH builds
tests: fix some bugs in the vala-vpath test
2012-01-13 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'fix-pr10470' into maint
* fix-pr10470:
dist: avoid $(distdir) removal failure on MSYS/MinGW
coverage: expose automake bug#10470 (distcheck-related)
2012-01-13 Stefano Lattarini <stefano.lattarini@gmail.com>
dist: avoid $(distdir) removal failure on MSYS/MinGW
This change fixes automake bug#10470.
On MSYS (1.0.17) it is not possible to remove a directory that is
in use, and this, together with timing issues, could cause spurious
failures in the cleanup code of the "distcheck" recipe. In fact,
it should be noted that assuming a directory can be removed while
it the CWD of a running process is a POSIX violation:
"If the directory is the root directory or the current working
directory of any process, it is unspecified whether the function
succeeds, or whether it shall fail and set errno to [EBUSY]."
* lib/am/distdir.am (am__remove_distdir): If rm fails, sleep some
seconds and retry, to give potential "pending" processes some time
to exit and "release" the directory.
* tests/Makefile.am (XFAIL_TESTS): Remove 'distcheck-pr10470.test'.
Report and suggestions by Peter Rosin and Eric Blake.
2012-01-12 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix spurious failure of 'get-sysconf.test'
* tests/get-sysconf.test: Do not assume that a ChangeLog file exists
in $(srcdir): now that the ChangeLog is autogenerated and not under
version control anymore, this is not necessary true. Instead, if we
are running from a git checkout, use "git log" to get information on
the version of the automake snapshot being tested (and fall back on
extracting the first ChangeLog entry otherwise).
Reported by Jim Meyering in automake bug#10418.
Cherry picked from commit v1.11-1675-g104f302.
2012-01-12 Stefano Lattarini <stefano.lattarini@gmail.com>
coverage: expose automake bug#10470 (distcheck-related)
* tests/distcheck-pr10470.test: New test.
* tests/Makefile.am (TESTS, XFAIL_TESTS): Add it.
Report and suggestions by Peter Rosin and Eric Blake.
2012-01-12 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: make 'aclocal-install-absdir.test' executable
* tests/aclocal-install-absdir.test: Make it executable.
2012-01-12 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: add missing dependency for some 'ar-lib*.test' tests
This change fixes spurious failures of the tests ar-lib4.test,
ar-lib6a.test and ar-lib6b.test.
* tests/Makefile.am (ar-lib4.log): Depend explicitly on the
`libtool-macros.log' file.
(ar-lib6a.log, ar-lib6b.log): Likewise.
2012-01-11 Stefano Lattarini <stefano.lattarini@gmail.com>
dist: distdir not unconditionally removed anymore for xz and lzip
This change fixes automake bug#10444 a.k.a. bug#10448.
The 'dist-xz' and 'dist-lzip' recipes were erroneously using
'$(am__remove_distdir)' instead of '$(am__post_remove_distdir)'
to cleanup the '$(distdir)'; so a "make dist" issued in a package
using (say) gzip and xz compression would have failed to properly
created the gzip tarball, since the distdir was unconditionally
removed by "make dist-xz" upon its completion, instead of being
left populated for the following "make dist-gzip".
The problem with 'dist-xz' was introduced in the merge commit
`v1.11-1142-g47587d1', and the problem with 'dist-lzip' was
introduced in the merge commit `v1.11-1673-gc1b14e9'
* lib/am/distdir.am (dist-xz): Use '$(am__post_remove_distdir)',
not '$(am__remove_distdir)'.
(dist-lzip): Likewise.
2012-01-11 Stefano Lattarini <stefano.lattarini@gmail.com>
coverage: archive and compression formats used by "make dist"
This change exposes automake bug#10444 a.k.a. bug#10448.
* tests/dist-formats.tap: New test.
* tests/lzip.test: Remove, it's obsolete now.
* tests/nogzip.test: Likewise.
* tests/nogzip2.test: Likewise.
* tests/xz.test: Likewise.
* tests/list-of-tests.mk: Update.
2012-01-10 Peter Rosin <peda@lysator.liu.se>
tap/awk: avoid redirection issues with bash 3.2 and earlier
Fixes automake bug#10465.
* lib/tap-driver.sh: Add workaround for bash 3.2 and earlier, which
sometimes does not properly set '$?' when failing to write redirected
output of a compound command. See the Autoconf manual for more details.
The workaround was pointed out by Eric Blake.
2012-01-09 Peter Rosin <peda@lysator.liu.se>
tests: detect that MSYS lacks symlinks
* tests/self-check-cleanup.tap: Also check if "ln -s" really created a
symlink to cater for MSYS falling back to an ordinary copy. Also, don't
chmod the symlinks if they were never created.
2012-01-08 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: avoid many spurious failures on MSYS due to lack of symlinks
Fixes automake bug#10441.
* tests/add-missing.tap: Do not assume the system supports real
symlinks, as this is not the case for MinGW/MSYS. Skip checks
that would spuriously fail in that situation.
* tests/copy.test: Likewise.
Reported by Peter Rosin.
2012-01-08 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: require GNU make in 'vala-vapth.test'
* vala-vpath.test ($required): Add the "GNUmake" requirement, since
rules generated by vala support are expected to work with GNU make
only.
2012-01-08 Ryan Lortie <desrt@desrt.ca> (tiny change)
Stefano Lattarini <stefano.lattarini@gmail.com>
vala: fix VPATH builds
This change fixes automake bug#9859.
* automake.in (lang_vala_finish_target): Create the stamp file
'${derived}_vala.stamp' in $(srcdir), not in $(builddir).
Also, don't try to chdir to the $(srcdir) to trigger the rebuild
rules, since that is just wrong in a VPATH setup.
* tests/vala-vpath.test, tests/vala2.test: Extend to catch more
possible VPATH issues.
* tests/Makefile.am (XFAIL_TESTS): Remove 'vala-vpath.test'.
* NEWS, THANKS: Update.
2012-01-08 Ryan Lortie <desrt@desrt.ca> (tiny change)
tests: fix some bugs in the vala-vpath test
* tests/vala-vpath.test: There are (trivial) problems in this
testcase that would cause the build to fail even if the core
issue were resolved. Fix those.
2012-01-06 Stefano Lattarini <stefano.lattarini@gmail.com>
fixup: list forgotten test case in $(TESTS)
* tests/list-of-tests.mk: Also list 'tar-override.test'.
2012-01-06 Paul Eggert <eggert@cs.ucla.edu>
scripts: quote 'like this', not `like this'
This change follows up on recent changes to the GNU coding standards.
They now suggest that we should quote 'like this' or "like this" instead
of `like this'; see:
<http://www.gnu.org/prep/standards/html_node/Quote-Characters.html>.
Gnulib is being changed accordingly, and Gnulib imports some files
directly from Automake master, so change those files to use the
straight-up style. This affects only commentary and quoting in
diagnostics.
2012-01-06 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: safer declarations of test dependencies
To declare prerequisites common to all the tests, we now prefer to
use the special `check_DATA' and `check_SCRIPTS' variables rather
than "lazy" dependency declaration like "$(TEST_LOGS): DEPS ...";
this because the latter, allowing run-time overriding of the
TEST_LOGS variable, turned out to be subtly incomplete in some
situations involving non-trivial inter-test dependencies. For
example, if the user issued a:
make check TESTS=libtool.test
before the `defs-static' file was created (either explicitly or
implicitly), a spurious errors followed, along these lines:
1. $(TEST_LOGS) got dynamically defined to `libtool.log';
2. make saw that, in the Makefile, `libtool.log' was explicitly
declared depending on `libtool-macros.log' and `defs-static';
3. somehow, make considered the dependency on `libtool-macros.log'
*before* considering the one on `defs-static' (which BTW is
perfectly legitimate on make's part);
4. to satisfy such a dependency, make set out to execute the
test `libtool-macros.test' in order to create the file
`libtool-macros.log';
5. since `libtool-macros.log' was *not* in $(TEST_LOGS), it
didn't appear to depend on the `defs-static' file, so make
didn't consider necessary to build `defs-static' before
running the `libtool-macros.test' script;
6. but that script sources `./defs-static' in order to work;
thus the test `libtool-macros.test' failed spuriously.
* tests/Makefile.am ($(TEST_LOGS)): Remove explicit declaration
of dependency on the required files/scripts; instead use ...
(check_SCRIPTS, check_DATA): ... these new variables.
2012-01-06 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: skip tests on perl TAP driver if TAP::Parser is not available
We had so far taken for granted that all the perl installations
modern enough to correctly run automake also came with a built-in
TAP::Parser module; unfortunately, testing on MinGW/MSYS has
shown that this is not always true, and that a lot of spurious
testsuite failures would take place in such a situation (see
automake bug#10440).
Luckily, the perl implementation of the Automake TAP driver is
only meant to be used for prototyping and consistency checks, the
"real" Automake TAP driver being the portable one implemented in
awk. So we can simply skip the affected tests on systems lacking
TAP::Parser.
* tests/defs (fetch_tap_driver): Skip the whole test case if
the desired tap driver implementation is the perl one but the
TAP::Parser module is unavailable.
* tests/tap-bad-prog.tap: Adjust order of calls to `plan_' and
`fetch_tap_driver', to ensure the test is not skipped after the
TAP plan has been outputted (which would lead to a spurious
error).
* tests/tap-bad-signal.tap: Tweak to avoid the need to source the
`tap-setup.sh' script, as that might cause a test skip too late,
i.e., after a TAP plan has been already printed.
* tests/tap-test-number-0.test: Do not force the test to skip
when the tested TAP driver implementation is not the perl one.
On the other hand, when it *is* the perl one, skip the test if
the TAP::Parser module is unavailable.
* tests/test-driver-cond.test: Skip the part of the test actually
running "make check" if the TAP::Parser module is unavailable.
* tests/get-sysconf.test: Also print the version of the
`TAP::Parser' module, if available.
Reported by Peter Rosin.
2012-01-06 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
dist: do not wrap calls to 'tar' with the 'missing' script
fixup: previous commit v1.11-627-g1e0aedc
tests: fix spurious failures due to autom4te caching
2012-01-06 Stefano Lattarini <stefano.lattarini@gmail.com>
dist: do not wrap calls to 'tar' with the 'missing' script
The `missing' script is meant to allow non-developers to build a
package in the face of slightly-skewed timestamps (as might happen
e.g. when the package is obtained from a VCS checkout rather than
from a distribution tarball). It is *not* the business of the
`missing' script to try to provide wrappers for all the maintainer
tools (in this case, to tool being a decent tar program). Such
wrapping of `tar' was not only inappropriate, but it was also
preventing the legitimate overriding (at make runtime) of the
`tar' program used in the creation of the distribution tarballs.
See also automake bug#9822.
* lib/missing: Don't try to specially wrap `tar' invocations
anymore.
* m4/tar.m4 (_AM_PROG_TAR): In the definitions of the `AMTAR'
variable, do not wrap the `tar' invocation with the `missing'
script anymore. Instead, allow the user to override the intended
tar program at make runtime, by defining the `TAR' environment
variable.
[$1 == v7]: Similarly for the definitions of the `am__tar' and
`am__untar' variables. Since we are at it, don't make them depend
anymore on the definition of the obsolescent `AMTAR' variable.
* NEWS: Update.
* tests/missing-tar.test: Remove, it's obsolete.
* tests/tar-override.test: New test.
* tests/Makefile.am (TESTS): Update.
Reported by Akim Demaille.
2012-01-06 Stefano Lattarini <stefano.lattarini@gmail.com>
fixup: previous commit v1.11-627-g1e0aedc
* tests/acloca18.test: Do not remove an aclocal.m4 file that is
needed by a later autoconf invocation.
2012-01-06 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix spurious failures due to autom4te caching
* tests/aclocal9.test: Call aclocal and autoconf with the `--force'
option.
* tests/acloca10.test: Sleep between re-runs of aclocal and autoconf.
* tests/acloca18.test: Explicitly remove also the configure script
and the aclocal.m4 before re-invoking aclocal and autoconf.
2012-01-06 Stefano Lattarini <stefano.lattarini@gmail.com>
parallel-tests: avoid trailing backslashes in make recipes
The new testsuite-harness could generate recipes with a trailing
backslash character (possibly followed by blank characters only),
in the very common case where the user hadn't defined the special
$(AM_TESTS_FD_REDIRECT) variable. This caused spurious syntax
errors with at least older bash versions (e.g., bash 2.05b), and
could be potentially unportable to other weaker shells.
See automake bug#10436:
<http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10436>
and coreutils bug#10427:
<http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10427#8>
* lib/am/check2.am: Rework line breaks so that no backslash can
be at the end of a line.
* tests/parallel-tests-trailing-bslash.test: New test.
* tests/list-of-tests.mk: Add it.
Report and diagnosis by Paul Eggert.
2012-01-06 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
parallel-tests: avoid issue with overly long lines in sed input
Additional edits:
* NEWS: Remove entry from merged commit, since that will also be
present in the NEWS file of automake 1.11.3.
* lib/am/check.am (check-TESTS, recheck, recheck-html): Rework
merged changes to adapt them to the different form these recipes
has assumed in the master branch (w.r.t. the maint branch).
2012-01-05 Stefano Lattarini <stefano.lattarini@gmail.com>
parallel-tests: avoid issue with overly long lines in sed input
See automake bug#10437:
<http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10437>
and coreutils bug#10427:
<http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10427#8>
* lib/am/check.am (recheck, recheck-html): In order to strip
trailing whitespace from the definition of the `$list' variable,
we used to invoke sed in a way that could cause it to get passed
overly long input lines, causing spurious failures. So rework
the logic of the recipe to avoid any sed invocation, relying on
simpler shell idioms instead.
(check-TESTS): Reorganize the recipe to be more similar to the
one of `recheck', for consistency and simplicity.
* NEWS: Update.
Report and analysis by Paul Eggert.
2012-01-05 Peter Rosin <peda@lysator.liu.se>
tests: work around strangeness in MSYS
MSYS mishandles carriage returns and behaves very strangely for
directories with colon in them. It seems that colon-directories are
somehow mixed up with drive letters.
Fixes automake bug#7849.
* tests/instspc.tap: Skip instead of erroring out when $test_string
is empty for the carriageret case, as that is expected on MSYS. Also,
for similar reasons, skip instead of erroring out when it is not
possible to cd into the just created directory, and the directory
name contains a colon. Update copyright years.
2012-01-04 Paul Eggert <eggert@cs.ucla.edu>
cosmetics: prefer the term "Windows" over "Win32"
Microsoft has renamed the Win32 API to "Windows API":
<http://msdn.microsoft.com/en-us/library/aa383723.aspx>
Also, after some discussion on bug-gnulib, when talking about hosts and
platforms we believe it's better to talk about "Windows" or "native
Windows" instead:
<https://lists.gnu.org/archive/html/bug-gnulib/2012-01/msg00009.html>
<https://lists.gnu.org/archive/html/bug-gnulib/2012-01/msg00027.html>
* doc/automake.texi: Mention "Windows", not "Win32".
* lib/Automake/XFile.pm: Likewise.
* lib/ar-lib: Likewise.
* lib/compile: Likewise.
* tests/compile2.test: Mention "Windows", not "w32".
2012-01-04 Peter Rosin <peda@lysator.liu.se>
test defs: skip all tests when the lib requirement isn't fulfilled
* tests/defs (lib): Use skip_all_ instead of skip_, in order to support
TAP-based test scripts.
2012-01-04 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: be sure to list all test cases in $(TESTS)
* tests/list-of-tests.mk: Due to slightly botched merges, the test
scripts `objext-pr10128.test' and `silent-nested-vars.test' weren't
being correctly listed in $(TESTS); fix this.
2012-01-04 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
sync: auxiliary files from upstream synced
sync: fix syncing of 'gitlog-to-changelog' script
maintcheck: avoid false positive in sc_tests_plain_make
2012-01-04 Stefano Lattarini <stefano.lattarini@gmail.com>
sync: auxiliary files from upstream synced
* lib/texinfo.tex: Synced from upstream, by "make fetch".
* lib/gitlog-to-changelog: Likewise.
* lib/config.guess: Likewise.
* lib/config.sub: Likewise.
2012-01-04 Stefano Lattarini <stefano.lattarini@gmail.com>
sync: fix syncing of 'gitlog-to-changelog' script
* Makefile.am (FETCHFILES): Also list 'gitlog-to-changelog'.
2012-01-04 Stefano Lattarini <stefano.lattarini@gmail.com>
maintcheck: avoid false positive in sc_tests_plain_make
* Makefile.am (sc_tests_plain_make): Ensure to only match full
`make' words. Avoid false positive in `silent-nested-vars.test'.
2012-01-03 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
install: pkglibexec_SCRIPTS is a valid prefix/primary combination
coverage: expose automake bug#10128
progs, libs: implement EXTRA_foo_DEPENDENCIES
tests: fix spurious failures in 'pr300*.test'
2012-01-03 Stefano Lattarini <stefano.lattarini@gmail.com>
install: pkglibexec_SCRIPTS is a valid prefix/primary combination
It makes little sense for `libexec_SCRIPTS' to be accepted as valid
while `pkglibexec_SCRIPTS' is not. So fix this inconsistency by
explicitly allowing `pkglibexec_SCRIPTS' as well. It is worth
noting that the inconsistency has been there for a long time,
but only the quite recent commit `v1.11-373-g9ca6326' "Warnings
about primary/prefix mismatch fixed and extended" has made it
noisy enough to be noticed.
* automake.in (handle_scripts): Also list `pkglibexec' among the
prefixes valid for the `SCRIPTS' primary.
* doc/automake.texi (Scripts): Likewise.
* tests/primary-prefix-valid-couples.test: Update.
* THANKS: Likewise.
* NEWS: Likewise.
Reported by Dennis Schridde on the automake list:
<http://lists.gnu.org/archive/html/automake/2012-01/msg00002.html>
2012-01-03 Stefano Lattarini <stefano.lattarini@gmail.com>
coverage: expose automake bug#10128
* tests/objext-pr10128.test: New test, still expected to fail.
* tests/Makefile.am (TESTS, XFAIL_TESTS): Add it.
2012-01-03 Stefano Lattarini <stefano.lattarini@gmail.com>
progs, libs: implement EXTRA_foo_DEPENDENCIES
Backported from commit `v1.11-377-g6edafbb'.
The feature implemented by that change is quite unobtrusive, so
adding it to a maintenance release is acceptable. Also, there
have been requests from real-world users for this feature since
it has been implemented in master; see automake bug#9320:
<http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9320>
and this short discussion on the automake list:
<http://lists.gnu.org/archive/html/automake/2010-11/msg00099.html>
It would be a pity to make such users wait even more (until
Automake 1.12 is out) before they could start using this feature.
Thus we backport it, so that it will appear in the next maintenance
version of automake (1.11.3).
* automake.in (handle_programs, handle_libraries)
(handle_ltlibraries): Mark EXTRA_*_DEPENDENCIES as recognized.
* doc/automake.texi (Linking, Program and Library Variables)
(LIBOBJS): Document EXTRA_*_DEPENDENCIES.
* lib/am/library.am (%LIBRARY%): Also depend on
$(EXTRA_%XLIBRARY%_DEPENDENCIES).
* lib/am/ltlibrary.am (%LTLIBRARY%): Also depend on
(%XLTLIBRARY%_DEPENDENCIES).
* lib/am/program.am (%PROGRAM%%EXEEXT%): Also depend on
$(EXTRA_%XPROGRAM%_DEPENDENCIES).
* tests/extradep.test, tests/extradep2.test: New tests.
* tests/Makefile.am (TESTS): Update.
* NEWS: Update.
2012-01-03 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix spurious failures in 'pr300*.test'
This change fixes automake bug#10426.
* tests/pr300-lib.test: Call configure with an explicit '--libdir'
option, to avoid spurious failures due to users possibly overriding
'${libdir}' in ther config.site files.
* tests/pr300-ltlib.test: Likewise.
Reported by Bruno Haible.
2012-01-02 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix spurious failure due to I/O buffering
* tests/parallel-tests-interrupt.tap: Ensure the dummy test script
`foo.test' flushes its standard output before starting to grep the
log file where such output is being redirected by the parallel test
harness. Since we are at it, improve this same dummy script to
better catch unexpected behaviours and results.
Reported by Jim Meyering in automake bug#10418.
2012-01-02 Stefano Lattarini <stefano.lattarini@gmail.com>
news: fix botched merges, rebase on 1.11.2a NEWS version
The NEWS file is unfortunately written in a format that doesn't
lend itself very well to automatic merges; the recent merges of
maint into master have left it full of blunders and in a somewhat
inconsistent state.
Another orthogonal issue is that the current version of NEWS
still reports all the changes since the last 1.11 version, rather
than since the latest maintenance version 1.11.2, or, even better,
since the planned next maintenance version 1.11.3.
* NEWS: Fix blunders and errors from botched merges. Rebase the
file on the NEWS file from branch-1.11 (from which automake 1.11.3
is expected to be released).
2012-01-01 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'msvc'
* msvc:
tests: fix spurious failure due to autom4te caching
news: fix suboptimal wording
tests: various minor tweakings, mostly related to AM_PROG_AR
2012-01-01 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix spurious failure due to autom4te caching
* tests/ar-lib3.test: Remove stale autom4te.cache directory, to
prevent racy, spurious failures.
Reported by Jim Meyering in automake bug#10418.
2012-01-01 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint' into msvc
* maint:
tests: make 'lzip.test' executable
dist: obsolete support for lzma (superseded by xz and lzip)
test defs: more granular overriding of the make program
docs: fix a couple broken anchors
dist: add support for lzip compression
docs: fix paragraph names for automake and aclocal invocations
tests: fix spurious failure due to autom4te caching
fix: last entry in ChangeLog
tests: tweak tests on silent-rules for makes without nested vars
silent-rules: fallback for makes without nested vars
2012-01-01 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix spurious failure of 'get-sysconf.test'
* tests/get-sysconf.test: Do not assume that a ChangeLog file exists
in $(srcdir): now that the ChangeLog is autogenerated and not under
version control anymore, this is not necessary true. Instead, if we
are running from a git checkout, use "git log" to get information on
the version of the automake snapshot being tested (and fall back on
extracting the first ChangeLog entry otherwise).
Reported by Jim Meyering in automake bug#10418.
2012-01-01 Stefano Lattarini <stefano.lattarini@gmail.com>
dist: remove support for lzma (superseded by xz and lzip)
See also commit `v1.11-611-ge637fa2' (from maint), where support
for lzma compression of distribution archive had been deprecated.
* NEWS: Update.
* lib/Automake/Options.pm: Error out if the `dist-lzma' option
is used.
* lib/am/distdir.am: Remove all support for the creation of a
lzma-compressed distribution archive.
* tests/lzma.test: Update.
2012-01-01 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
tests: make 'lzip.test' executable
dist: obsolete support for lzma (superseded by xz and lzip)
test defs: more granular overriding of the make program
docs: fix a couple broken anchors
dist: add support for lzip compression
docs: fix paragraph names for automake and aclocal invocations
tests: fix spurious failure due to autom4te caching
fix: last entry in ChangeLog
tests: tweak tests on silent-rules for makes without nested vars
silent-rules: fallback for makes without nested vars
2012-01-01 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: make 'lzip.test' executable
* tests/lzip.test: Make it executable.
2012-01-01 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'deprecate-lzma' into maint
* deprecate-lzma:
dist: obsolete support for lzma (superseded by xz and lzip)
2012-01-01 Stefano Lattarini <stefano.lattarini@gmail.com>
dist: obsolete support for lzma (superseded by xz and lzip)
The lzma utilities are today superseded by the xz utilities; in
fact, the official site at <http://tukaani.org/lzma/> reads:
``LZMA Utils are legacy data compression software with high
compression ratio. LZMA Utils are no longer developed, ...
Users of LZMA Utils should move to XZ Utils.''
and the existing automake manual (as of 1.11.2) already says:
``dist-xz
Generate an 'xz' tar archive of the distribution. xz archives
are frequently smaller than bzip2-compressed archives. The 'xz'
format will soon (early 2009) displace the 'lzma' format''
Also, the `dist-lzma' target still suffers of never-solved bugs,
due to the too-high compression ratio its uses by default, which
might cause an unacceptable memory consumption when one tries to
compress or, worse, decompress the created tarballs; see also:
<http://lists.gnu.org/archive/html/automake/2011-12/msg00025.html>
<http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9658>
* NEWS: Update.
* doc/automake.texi (Dist, Options): State that `dist-lzma' will
go away in the next major automake version.
* lib/Automake/Options.pm (_process_option_list): Deprecate
`dist-lzma'.
* tests/lzma.test: Update.
2011-12-31 Stefano Lattarini <stefano.lattarini@gmail.com>
maintcheck: fix a couple of typos in error messages
* Makefile.am (sc_tests_plain_autoheader): Fix the message to
report a bad use of "autocheader", not of "automake."
(sc_tests_plain_autom4te): Likewise, but for "autom4te" instead.
(sc_tests_plain_autoreconf): Likewise, but for "autoreconf"
instead.
2011-12-31 Stefano Lattarini <stefano.lattarini@gmail.com>
maintcheck: be sure to look at all the test cases
Many maintainer checks in the top-level Makefile.am did some
unwarranted assumptions about the test cases, i.e., they assumed
that all the test scripts matched the wildcard `$(srcdir)/*.test'.
This failed to properly take into account VPATH builds (where some
generated tests might be in ${builddir} rather than in ${srcdir}),
TAP-based tests script (which have a `.tap' extension) and helper
scripts used by other test cases (which have a `.sh' extension).
Fixes automake bug#9299.
* Makefile.am (xtests): New variable, containing a (dynamically
computed) of files that looks like test cases of the automake
testsuite.
Update many rules to use this new variable instead of blindly
assuming that all the testcases matches the $(srcdir)/tests/*.test
wildcard.
* tests/tap-bad-prog.tap: Do a minor formatting change to
avoid spuriously triggering a match from the syntax check
`sc_tests_overriding_macros_on_cmdline'.
2011-12-31 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'dist-lzip' into maint
* dist-lzip:
dist: add support for lzip compression
2011-12-30 Stefano Lattarini <stefano.lattarini@gmail.com>
test defs: more granular overriding of the make program
Before this change, the only way the user could override the make
program used in the automake test cases was to override the $MAKE
variable in the environment. This had the annoying side effect of
requiring that, whenever a non-default make program was to be used
in the test cases, that same make program had to be used to drive
the execution of the automake testsuite; otherwise, the recursive
make invocations could pick up $MAKE from the environment, and use
that instead of re-executing with the correct make.
So, for example, if one wanted to try how Solaris /usr/ccs/bin/make
behaved in the automake test cases, he couldn't run the testsuite
in parallel mode, because that make lacks support for concurrent
execution of recipes; on fast machines, this easily meant a 4x or
higher slow-down.
Once the problem is clear, the solution is pretty simple: allow
the use of another variable, besides $MAKE, to override the make
program to be used in the test cases.
See also commit `v1.11-1318-g3ceeef4', that introduced a more
general version of this change to the master branch.
* tests/defs.in: Allow the make implementation to be used by the
test cases to be overridden by the `$AM_TESTSUITE_MAKE' variable,
in preference to the `$MAKE' variable.
2011-12-30 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: fix a couple broken anchors
* doc/automake.texi: In previous commit v1.11-605-g5f71f2b (related
to automake bug#8071), we had renamed the chapters about aclocal
and automake invocation, and added anchors to the old names as not
to break hyperlinks to our on-line manual. Unfortunately, these
anchors had been erroneously placed *before* the relevant `@node'
commands, instead that just after, so that they ended up pointing
to the wrong chapters. Fix this. Since we are at it, tweak the
wording of the comments to the anchors to better match that used
in the autoconf manual.
Report and suggestion by Eric Blake.
2011-12-30 Antonio Diaz Diaz <ant_diaz@teleline.es>
dist: add support for lzip compression
* NEWS: Update.
* automake.in (handle_dist): Recognize dist-lzip.
(make_paragraphs): Map LZIP to dist-lzip.
* doc/automake.texi (Dist, Options): Describe dist-lzip.
* lib/Automake/Options.pm (_process_option_list): Recognize
`dist-lzip'.
* lib/am/distdir.am (dist-lzip): New target.
(DIST_ARCHIVES) [?LZIP?]: Add `dist-lzip'.
(dist, dist-all) [?LZIP?]: Add command to create an lzip-compressed
tarball.
(distcheck): Handle lzip-compressed tarballs just like the others.
* tests/lzip.test: New test.
* tests/Makefile.am (TESTS): Add it.
2011-12-30 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge remote-tracking branch 'silent-fixes' into maint
* origin/silent-fixes:
fix: last entry in ChangeLog
tests: tweak tests on silent-rules for makes without nested vars
silent-rules: fallback for makes without nested vars
2011-12-28 Stefano Lattarini <stefano.lattarini@gmail.com>
docs: fix paragraph names for automake and aclocal invocations
All the other autotools entitle their invocation nodes
"autofoo Invocation", whereas automake used to call its
"Invoking Automake" and "Invoking aclocal". So let's
try to be more consistent.
This change is related to automake bug#8071.
Suggestion by Reuben Thomas and Eric Blake.
* doc/automake.texi (Invoking Automake): Node renamed ...
(automake Invocation): ... to this.
(Invoking aclocal): Node renamed ...
(aclocal Invocation): ... to this.
Add proper @anchor directives to avoid breaking existing web
hyperlinks still using the old names of the renamed nodes.
2011-12-28 Stefano Lattarini <stefano.lattarini@gmail.com>
tests: fix spurious failure due to autom4te caching
* tests/acloca18.test: Remove stale autom4te.cache directories, to
prevent racy, spurious failures.
* tests/python11.test: Likewise. Fix a typo in comments since we
are at it.
2011-12-28 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint' into msvc
* maint:
maint: autogenerate ChangeLog
2011-12-28 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint' into silent-fixes
* maint:
maint: autogenerate ChangeLog
fix: last ChangeLog entry
tests: drop unnecessary requirement in 'subpkg.test'
gitlog-to-changelog: new auxiliary script, synced from gnulib
docs: "aclocal --install -I /abs/dir" actually copies files
docs: fix node names for automake and aclocal invocations
2011-12-28 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint' into yacc-work
* maint:
maint: autogenerate ChangeLog
2011-12-28 Stefano Lattarini <stefano.lattarini@gmail.com>
Merge branch 'maint'
* maint:
maint: autogenerate ChangeLog
2011-12-28 Stefano Lattarini <stefano.lattarini@gmail.com>
maint: autogenerate ChangeLog
Following the practice set by various other GNU projects, we start
to automatically generate the ChangeLog file from the git commit
messages. This will avoid duplication (as the ChangeLog entries
were always inserted both in the git commit message and in the
version-controlled ChangeLog file), and potential problems with
spurious merge conflicts (which, although greatly mitigated by
Bruno Haible's `git-merge-changelog' helper program, have never
been completely solved).
* ChangeLog: Moved ...
* ChangeLog.11:... to this.
* Makefile.am (EXTRA_DIST): Add it.
(gitlog_to_changelog_command, gitlog_to_changelog_options): New
variables.
(ChangeLog, am--changelog-regen-hook): New targets.
* .gitignore: Add ChangeLog.