Stefano Lattarini [Thu, 21 Jun 2012 11:15:05 +0000 (13:15 +0200)]
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
Stefano Lattarini [Thu, 21 Jun 2012 11:13:04 +0000 (13:13 +0200)]
docs: avoid failures with development version of Texinfo (4.13.90)
* doc/automake-history.texi: Use '@item' instead of '@itemx' where
appropriate.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Thu, 21 Jun 2012 09:43:54 +0000 (11:43 +0200)]
typofix: s/test derivers/test drivers/ in check.am comments
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Wed, 20 Jun 2012 21:32:44 +0000 (23:32 +0200)]
typofix: s/env/even/ in comments in GNUmakefile
Spotted by Eric Blake.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Wed, 20 Jun 2012 16:35:57 +0000 (18:35 +0200)]
Merge branch 'maint'
* maint:
bootstrap: overhaul and improve
docs: quote 'like this', not `like this'
Stefano Lattarini [Wed, 20 Jun 2012 16:28:02 +0000 (18:28 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Wed, 20 Jun 2012 15:27:57 +0000 (17:27 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Wed, 20 Jun 2012 12:23:28 +0000 (14:23 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Wed, 20 Jun 2012 11:49:18 +0000 (13:49 +0200)]
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'.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Wed, 20 Jun 2012 10:27:11 +0000 (12:27 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Wed, 20 Jun 2012 09:52:20 +0000 (11:52 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Sun, 17 Jun 2012 10:23:18 +0000 (12:23 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Sat, 16 Jun 2012 07:16:53 +0000 (09:16 +0200)]
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' .
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Fri, 15 Jun 2012 13:07:05 +0000 (15:07 +0200)]
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
Stefano Lattarini [Fri, 15 Jun 2012 08:27:27 +0000 (10:27 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Fri, 15 Jun 2012 08:09:19 +0000 (10:09 +0200)]
Merge branch 'docs-recursion' into maint
* docs-recursion:
docs: recursive make considered harmful
Stefano Lattarini [Fri, 15 Jun 2012 08:09:04 +0000 (10:09 +0200)]
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
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Thu, 14 Jun 2012 21:45:08 +0000 (23:45 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Thu, 14 Jun 2012 21:41:58 +0000 (23:41 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Thu, 14 Jun 2012 21:27:42 +0000 (23:27 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Thu, 14 Jun 2012 21:04:33 +0000 (23:04 +0200)]
fixup: adjust t/list-of-tests.mk for renamed/added tests
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Thu, 14 Jun 2012 20:47:28 +0000 (22:47 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Thu, 14 Jun 2012 14:32:47 +0000 (16:32 +0200)]
sync: update files from upstream with "make fetch"
* lib/config.guess, lib/gitlog-to-changelog, lib/texinfo.tex: Update.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Thu, 14 Jun 2012 14:30:16 +0000 (16:30 +0200)]
py-compile: consistently quote 'like this', not `like this'.
* lib/py-compile (usage_error): Here.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Tue, 12 Jun 2012 15:24:21 +0000 (17:24 +0200)]
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".
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Tue, 12 Jun 2012 14:12:45 +0000 (16:12 +0200)]
Merge branch 'subdirs-simplify' into maint
* subdirs-simplify:
docs: clean rules are not run in reverse order of build rules anymore
Stefano Lattarini [Tue, 12 Jun 2012 14:10:19 +0000 (16:10 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Mon, 11 Jun 2012 19:39:46 +0000 (21:39 +0200)]
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
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Mon, 11 Jun 2012 19:27:12 +0000 (21:27 +0200)]
Merge branch 'subdir-objects-pr10697' into maint
* subdir-objects-pr10697:
maintcheck: fix failures, both real and spurious
Stefano Lattarini [Mon, 11 Jun 2012 19:21:32 +0000 (21:21 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Mon, 11 Jun 2012 17:48:08 +0000 (19:48 +0200)]
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
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Mon, 11 Jun 2012 17:46:46 +0000 (19:46 +0200)]
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".
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Mon, 11 Jun 2012 17:38:54 +0000 (19:38 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Mon, 11 Jun 2012 16:52:38 +0000 (18:52 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Mon, 11 Jun 2012 15:35:35 +0000 (17:35 +0200)]
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"
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Sun, 10 Jun 2012 21:08:07 +0000 (23:08 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Sun, 10 Jun 2012 22:49:18 +0000 (00:49 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Sat, 9 Jun 2012 18:13:43 +0000 (20:13 +0200)]
tests: look for '.lo' rather than '.o' object when using Libtool with C++
* t/cxx-lt-demo.sh: ... in this test.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Sat, 9 Jun 2012 18:04:24 +0000 (20:04 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Mon, 11 Jun 2012 14:12:01 +0000 (16:12 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Mon, 11 Jun 2012 11:00:23 +0000 (13:00 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Mon, 11 Jun 2012 10:48:29 +0000 (12:48 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Jim Meyering [Sun, 10 Jun 2012 20:03:49 +0000 (22:03 +0200)]
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/'
Stefano Lattarini [Sun, 10 Jun 2012 11:38:58 +0000 (13:38 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Sat, 9 Jun 2012 18:15:18 +0000 (20:15 +0200)]
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'
Stefano Lattarini [Sat, 9 Jun 2012 18:13:43 +0000 (20:13 +0200)]
tests: look for '.lo' rather than '.o' object when using Libtool with C++
* t/cxx-lt-demo.sh: ... in this test.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Sat, 9 Jun 2012 18:04:24 +0000 (20:04 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Sat, 9 Jun 2012 13:11:10 +0000 (15:11 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Sat, 9 Jun 2012 11:50:12 +0000 (13:50 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Thu, 7 Jun 2012 17:14:30 +0000 (19:14 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Thu, 7 Jun 2012 17:14:12 +0000 (19:14 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Thu, 7 Jun 2012 17:13:39 +0000 (19:13 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Thu, 7 Jun 2012 17:12:43 +0000 (19:12 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Thu, 7 Jun 2012 17:12:11 +0000 (19:12 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Thu, 7 Jun 2012 18:13:37 +0000 (20:13 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Thu, 7 Jun 2012 17:41:37 +0000 (19:41 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Thu, 7 Jun 2012 17:19:15 +0000 (19:19 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Sat, 2 Jun 2012 07:54:17 +0000 (09:54 +0200)]
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
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Sat, 2 Jun 2012 07:34:29 +0000 (09:34 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Sat, 2 Jun 2012 07:24:29 +0000 (09:24 +0200)]
news: put planned backward compatibilities early
* NEWS (Future backward-incompatibilities): Put them in the news
entries for the future 1.12.2 release.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Fri, 1 Jun 2012 18:24:20 +0000 (20:24 +0200)]
sync: update files from upstream with "make fetch"
* lib/config.sub, lib/gitlog-to-changelog, lib/texinfo.tex: Update.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Fri, 1 Jun 2012 17:15:29 +0000 (19:15 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Fri, 1 Jun 2012 16:55:14 +0000 (18:55 +0200)]
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").
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Fri, 1 Jun 2012 13:50:03 +0000 (15:50 +0200)]
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").
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Fri, 1 Jun 2012 13:47:17 +0000 (15:47 +0200)]
copyright: update copyright years in a couple of files
* doc/help2man, t/aclocal-verbose-install.sh: Update copyright,
thanks to "make update-copyright".
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Fri, 1 Jun 2012 10:37:41 +0000 (12:37 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Fri, 1 Jun 2012 09:49:16 +0000 (11:49 +0200)]
maintcheck: fix a spurious failure
* Makefile.am (test_subdirs): Add 't/perf'. Fix spurious failure
of the 'maintainer-check-list-of-tests' target.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Tue, 29 May 2012 09:58:02 +0000 (11:58 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Tue, 29 May 2012 07:36:26 +0000 (09:36 +0200)]
Merge branch 'fix-pr11543' into maint
* fix-pr11543:
aclocal: declare function prototypes, do not use '&' in function calls
Stefano Lattarini [Mon, 28 May 2012 11:32:03 +0000 (13:32 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Mon, 28 May 2012 11:52:34 +0000 (13:52 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Sun, 27 May 2012 17:33:26 +0000 (19:33 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Sun, 27 May 2012 17:05:14 +0000 (19:05 +0200)]
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").
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Sun, 27 May 2012 16:47:46 +0000 (18:47 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Sat, 26 May 2012 16:01:23 +0000 (18:01 +0200)]
tests: fix botched heading comments in 'lex-clean-cxx.sh'
* t/lex-clean-cxx.sh: This file tests lex, not yacc.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Fri, 25 May 2012 16:49:07 +0000 (18:49 +0200)]
[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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Fri, 25 May 2012 12:50:05 +0000 (14:50 +0200)]
Merge branch 'am-init-automake'
* am-init-automake:
init: obsolete usages of AM_INIT_AUTOMAKE not supported anymore
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Sat, 19 May 2012 09:47:26 +0000 (11:47 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Mon, 21 May 2012 13:44:14 +0000 (15:44 +0200)]
help: fix a typo in the list of warning categories
* lib/Automake/ChannelDefs.pm (usage): s/none'/none/.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Sat, 19 May 2012 13:27:21 +0000 (15:27 +0200)]
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").
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Sat, 19 May 2012 13:18:43 +0000 (15:18 +0200)]
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").
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Sat, 19 May 2012 13:11:36 +0000 (15:11 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Sat, 19 May 2012 12:13:39 +0000 (14:13 +0200)]
Merge branch 'parallel-tests-default'
* parallel-tests-default:
check: the parallel-tests driver is now the default
Stefano Lattarini [Sat, 19 May 2012 12:09:55 +0000 (14:09 +0200)]
Merge branch 'maint'
* maint:
ylwrap: preserve subdirectories in "#line" munging
ylwrap: preparatory refactoring
Stefano Lattarini [Sat, 19 May 2012 11:22:12 +0000 (13:22 +0200)]
Merge branch 'ylwrap-line-filename' into maint
* ylwrap-line-filename:
ylwrap: preserve subdirectories in "#line" munging
ylwrap: preparatory refactoring
Stefano Lattarini [Fri, 18 May 2012 16:00:51 +0000 (18:00 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Fri, 18 May 2012 12:31:36 +0000 (14:31 +0200)]
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
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Tue, 15 May 2012 14:12:09 +0000 (16:12 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Thu, 17 May 2012 10:36:23 +0000 (12:36 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Nikolai Weibull [Wed, 16 May 2012 16:16:41 +0000 (18:16 +0200)]
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.
Copyright-paperwork-exempt: yes
Co-authored-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Wed, 16 May 2012 15:35:05 +0000 (17:35 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Wed, 16 May 2012 14:26:39 +0000 (16:26 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Wed, 16 May 2012 14:10:06 +0000 (16:10 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Wed, 16 May 2012 13:50:14 +0000 (15:50 +0200)]
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
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Sun, 13 May 2012 12:10:25 +0000 (14:10 +0200)]
Merge branch 'maint'
* maint:
tests: fix spurious failure due to i18n issue
tests: add few missing 'cc' and 'c++' requirements
Stefano Lattarini [Sat, 12 May 2012 06:42:37 +0000 (08:42 +0200)]
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.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Thu, 10 May 2012 12:32:27 +0000 (14:32 +0200)]
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++'.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Tue, 8 May 2012 11:22:59 +0000 (13:22 +0200)]
fixup: s/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/ in 't/confsub.sh'
Issue introduced in the recent merge 'v1.12-101-g12405c9'.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Tue, 8 May 2012 10:49:36 +0000 (12:49 +0200)]
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
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini [Mon, 7 May 2012 20:11:28 +0000 (22:11 +0200)]
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