platform/upstream/automake.git
12 years agomaint: simplify generation of files with @substed@ stuff
Stefano Lattarini [Fri, 6 Apr 2012 16:08:39 +0000 (18:08 +0200)]
maint: simplify generation of files with @substed@ stuff

Use a proper "config.status --file=-" idiom to do most substitutions
in our generated files, to avoid too much duplications between the
various $(do_subst) commands in Makefile.am and the (explicit or
implicit AC_SUBST) invocation in configure.ac.

From a suggestion by Eric Blake and Federico Simoncelli:
<http://lists.gnu.org/archive/html/automake/2012-01/msg00011.html>

* Makefile.am (do_subst): Rewrite to take advantage of the
"config.status --file=-" idiom.
(generated_file_finalize): New, to help checking that generated
files don't contain unexpanded '@substitutions@', and are made
read-only.
(automake, aclocal): Take advantage of the improved $(do_subst).
Improve comments.
(lib/Automake/Config.pm): Likewise, and of the new variable
$(generated_file_finalize) as well.
($(top_srcdir)/m4/amversion.m4): Likewise.
(defs-static): Likewise, and depend explicitly on 'Makefile'.
(do_subst_t): Remove as obsolete.
* THANKS: Update.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agot/README: update w.r.t. recent overhaul (non-recursive build system)
Stefano Lattarini [Fri, 6 Apr 2012 15:40:52 +0000 (17:40 +0200)]
t/README: update w.r.t. recent overhaul (non-recursive build system)

And other miscellaneous improvements since we are at it.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agodocs: fix names of relevant test cases in comments
Stefano Lattarini [Fri, 6 Apr 2012 15:34:50 +0000 (17:34 +0200)]
docs: fix names of relevant test cases in comments

* doc/automake.texi: In comments reporting which test(s) check a
given feature/idiom, fix the names of the referenced tests, to
reflect the recent 'tests/foo.test' => 't/foo.sh' "Great Rename".

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoNEWS: automake build systems avoids make recursion
Stefano Lattarini [Fri, 6 Apr 2012 14:29:29 +0000 (16:29 +0200)]
NEWS: automake build systems avoids make recursion

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agomaint: no more make recursion in Automake's build system
Stefano Lattarini [Fri, 6 Apr 2012 13:20:54 +0000 (15:20 +0200)]
maint: no more make recursion in Automake's build system

We finally merge testsuite-related part of the Automake build
system with the top-level one.  See also yesterday's commit
'v1.11-2124-ga4b0f4b', "maint: remove most recursion in automake's
own build system".

* t/gen-testsuite-part: Move ...
* gen-testsuite-part: ... here, with required adjustments.
* t/defs-static.in: Move ...
* defs-static.in: ... here, with required adjustments.  In
particular ...
($testsrcdir, $testbuilddir): Removed.
($top_testsrcdir): Renamed ...
($am_top_srcdir): ... to this.
($top_testbuilddir): Renamed ...
($am_top_builddir): ... to this.
* t/defs: Move ...
* defs: ... here, and adjust as required.
* t/Makefile.am: Merge ...
* Makefile.am: ... in here, with related adjustments and
simplifications.
* bootstrap: Adjust as required.
* syntax-checks.mk: Likewise.
* .gitignore: Likewise.
* t/ax/tap-setup.sh: Likewise.
* t/get-sysconf.sh: Likewise.
* t/help-multilib.sh: Likewise.
* t/multlib.sh: Likewise.
* t/parallel-tests2.sh: Likewise.
* t/self-check-cleanup.tap: Likewise.
* t/self-check-exit.tap: Likewise.
* t/self-check-dir.tap: Likewise.
* t/self-check-explicit-skips.sh: Likewise.
* t/self-check-reexec.tap: Likewise.
* t/self-check-sanity.sh: Likewise.
* t/yacc-d-cxx.sh: Likewise.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agotests: rename 'tests/' => 't/', '*.test' => '*.sh'
Stefano Lattarini [Fri, 6 Apr 2012 11:12:25 +0000 (13:12 +0200)]
tests: rename 'tests/' => 't/', '*.test' => '*.sh'

When we (soon) convert the Automake testsuite to a non-recursive
make setup, we'll have to fix the entries of $(TESTS) to be
prepended with the subdirectory they are in; this will increase
the length of $(TESTS), and thus increase the possibility of
exceeding the command-line length limits on some systems (most
notably, MinGW/MSYS).  See automake bug#7868 for more information.

Thus we rename the 'tests/' subdirectory to 't/', and each 'x.test'
script in there to 'x.sh'; this way, the $(TESTS) entry 'foo.test'
will become 't/foo.sh', which have the same number of characters.

* tests/: Rename ...
* t/: ... to this.
* t/*.test: Rename ...
* t/*.sh: ... to this.
* t/.gitignore: Removed as obsolete.
* t/defs: Adjust.
* t/gen-testsuite-part: Likewise.
* t/list-of-tests.mk: Likewise.
* t/ccnoco.sh: Likewise.
* t/ccnoco3.sh: Likewise.
* t/self-check-cleanup.tap: Likewise.
* t/self-check-dir.tap: Likewise.
* t/self-check-me.tap: Likewise.
* t/self-check-reexec.tap: Likewise.
* README: Likewise.
* bootstrap: Likewise
* configure.ac: Likewise.
* Makefile.am: Likewise.
* .gitignore: Likewise.
* syntax-check.mk: Likewise.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agotests: remove recipes that run tests with 'prove'
Stefano Lattarini [Fri, 6 Apr 2012 10:34:49 +0000 (12:34 +0200)]
tests: remove recipes that run tests with 'prove'

Those recipes has served its purpose by helping us during the
development of TAP support in Automake, to ensure our TAP driver
didn't have gratuitous incompatibilities with the 'prove' test
runner.  But they are now unused, out-of-date and bitrotting.  So
it's better to just remove them.  We can resurrect them at a later
time if the need arises.

* tests/Makefile.am (PROVE, AM_PROVEFLAGS, AM_PROVECMD): Remove
these variables.
(prove, installprove): Remove these targets and their recipe.
(EXTRA_DIST): Don't distribute 'ax/prove-runner' anymore.
* ax/prove-runner: Delete.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agotests: move most helper scripts and files into the 'ax' subdirectory
Stefano Lattarini [Thu, 5 Apr 2012 19:20:29 +0000 (21:20 +0200)]
tests: move most helper scripts and files into the 'ax' subdirectory

* tests/defs-static.in ($am_testauxdir): New variable.
* tests/testsuite-summary-checks.sh: Moved ...
* tests/ax/testsuite-summary-checks.sh: ... here.
* tests/trivial-test-driver: Moved ...
* tests/ax/trivial-test-driver: ... here.
* tests/tap-summary-aux.sh: Moved ...
* tests/ax/tap-summary-aux.sh: ... here.
* tests/distcheck-hook-m4.am: Moved ...
* tests/ax/distcheck-hook-m4.am: ... here.
* tests/prove-runner: Moved ...
* tests/ax/prove-runner: ... here.
* tests/depcomp.sh: Moved ...
* tests/ax/depcomp.sh: ... here.
* tests/tap-setup.sh: Moved ...
* tests/ax/tap-setup.sh: ... here.
* tests/tap-functions.sh: Moved ...
* tests/ax/tap-functions.sh: ... here.
* tests/plain-functions.sh: Moved ...
* tests/ax/plain-functions.sh: ... here.
* tests/extract-testsuite-summary: Moved ...
* tests/ax/extract-testsuite-summary.pl: .. . here.
* tests/gen-testsuite-part: Adjusted accordingly.
* tests/Makefile.am: Likewise.
* tests/defs: Likewise.
* syntax-check.mk: Likewise.
* Several tests: Likewise.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agomaint: remove most recursion in automake's own build system
Stefano Lattarini [Sun, 1 Apr 2012 09:48:47 +0000 (11:48 +0200)]
maint: remove most recursion in automake's own build system

Recursive make-based build systems tend to be slower, more fragile
and less faithful than "flat" ones.  See Peter Miller's article
"Recursive Make Considered Harmful" for more a more in-depth
discussion:

    <http://miller.emu.id.au/pmiller/books/rmch/>

While in the case of automake this isn't a big problem (given the
small size of its build systems), it still creates occasional
glitches and annoyances.

With this change, the use of recursion in Automake's own build
system is eliminated *but for the testsuite*.  Converting that
is a little more tricky, and better left for a later change (or
series of changes).

See also commit v1.11-769-gfeeb7f6 of 28-03-2012.

* contrib/Makefile.am, lib/Makefile.am, m4/Makefile.am,
doc/Makefile.am:  Removed, their content merged ...
* Makefile.am: ... here, with required adjustments and few
other "opportunistic" changes.
(SUBDIRS): Update.
* configure.ac (AC_CONFIG_FILES): Likewise.
* .gitignore: Likewise.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agotests: fix a spurious failures with non-GNU make
Stefano Lattarini [Thu, 5 Apr 2012 13:44:47 +0000 (15:44 +0200)]
tests: fix a spurious failures with non-GNU make

* tests/instdir-no-empty.test: Also pass proper AM_MAKEFLAGS to
make invocations that might recurse, to ensure the macro definitions
passed from the command line are properly propagated.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agotexinfo: warn about future use of '--tidy'
Stefano Lattarini [Sun, 1 Apr 2012 20:48:46 +0000 (22:48 +0200)]
texinfo: warn about future use of '--tidy'

Starting from the next major release of Automake (likely 1.13) we
want to start passing the '--tidy' option to texi2dvi and texi2pdf
invocations, so that auxiliary TeX-generated files can be kept
around (thus speeding up rebuilding of DVI and PDF output) without
cluttering the build directory too much.

Since the '--tidy' option was introduced in Texinfo 4.9 (as
documented in the Texinfo distribution's NEWS file), this also
means that Makefiles generated by future Automake versions will
require at least that version of Texinfo (at the time of writing
four years and nine months old).

The users should be warned about the planned behavioral change
and the new version requirement it will entail.

See also automake bug#11146.

* NEWS (Planned Backward Incompatibilities): Add entry about use
of the '--tidy' option and requirement of Texinfo 4.9.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agotexinfo: don't clutter the builddir when using modern texi2dvi
Stefano Lattarini [Sun, 1 Apr 2012 19:55:09 +0000 (21:55 +0200)]
texinfo: don't clutter the builddir when using modern texi2dvi

In modern versions of texi2dvi (at least since version 1.135, which
comes with Texinfo 4.13) the '-o' option does not imply anymore the
'--clean' option.  As a consequence, lots of TeX-generated auxiliary
files are now left in the build directory by the 'pdf', 'ps' and
'dvi' rules.

This is especially annoying with non-recursive setups having the
'.texi' files in a subdirectory, as in:

  info_TEXINFOS = doc/foo.texi

In this case, the stray auxiliary files are left in the top build
directory (since TeX is run from there).  See for example:

 <http://lists.gnu.org/archive/html/bug-bison/2012-04/msg00002.html>

See also automake bug#11146.

* lib/am/texibuild.am: Call 'texi2dvi' and 'texi2pdf' with the
'--clean' option.  Update comments accordingly.
* tests/txinfo-noclutter.test: New test.
* tests/txinfo18.test: Remove as obsolete, the still relevant parts
of it moved into the new test.
* tests/list-of-tests.mk: Adjust.
* NEWS: Update.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agohacking: autotools-generated files are not committed anymore
Stefano Lattarini [Mon, 2 Apr 2012 15:41:41 +0000 (17:41 +0200)]
hacking: autotools-generated files are not committed anymore

* HACKING (Working with git) Generated files like 'configure',
'Makefile.in' and 'aclocal.m4' are not committed anymore in our
git repository since some months.  Remove obsoleted advices that
assumed they still were.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agohacking: simplify documentation of bootstrapping process
Stefano Lattarini [Mon, 2 Apr 2012 15:36:24 +0000 (17:36 +0200)]
hacking: simplify documentation of bootstrapping process

* HACKING (Working with git): Do not suggest that, to ensure the
bootstrapping process is performed with the latest autotools, the
developer could explicitly pass $AUTOCONF and $AUTOM4TE in the
environment to the ./bootstrap and ./configure invocations: that
is a little tricky and quite fragile.  Instead, suggest to just
put modern-enough version of the autotools early in PATH.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agocosmetics: remove repeated line in comment, fix quoting
Stefano Lattarini [Sat, 31 Mar 2012 20:07:32 +0000 (13:07 -0700)]
cosmetics: remove repeated line in comment, fix quoting

* automake.in: Drop a repeated line in a comment.  In the same
comment, prefer quoting 'like this' rather than `like this'.
Issue introduced in one of the commits that converted from quoting
`like this' to quoting 'like this'.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agocosmetics: remove useless import in automake script
Stefano Lattarini [Sat, 31 Mar 2012 20:06:30 +0000 (13:06 -0700)]
cosmetics: remove useless import in automake script

* automake.in (Automake::Version): This import is not needed;
remove it.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'maint'
Stefano Lattarini [Sat, 31 Mar 2012 16:37:25 +0000 (18:37 +0200)]
Merge branch 'maint'

* maint:
  docs: deprecate 'cygnus' mode, help the transition

12 years agodocs: deprecate 'cygnus' mode, help the transition
Stefano Lattarini [Sat, 31 Mar 2012 09:04:41 +0000 (11:04 +0200)]
docs: deprecate 'cygnus' mode, help the transition

Support for "Cygnus-style" trees (so far enabled by the 'cygnus'
option) will be deprecated in one release of the next major series
(1.12.x) and removed in the next major release after that (1.13).
Better to start warning about this in the manual.

* docs/automake.texi: Warn about the oncoming deprecation of the
'cygnus' mode.  Suggest some idioms that can be used to retain some
effects of the 'cygnus' option.
* THANKS: Update.

From a suggestion by Joseph S. Myers in automake bug#11034.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoperl refactor: use modern semantics of 'open'
Stefano Lattarini [Wed, 28 Mar 2012 22:31:47 +0000 (00:31 +0200)]
perl refactor: use modern semantics of 'open'

* lib/Automake/XFile.pm: Update comments and POD documentation to
suggest a more idiomatic/modern usage.
(open): Be more robust in detecting whether the created file handle
is being opened for writing.
* lib/Automake/FileUtils.pm (update_file, contents): Call the
'Automake::XFile' and 'File::IO' constructors with two arguments
rather than one; this change obsoletes ...
(open_quote): ... this subroutine, which has thus been removed.
(@EXPORT): Drop '&open_quote'.

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

* maint:
  cosmetics: don't make the generated Config.pm executable
  maint: reduce use of recursion in automake build system

+ Extra non-trivial extra edits follows.

* lib/Makefile.am (amdir): Deleted this definition, it is already
provided by a proper AC_SUBST in configure.ac.
(dist_am_DATA): Remove 'am/ansi2knr.am', 'am/check-html.am' and
'am/multilib.am'.
(dist_perllib_DATA): Remove 'Automake/Struct.pm'.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agocosmetics: don't make the generated Config.pm executable
Stefano Lattarini [Wed, 28 Mar 2012 15:12:36 +0000 (17:12 +0200)]
cosmetics: don't make the generated Config.pm executable

* lib/Makefile.am (Automake/Config.pm): Don't make this executable,
there's not need for it to be (it's a perl module, not a script).

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agomaint: reduce use of recursion in automake build system
Stefano Lattarini [Wed, 28 Mar 2012 15:03:25 +0000 (17:03 +0200)]
maint: reduce use of recursion in automake build system

Recursive make-based build systems tend to be slower, more fragile
and less faithful than "flat" ones.  See Peter Miller's article
"Recursive Make Considered Harmful" for more a more in-depth
discussion:

  <http://miller.emu.id.au/pmiller/books/rmch/>

While in the case of automake this isn't a big problem (given the
small size of its build systems), it still creates occasional
glitches and annoyances.  So, with this change, we start making
less use of make recursion in the Automake's own build system
(future changes will reduce it even more).

* lib/am/Makefile.am, lib/Automake/Makefile.am:  Removed, their
content merged ...
* lib/Makefile.am: ... here, with required adjustments.
* configure.ac (AC_CONFIG_FILES): Update.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agonews: sync with branch-1.11, fix mis-merges
Stefano Lattarini [Wed, 28 Mar 2012 13:36:30 +0000 (15:36 +0200)]
news: sync with branch-1.11, fix mis-merges

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoacinstall: remove, it has never been really used
Stefano Lattarini [Wed, 28 Mar 2012 12:31:36 +0000 (14:31 +0200)]
acinstall: remove, it has never been really used

Accordingly to the git history (see for example the 'README-alpha'
in commit 'Release-1-1e-39-g9beb4ec' of 06-10-1996), the 'acinstall'
script should have been used to install m4 files for aclocal.  The
comments in this script report that "... A script is needed to do
this because we want to do serial-number checking; newer versions
of macro files should always be preferred".

But the 'acinstall' script has never been really used: for example,
the entry "actually use acinstall program" was removed (unfixed)
from the TODO file in commit 'Release-1-1k-12-g1201405' of
08-12-1996, and the only citation of 'acinstall' in the manual was
removed in commit 'Release-1-1l-37-g128c3d7' of 19-03-1997, and
never added back. In addition, the last non-trivial edit to the
script (that is, besides updates to the copyright notice) dates
back to 1996.

More importantly, now that aclocal supports the ACLOCAL_PATH
environment variable, installing m4 files directly in the
system-wide acdir is discouraged, and better left only to
distros' package managers (which already have their own way to
do so, with which third-party build systems should not directly
meddle).

So we just remove the 'acinstall' script.

* lib/acinstall: Remove.
* lib/Makefile.am (dist_script_DATA): Update.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agomaint: reorganize the source tree and make it less cluttered
Stefano Lattarini [Wed, 28 Mar 2012 11:15:52 +0000 (13:15 +0200)]
maint: reorganize the source tree and make it less cluttered

* TODO: Move ...
* old/TODO: ... here.  This is done because this file is quite
outdated, and today TODO and wishlist items are better handled
though the debbugs tracker.
* ChangeLog.00: Move ...
* old/ChangeLog.00: ... here.
* ChangeLog.01: Move ...
* old/ChangeLog.01: ... here.
* ChangeLog.02: Move ...
* old/ChangeLog.02: ... here.
* ChangeLog.03: Move ...
* old/ChangeLog.03: ... here.
* ChangeLog.04: Move ...
* old/ChangeLog.04: ... here.
* ChangeLog.09: Move ...
* old/ChangeLog.09: ... here.
* ChangeLog.11: Move ...
* old/ChangeLog.11: ... here.
* ChangeLog.96: Move ...
* old/ChangeLog.96: ... here.
* ChangeLog.98: Move ...
* old/ChangeLog.98: ... here.
* tests/ChangeLog-old: Move ...
* old/ChangeLog-tests: .. here.
* tests/Makefile.am (EXTRA_DIST): Adjust.
* Makefile.am (EXTRA_DIST): Likewise.
* .autom4te.cfg: New file, instructing the autotools to place the
autom4te cache directory in '.autom4te.cache' rather than in
'autom4te.cache'.
* .gitignore: Adjust.
* Makefile.am (maintainer-clean-local): Remove the '.autom4te.cache'
directory.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agonews: we are going to drop 'cygnus' soonish
Stefano Lattarini [Tue, 27 Mar 2012 21:05:58 +0000 (23:05 +0200)]
news: we are going to drop 'cygnus' soonish

* NEWS (Future backward incompatibilities): Support for
"Cygnus-style" trees (so far enabled by the 'cygnus' option)
will be deprecated in the next minor release and removed in
in the next major release.

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

* maint:
  depcomp: support tcc (Tiny C Compiler)
  tests: workaround for automatic linker determination and conditionals
  info: allow user to inhibit pruning of '${infodir}/dir'
  vala tests: fix spurious failures with older valac (<= 0.7.2)
  tests: fix a timestamp issue, and other minor buglets
  tests: fix spurious failure with older autoconf
  build: remove duplicated entries in $(TESTS)

+ Extra non-trivia edits:
* tests/link_cond.test: Use 'configure.ac', not 'configure.in'.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agodepcomp: support tcc (Tiny C Compiler)
Stefano Lattarini [Tue, 27 Mar 2012 15:55:07 +0000 (17:55 +0200)]
depcomp: support tcc (Tiny C Compiler)

This change fixes automake bug#11007.

Since git commit 0c928da9 of 21-06-2010, "tcc: Draft suppoprt for
-MD/-MF options" (sic, with typo in summary line), tcc has supported
automatic dependency generation with a command-line interface
similar to what old (pre-8.0) Intel compilers did.  This caused
Automake-generated code for automatic dependency tracking to
recognize tcc dependency style as "icc".  However, the format of
the dependency files generated by tcc is apparently different enough
from that of icc to cause spurious failures in the post-processing
operated by our 'depcomp' script on such files.

The failure was exposed with the development version of tcc 0.9.26
(as installed with debian package "tcc 0.9.26~git20120104.83d") by
test case 'depcomp-auto.tap' (available only in the master branch).

* lib/depcomp (icc): Cater to tcc as well.  Update comments
accordingly.
* NEWS: Update.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agotests: workaround for automatic linker determination and conditionals
Stefano Lattarini [Mon, 26 Mar 2012 13:26:46 +0000 (15:26 +0200)]
tests: workaround for automatic linker determination and conditionals

See automake bug#11089.

Automake is not very smart in automatically determining the command
to be used to link a program whose source files' languages are
conditionally defined.  For example, an input like:

  if HAVE_CXX
  foo_SOURCES = more.c++
  else
  foo_SOURCES = less.c
  endif

will cause the build rules for 'foo' to *unconditionally* use the
C++ compiler for linking, even when the 'HAVE_CXX' conditional
evaluates to false (which might mean that no C++ compiler is
available).

This behaviour is not really correct, but it's easy enough to work
around, and it's only relevant for fringe use cases (at best).  So
let's just test that the workaround really works.

* tests/link_cond.test: New test.
* tests/list-of-tests.mk: Add it.
* THANKS: Update.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoinfo: allow user to inhibit pruning of '${infodir}/dir'
Stefano Lattarini [Tue, 27 Mar 2012 11:10:16 +0000 (13:10 +0200)]
info: allow user to inhibit pruning of '${infodir}/dir'

This should have ideally been part of commit 'v1.11-519-g1ec1668'
of 23-11-2011 "info: allow user to inhibit creation/update of
'${infodir}/dir'".  Well, better late than never.

* lib/am/texinfos.am (uninstall-info-am): Don't look anymore at the
output of "install-info --version" to decide whether to use it to
update the '${infodir}/dir' or not; instead, honour the environment
variable 'AM_UPDATE_INFO_DIR'.  To avoid code duplication with ...
(install-info-am): ... the recipe of this target, move common code
out to ...
(am__can_run_installinfo): ... this new internal variable.
* tests/install-info-dir.test: Enhance.
* doc/automake.texi (Texinfo): Update.
* NEWS: Likewise.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agovala tests: fix spurious failures with older valac (<= 0.7.2)
Bruno Haible [Mon, 26 Mar 2012 12:44:05 +0000 (14:44 +0200)]
vala tests: fix spurious failures with older valac (<= 0.7.2)

See automake bug#11093.

The Vala compiler before the 0.7.3 release does not support the
'--profile' option.  But some of our tests were relying on it, so
skip those tests if the detected Vala compiler is too old.

* tests/vala-vpath.test, tests/vala-mix.test, tests/vala-mix2.test
(configure.in): Require vala version >= 0.7.3 in AM_PROG_VALAC call.

Co-authored-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agotests: fix a timestamp issue, and other minor buglets
Stefano Lattarini [Mon, 20 Feb 2012 13:04:46 +0000 (14:04 +0100)]
tests: fix a timestamp issue, and other minor buglets

Cherry picked from commit v1.11-1988-g82616f0 of 21-02-2012.

Reported by Panther Martin in automake bug#10848.  See also
automake bug#11093.

* tests/conffile-leading-dot.test: Add a proper '$sleep' invocation,
to avoid spurious failures on fast systems without sub-second
timestamp resolutions.  Add other minor related and unrelated
improvements and fixlets since we are at it.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agotests: fix spurious failure with older autoconf
Stefano Lattarini [Thu, 16 Feb 2012 09:58:03 +0000 (10:58 +0100)]
tests: fix spurious failure with older autoconf

Cherry picked from commit v1.11-1950-gba5a89b of 16-02-2012.

* tests/conffile-leading-dot.test: Relax grepping of 'config.status'
stderr, to cater for older autoconf.  Issue revealed by a failure
with autoconf 2.63 on Cygwin 1.5.25. See also automake bug#11093.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agofixup: update THANKS
Stefano Lattarini [Sat, 24 Mar 2012 16:05:54 +0000 (17:05 +0100)]
fixup: update THANKS

* THANKS: Add entry for Tim Landscheidt.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agodocs: terminate unfinished sentence, fix reference to a test case
Stefano Lattarini [Sat, 24 Mar 2012 15:50:38 +0000 (16:50 +0100)]
docs: terminate unfinished sentence, fix reference to a test case

* doc/automake.texi (Using the TAP test protocol): Here.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agodocs: fix some small typos and grammaros
Tim Landscheidt [Fri, 23 Mar 2012 21:41:19 +0000 (21:41 +0000)]
docs: fix some small typos and grammaros

* doc/automake.texi (Using the TAP test protocol): Here ...
* tests/tap-doc2.test: ... and here.

Copyright-paperwork-exempt: yes
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agobuild: remove duplicated entries in $(TESTS)
Stefano Lattarini [Sat, 24 Mar 2012 15:30:10 +0000 (16:30 +0100)]
build: remove duplicated entries in $(TESTS)

* tests/list-of-tests.mk (handwritten_TESTS): Remove duplicated
entries for test cases 'extra-portability*.test'.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agomaint: update TODO file
Stefano Lattarini [Fri, 23 Mar 2012 08:13:11 +0000 (09:13 +0100)]
maint: update TODO file

We don't have to make creation of $(foodir) conditional when
foo_PRIMARY is conditionally defined; that has been solved in
a more sweeping way by commit v1.11-759-g368f1c4 of March 18,
which solved bug#11030 and bug#10997.

The "check" target already depends on the "all" target.

Remove comment "investigate problems with conditionally defined
libraries"; it is aimed at automake 1.5 (!) and too terse and old
to be useful now.

Remove the 12 years old suggestion that "distcheck should make sure
that each file that uses _() is listed in POTFILES.in"; this is
handled by gnulib-provided syntax check 'sc_po_check' already today.

Don't tell to "Run automake before libtool"; automake does not
automatically run libtool anymore today.

Remove hint about the possibility to "rewrite automake in guile" or
"add a GUI": we are not going to do so.

The automatic de-ANSI-fication feature has already been remove, so
no need to suggest its potential removal in the future.

Remove reference to a prospective "cvs" option that could add some
cvs-specific rules.  First of all, CVS is falling out of use today.
Secondly, and most to the point, instead of guessing which VCS
is going to be most popular and try to hack support for it into
automake, we should leave it to developer-specific makefile
fragments offered by projects like Gnulib to provide such rules
(they are already doing so with succcess).

About DOS support: it should actually be dropped, not extended.

Add link about Karl Berry's proposal of preferring HTML over Info
documentation installed in the local system:
<http://lists.gnu.org/archive/html/texinfo-devel/2012-03/msg00018.html>

Remove items about "beautification" of output Makefile.in; they
are pretty obvious, and mostly noise (after all, everybody prefers
clean output where possible).  Leave it to any developer doing
future refactorings to find out low-hanging and/or high-impact
optimizations and beatifications of the generated Makefiles.

Remove item about internationalization: we're not going to
implement it.

Remove an item explicitly marked as "not that it matters".

The order of files in a distribution tarball does not really
matter, nobody has ever complained about it, so do not worry
about it.

Remove the suggestions about allowing hierarchy of dirs to share
one aclocal.m4 and about printing full file name of Makefile.am
or configure.in when giving error, in order to help very large
trees: nobody has ever complained about the current behaviours,
so no real need to change them.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agofixup: bootstrapping issues with 'list-of-tests.mk'
Stefano Lattarini [Wed, 21 Mar 2012 19:46:06 +0000 (20:46 +0100)]
fixup: bootstrapping issues with 'list-of-tests.mk'

* tests/list-of-tests.mk: This file is expected to be executed
directly with make from the bootstrap script, so we can't use
Automake '##' comments after line continuations.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'maint'
Stefano Lattarini [Wed, 21 Mar 2012 19:35:24 +0000 (20:35 +0100)]
Merge branch 'maint'

* maint:
  maint: move definition of XFAIL_TESTS near TESTS

Actually, after the trivial merge conflicts have been solved, what
this change actually does is moving the definition of XFAIL_TESTS
near that of handwritten_TESTS.  But the rationale is the same of
that of commit 'v1.11-761-gabf40ce' (being merged here), and still
works, so all is good.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agomaint: move definition of XFAIL_TESTS near TESTS
Stefano Lattarini [Wed, 21 Mar 2012 19:30:52 +0000 (20:30 +0100)]
maint: move definition of XFAIL_TESTS near TESTS

The $(TESTS) variable is defined in file 'tests/list-of-tests.mk',
while the $(XFAIL_TESTS) variable is defined in 'tests/Makefile.am'.
This means that when a new xfailing test is to be added, two files
must be touched; this is suboptimal and slightly confusing.

* tests/Makefile.am (XFAIL_TESTS): Definition moved ...
* tests/list-of-tests.mk: ... here.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agotests: fix spurious failures caused by uses of 'configure.in'
Stefano Lattarini [Mon, 19 Mar 2012 08:07:55 +0000 (09:07 +0100)]
tests: fix spurious failures caused by uses of 'configure.in'

Issue introduced by the recent merges of maint into master, and
revealed by "make maintainer-check".

* tests/aclocal-install-fail.test: Likewise.
* tests/aclocal-install-mkdir.test: Likewise.
* tests/aclocal-verbose-install.test: Likewise.
* tests/installdir.test: Likewise.
* tests/instdir-cond2.test: Likewise.
* tests/instdir-no-empty.test: Likewise.
* tests/python-pr10995.test: Likewise.
* tests/aclocal-no-install-no-mkdir.test: Likewise.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'maint'
Stefano Lattarini [Sun, 18 Mar 2012 21:31:45 +0000 (22:31 +0100)]
Merge branch 'maint'

* maint:
  install-mans: avoid spurious failure with NetBSD make
  install: don't create empty dirs when an empty 'foo_PRIMARY' is used
  aclocal: remove a couple of useless imports
  aclocal: create local directory where to install m4 files

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoinstall-mans: avoid spurious failure with NetBSD make
Stefano Lattarini [Sun, 18 Mar 2012 21:19:45 +0000 (22:19 +0100)]
install-mans: avoid spurious failure with NetBSD make

* lib/am/mans.am: After the changes introduced by previous commit
v1.11-759-g368f1c4, some manpage installation recipes started to
fail spuriously on NetBSD 5.1 make.  Apparently, the system make
there eats backslashes used to escape whitespace characters in the
relevant recipes.  Revert to slightly slower but safer idioms that
avoid the need of such escaping.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoinstall: don't create empty dirs when an empty 'foo_PRIMARY' is used
Stefano Lattarini [Fri, 16 Mar 2012 22:48:53 +0000 (23:48 +0100)]
install: don't create empty dirs when an empty 'foo_PRIMARY' is used

Fixes automake bug#11030 and bug#10997.

An empty declaration of "foo_PRIMARY" in a Makefile.am used to
cause the generated install rules to create the directory $(foodir)
anyway, even if nothing was to be installed there.

While this could be seen as a convenient way to create a $(foodir)
directory upon "make install" (respecting $(DESTDIR) settings and
such), it also caused problems with conditionals; for example, an
input of:

  if FALSE
  pgkdata_DATA = something
  endif

caused the generated install rules to unconditionally create the
$(pkgdatadir) directory (see automake bug#10997).

Also, a user wanting to create an empty directory upon installation
can easily do so with a custom install hook, as in:

  installdirs-local:
          $(MKDIR_P) $(DESTDIR)$(foodir)
  install-data-hook: installdirs-local

On the other hand, the old behavior of "always create $(foodir),
even if 'foo_PRIMARY' is empty" was harder and more tricky to
override.

Thus, from now on, an empty declaration of "foo_PRIMARY" will not
cause the directory $(foodir) to be created upon "make install"
anymore.

* lib/am/data.am, lib/am/java.am, lib/am/libs.am, lib/am/lisp.am,
lib/am/ltlib.am, lib/am/mans.am, lib/am/progs.am, lib/am/python.am,
lib/am/scripts.am, lib/am/texinfos.am: Adjust install rules to avoid
creating an installation directory if no files are actually to be
installed there.
* tests/instdir-empty.test: Remove, it was testing a semantic
opposite to the one we now want and implement.
* tests/instdir-no-empty.test: New test, check the new semantic.
* tests/instdir-cond.test: Enhance.  Move the still-failing part
of the test ...
* tests/instdir-cond2.test: ... here.
* tests/list-of-tests.mk, tests/Makefile.am (XFAIL_TESTS): Update.
* tests/java3.test: Adjust to avoid spurious failures.
* HACKING, NEWS, THANKS: Update.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoaclocal: remove a couple of useless imports
Stefano Lattarini [Sat, 17 Mar 2012 08:43:35 +0000 (09:43 +0100)]
aclocal: remove a couple of useless imports

* aclocal.in (File::stat, Cwd): Remove these imports, they are not
really required.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoaclocal: create local directory where to install m4 files
Stefano Lattarini [Thu, 15 Mar 2012 15:50:40 +0000 (16:50 +0100)]
aclocal: create local directory where to install m4 files

Fixes automake bug#8168 and bug#10816.

A call like "aclocal -I m4 --install" used to fail if the 'm4'
directory wasn't pre-existing.  This could be particularly
annoying when running in a checked-out version from a VCS like
git, which doesn't allow empty directories to be tracked.

* aclocal.in (File::Path): New import.
(scan_m4_dirs): Don't die if the first directory of type FT_USER
doesn't exist and the '--install' option was given; that directory
will be created later ...
(install_file): ... here.  Change signature of this function: now
it takes as second argument the destination directory rather than
the destination file.  Crate the destination directory if it
doesn't already exist.  In verbose mode, tell what is being copied
where.
(write_aclocal): Update to the changes in 'install_file'.
* NEWS, THANKS: Update.
* tests/aclocal-install-fail.test: New test.
* tests/aclocal-install-mkdir.test: Likewise.
* tests/aclocal-no-install-no-mkdir.test: Likewise.
* tests/aclocal-verbose-install.test: Likewise.
* tests/list-of-tests.mk: Add them.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'maint'
Stefano Lattarini [Thu, 15 Mar 2012 08:16:46 +0000 (09:16 +0100)]
Merge branch 'maint'

* maint:
  python: avoid failures due to $(am__py_compile) being undefined
  python: expose automake bug#10995

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agopython: avoid failures due to $(am__py_compile) being undefined
Steven Drake [Thu, 15 Mar 2012 08:12:00 +0000 (09:12 +0100)]
python: avoid failures due to $(am__py_compile) being undefined

Fixes automake bug#10995, introduced in commit v1.11-372-gb46debf.

* lib/am/python.am: Move the definition of 'am__py_compile' to
ensure it is always emitted in the output Makefile.in.  Previously,
this wouldn't have happened if the input Makefile.am contained a
'noinst_PYTHON' declaration before a 'python_PYTHON' one.
* tests/Makefile.am (XFAIL_TESTS): Remove 'python-pr10995.test' and
'python.test'.
* NEWS: Update.

Copyright-paperwork-exempt: yes
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agopython: expose automake bug#10995
Stefano Lattarini [Thu, 15 Mar 2012 08:00:12 +0000 (09:00 +0100)]
python: expose automake bug#10995

* tests/python.test: Expose the bug in grepping tests.
* tests/python-noinst.test: New functional test to expose the
bug.
* tests/list-of-tests.mk: Add it.
* tests/Makefile.am (XFAIL_TESTS): Add the new test and the
extended one.
* THANKS: Update.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agotests: one more use of 'unindent' function
Stefano Lattarini [Wed, 14 Mar 2012 21:48:22 +0000 (22:48 +0100)]
tests: one more use of 'unindent' function

* tests/yacc-d-cxx.test (write_parse, write_main): Use 'unindent'
instead of ad-hoc sed invocation to strip extra leading whitespace.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agotests: remove redundant 'set -e' calls
Stefano Lattarini [Wed, 14 Mar 2012 21:45:16 +0000 (22:45 +0100)]
tests: remove redundant 'set -e' calls

* tests/dist-pr109765.test: Do not set the 'errexit' shell flag,
as it is already set by 'tests/defs'.
* tests/instdir-cond.test: Likewise.
* tests/instdir-empty.test: Likewise.
* tests/lex-clean-cxx.test: Likewise.
* tests/lex-clean.test: Likewise.
* tests/lex-depend-cxx.test: Likewise.
* tests/lex-depend.test: Likewise.
* tests/lex-line.test: Likewise.
* tests/lex-nodist.test: Likewise.
* tests/lex-pr204.test: Likewise.
* tests/silent-lex.test: Likewise.
* tests/silent-yacc-headers.test: Likewise.
* tests/silent-yacc.test: Likewise.
* tests/vala-mix2.test: Likewise.
* tests/yacc-auxdir.test: Likewise.
* tests/yacc-bison-skeleton-cxx.test: Likewise.
* tests/yacc-bison-skeleton.test: Likewise.
* tests/yacc-clean-cxx.test: Likewise.
* tests/yacc-cxx.test: Likewise.
* tests/yacc-d-cxx.test: Likewise.
* tests/yacc-deleted-headers.test: Likewise.
* tests/yacc-depend.test: Likewise.
* tests/yacc-depend2.test: Likewise.
* tests/yacc-line.test: Likewise.
* tests/yacc-mix-c-cxx.test: Likewise.
* tests/yacc-weirdnames.test: Likewise.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoMerge branch 'maint'
Stefano Lattarini [Wed, 14 Mar 2012 21:29:59 +0000 (22:29 +0100)]
Merge branch 'maint'

* maint:
  tests: avoid spurious failures in get-sysconf.test
  scripts: bump the depcomp scriptversion
  sync: some auxiliary files synced from upstream
  coverage: an empty foo_PRIMARY should create directory $(foodir)
  coverage: make sure am__py_compile is defined when needed
  coverage: expose automake bug#10997
  coverage: expose automake bug#10975
  getopt: relax version requirement for perl

+ Extra non-trivial edits:

* tests/dist-pr109765.test: Use 'configure.ac', not 'configure.in'.
* tests/instdir-cond.test: Likewise.
* tests/instdir-empty.test: Likewise.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agotests: fix spurious failure with older m4
Stefano Lattarini [Wed, 14 Mar 2012 21:22:40 +0000 (22:22 +0100)]
tests: fix spurious failure with older m4

Reported by Panther Martin in automake bug#10866, diagnosed by
Panther Martin and Eric Blake.

Older GNU m4 versions (e.g., 1.4.6) did error reporting at the end
of an error construct rather than the beginning.  This was causing
a spurious testsuite failure due to an off-by-one error in the line
number reported in an aclocal diagnostic.

* tests/cond41.test: Keep all the body of the 'AM_COND_IF'
invocation on a single line, to avoid the off-by-one error.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agotests: avoid spurious failures in get-sysconf.test
Stefano Lattarini [Sat, 10 Mar 2012 07:49:55 +0000 (08:49 +0100)]
tests: avoid spurious failures in get-sysconf.test

This change fixes the last bit of automake bug#10866.

* tests/get-sysconf.test: When Homebrew spawns a build, even if
from a project's VCS, it stages the files in a new temporary
directory, instead of building directly from a VCS checkout.
This behaviour was causing a spurious failure in this test, which
expected to find either a ChangeLog file or a .git directory in
the source directory (the former happening when the test was run
from a distribution tarball, the latter when it was run from a
git checkout).  The Homebrew issue shows that these expectations
are not truly warranted, so relax the test to just give a warning,
not a failure, in case they do not hold.  Since we are at it, fix
an unrelated weakness in the displaying of the git log, which
could have failed when the builddir was not a subdirectory of the
srcdir.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agoscripts: bump the depcomp scriptversion
Peter Rosin [Mon, 12 Mar 2012 15:58:55 +0000 (16:58 +0100)]
scripts: bump the depcomp scriptversion

* lib/depcomp (scriptversion): Bump, to account for recent changes.

12 years agosync: some auxiliary files synced from upstream
Stefano Lattarini [Mon, 12 Mar 2012 14:10:39 +0000 (15:10 +0100)]
sync: some auxiliary files synced from upstream

* lib/texinfo.tex: Synced from upstream, by "make fetch".
* lib/config.guess: Likewise.
* lib/config.sub: Likewise.
* lib/gnupload: Likewise.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agocoverage: an empty foo_PRIMARY should create directory $(foodir)
Stefano Lattarini [Mon, 12 Mar 2012 13:41:04 +0000 (14:41 +0100)]
coverage: an empty foo_PRIMARY should create directory $(foodir)

For example, a Makefile.am containing the definition:

  pkgdata_DATA =

should cause the 'install' rule of the generated Makefile.in to
create the '$(pkgdatadir)' directory (respecting any DESTDIR
setting as well).

Suggestion by Peter Breitenlohner in automake bug#10997.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agocoverage: make sure am__py_compile is defined when needed
Stefano Lattarini [Mon, 12 Mar 2012 11:15:47 +0000 (12:15 +0100)]
coverage: make sure am__py_compile is defined when needed

See automake bug#10995.

* tests/python.test: Also make sure 'am__py_compile' is defined
correctly in the generated Makefile.in.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agocoverage: expose automake bug#10997
Daiki Ueno [Mon, 12 Mar 2012 10:46:04 +0000 (11:46 +0100)]
coverage: expose automake bug#10997

* tests/instdir-cond.test: New test.
* tests/list-of-tests.mk: Add it.
* tests/Makefile.am (XFAIL_TESTS): Likewise.

Copyright-paperwork-exempt: yes
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
12 years agocoverage: expose automake bug#10975
Stefano Lattarini [Fri, 9 Mar 2012 20:35:04 +0000 (21:35 +0100)]
coverage: expose automake bug#10975

* tests/dist-pr10975.test: New test.
* tests/list-of-tests.mk: Add it.
* tests/Makefile.am (XFAIL_TESTS): Likewise.

12 years agogetopt: relax version requirement for perl
Stefano Lattarini [Wed, 7 Mar 2012 22:26:24 +0000 (23:26 +0100)]
getopt: relax version requirement for perl

* lib/Automake/Getopt.pm: Require perl 5.6.0, not 5.6.2: the former
is enough.  See also commit 'v1.11-2054-g7df05a0' on master (dated
04-03-2012).

12 years agoMerge branch 'maint'
Stefano Lattarini [Wed, 7 Mar 2012 21:15:44 +0000 (22:15 +0100)]
Merge branch 'maint'

* maint:
  cosmetics: fix repeated changelog entry heading

12 years agocosmetics: fix repeated changelog entry heading
Stefano Lattarini [Wed, 7 Mar 2012 21:14:47 +0000 (22:14 +0100)]
cosmetics: fix repeated changelog entry heading

12 years agoMerge branch 'maint'
Peter Rosin [Wed, 7 Mar 2012 20:08:08 +0000 (21:08 +0100)]
Merge branch 'maint'

12 years agoMerge branch 'msvc' into maint
Peter Rosin [Wed, 7 Mar 2012 20:08:06 +0000 (21:08 +0100)]
Merge branch 'msvc' into maint

This merge remedies the confusing situation that some changes
destined for both the master branch and the release branch (a.k.a.
branch-1.11) currently needs to be made on the non-obvious msvc
branch and not on the more natural maint branch.  This has caused
a seemingly endless string of less than optimal commits.

The reason for the confusion stems from the fact that the changes made
on the msvc branch became too radical and was considered only suitable
for the master branch, and was thus written in a form suitable for
master and then merged there.  Later, the msvc branch was merged
directly into branch-1.11, in order to rush the new features to the
market and to keep the released scripts (lib/ar-lib, lib/compile and
lib/depcomp) consistent with those on the master branch.  However,
some changes had to be made to the features added by the msvc branch
in order for them to fit the requirements of branch-1.11, notably that
the warnings issued in the extra-portability class cannot be enabled
by -Wall in the 1.11.x maintenance releases.

In retrospect, it would have been better to not merge msvc directly
into branch-1.11, but instead do it via the maint branch (followed up
with a dummy merge from maint into master) the moment it was decided
that the msvc changes should make it into branch-1.11.

All in all, this merge is going to affect neither the master branch
nor branch-1.11, since it is followed up with dummy merges masking all
changes.  The merge is made to maintain the sanity of the poor
developers, who wishes to once again have a working maint branch.

Discussion about merging the msvc branch into branch-1.11:
http://lists.gnu.org/archive/html/automake/2011-10/msg00030.html

Discussion about why this merge hasn't happened before:
http://lists.gnu.org/archive/html/automake/2011-12/msg00051.html

Extra edits below.

* lib/Automake/ChannelDefs.pm: Use the version from branch-1.11.
* tests/ar-lib3.test: Likewise.
* tests/ar-lib4.test: Likewise.
* tests/extra-portability.test: Likewise.
* tests/extra-portability2.test: Likewise.
* tests/extradep.test: Likewise.
* tests/extradep2.test: Likewise.
* tests/list-of-tests.mk: Likewise.
* HACKING: Backport the version from branch-1.11 while at it (as the
change on branch-1.11 is also present on master via an unrelated
commit), even though this change has nothing to do with the changes
on the msvc branch.

12 years agotests: remove useless sleep from tests on remake rules
Stefano Lattarini [Wed, 7 Mar 2012 07:59:59 +0000 (08:59 +0100)]
tests: remove useless sleep from tests on remake rules

The sleeps were there to make generated autotools files strictly
newer than their sources; however, this is not necessary, since
POSIX mandates that make considers files with the same timestamp
of their dependencies to be up-to-date.

* tests/remake9a.test: Remove useless $sleep.
* tests/remake9b.test: Likewise.
* tests/remake9c.test: Likewise.
* tests/remake9d.test: Likewise.
* tests/remake10a.test: Likewise.
* tests/remake10b.test: Likewise.
* tests/remake10c.test: Likewise.

12 years agoMerge branch 'msvc' into master (dummy merge)
Stefano Lattarini [Wed, 7 Mar 2012 07:23:45 +0000 (08:23 +0100)]
Merge branch 'msvc' into master (dummy merge)

12 years agoMerge branch 'maint' into msvc
Stefano Lattarini [Wed, 7 Mar 2012 07:20:26 +0000 (08:20 +0100)]
Merge branch 'maint' into msvc

* maint:
  news: describe recently-fixed bug in vala support
  depcomp: add support for IBM xlc/xlC compilers

12 years agoMerge remote-tracking branch 'origin/master'
Stefano Lattarini [Tue, 6 Mar 2012 21:03:50 +0000 (22:03 +0100)]
Merge remote-tracking branch 'origin/master'

12 years agoMerge branch 'maint'
Stefano Lattarini [Tue, 6 Mar 2012 21:03:22 +0000 (22:03 +0100)]
Merge branch 'maint'

* maint:
  news: describe recently-fixed bug in vala support
  depcomp: add support for IBM xlc/xlC compilers

12 years agonews: describe recently-fixed bug in vala support
Stefano Lattarini [Tue, 6 Mar 2012 20:44:57 +0000 (21:44 +0100)]
news: describe recently-fixed bug in vala support

* NEWS (Long-standing bugs): Document fix for bug#10894, fixed
by commit 'v1.11-696-g51f61df' of 27-02-2012.

12 years agodepcomp: add support for IBM xlc/xlC compilers
Michael Hofmannm [Mon, 5 Mar 2012 19:05:37 +0000 (20:05 +0100)]
depcomp: add support for IBM xlc/xlC compilers

* lib/depcomp (xlc): New depmode.
* NEWS, THANKS: Update.

Copyright-paperwork-exempt: yes

12 years agotests: do not clobber the $CC set by AM_PROG_CC_C_O
Peter Rosin [Tue, 6 Mar 2012 13:19:10 +0000 (14:19 +0100)]
tests: do not clobber the $CC set by AM_PROG_CC_C_O

If $CC is originally a losing compiler, AM_PROG_CC_C_O will
modify $CC.  "$MAKE -e" will then clobber this modified $CC
and reintroduce the raw losing compiler causing the test
to fail, as subdir-objects is in effect.

* tests/yacc-dist-nobuild-subdir.test: Drop -e from the $MAKE
invocations.  This is safe since DISTCHECK_CONFIGURE_FLAGS is not
specified in the Makefile and since the YACC override is carried
over from the configure invocation into the Makefile making it
redundant to specifiy it again in the environment for $MAKE.

12 years agotests: explicitly state that our lexers do not require unistd.h
Peter Rosin [Tue, 6 Mar 2012 08:50:09 +0000 (09:50 +0100)]
tests: explicitly state that our lexers do not require unistd.h

By default, GNU flex generates code that is dependent on unistd.h,
which is not portable to non-ANSI systems causing spurious test
failures.

* tests/cond35.test (tscan.l): Define YY_NO_UNISTD_H.
* tests/lex-clean.test (lexer.l): Likewise.
* tests/lex-depend.test (joe.l): Likewise.
* tests/lex-lib-external.test (foo.l): Likewise.
* tests/lex-lib.test (foo.l): Likewise.
* tests/lex-libobj.test (foo.l): Likewise.
* tests/lex-line.test (zardoz.l): Likewise.
* tests/lex-nodist.test (lexer.l): Likewise.
* tests/lex-noyywrap.test (foo.l): Likewise.
* tests/lex-pr204.test (lexer.l): Likewise.
* tests/lex-subobj-nodep.test (subl/sl.l): Likewise.
* tests/lex3.test (foo.l): Likewise.
* tests/lex5.test (foo/foo.l): Likewise.
* tests/lexvpath.test (lexer.l): Likewise.
* tests/silent-lex.test (foo.l): Likewise.
* tests/silent-many-gcc.test (foo5.l): Likewise.
* tests/silent-many-generic.test (foo5.l): Likewise.
* tests/lex-clean-cxx.test (parsefoo.lxx): Likewise.  Also specify
the never-interactive option to prevent usage of the non-ANSI
function isatty(3) (from unistd.h).
* tests/lex-depend-cxx.test (joe.ll): Likewise.
* tests/README: Describe these quirks.

12 years agoMerge branch 'msvc'
Peter Rosin [Tue, 6 Mar 2012 08:31:43 +0000 (09:31 +0100)]
Merge branch 'msvc'

* msvc:
  scripts: support -I <dir> -L <dir> and -l <lib> for cl in compile

12 years agoscripts: support -I <dir> -L <dir> and -l <lib> for cl in compile
Peter Rosin [Tue, 6 Mar 2012 08:14:50 +0000 (09:14 +0100)]
scripts: support -I <dir> -L <dir> and -l <lib> for cl in compile

POSIX mandates that the compiler accepts a space between the -I,
-l and -L options and their respective arguments.  See
http://pubs.opengroup.org/onlinepubs/000095399/utilities/c99.html

* lib/compile (func_cl_dashl): New function with factored out code
for implementing the -l option for the cl wrapper.
(func_cl_dashL): New function with factored out code implementing
the -L option for the cl wrapper.
(func_cl_wrapper): Use func_cl_dashl to implement both -l <lib>
and -l<lib>, and func_cl_dashL to implement both -L <dir> and
-L<dir>.  Also add support for -I <dir>.
(scriptversion): Update.
* tests/compile3.test: Test both with and without a space between
-I, -l and -L and their respective arguments.
* tests/compile5.test: Likewise.
* tests/compile6.test: Likewise.
* tests/compile3.test: Likewise.
* NEWS: Update.

12 years agomaint: drop 'Automake::Struct' module
Stefano Lattarini [Sun, 4 Mar 2012 15:00:58 +0000 (16:00 +0100)]
maint: drop 'Automake::Struct' module

Now that we require Perl 5.6, we can drop the 'Automake::Struct'
module, which was basically just a backport of Perl 5.6's
'Class::Struct' to Perl 5.5.

* automake.in: Use 'Class::Struct', not 'Automake::Struct'.
* lib/Automake/Struct.pm: Delete.
* lib/Automake/Makefile.am (dist_perllib_DATA): Remove it.

12 years agomaint: require perl 5.6 throughout
Stefano Lattarini [Sun, 4 Mar 2012 14:44:46 +0000 (15:44 +0100)]
maint: require perl 5.6 throughout

That version of perl is quite old already, so it should be OK to
require it.  More importantly, it is the older perl versions the
developers can currently use for testing, thus it's safer and more
honest to just require it throughout.  And anyway, we were already
requiring it in Automake::Getopt, which implied that both automake
and aclocal wouldn't have worked in practice with an older perl
version.

See also the discussion related to automake bug#10925.

* lib/Automake/ChannelDefs.pm: Adjusted to require perl 5.6.
* lib/Automake/Channels.pm: Likewise.
* lib/Automake/Condition.pm: Likewise.
* lib/Automake/Configure_ac.pm: Likewise.
* lib/Automake/DisjConditions.pm: Likewise.
* lib/Automake/FileUtils.pm: Likewise.
* lib/Automake/General.pm: Likewise.
* lib/Automake/Item.pm: Likewise.
* lib/Automake/ItemDef.pm: Likewise.
* lib/Automake/Location.pm: Likewise.
* lib/Automake/Options.pm: Likewise.
* lib/Automake/Rule.pm: Likewise.
* lib/Automake/RuleDef.pm: Likewise.
* lib/Automake/Struct.pm: Likewise.
* lib/Automake/VarDef.pm: Likewise.
* lib/Automake/Variable.pm: Likewise.
* lib/Automake/Version.pm: Likewise.
* lib/Automake/Wrap.pm: Likewise.
* lib/Automake/XFile.pm: Likewise.

12 years agocosmetics: remove useless escaping for "'" character
Stefano Lattarini [Sun, 4 Mar 2012 12:02:57 +0000 (13:02 +0100)]
cosmetics: remove useless escaping for "'" character

12 years agotest defs: remove redundant and unused requirements
Stefano Lattarini [Sun, 4 Mar 2012 11:56:54 +0000 (12:56 +0100)]
test defs: remove redundant and unused requirements

* tests/defs (xsi-bin-sh, xsi-shell): Remove these requirements,
they have never been used.
(cygpath, cscope): Recognizing these explicitly is mostly redundant;
just merge them with the default "catch all" rule, and adjust that
accordingly.
(bzip2): Adjust some outdated comments.

12 years agotests: fix spurious failure on case-insensitive file systems
Stefano Lattarini [Fri, 2 Mar 2012 20:53:52 +0000 (21:53 +0100)]
tests: fix spurious failure on case-insensitive file systems

See automake bug#10866.

* tests/java-uninstall.test: Relax the test a little to cater to
case-insensitive file systems, like HFS+ on MacOS X.

12 years agonews: more about planned backward incompatibilities
Stefano Lattarini [Fri, 2 Mar 2012 22:06:02 +0000 (23:06 +0100)]
news: more about planned backward incompatibilities

* NEWS (Future backward-incompatibilities): Starting from the next
major Automake versions, the parallel testsuite driver will be used
by default, instead of the serial testsuite driver as in the past.

12 years agomaintcheck: fix few spurious failures
Stefano Lattarini [Fri, 2 Mar 2012 21:50:21 +0000 (22:50 +0100)]
maintcheck: fix few spurious failures

* syntax-checks.mk: Fix some spurious failures by tightening and/or
tweaking few checks so that some false positives end up whitelisted.

12 years agotests: fix spurious failure due to exported MAKEINFO
Stefano Lattarini [Fri, 2 Mar 2012 21:24:35 +0000 (22:24 +0100)]
tests: fix spurious failure due to exported MAKEINFO

* tests/txinfo30.test: Unset variable MAKEINFO, as its content could
take precedence over our faked makeinfo script and cause a spurious
failure.  Reported as part of automake bug#10866.  Add trailing ':'
command since we are at it.

12 years agotests: fix spurious failure in a vala test
Stefano Lattarini [Fri, 2 Mar 2012 21:07:58 +0000 (22:07 +0100)]
tests: fix spurious failure in a vala test

* tests/vala-mix2.test: Append to 'configure.ac' rather than to
'configure.in'.  Reported as part of automake bug#10866, and also
revealed by "make maintainer-check".

12 years agoself checks: relax tests on cleanup
Stefano Lattarini [Sun, 26 Feb 2012 13:17:36 +0000 (14:17 +0100)]
self checks: relax tests on cleanup

Some find(1) implementations have problems operating recursively on
directories having subdirectories with null permissions, even when
the permissions of such subdirectory should be fixed by find before
it descends into them; for example, with this setup:

  % mkdir a a/b
  % chmod 000 a/b

a command like this:

  % find a -type d ! -perm -700 -exec chmod u+rwx '{}' ';'

fails with this diagnostic on MacOS X 10.7:

  find: a/b: Permission denied

and with this diagnostic on Solaris 10:

  find: cannot read dir a/b: Permission denied

The problem is that our self checks were simply demanding too much
from our cleanup trap: our tests never use subdirectories with null
permissions, so it doesn't matter if the cleanup trap fails to
handle those.  Just relax the self checks to avoid such useless
testsuite noise.

* tests/self-check-cleanup.tap: Only try directories missing
write permissions, not with null permission.  That should be
enough for our usages.

12 years agoMerge branch 'msvc'
Peter Rosin [Fri, 2 Mar 2012 15:38:08 +0000 (16:38 +0100)]
Merge branch 'msvc'

* msvc:
  news: add entry about recent 'ar-lib' changes

12 years agonews: add entry about recent 'ar-lib' changes
Peter Rosin [Fri, 2 Mar 2012 15:27:31 +0000 (16:27 +0100)]
news: add entry about recent 'ar-lib' changes

* NEWS: Add information about recent 'ar-lib' changes.

12 years agoscripts: recognize the "q", "s" and "S" actions/modifiers in ar-lib
Peter Rosin [Thu, 1 Mar 2012 08:30:45 +0000 (09:30 +0100)]
scripts: recognize the "q", "s" and "S" actions/modifiers in ar-lib

* lib/ar-lib: Implement the "q" (quick) action as a synonym
for "r" (replace).  Ignore "s" (symbol index) and "S" (no symbol
index) when used as modifiers and "s" when used as a command,
there is simply no way for Microsoft lib to not update the
symbol table index in the archive.
(scriptversion): Update.
* tests/ar-lib.test: Check the added behavior.  Also add checks
for the recently added "u" (update) and "v" (verbose) modifiers.

12 years agoMerge branch 'fix-vala-test'
Peter Rosin [Fri, 2 Mar 2012 10:49:18 +0000 (11:49 +0100)]
Merge branch 'fix-vala-test'

* fix-vala-test:
  tests: fix (harmless) botched merge

12 years agotests: fix (harmless) botched merge
Peter Rosin [Fri, 2 Mar 2012 10:48:41 +0000 (11:48 +0100)]
tests: fix (harmless) botched merge

Commit v1.11-1750-g9928ea5 of 2012-01-16 (Merge branch 'maint')
reordered the macro calls so that AM_PROG_AR ended up after
AC_PROG_LIBTOOL, which is not allowed.  This error went by
undetected since AC_PROG_LIBTOOL was redefined, but that also
removed the ordering requirement making the error benign.

* tests/vala.test: Put AM_PROG_AR before AC_PROG_LIBTOOL.

12 years agoMerge branch 'maint' into msvc
Peter Rosin [Fri, 2 Mar 2012 10:04:05 +0000 (11:04 +0100)]
Merge branch 'maint' into msvc

12 years agoscripts: recognize the "q", "s" and "S" actions/modifiers in ar-lib
Peter Rosin [Thu, 1 Mar 2012 08:30:45 +0000 (09:30 +0100)]
scripts: recognize the "q", "s" and "S" actions/modifiers in ar-lib

* lib/ar-lib: Implement the "q" (quick) action as a synonym
for "r" (replace).  Ignore "s" (symbol index) and "S" (no symbol
index) when used as modifiers and "s" when used as a command,
there is simply no way for Microsoft lib to not update the
symbol table index in the archive.
(scriptversion): Update.
* tests/ar-lib.test: Check the added behavior.  Also add checks
for the recently added "u" (update) and "v" (verbose) modifiers.

12 years agotests: do not try to use ar(1) when $AR points to something else
Peter Rosin [Wed, 29 Feb 2012 19:21:30 +0000 (20:21 +0100)]
tests: do not try to use ar(1) when $AR points to something else

* tests/libobj10.test: Move the archive listing commands to the
Makefile, so that $AR - as determined by configure - can be
used.
* tests/libobj17.test: Likewise.

12 years agotests: make tests behave for the AR=lib case
Peter Rosin [Wed, 29 Feb 2012 19:20:17 +0000 (20:20 +0100)]
tests: make tests behave for the AR=lib case

These below tests were left mostly as-is when AM_PROG_AR was
introduced (with libobj16b being the exception, that test was
forgotten or has regressed since), in a misguided attempt to
not make them diverge from the original problem reports.

Modernize them so that they do not FAIL when $AR is Microsoft
'lib'.

* tests/libobj16b.test: Add AM_PROG_AR to configure.ac and remove
the no-longer-needed -Wno-extra-portability option when invoking
automake.
* tests/pr300-lib.test: Likewise.
* tests/pr300-ltlib.test: Likewise.
* tests/pr307.test: Likewise.
* tests/pr401.test: Likewise.  Also fetch the 'ar-lib' script.
* tests/pr401b.test: Likewise.
* tests/pr401c.test: Likewise.

12 years agoMerge branch 'maint'
Stefano Lattarini [Wed, 29 Feb 2012 18:50:18 +0000 (19:50 +0100)]
Merge branch 'maint'

* maint:
  vala: fix 'valac' calls for projects with mixed Vala/C
  vala: expose automake bug#10894

12 years agotests: fix spurious failure with Portland Compilers
Dave Goodell [Tue, 28 Feb 2012 19:49:22 +0000 (13:49 -0600)]
tests: fix spurious failure with Portland Compilers

* tests/silent-many-generic.test (configure.ac): Be more careful
in the workaround to avoid spurious failures with C++ compilers
containing the string "CC" in their names; this avoids spurious
failures with at least the Sun Studio C++ compiler (when named
"sunCC") and the Portland Group C++ Compiler ("pgCC").
Also handle arguments with whitespace correctly in the 'am--cxx'
temporary wrapper.
* THANKS: Update.

Co-authored-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Copyright-paperwork-exempt: yes

12 years agotests: fix spurious failure when dependency tracking is unavailable
Stefano Lattarini [Tue, 28 Feb 2012 19:07:34 +0000 (20:07 +0100)]
tests: fix spurious failure when dependency tracking is unavailable

Report by Dave Goodell.  See automake bug#8880.

* tests/yacc-dist-nobuild.test: Run the sanity check that aims at
ensuring we really cover the expected code paths in a new build
directory, to avoid spurious failures when automatic dependency
tracking is disabled.

12 years agovala: fix 'valac' calls for projects with mixed Vala/C
Stefano Lattarini [Mon, 27 Feb 2012 20:48:03 +0000 (21:48 +0100)]
vala: fix 'valac' calls for projects with mixed Vala/C

Fixes automake bug#10894.

* automake.in (lang_vala_finish_target): Strip non-vala files
from the dependencies of vala stamps, and from the invocation
of valac compiler.  Related refactorings.
* tests/Makefile.am (XFAIL_TESTS): Remove 'vala-mix2.test'.