platform/upstream/automake.git
12 years agoMerge branch 'maint'
Stefano Lattarini [Fri, 4 May 2012 15:46:51 +0000 (17:46 +0200)]
Merge branch 'maint'

* maint:
  tests: avoid spurious failure on missing Obj C/C++ compiler
  objc, objc++: test support for compilation flags
  objc, objc++: add stress test
  objc, objc++: test automatic dependency tracking
  objc: reorganize basic tests
  objc++, objc: add first semantic tests
  objc++: add first basic test
  news: announce initial support for Objective C++
  objc++: test support for '.mm' suffix in _SOURCES entries
  objc++: add documentation
  objc++: initial support for Objective C++

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 agodist: don't bother putting README first in $(DIST_COMMON)
Stefano Lattarini [Thu, 3 May 2012 15:30:56 +0000 (17:30 +0200)]
dist: don't bother putting README first in $(DIST_COMMON)

Comments on some of our automake-time pre-processing of $(DIST_COMMON)
said that it was done in order to "put README first because it then
becomes easier to make a Usenet-compliant shar file".  But such a
format is hardly relevant anymore, and not worth the (albeit small)
added complexity.

* automake.in (handle_dist): Don't sort @dist_common.
(for_dist_common): Delete this function, is not used anymore.
* lib/am/distdir.am (DISTFILES): Remove obsolete comment.
* t/distcom4.sh: Adjust.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'always-support-silent-rules'
Stefano Lattarini [Wed, 2 May 2012 16:15:41 +0000 (18:15 +0200)]
Merge branch 'always-support-silent-rules'

* always-support-silent-rules:
  silent rules: support for them is always active now

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'maint'
Stefano Lattarini [Wed, 2 May 2012 16:14:55 +0000 (18:14 +0200)]
Merge branch 'maint'

* maint:
  news: document improvement in parallel-tests performance
  tests: fix spurious failure due to autom4te caching
  news: fix typos
  aclocal: error out again on unrecognized arguments
  parallel-tests: save few forks when possible
  parallel-tests: optimize global log creation
  parallel-tests: optimize 'recheck' target for speed
  coverage: add performance tests on some parallel-tests aspects

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-remove'
Stefano Lattarini [Wed, 2 May 2012 08:52:18 +0000 (10:52 +0200)]
Merge branch 'cygnus-remove'

* cygnus-remove:
  cygnus: remove support for Cygnus-style trees

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'maint'
Stefano Lattarini [Wed, 2 May 2012 08:26:12 +0000 (10:26 +0200)]
Merge branch 'maint'

* maint:
  cosmetics: fix typo in aclocal m4 directory README
  cygnus: warn when it's used (flagged as 'obsolete' now)

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 agosilent rules: support for them is always active now
Stefano Lattarini [Tue, 1 May 2012 12:23:04 +0000 (14:23 +0200)]
silent rules: support for them is always active now

Before this change, support for silent rules was optional and activated
only if the 'silent-rules' option was specified.

The rationale behind that behaviour was that the silent-rules machinery
originally only worked with make implementations supporting nested
variables expansions, which isn't (or wasn't) a POSIX-specified features;
so that packages wanting to be "extra-portable" couldn't use the
silent-rules machinery at all.

But after Paul Eggert's commit 'v1.11-598-g8493499' of 25-12-2011,
"silent-rules: fallback for makes without nested vars" (motivated
by automake bugs #9928 and #10237), Makefiles generated when the
'silent-rules' option is enabled can work also with those make
implementations that don't support nested variables expansion (albeit
the configure-time selected verbosity cannot be overridden at make
runtime in such case).

In light of that, and since silent rules are disabled by default even
when the 'silent-rules' option is given (unless the developer explicitly
makes them enabled by default be calling "AM_SILENT_RULES([yes])" in
configure.ac), we can now have the support for silent rules always
enabled.

The 'silent-rules' option will thus become a no-op, but will reaming a
valid option for the time being, for better backward-compatibility.

A collateral effect of this change is that the use of the 'silent-rules'
option will not anymore automatically disable the warnings in the
'portability-recursive' category.

The present change is basically a backport of the Automake-NG commit
'v1.11d-75-g61ca923' of 19-04-2012, "[ng] silent rules: support for
them is always active now".  Stemmed by this thread on the Automake-NG
list:
<http://lists.gnu.org/archive/html/automake-ng/2012-04/msg00027.html>

* automake.in: Enable silent-rules machinery unconditionally.  Reword
some comments.  Do not switch off warnings in the category
'portability-recursive' anymore if the 'silent-rules' option is
given.
* m4/init.m4: Call 'AC_REQUIRE' on 'AM_SILENT_RULES' unconditionally.
* lib/Automake/Options.pm: Recognize 'silent-rules' as a dummy option.
Do not bother anymore checking that it is set in 'configure.ac'.
* t/silent.sh: Remove now-redundant calls to AM_SILENT_RULES.
* t/silent2.sh: Likewise.
* t/silent3.sh: Likewise.
* t/silent4.sh: Likewise.
* t/silent8.sh: Likewise.
* t/silent9.sh: Likewise.
* t/silent-lex.sh: Likewise.
* t/silent-many-gcc.sh: Likewise.
* t/silent-many-generic.sh: Likewise.
* t/silent-yacc-headers.sh: Likewise.
* t/silent-yacc.sh: Likewise.
* t/silentcxx-gcc.sh: Likewise.
* t/silentcxx.sh: Likewise.
* t/silentf77.sh: Likewise.
* t/silentf90.sh: Likewise.
* t/help-silent.sh: Likewise.
* t/silent-configsite.sh: Likewise, and other minor adjustments.
* t/silent7.sh: Likewise.  Also, extend to check that silent rules
are disabled by default, and remove obsoleted checks about the
'silent-rules' option being rejected in 'AUTOMAKE_OPTIONS'.
* t/silent6.sh: Remove now-redundant calls to 'AM_SILENT_RULES'.
Call automake with '-Wno-portability-recursive'.  Remove other
obsoleted checks.
* t/dollarvar.sh: Don't expect the use of 'AM_SILENT_RULES' in
'configure.ac' to disable warning in the 'portability-recursive'
category anymore.
* t/compile_f_c_cxx.sh: Adjust to avoid a spurious failure.
* t/silent-amopts.sh: Remove as obsolete.
* t/silent-nowarn.sh: Likewise.
* t/list-of-tests.mk: Adjust.
* NEWS: Update.
* doc/automake.texi: Update and simplify accordingly.
* configure.ac (AM_INIT_AUTOMAKE): Remove 'silent-rules' option.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'maint'
Stefano Lattarini [Tue, 1 May 2012 12:28:39 +0000 (14:28 +0200)]
Merge branch 'maint'

* maint:
  fixup: botched edit in bootstrap.sh

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 agoMerge branch 'maint'
Stefano Lattarini [Tue, 1 May 2012 12:04:56 +0000 (14:04 +0200)]
Merge branch 'maint'

* maint:
  news: fix confusing wording
  news: fixed weaknesses in build system and testsuite
  bootstrap: consistently use correct copyright year
  fixup: remove leftover "TERM=ansi" definition in 't/color.sh'

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 agoMerge branch 'maint'
Stefano Lattarini [Mon, 30 Apr 2012 20:07:15 +0000 (22:07 +0200)]
Merge branch 'maint'

* maint:
  news: Automake 1.13 will require Autoconf >= 2.65
  news: put planned future backward-incompatibilities on top
  readme: update INSTALL to latest version from Autoconf
  sync: some auxiliary files synced from upstream
  hacking: copyright notices must be updated before releasing
  color-tests: coloring can be forced on non-ANSI terminals as well

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: remove support for Cygnus-style trees
Stefano Lattarini [Fri, 6 Apr 2012 09:18:38 +0000 (11:18 +0200)]
cygnus: remove support for Cygnus-style trees

Support for "Cygnus-style" tree as enabled by the 'cygnus' option
has been deprecated in the documentation and with runtime warning
since Automake 1.12.1.  It's now time to remove it.

Closes automake bug#11034.

* lib/Automake/Options.pm (_process_option_list): Issue a proper
error when the 'cygnus' option is seen.
* automake.in: Don't handle the 'cygnus' option anymore.
* docs/automake.texi: Remove references to cygnus option and
Cygnus-style trees.
* lib/am/dejagnu.am, lib/am/texinfos.am: Drop special setups for
cygnus mode.
* NEWS: Update.
* t/cygnus-no-more.sh: New test.
* t/flavor.sh: Adjust.
* t/cygnus-deprecation.sh: Remove.
* t/cygnus-check-without-all.sh: Likewise.
* t/cygnus-requires-maintainer-mode.sh: Likewise.
* t/cygnus-dependency-tracking.sh: Likewise.
* t/cygnus-imply-foreign.sh: Likewise.
* t/cygnus-no-installinfo.sh: Likewise.
* t/cygnus-no-dist.sh: Likewise.
* t/clean2.sh: Likewise.
* t/txinfo5.sh: Likewise.
* t/txinfo5b.sh: Likewise.
* t/list-of-tests.mk: Update.

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-remove' into master
Stefano Lattarini [Sun, 29 Apr 2012 20:45:00 +0000 (22:45 +0200)]
Merge branch 'mkdirp-remove' into master

* mkdirp-remove:
  AM_PROG_MKDIR_P: remove as obsolete

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'maint'
Stefano Lattarini [Sun, 29 Apr 2012 20:43:27 +0000 (22:43 +0200)]
Merge branch 'maint'

* maint:
  AM_PROG_MKDIR_P: deprecate, to be removed in Automake 1.13

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 agoMerge branch 'maint'
Stefano Lattarini [Sun, 29 Apr 2012 20:32:20 +0000 (22:32 +0200)]
Merge branch 'maint'

* maint:
  tests: root can write on files without write perms; cater for this
  tests: require lex, not yacc, in a lex test case
  maint: fix a comment typo

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>
12 years agoAM_PROG_MKDIR_P: remove as obsolete
Stefano Lattarini [Fri, 6 Apr 2012 09:24:11 +0000 (11:24 +0200)]
AM_PROG_MKDIR_P: remove as obsolete

Support for the obsolescent 'AM_PROG_MKDIR_P' m4 macro (and its
output variable '$(mkdir_p)') has in the documentation and with
runtime warning since Automake 1.12.1.  It's now time to remove it.

* automake.in (scan_autoconf_traces): Remove special handling of
'AM_PROG_MKDIR_P'.
* m4/mkdirp.m4: Delete.
* Makefile.am (dist_automake_ac_DATA): Remove it.
* t/mkdirp-deprecation.sh: Delete.
* t/list-of-tests.mk: Remove it.
* doc/automake.texi: Remove references to the 'AM_MKDIR_P' m4 macro
and the '$(mkdir_p)' output variable.
* t/gettext-macros.sh: Ensure the gettext-requiring tests will
still see the now-removed 'AM_PROG_MKDIR_P' macro as an alias for
the 'AC_PROG_MKDIR_P' macro, since even recent versions of gettext
uses 'AM_PROG_MKDIR_P' in their '.m4' files.
* NEWS: Update.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoAM_PROG_MKDIR_P: deprecate, to be removed in Automake 1.13
Stefano Lattarini [Mon, 2 Apr 2012 15:05:42 +0000 (17:05 +0200)]
AM_PROG_MKDIR_P: deprecate, to be removed in Automake 1.13

Support for the obsolescent 'AM_PROG_MKDIR_P' macro (and its
output variable '$(mkdir_p)') has already been deprecated in
the documentation.  It's now time to make its use actively
emit warnings in the 'obsolete' category as well.

* automake.in (scan_autoconf_traces): Warn about 'AM_PROG_MKDIR_P'
obsolescent if that macro is seen.
* m4/mkdirp.m4 (AM_PROG_MKDIR_P): Warn about its own obsolescence.
* m4/init.m4: Require 'AC_PROG_MKDIR_P', not 'AM_PROG_MKDIR_P'.
* t/mkdirp-deprecation.sh: New test.
* t/list-of-tests.mk: Add it.
* syntax-check.mk (sc_mkdir_p): Delete this check as obsolete.
(syntax_check_rules): Remove it.
* t/gettext-macros.sh: Ensure the gettext-requiring tests will
call aclocal and automake with the 'obsolete' warnings disabled,
since even recent versions of gettext used the now-deprecated
'AM_PROG_MKDIR_P' m4 macro.
* NEWS: Update.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agomaint: fix a comment typo
Jim Meyering [Sat, 28 Apr 2012 08:40:26 +0000 (10:40 +0200)]
maint: fix a comment typo

* configure.ac: Fix typo in comment: s/out/our/

12 years agoMerge branches 'remove-acdir-option' and 'remove-obsolete-m4'
Stefano Lattarini [Sat, 28 Apr 2012 08:53:20 +0000 (10:53 +0200)]
Merge branches 'remove-acdir-option' and 'remove-obsolete-m4'

* remove-acdir-option:
  aclocal: remove the --acdir option

* remove-obsolete-m4:
  m4: delete several obsolete macros

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'maint'
Stefano Lattarini [Sat, 28 Apr 2012 08:47:22 +0000 (10:47 +0200)]
Merge branch 'maint'

* maint:
  fixup: avoid unconditional re-bootstrapping on "make dist"
  build: ensure release year in copyright notice is up-to-date
  cosmetics: fix spacing in THANKS
  readme: explicitly state we use ranges in copyright years
  bootstrap: add convenience make target
  automake, aclocal: update copyright year in output

12 years agofixup: avoid unconditional re-bootstrapping on "make dist"
Stefano Lattarini [Sat, 28 Apr 2012 08:21:31 +0000 (10:21 +0200)]
fixup: avoid unconditional re-bootstrapping on "make dist"

Since our 'bootstrap' script is distributed, the 'distdir' target depends
on it.  But in our GNUmakefile, we also have a 'bootstrap' target declared
.PHONY, which when called re-bootstrap the Automake distribution.  Thus,
whenever we run "make dist", GNU make sees it must remake the 'bootstrap'
target (as it is a dependency of the 'distdir' target), and thus ends up
re-bootstrapping all the package (because of the .PHONY 'bootstrap' target
in GNUmakefile).

We fix this issue by renaming our bootstrap script to 'bootstrap.sh'.

* bootstrap: Renamed ...
* bootstrap.sh: ... to this.
* GNUmakefile (bootstrap): Adjust.
* Makefile.am (EXTRA_DIST): Likewise.
(autodiffs): Likewise.
* HACKING: Likewise.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agobuild: ensure release year in copyright notice is up-to-date
Stefano Lattarini [Fri, 27 Apr 2012 14:27:08 +0000 (16:27 +0200)]
build: ensure release year in copyright notice is up-to-date

From a suggestion by Eric Blake.  See automake bug#11356.
This is a follow-up to previous patch 'v1.12-12-gb99b5be'.

* configure.ac (RELEASE_YEAR): New AC_SUBST'd variable, should hold
the value of the current year.
* Makefile.am (update-copyright): Be sure to also update the
definition of 'RELEASE_YEAR' in configure.ac.
* lib/Automake/Config.in ($RELEASE_YEAR): New exported variable,
initialized from the value substituted for '@RELEASE_YEAR@'.
(@EXPORT): Add it.
* automake.in, aclocal.in: Use '$RELEASE_YEAR' (which will be
substituted at make time) instead of hard-coding the release
year.  This should ensure the copyright range in the version
message and in the generated files (Makefile.in and aclocal.m4)
are automatically kept up-to-date.
* bootstrap (dosubst): Update, also substitute '@RELEASE_YEAR@'.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agocosmetics: fix spacing in THANKS
Stefano Lattarini [Fri, 27 Apr 2012 21:56:17 +0000 (23:56 +0200)]
cosmetics: fix spacing in THANKS

* THANKS: Use spaces, not tabs, to separate a reporter's name from
his e-mail address.  Also, increase such spacing, to allow a more
consistent formatting with longer names.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoreadme: explicitly state we use ranges in copyright years
Stefano Lattarini [Sat, 28 Apr 2012 07:29:34 +0000 (09:29 +0200)]
readme: explicitly state we use ranges in copyright years

Reported by Jack Kelly in automake bug#11356.

* README: Explicitly state we use ranges in copyright years; this is
mandated by the GNU Coding Standards for each package that wants to
actually use ranges in copyright years.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoaclocal: remove the --acdir option
Stefano Lattarini [Fri, 6 Apr 2012 08:46:27 +0000 (10:46 +0200)]
aclocal: remove the --acdir option

It not documented in the manual anymore, its use has already been
causing a deprecation warning, and its oncoming removal has already
been announced in the NEWS file.  So let's finally remove it.

* aclocal.in (parse_arguments): Don't recognize the '--acdir' option
anymore.
(handle_acdir_option): Remove subroutine.
* configure.ac ($ACLOCAL): Adjust.
($AUTOMAKE): Cosmetic changes, for consistency.
* tests/aclocal-acdir.test: Remove usages of the '--acdir' option.
* tests/aclocal-print-acdir.test: Likewise.
* NEWS: Update.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agobootstrap: add convenience make target
Stefano Lattarini [Fri, 27 Apr 2012 16:48:27 +0000 (18:48 +0200)]
bootstrap: add convenience make target

Dependencies in the Automake build system are not completely specified
(see for example the commit log of recent commit 'v1.12-10-gab14841',
"build: avoid too greedy rebuilds in the testsuite").  In fact, some of
them cannot even be; for example, Makefile is generated at configure
time from Makefile.in, which should be regenerated by our bleeding-edge
automake script, which is generated by out Makefile -- specifying the
complete chain of dependencies here would bring to a circular dependency
issue.

For this reason, before testing or deploying a change, we are often
forced to perform a full re-bootstrap of the Automake package, to ensure
all our files are actually up-to-date.  Until now, this has to be done
manually, thus causing wasted keystrokes and more possibilities of error.

With this change, we introduce a new 'bootstrap' make target to
automatize all the (easy) steps of this re-bootstrapping (plus some
minor bells & whistles since we are at it).

* GNUmakefile: Rewrite to allow an easy bootstrapping and clean rebuild
of the whole package, in particular with the help of ...
(bootstrap): ...  this new target.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agom4: delete several obsolete macros
Stefano Lattarini [Fri, 6 Apr 2012 08:10:12 +0000 (10:10 +0200)]
m4: delete several obsolete macros

Support for several obsolescent macros has already been deprecated,
and their removal already announced in the documentation and in the
NEWS file.  It's now time to finally remove them.

* m4/dmalloc.m4 (fp_WITH_DMALLOC): Don't define anymore.
* m4/maintainer.m4 (jm_MAINTAINER_MODE): Likewise.
* m4/lispdir.m4 (ud_PATH_LISPDIR): Likewise.
* m4/protos.m4 (fp_C_PROTOTYPES): Likewise.
* m4/ccstdc.m4: Delete file.
* m4/header.m4: Likewise.
* m4/obsol-gt.m4: Likewise.
* m4/obsol-lt.m4: Likewise.
* m4/obsolete.m4: Likewise.
* Makefile.am (dist_automake_ac_DATA): Don't list the deleted '.m4'
files anymore.
* t/confh.sh: Use 'AC_CONFIG_HEADERS' instead of the now-removed
AM_CONFIG_HEADER.
* t/confh.sh: Likewise.
* t/confh4.sh: Likewise.
* t/confh6.sh: Likewise.
* t/confh7.sh: Likewise.
* t/confh8.sh: Likewise.
* t/confsub.sh: Likewise.
* t/stamph2.sh: Likewise.
* t/subdir6.sh: Likewise.
* t/autohdr2.sh: Remove as obsolete.
* t/obsolete.sh: Likewise.
* t/list-of-tests.mk. Don't list the deleted test cases anymore.
* NEWS: Update.
* doc/automake.texi: Likewise.  In particular ...
(Obsolete Macros): Remove this node altogether.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoautomake, aclocal: update copyright year in output
Stefano Lattarini [Fri, 27 Apr 2012 09:14:53 +0000 (11:14 +0200)]
automake, aclocal: update copyright year in output

Fixes automake bug#11356.

* aclocal.in, automake.in: Add copyright year '2012' in the version
message.  Ditto for the copyright notice in the generated Makefile.in
or aclocal.m4 files; and for those, since we are at it, prefer using
a range for copyright years, rather than listing each copyright year
individually.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'maint'
Stefano Lattarini [Thu, 26 Apr 2012 15:52:31 +0000 (17:52 +0200)]
Merge branch 'maint'

* maint:
  maint: don't use "union" merge driver for NEWS anymore
  build: avoid too greedy rebuilds in the testsuite
  tests: avoid yet another spurious environment influence
  tests: fix a failure in Lex/C++ tests on Mac OS X
  tests: fix a spurious failure due to truncated timestamps
  build: require autoconf 2.69
  build: don't require minimal automake version in AM_INIT_AUTOMAKE

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agomaint: don't use "union" merge driver for NEWS anymore
Stefano Lattarini [Thu, 26 Apr 2012 15:47:14 +0000 (17:47 +0200)]
maint: don't use "union" merge driver for NEWS anymore

The use of the "union" merge driver to avoid conflicts in NEWS has
proven to be problematic, as it often silently produced mis-merges
(instead of spurious conflicts, but a spurious conflict is better
than a mis-merge).  Also, our new branching policy (see automake
bug#11153 for a description) should greatly mitigate the problem of
merge conflicts in NEWS.  For further discussion, see:
<http://lists.gnu.org/archive/html/automake-patches/2012-04/msg00148.html>

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agobuild: avoid too greedy rebuilds in the testsuite
Stefano Lattarini [Thu, 26 Apr 2012 13:05:05 +0000 (15:05 +0200)]
build: avoid too greedy rebuilds in the testsuite

The autogenerated makefile fragment 't/testsuite-part.am' used to depend
on the list of *all* the hand-written files.  This was technically correct,
since that makefile fragment was (and still is) generated by the script
'gen-testsuite-part', which scans all the hand-written files to detect
implicit dependencies and to decide for which tests a further wrapper test
should be generated.

However, the presence of such a dependency implied that, whenever *any*
test case was modified (no matter how slightly), the 't/testsuite-part.am'
file was rebuilt, and since that is included by our 'Makefile.am', the
'Makefile.in' file was rebuilt as well by automake.  In order to do so,
automake scanned our 'configure.ac' file, which requires the latest
Autoconf version (2.69 at the time of writing), and the casual user can
easily lack that on his machine (and that should be allowed, as automake
currently supports any autoconf version >= 2.62).

The described situation could hinder in-field testing or debugging by
users (even experienced ones) that are not automake developers; see for
example automake bug#11347.

So we drop the explicit dependency of 't/testsuite-part.am' on the
hand-written test cases.  (As an aside, note that this has already
been done in Automake-NG, albeit for other reasons; see the commit
'v1.11b-129-g1690aca' of 2012-04-23, "[ng] build: define $(TESTS)
through a wildcard").

This is not a serious regression in the faithfulness of the Automake
build systems, since it unfortunately already had several undeclared
dependencies; e.g., 'Makefile.in' should depend on the automake script,
and 'aclocal.m4' should depend on the aclocal script (but this isn't
possible, as it would mean that distributed files depend on ones generated
at make time).  Similarly, 'Makefile.in' should depend on some of the
'lib/am/*.am' files, but does not.

Currently, the workaround to get a faithful and correct rebuild is to run

  ./bootstrap && ./config.status --recheck && make clean all

and the present commit does not change that.

* Makefile.am ($(srcdir)/t/testsuite-part.am): Don't depend on
't/list-of-tests.mk' nor on '$(handwritten_TESTS)' anymore.
($(generated_TESTS)): Likewise, and don't depend on 'Makefile.am'
either.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'fix-pr11345-lex' into maint
Stefano Lattarini [Thu, 26 Apr 2012 15:14:34 +0000 (17:14 +0200)]
Merge branch 'fix-pr11345-lex' into maint

* fix-pr11345-lex:
  tests: fix a failure in Lex/C++ tests on Mac OS X

12 years agoMerge branch 'fix-pr11346-timestamp' into maint
Stefano Lattarini [Thu, 26 Apr 2012 10:34:51 +0000 (12:34 +0200)]
Merge branch 'fix-pr11346-timestamp' into maint

* fix-pr11346-timestamp:
  tests: fix a spurious failure due to truncated timestamps

12 years agotests: avoid yet another spurious environment influence
Thien-Thi Nguyen [Thu, 26 Apr 2012 10:30:10 +0000 (12:30 +0200)]
tests: avoid yet another spurious environment influence

* t/remake11.sh: Unset 'd' before first use.

Copyright-paperwork-exempt: yes
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agotests: fix a failure in Lex/C++ tests on Mac OS X
Stefano Lattarini [Thu, 26 Apr 2012 08:29:42 +0000 (10:29 +0200)]
tests: fix a failure in Lex/C++ tests on Mac OS X

The <cstdio> header from Xcode-4.3.2 on Mac OS X 10.7.3 declares a 'isatty'
function with C++ linkage, that conflicts with our dummy definition of the
same function, which in turn is required to work around the absence of the
unistd.h header on MinGW (see commit 'v1.11-2138-gfeea090' of 11-04-2012).
So we tweak the affected tests to work around this new problem as well.

This fixes automake bug#11345.

* t/lex-clean-cxx.sh ($required): Since we are at it, add an explicit
'c++' requirement.
* t/lex-depend-cxx.sh ($required): Likewise.
(my-hdr.hxx): Don't include <cstdio>.  The "using namespace" directive
should still be enough to ensure the content of this header is not valid
C, albeit being of course valid C++.
Fix unrelated typos in comments.
(joe.ll): Adjust, by removing the call to 'printf'.
* THANKS: Add entry for reporter "Adam Mercer".

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agotests: fix a spurious failure due to truncated timestamps
Stefano Lattarini [Thu, 26 Apr 2012 08:52:48 +0000 (10:52 +0200)]
tests: fix a spurious failure due to truncated timestamps

Fixes automake bug#11346.

* t/self-check-is_newest.tap: Apparently, on some systems (or file
systems), "touch -r" can truncate timestamps :-(  Work around that.

Co-authored-by: Peter Breitenlohner <peb@mppmu.mpg.de>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agobuild: require autoconf 2.69
Stefano Lattarini [Wed, 25 Apr 2012 22:04:35 +0000 (00:04 +0200)]
build: require autoconf 2.69

It is only from version 2.69 that the 'AC_PROG_FC' macro has started to
set the '$GFC' variable to "yes" if the selected Fortran compiler is a
GNU compiler.  Since we use this variable in our configure.ac, we better
require autoconf 2.69 explicitly.

* configure.ac (AC_PRERQ): Require autoconf >= 2.69.
Remove a now-obsolete "FIXME" comment.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agobuild: don't require minimal automake version in AM_INIT_AUTOMAKE
Stefano Lattarini [Wed, 25 Apr 2012 21:58:05 +0000 (23:58 +0200)]
build: don't require minimal automake version in AM_INIT_AUTOMAKE

* configure.ac (AM_INIT_AUTOMAKE): Don't explicitly require a minimal
automake version number.  Since the Automake build system is only meant
to work with the bleeding-edge automake, that requirement was redundant
and misleading.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agopost-release: major version bump
Stefano Lattarini [Wed, 25 Apr 2012 21:24:07 +0000 (23:24 +0200)]
post-release: major version bump

This is for the master branch.

* configure.ac, m4/amversion.m4: Bump version to 1.12a.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'maint'
Stefano Lattarini [Wed, 25 Apr 2012 21:15:39 +0000 (23:15 +0200)]
Merge branch 'maint'

* maint:
  post-release: minor version bump

12 years agopost-release: minor version bump
Stefano Lattarini [Wed, 25 Apr 2012 21:14:52 +0000 (23:14 +0200)]
post-release: minor version bump

This is for the maint branch.

* configure.ac, m4/amversion.m4: Bump version to 1.12.0a.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch master into maint after 1.12 release
Stefano Lattarini [Wed, 25 Apr 2012 21:02:35 +0000 (23:02 +0200)]
Merge branch master into maint after 1.12 release

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agorelease: stable major release 1.12 v1.12
Stefano Lattarini [Wed, 25 Apr 2012 15:49:43 +0000 (17:49 +0200)]
release: stable major release 1.12

* configure.ac (AC_INIT): Bump version number to 1.12.
* NEWS: Likewise.
* m4/amversion.m4 (AM_AUTOMAKE_VERSION): Likewise (autoupdated
by ./bootstrap).

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branches 'fix-pr11302-opensuse' and 'fix-pr11306-macosx'
Stefano Lattarini [Wed, 25 Apr 2012 11:11:08 +0000 (13:11 +0200)]
Merge branches 'fix-pr11302-opensuse' and 'fix-pr11306-macosx'

* fix-pr11302-opensuse:
  tests: cater to systems installing libs in /lib64

* fix-pr11306-macosx:
  tests: fix spurious failure on Mac OS X

12 years agocoverage: test the internal $(am__relativize) variable
Stefano Lattarini [Mon, 23 Apr 2012 20:56:52 +0000 (22:56 +0200)]
coverage: test the internal $(am__relativize) variable

This new coverage might turn out be useful for the planned changes
in Automake-NG.  Even if it eventually doesn't, we gen an improved
testsuite exposure of some non-trivial internals, so it's always a
win for us.

* t/relativize.tap: New test.
* t/list-of-tests.mk: Add it.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agotests: cater to systems installing libs in /lib64
Stefano Lattarini [Mon, 23 Apr 2012 13:51:25 +0000 (15:51 +0200)]
tests: cater to systems installing libs in /lib64

See automake bug#11302.

On at least OpenSUSE 12.1, "make install" will install libraries in
the '${prefix}/lib64'  directory by default.  This is due to the
$CONFIG_SITE set by /etc/profile.d/site.sh, which sets a libdir
that ends in '/lib64' rather than '/lib' if it finds that the compiler
is generating 64-bit code.  This behaviour was causing some spurious
failures in our testsuite.  Fix them.

* t/posixsubst-libraries.sh: Assume the libraries are installed in
'$(libdir)' rather than in '$(prefix)/lib'.
* t/posixsubst-ltlibraries.sh: Likewise.
* t/posixsubst-scripts.sh: Similarly, don't assume that '$(bindir)',
'$(sbindir)' and '$(libexedir)' always defaults to respectively
'$(prefix)/bin', '$(prefix)/sbin' and '$(prefix)/libexec'.
* t/transform3.test: Likewise.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agotests: fix spurious failure on Mac OS X
Stefano Lattarini [Mon, 23 Apr 2012 10:47:43 +0000 (12:47 +0200)]
tests: fix spurious failure on Mac OS X

See automake bug#11306.

* t/lex-libobj.sh: We used to pass LEXLIB='-L /lib' to the ./configure
invocation, to prevent it from explicitly searching for a "lex library".
But the linker on MacOS X 10.5 apparently chokes on that:

  cc -g -O2  -o foo foo.o -L /lib yywrap.o
  ld: file not found: /lib
  collect2: ld returned 1 exit status

So, we now instead pass LEXLIB=' ', which being non-empty is enough
to prevent the search of a "lex library".  And since we are at it,
enhance comments on this non-obvious usage.

Co-authored-by: Bruno Haible <bruno@clisp.org>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agocoverage: parallel make with vala
Stefano Lattarini [Sun, 22 Apr 2012 09:00:04 +0000 (11:00 +0200)]
coverage: parallel make with vala

* t/vala-parallel.sh: New test.
* t/list-of-tests.mk: Add it.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agovala: configure exit with status 77, not 1, if valac version is too old
Stefano Lattarini [Sat, 21 Apr 2012 13:51:09 +0000 (15:51 +0200)]
vala: configure exit with status 77, not 1, if valac version is too old

From a report by Bruno Haible in automake bug#1193.  This change should
also automatically avoid spurious testsuite failures with older vala
versions.

* m4/vala.m4 (AM_PROG_VALAC): Exit with status 77, rather than 1, if
the Vala compiler found older than the minimal required version (if
any).  This is more consistent with what is done by other macros like
AM_PROG_UPC or AC_PROG_CC.
* NEWS: Update.
* t/vala-headers.sh: Adjust, so that the test is only skipped of the
vala compiler is too old or the required PKG_CHECK_MODULES third-party
macro is not found by aclocal, and not if a generic error happens in
the configure script.
* t/vala-libs.sh: Likewise.
* t/vala2.sh: Likewise.
* t/vala3.sh: Likewise.
* t/vala5.sh: Likewise.
* t/vala-vpath.sh: Likewise (but don't check for the potential error
with PKG_CHECK_MODULES, as that macro is not used in any way here).
* t/vala4.sh: Adjust, to avoid the new semantic causing this test to
skip instead of failing.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agorefactor: processing of input makefile rules
Stefano Lattarini [Fri, 20 Apr 2012 08:05:51 +0000 (10:05 +0200)]
refactor: processing of input makefile rules

This is a pure refactoring, with no intended functional or semantic
changes.  It breaks up an overly-long function in three smaller
sub-functions.  This change will very especially useful for the work
on Automake-NG.

* lib/Automake/Rule.pm (define): Move quite a lot of code out, into ...
(_rule_defn_with_exeext_awareness, _maybe_warn_about_duplicated_target,
_conditionals_for_rule): ... these new subroutines.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoautomake: refactor pre-processing of makefile fragments
Stefano Lattarini [Mon, 16 Apr 2012 12:59:53 +0000 (14:59 +0200)]
automake: refactor pre-processing of makefile fragments

This change will provide the automake script with a new function that
reads in a Makefile fragment *without* performing Automake ad-hoc parsing,
but only the pre-processing step, i.e., removal of '##' comments and
substitution of tokens like '%SUBDIRS%', '%?LIBTOOL%' or '?GENENRIC?'.

This will very likely be useful for the work on Automake-NG.

This is a pure refactoring, with no intended functional or semantic
changes.

* automake.in (preprocess_file): New function, extracted ...
(make_paragraphs): ... from here.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agodocs: remove obsolete references to Autoconf 2.13
Stefano Lattarini [Fri, 20 Apr 2012 17:29:14 +0000 (19:29 +0200)]
docs: remove obsolete references to Autoconf 2.13

Autoconf 2.13 is definitely obsolete today, so giving hints or caveats
about it in the Automake documentation is not only obsolescent, but
also counter-productive, as it suggests that autoconf 2.13 is still
relevant.

* doc/automake.texi: Adjust.  Related rewordings.  Since we are at it,
prefer using a more modern autoconf version number (2.68 instead of 2.57)
in an example showing how to correctly use 'AC_PREREQ' in third-party
.m4 files.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agotests: fix spurious failure with non-ANSI terminals
Stefano Lattarini [Fri, 20 Apr 2012 08:23:35 +0000 (10:23 +0200)]
tests: fix spurious failure with non-ANSI terminals

* t/ax/tap-summary-aux.sh: When checking colored testsuite output,
be sure to export the TERM variable to the value "ansi"; otherwise
the automake testsuite driver will not display colored output, not
even if AM_COLOR_TESTS is exported to "always".  Failure revealed
by NixOS Hydra.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agohacking: fix typo
Stefano Lattarini [Wed, 18 Apr 2012 16:31:24 +0000 (18:31 +0200)]
hacking: fix typo

* HACKING (Test suite): Refer to file 't/README', not to the
non-existent 'tests/README'.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agomaint: version bump after beta release
Stefano Lattarini [Wed, 18 Apr 2012 16:29:31 +0000 (18:29 +0200)]
maint: version bump after beta release

* configure.ac (AC_INIT): Bump version number to 1.11e, as per
HACKING suggestion.
* NEWS: Likewise.
* m4/amversion.m4: Likewise (autoupdated by ./bootstrap).

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoBeta release 1.11d (will become 1.12) v1.11d
Stefano Lattarini [Wed, 18 Apr 2012 16:19:05 +0000 (18:19 +0200)]
Beta release 1.11d (will become 1.12)

* configure.ac (AC_INIT): Bump version number to 1.11d.
* NEWS: Likewise.
* m4/amversion.m4: Likewise (autoupdated by ./bootstrap).

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agotests: remove redundant 'set -e' calls
Stefano Lattarini [Wed, 18 Apr 2012 16:09:58 +0000 (18:09 +0200)]
tests: remove redundant 'set -e' calls

* t/aclocal-install-fail.sh: Do not set the 'errexit' shell flag,
as it is already set by './defs'.
* t/aclocal-install-mkdir.sh: Likewise.
* t/aclocal-no-install-no-mkdir.sh: Likewise.
* t/aclocal-verbose-install.sh: Likewise.
* t/instdir-no-empty.sh: Likewise.
* t/link_cond.sh: Likewise.
* t/python-pr10995.sh: Likewise.
* t/vala-vapi.sh: Likewise.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agotests: avoid spurious failures when cross-compiling
Stefano Lattarini [Wed, 18 Apr 2012 16:04:12 +0000 (18:04 +0200)]
tests: avoid spurious failures when cross-compiling

* t/parallel-tests-recheck-depends-on-all.sh: Skip the test
when cross-compiling.
* t/vala-vapi.sh: Skip tests that do not make sense when
cross-compiling.
* t/yacc-basic.sh: Likewise.
* t/yacc-cxx.sh: Likewise.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agomaintainer-check: fix definition of $(ams) again
Stefano Lattarini [Wed, 18 Apr 2012 13:08:37 +0000 (15:08 +0200)]
maintainer-check: fix definition of $(ams) again

* syntax-checks.mk (ams): The previous change 'v1.11b-36-g127adfb' solved
one problem in the definition of this variable, but also caused it contain
the names of all the left-behind 't/*.dir' temporary test directories.
Fix that.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agomaintainer-check: do not hang
Stefano Lattarini [Wed, 18 Apr 2012 11:40:59 +0000 (13:40 +0200)]
maintainer-check: do not hang

* syntax-checks.mk (ams): The definition of this variable was invoking
the 'find' utility in an incorrect way, which resulted into the variable
being empty, thus reducing coverage in some maintainer check and making
other hang.  Fix this.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoparallel-tests: 'recheck' must depend on 'all'
Stefano Lattarini [Wed, 18 Apr 2012 09:40:15 +0000 (11:40 +0200)]
parallel-tests: 'recheck' must depend on 'all'

Fixes automake bug#11252.

When a developer experience one or more failures in the testsuite, a good
workflow is for him to modify its program's sources to fix the bug thus
revealed, run "make recheck" to verify that the change has indeed solved
the testsuite failures previously experienced, and then run "make check"
to verify that the change has not introduced any new failure or regression.

Unfortunately, this apparently natural workflow couldn't have worked until
now, since the Automake-provided 'recheck' target (which didn't depend on
'all') wouldn't have causes the program to be recompiled, and the failed
tests would have thus been run with the older, buggy version of the
program, failing the same way as before.

* lib/am/check.am (recheck): Depend on 'all'.
* t/parallel-tests-recheck-depends-on-all.sh: New test.
* t/list-of-tests.mk: Add it.
* NEWS: Update.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agovala tests: building libraries, and more on '.vapi' files
Stefano Lattarini [Mon, 16 Apr 2012 23:07:23 +0000 (01:07 +0200)]
vala tests: building libraries, and more on '.vapi' files

* t/vala1.sh: Remove, turned into ...
* t/vala-libs.sh: ... this functional test instead.
* t/list-of-tests.mk: Adjust.

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