platform/upstream/automake.git
12 years agoMerge branch 'subdir-objects-pr10697' into maint
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

12 years agomaintcheck: 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>
12 years agotests: merged some testsuite fixlets
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>
12 years agosubdir tests: avoid an use of "make -j4", for portability
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>
12 years agotests: avoid failure due to libtool quirks in C++ demo test
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>
12 years agotests: fix spurious failures due to missing '$sleep'
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>
12 years agoMerge branches 'subdirs-simplify' and 'subdir-objects-pr10697' into maint
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>
12 years agosubdirs: unify rules for "cleaning" and "normal" recursive targets
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>
12 years agotests: add a "demo" test on C support
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>
12 years agotests: look for '.lo' rather than '.o' object when using Libtool with C++
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>
12 years agocosmetics: few typofixes in older ChangeLogs, suggested by "codespell.py"
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>
12 years agomaint: grammar fixes: s/all these/all of these/
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/'

12 years agosubdir-objects: improve "make mostlyclean" efficiency and flexibility
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>
12 years agotests: look for '.lo' rather than '.o' object when using Libtool with C++
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>
12 years agocosmetics: few typofixes in older ChangeLogs, suggested by "codespell.py"
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>
12 years agotests: add basic semantic tests on C++ support
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>
12 years agotests: minor tweak to 't/objc-megademo.sh'
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>
12 years agonews: document deprecation of configure.in
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>
12 years agonews: put planned backward compatibilities early
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>
12 years agosync: update files from upstream with "make fetch"
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>
12 years agomaint: deprecate 'configure.in' as autoconf input
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>
12 years agomaint: post-release minor version bump
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>
12 years agorelease: stable release 1.12.1 v1.12.1
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>
12 years agocopyright: update copyright years in a couple of files
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>
12 years agotests: avoid spurious failures with Solaris 9 cscope program
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>
12 years agomaintcheck: fix a spurious failure
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>
12 years agoperf: beginning of a performance testsuite
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>
12 years agoMerge branch 'fix-pr11543' into maint
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

12 years agoaclocal: 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>
12 years agonews: support for configure.in will be dropped in future automake versions
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>
12 years agotests: fix botched heading comments in 'lex-clean-cxx.sh'
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>
12 years ago[ng] maintcheck: some tweaks and fixlets
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>
12 years agohelp: fix a typo in the list of warning categories
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>
12 years agomaint: version bump after beta release
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>
12 years agorelease: beta release 1.12.0b (will become 1.12.1) v1.12.0b
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>
12 years agorelease: remove overly picky check
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>
12 years agoMerge branch 'ylwrap-line-filename' into maint
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

12 years agotests: use 'parallel-tests' Automake option by default
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>
12 years agodoc: fix location of Automake's own test-suite.log file
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>
12 years agoylwrap: preserve subdirectories in "#line" munging
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>
12 years agoylwrap: preparatory refactoring
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>
12 years agoyacc tests: avoid a spurious failure with Sun C++ 5.9
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>
12 years agoself tests: cater for /bin/ksh symlinked to Zsh
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>
12 years agotests: fix spurious failures due to dpkg install-info
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>
12 years agotests: fix spurious failure due to i18n issue
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>
12 years agotests: add few missing 'cc' and 'c++' requirements
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>
12 years agoMerge branch 'testsuite-saner-shell' into maint
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

12 years agotests: fix a spurious failure with dash
Stefano Lattarini [Mon, 23 Apr 2012 17:03:33 +0000 (19:03 +0200)]
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.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agotest defs: fix indentation (cosmetic change)
Stefano Lattarini [Wed, 28 Dec 2011 12:23:31 +0000 (13:23 +0100)]
test defs: fix indentation (cosmetic change)

* defs (exit trap): Fix indentation left botched by previous
patch 'v1.11b-51-g626bf65'.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agotests: remove obsolete uses of $sh_errexit_works
Stefano Lattarini [Wed, 28 Dec 2011 12:23:31 +0000 (13:23 +0100)]
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.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoconfigure: search a sturdy POSIX shell to be used in the testsuite
Stefano Lattarini [Wed, 28 Dec 2011 12:23:31 +0000 (13:23 +0100)]
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.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agotests: shell running test scripts is now named AM_TEST_RUNNER_SHELL
Stefano Lattarini [Wed, 28 Dec 2011 12:23:31 +0000 (13:23 +0100)]
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.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agofixup: distribute t/README
Stefano Lattarini [Sun, 6 May 2012 11:33:09 +0000 (13:33 +0200)]
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'.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoinit: warn against obsolete usage of AM_INIT_AUTOMAKE
Stefano Lattarini [Sat, 31 Mar 2012 14:39:32 +0000 (16:39 +0200)]
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.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agom4: prepend m4 builtins with "m4_"
Stefano Lattarini [Sun, 6 May 2012 08:15:59 +0000 (10:15 +0200)]
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'.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agodocs: fix clumsy grammar in the scripts-based testsuite chapter
Nick Alcock [Fri, 4 May 2012 14:14:43 +0000 (15:14 +0100)]
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.

Copyright-paperwork-exempt: yes
Signed-off-by: Nick Alcock <nick.alcock@oracle.com>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agotests: use append mode to capture parallel make output
Stefano Lattarini [Sat, 5 May 2012 17:22:40 +0000 (19:22 +0200)]
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.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'parallel-tests-performance' into maint
Stefano Lattarini [Sat, 5 May 2012 14:39:10 +0000 (16:39 +0200)]
Merge branch 'parallel-tests-performance' into maint

* parallel-tests-performance:
  parallel-tests: separate different logs with an empty line

12 years agoparallel-tests: separate different logs with an empty line
Stefano Lattarini [Sat, 5 May 2012 14:33:36 +0000 (16:33 +0200)]
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.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agomaintcheck: avoid a couple of spurious failures
Stefano Lattarini [Fri, 4 May 2012 16:09:02 +0000 (18:09 +0200)]
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'.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agomaintcheck: reduce code duplication, increase coverage
Stefano Lattarini [Sat, 5 May 2012 00:01:20 +0000 (02:01 +0200)]
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.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'objc++' into maint
Stefano Lattarini [Fri, 4 May 2012 15:32:08 +0000 (17:32 +0200)]
Merge branch 'objc++' into maint

* objc++:
  tests: avoid spurious failure on missing Obj C/C++ compiler

12 years agotests: avoid spurious failure on missing Obj C/C++ compiler
Stefano Lattarini [Fri, 4 May 2012 15:31:06 +0000 (17:31 +0200)]
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.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'objc++' into maint
Stefano Lattarini [Fri, 4 May 2012 11:24:23 +0000 (13:24 +0200)]
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++

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agonews: document improvement in parallel-tests performance
Stefano Lattarini [Wed, 2 May 2012 16:04:25 +0000 (18:04 +0200)]
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"

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years ago tests: fix spurious failure due to autom4te caching
Stefano Lattarini [Wed, 2 May 2012 15:47:56 +0000 (17:47 +0200)]
 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).

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoobjc, objc++: test support for compilation flags
Stefano Lattarini [Tue, 1 May 2012 13:04:37 +0000 (15:04 +0200)]
objc, objc++: test support for compilation flags

* t/objc-flags.sh, t/objcxx-flags.sh: New tests.
* t/list-of-tests.mk: Add them.

Co-authored-by: Peter Breitenlohner <peb@mppmu.mpg.de>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoobjc, objc++: add stress test
Peter Breitenlohner [Mon, 30 Apr 2012 14:11:03 +0000 (16:11 +0200)]
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.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoobjc, objc++: test automatic dependency tracking
Stefano Lattarini [Mon, 30 Apr 2012 13:17:13 +0000 (15:17 +0200)]
objc, objc++: test automatic dependency tracking

* t/objc-deps.sh, t/objcxx-deps.sh: New tests.
* t/list-of-tests.mk: Add them.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoobjc: reorganize basic tests
Stefano Lattarini [Mon, 30 Apr 2012 12:30:42 +0000 (14:30 +0200)]
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.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoobjc++, objc: add first semantic tests
Stefano Lattarini [Mon, 30 Apr 2012 12:17:44 +0000 (14:17 +0200)]
objc++, objc: add first semantic tests

* t/objcxx-minidemo.sh: New test.
* t/objc-minidemo.sh: Likewise.
* t/list-of-tests.mk: Add them.

Co-authored-by: Peter Breitenlohner <peb@mppmu.mpg.de>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoobjc++: add first basic test
Peter Breitenlohner [Thu, 26 Apr 2012 23:00:27 +0000 (01:00 +0200)]
objc++: add first basic test

* t/objcxx-basic.sh: New test.
* t/list-of-tests.mk: Add it.

Signed-off-by: Peter Breitenlohner <peb@mppmu.mpg.de>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'parallel-tests-performance' into maint
Stefano Lattarini [Wed, 2 May 2012 10:51:09 +0000 (12:51 +0200)]
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

12 years agonews: fix typos
Stefano Lattarini [Wed, 2 May 2012 07:48:11 +0000 (09:48 +0200)]
news: fix typos

* NEWS (Bugs fixed in 1.12.1): Fix botched indentation of an entry,
add a forgotten "and", remove a redundant "the".

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoaclocal: error out again on unrecognized arguments
Stefano Lattarini [Tue, 1 May 2012 22:13:10 +0000 (00:13 +0200)]
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.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'cygnus-deprecate' into maint
Stefano Lattarini [Wed, 2 May 2012 07:59:46 +0000 (09:59 +0200)]
Merge branch 'cygnus-deprecate' into maint

* cygnus-deprecate:
  cygnus: warn when it's used (flagged as 'obsolete' now)

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agocosmetics: fix typo in aclocal m4 directory README
Andrew Eikum [Tue, 1 May 2012 14:18:56 +0000 (09:18 -0500)]
cosmetics: fix typo in aclocal m4 directory README

* m4/acdir/README: Add forgotten "if".
* THANKS: Update.

Copyright-paperwork-exempt: yes
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agofixup: botched edit in bootstrap.sh
Stefano Lattarini [Tue, 1 May 2012 12:25:51 +0000 (14:25 +0200)]
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'.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agonews: fix confusing wording
Stefano Lattarini [Tue, 1 May 2012 11:42:52 +0000 (13:42 +0200)]
news: fix confusing wording

Reported by Dave Hart.

* NEWS (Future backward-incompatibilities): Fix possibly confusing
wording about the upcoming requirement of Autoconf >= 2.65.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agonews: fixed weaknesses in build system and testsuite
Stefano Lattarini [Tue, 1 May 2012 11:32:42 +0000 (13:32 +0200)]
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

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agobootstrap: consistently use correct copyright year
Stefano Lattarini [Tue, 1 May 2012 10:43:22 +0000 (12:43 +0200)]
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".

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agofixup: remove leftover "TERM=ansi" definition in 't/color.sh'
Stefano Lattarini [Mon, 30 Apr 2012 21:25:18 +0000 (23:25 +0200)]
fixup: remove leftover "TERM=ansi" definition in 't/color.sh'

It should have actually be removed in commit 'v1.12-23-gb105d40'.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoparallel-tests: save few forks when possible
Stefano Lattarini [Mon, 30 Apr 2012 20:18:24 +0000 (22:18 +0200)]
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.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agonews: Automake 1.13 will require Autoconf >= 2.65
Stefano Lattarini [Mon, 30 Apr 2012 19:43:21 +0000 (21:43 +0200)]
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.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agonews: put planned future backward-incompatibilities on top
Stefano Lattarini [Mon, 30 Apr 2012 19:29:34 +0000 (21:29 +0200)]
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.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoreadme: update INSTALL to latest version from Autoconf
Stefano Lattarini [Mon, 30 Apr 2012 19:25:37 +0000 (21:25 +0200)]
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.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agosync: some auxiliary files synced from upstream
Stefano Lattarini [Mon, 30 Apr 2012 19:18:36 +0000 (21:18 +0200)]
sync: some auxiliary files synced from upstream

* lib/config.sub: Synced from upstream, by "make fetch".

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agohacking: copyright notices must be updated before releasing
Stefano Lattarini [Mon, 30 Apr 2012 19:17:06 +0000 (21:17 +0200)]
hacking: copyright notices must be updated before releasing

* HACKING (Release procedure): Suggest to use "make update-copyright".

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agocolor-tests: coloring can be forced on non-ANSI terminals as well
Stefano Lattarini [Mon, 30 Apr 2012 18:44:50 +0000 (20:44 +0200)]
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.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agocygnus: warn when it's used (flagged as 'obsolete' now)
Stefano Lattarini [Sat, 31 Mar 2012 12:53:24 +0000 (14:53 +0200)]
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.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoparallel-tests: optimize global log creation
Stefano Lattarini [Sat, 25 Feb 2012 23:30:18 +0000 (00:30 +0100)]
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.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoparallel-tests: optimize 'recheck' target for speed
Stefano Lattarini [Thu, 26 Apr 2012 20:25:35 +0000 (22:25 +0200)]
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.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agonews: announce initial support for Objective C++
Stefano Lattarini [Thu, 26 Apr 2012 13:14:04 +0000 (15:14 +0200)]
news: announce initial support for Objective C++

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoobjc++: test support for '.mm' suffix in _SOURCES entries
Peter Breitenlohner [Thu, 26 Apr 2012 13:12:39 +0000 (15:12 +0200)]
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.

Co-authored-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Signed-off-by: Peter Breitenlohner <peb@mppmu.mpg.de>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agocoverage: add performance tests on some parallel-tests aspects
Stefano Lattarini [Sun, 26 Feb 2012 08:42:11 +0000 (09:42 +0100)]
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

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoobjc++: add documentation
Peter Breitenlohner [Thu, 26 Apr 2012 13:03:02 +0000 (15:03 +0200)]
objc++: add documentation

* doc/automake.texi (Objective C++ Support): New node.
(How the Linker is Chosen, Support for Other Languages): Adjust.

Signed-off-by: Peter Breitenlohner <peb@mppmu.mpg.de>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoobjc++: initial support for Objective C++
Peter Breitenlohner [Thu, 26 Apr 2012 13:01:23 +0000 (15:01 +0200)]
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.

Signed-off-by: Peter Breitenlohner <peb@mppmu.mpg.de>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'mkdirp-deprecate' into maint
Stefano Lattarini [Sun, 29 Apr 2012 20:35:16 +0000 (22:35 +0200)]
Merge branch 'mkdirp-deprecate' into maint

* mkdirp-deprecate:
  AM_PROG_MKDIR_P: deprecate, to be removed in Automake 1.13

12 years agotests: root can write on files without write perms; cater for this
Stefano Lattarini [Sat, 28 Apr 2012 21:18:45 +0000 (23:18 +0200)]
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'.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agotests: require lex, not yacc, in a lex test case
Stefano Lattarini [Sat, 28 Apr 2012 19:36:42 +0000 (21:36 +0200)]
tests: require lex, not yacc, in a lex test case

See automake bug#11369.

* t/lex-clean.sh ($required): Require 'lex', not 'yacc'.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>