platform/upstream/automake.git
11 years agoaclocal: avoid spurious warnings from autom4te with AC_CONFIG_MACRO_DIRS
Stefano Lattarini [Sat, 3 Nov 2012 10:30:04 +0000 (11:30 +0100)]
aclocal: avoid spurious warnings from autom4te with AC_CONFIG_MACRO_DIRS

When some macro expanded in configure.ac calls AC_REQUIRE on another
macro that is defined in one of the local m4 macro dirs specified
with AC_CONFIG_MACRO_DIRS, aclocal prints spurious warnings like:

    configure.ac:4: warning: MY_BAR is m4_require'd but not m4_defun'd
    configure.ac:3: MY_FOO is expanded from...

Such warnings come from autom4te, and are due to the fact that the
*first* autom4te invocation issued by aclocal is not yet able to
"see" the m4 macro definitions in the local m4 dirs (because they
can be looked for only after the AC_CONFIG_MACRO_DIRS call has been
traced, and tracing it requires running autom4te).

To allow us to work around this issue, autom4te has introduced a new
"witness" macro 'm4_require_silent_probe', that, when defined, allows
us to silence that particular kind of warnings (and only it).

Reported by Nick Bowler; see point (4) of:
<http://lists.gnu.org/archive/html/autoconf-patches/2012-11/msg00000.html>

* aclocal.in (trace_used_macros): Pre-define the special macro
'm4_require_silent_probe' when invoking autom4te.
* t/aclocal-macrodirs.tap ("AC_CONFIG_MACRO_DIR interaction with
AC_REQUIRE"): This test passes now: remove the "TODO" directive.
* t/aclocal-macrodir.tap ("AC_CONFIG_MACRO_DIRS interaction with
AC_REQUIRE"): Likewise.
* t/acloca17.sh: Remove.
* t/list-of-tests.mk: Adjust.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agocoverage: expose a bug in aclocal (spurious warnings)
Stefano Lattarini [Fri, 2 Nov 2012 17:12:40 +0000 (18:12 +0100)]
coverage: expose a bug in aclocal (spurious warnings)

When some macro expanded in configure.ac calls AC_REQUIRE on another
macro that is defined in one of the local m4 macro dirs specified
with one of the macros AC_CONFIG_MACRO_DIRS or AC_CONFIG_MACRO_DIR,
aclocal prints spurious warnings like:

    configure.ac:4: warning: MY_BAR is m4_require'd but not m4_defun'd
    configure.ac:3: MY_FOO is expanded from...

Expose this weakness in our testsuite.

Reported by Nick Bowler; see point (4) of:
<http://lists.gnu.org/archive/html/autoconf-patches/2012-11/msg00000.html>

* t/aclocal-macrodir.tap ("AC_CONFIG_MACRO_DIR interaction with
AC_REQUIRE"): New test, still xfailing.
* t/aclocal-macrodirs.tap ("AC_CONFIG_MACRO_DIRS interaction with
AC_REQUIRE"): Likewise.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agoaclocal: smash newlines in arguments of traced macros
Stefano Lattarini [Fri, 2 Nov 2012 10:49:46 +0000 (11:49 +0100)]
aclocal: smash newlines in arguments of traced macros

This change fixes the existing issues with AC_CONFIG_MACRO_DIRS
containing newlines:
<http://lists.gnu.org/archive/html/autoconf-patches/2012-11/msg00000.html>

Likely, it will also allow a less involved implementation of the
AM_EXTRA_RECURSIVE_TARGETS macro (but that is left for potential
follow-up patches).

* aclocal.in (trace_used_macros): When calling autom4te, pass its
'--trace' option an argument containing '${::}%' rather than '$1'.
According to the autoconf manual (as of version 2.69), that will expand
to the concatenation, with the '::' string, of all the arguments passed
to a macro, with all newline characters in such arguments smashed.
Related adjustments when handling the macro AC_CONFIG_MACRO_DIRS, to
ensure leading whitespace in its argument are handled correctly.
* t/aclocal-macrodirs.tap ("AC_CONFIG_MACRO_DIRS: extra whitespace"):
No longer declare it as an xfailing test.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: better coverage for AC_CONFIG_MACRO_DIRS
Stefano Lattarini [Fri, 2 Nov 2012 09:09:36 +0000 (10:09 +0100)]
tests: better coverage for AC_CONFIG_MACRO_DIRS

Suggested by a report from Nick Bowler:
<http://lists.gnu.org/archive/html/autoconf-patches/2012-11/msg00000.html>

* t/aclocal-macrodirs.tap: Enhance to check use of extra whitespaces
and newline characters in the arguments to AC_CONFIG_MACRO_DIRS.  This
test currently fails, so mark it as "TODO".  While at it, throw in other
minor edits and enhancements.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agoaclocal: diagnose non-existing directories in AC_CONFIG_MACRO_DIRS better
Stefano Lattarini [Wed, 4 Jul 2012 13:37:46 +0000 (15:37 +0200)]
aclocal: diagnose non-existing directories in AC_CONFIG_MACRO_DIRS better

This new implementation ensures that any directory (possibly excluding
the first one, if the '--install' option is used) that is declared with
AC_CONFIG_MACRO_DIRS and that is non-existent will cause an error from
aclocal.

* aclocal.in (scan_m4_dirs): Add a new argument, telling whether it's OK
for the scanned directory to be non-existing.  Adjust the implementation
accordingly.
($first_user_m4dir): Remove, no more needed.
(scan_m4_files): Update 'scan_m4_dirs' invocations so that aclocal will
not complain if the first user macro directory is non-existing and the
'--install' option is given: such directory will be created later by
aclocal itself.
* t/aclocal-macrodir.tap: Do not mark the last test as TODO anymore;
it now passes.  Make stricter by ensuring a non-existing directory in
AC_CONFIG_MACRO_DIRS causes an hard error, not a warning.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agoaclocal: multiple local m4 macro dirs with AC_CONFIG_MACRO_DIRS
Stefano Lattarini [Wed, 4 Jul 2012 13:23:50 +0000 (15:23 +0200)]
aclocal: multiple local m4 macro dirs with AC_CONFIG_MACRO_DIRS

A new macro 'AC_CONFIG_MACRO_DIRS' has been recently introduced in
autoconf (and is expected to appear in the autoconf 2.70 release),
allowing us to declare several local m4 macro directories for a
package.

It can be done either passing several arguments to a single invocation:

    AC_CONFIG_MACRO_DIRS([dir1 dir2])

or issuing more invocations:

    AC_CONFIG_MACRO_DIRS([dir1])
    AC_CONFIG_MACRO_DIRS([dir2])

or a combination of the two:

    AC_CONFIG_MACRO_DIRS([dir1 dir2])
    AC_CONFIG_MACRO_DIRS([dir3])

This will allow projects to use several m4 macro local dirs, without the
need to use ACLOCAL_AMFLAGS (which we want to make obsolete and finally
remove).  This is especially important for projects that are used as
nested subpackages of larger projects.

For more information and rationales, refer to these past discussions:

<http://lists.gnu.org/archive/html/autoconf/2011-12/msg00037.html>
<http://lists.gnu.org/archive/html/automake-patches/2012-07/msg00010.html>
<http://lists.gnu.org/archive/html/autoconf-patches/2012-07/msg00000.html>
<http://lists.gnu.org/archive/html/autoconf-patches/2012-07/msg00012.html>
<http://thread.gmane.org/gmane.comp.sysutils.autoconf.patches/8037/>
<http://thread.gmane.org/gmane.comp.sysutils.autoconf.patches/8087>
<http://thread.gmane.org/gmane.comp.sysutils.automake.patches/8956>

as well as to Automake commit v1.12.1-165-gcd1a9cc of 2012-07-03,
"aclocal: deprecate ACLOCAL_AMFLAGS, trace AC_CONFIG_MACRO_DIR instead",
autoconf commit v2.69-42-gd73770f of 2012-10-17, "AC_CONFIG_MACRO_DIRS:
new macro, mostly for aclocal".

* aclocal.in ($ac_config_macro_dir): Turn this global scalar it into ...
(@ac_config_macro_dirs): ... this global array.
(trace_used_macros): Update '@ac_config_macro_dirs' instead of
re-defining '$ac_config_macro_dir'.  Cater to calls the now-preferred
macro 'AC_CONFIG_MACRO_DIRS' in addition to the "obsolescent" one
AC_CONFIG_MACRO_DIR.
(main loop): Append '@ac_config_macro_dirs', not '$ac_config_macro_dir',
to '@user_includes'.
* t/subpkg-macrodir.sh: New test.
* t/aclocal-macrodirs.tap: Likewise.
* t/list-of-tests.mk: Add them.
* t/aclocal-macrodir.tap: Adjust and extend a little to keep it more in
sync with 'aclocal-macrodirs.tap'.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: remove an obsolete comment
Stefano Lattarini [Wed, 7 Nov 2012 22:53:26 +0000 (23:53 +0100)]
tests: remove an obsolete comment

* t/silent-yacc.sh: Here.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: remove mostly-redundant tests on silent rules
Stefano Lattarini [Wed, 7 Nov 2012 22:40:59 +0000 (23:40 +0100)]
tests: remove mostly-redundant tests on silent rules

We used to have several couples of tests named like 'silent-foo-gcc.sh'
and 'silent-foo-generic.sh'.  Differently from what the names suggest,
the first test in such a couple (that is, "silent-foo-gcc.sh") was not
meant to check specific GCC-related features, but rather to check how
the silent rules behave in combination with automatic dependency tracking
when the 'gcc' depmode (that targets GCC versions before the 3.x and 4.x
release series) is forced.

Such depmode forcing was done exclusively to cover the code paths in
'lib/am/depend2.am' that actually invoke the 'depcomp' script, rather
than using the inlined, GCC-specific compiler invocation (the so-called
"fastdep" mode), which is the default with modern GCC or with other
modern compilers that can emulate the GCC command-line interface (e.g.,
clang 3.0).

But whenever we run the silent-*-generic.sh" tests with other supported
compilers which have an associated depmode different from 'gcc3', these
same "non-fastdep" code paths are covered, since in those tests we run
./configure with the '--enable-dependency-tracking' option, which causes
slower depmodes not to be rejected.  Examples of such compilers are the
Sun C and C++ compilers (at least since version 5.9, a.k.a. Sun Studio
12.1), and the Tiny C Compiler (from version 0.9.26); and I run the
Automake testsuite quite regularly with those compilers.

So, the "silent-*-gcc.sh" test cases don't offer any real coverage
enhancements, while still using testsuite runtime and causing some
(admittedly minor, but still annoying) synchronization headaches with
the sister tests "silent-foo-general.sh" tests.  So let's just remove
these "silent-*-gcc.sh" tests.

* t/silent-c-gcc.sh: Remove.
* t/silent-cxx-gcc.sh: Likewise.
* t/silent-lt-gcc.sh: Likewise.
* t/silent-many-gcc.sh: Likewise.
* t/silent-c-generic.sh: Rename ...
* t/silent-c.sh: ... like this, and adjust heading comments.
* t/silent-cxx-generic.sh: Rename ...
* t/silent-cxx.sh: ... like this, and adjust heading comments.
* t/silent-lt-generic.sh: Rename ...
* t/silent-lt.sh: ... like this, and adjust heading comments.
* t/silent-many-generic.sh: Rename ...
* t/silent-many-languages.sh: ... like this, and adjust heading
comments.
* t/list-of-tests.mk: Adjust.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: enhance coverage on silent-rules and C compilation rules a little
Stefano Lattarini [Wed, 7 Nov 2012 21:08:35 +0000 (22:08 +0100)]
tests: enhance coverage on silent-rules and C compilation rules a little

* t/silent-c-generic.sh: Here, by trying them also with automatic
dependency tracking explicitly disabled.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agoMerge branch 'maint'
Stefano Lattarini [Wed, 7 Nov 2012 20:51:01 +0000 (21:51 +0100)]
Merge branch 'maint'

* maint:
  tests: new variable $am_testaux_builddir
  tests: rename $am_testauxdir -> $am_testaux_srcdir

11 years agotests: rename few tests (on silent-rules support)
Stefano Lattarini [Wed, 7 Nov 2012 19:39:19 +0000 (20:39 +0100)]
tests: rename few tests (on silent-rules support)

Either to more informative names, or to names more consistent with the
ones of similar/related tests.

* t/silent.sh: Rename ...
* t/silent-c-generic.sh: ... like this, and adjust heading comments.
* t/silent2.sh: Rename ...
* t/silent-c-gcc.sh: ... like this, and adjust heading comments.
* t/silent3.sh: Rename ...
* t/silent-lt-generic.sh: ... like this, and adjust heading comments.
* t/silent4.sh: Rename ...
* t/silent-lt-gcc.sh: ... like this, and adjust heading comments.
* t/silentcxx.sh: Rename ...
* t/silent-cxx-generic.sh: ... like this, and adjust heading comments.
* t/silentcxx-gcc.sh: Rename ...
* t/silent-cxx-gcc.sh: ... like this, and adjust heading comments.
* t/silentf77.sh: Rename ...
* t/silent-f77.sh: ... like this, and adjust heading comments.
* t/silentf90.sh: Rename ...
* t/silent-f90.sh: ... like this, and adjust heading comments.
* t/silent7.sh: Rename ...
* t/silent-gen.sh: ... like this, and adjust heading comments.
* t/silent6.sh: Rename ...
* t/silent-custom.sh: ... like this.
* t/silent8.sh: Rename ...
* t/silent-texi.sh: ... like this.
* t/list-of-tests.mk: Adjust.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: merge two tests on silent-rules with libtool
Stefano Lattarini [Wed, 7 Nov 2012 18:56:24 +0000 (19:56 +0100)]
tests: merge two tests on silent-rules with libtool

This helps to reduce code duplication, and also to (marginally)
speed up the involved tests.

Before this change, we had:

  $ diff -u t/silent3.sh t/silent9.sh

  --- t/silent3.sh      2012-11-07 19:38:05.000000000 +0100
  +++ t/silent9.sh      2012-11-07 19:27:54.000000000 +0100
  @@ -14,9 +14,9 @@
   # You should have received a copy of the GNU General Public License
   # along with this program.  If not, see <http://www.gnu.org/licenses/>.

  -# Check silent-rules mode, with libtool, standard depmode case.
  +# Check silent-rules mode, with libtool, nodep case.

  -# Please keep this file in sync with 'silent4.sh' and 'silent9.sh'.
  +# Please keep this file in sync with 'silent3.sh' and 'silent4.sh'.

   required='cc libtoolize'
   . test-init.sh
  @@ -26,8 +26,8 @@
   cat >>configure.ac <<'EOF'
   AC_CONFIG_FILES([sub/Makefile])
   AC_PROG_CC
  -AM_PROG_AR
   AM_PROG_CC_C_O
  +AM_PROG_AR
   AC_PROG_LIBTOOL
   AC_OUTPUT
   EOF
  @@ -61,7 +61,7 @@
   $AUTOMAKE --add-missing
   $AUTOCONF

  -./configure --enable-silent-rules
  +./configure --disable-dependency-tracking --enable-silent-rules
   $MAKE >stdout || { cat stdout; exit 1; }
   cat stdout
   $EGREP ' (-c|-o)' stdout && exit 1

* t/silent9.sh: Remove, merge ...
* t/silent3.sh: ... in here.
* t/list-of-tests.mk: Adjust.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: new variable $am_testaux_builddir
Stefano Lattarini [Wed, 7 Nov 2012 16:59:40 +0000 (17:59 +0100)]
tests: new variable $am_testaux_builddir

And a related fix that solves a spurious testsuite failures in
VPATH builds.

* t/ax/test-defs.in ($am_testaux_builddir): New, counterpart of
$am_testaux_srcdir, but pointing inside the build directory.
* t/self-check-shell-no-trail-bslash.sh: Use $am_testaux_builddir,
not $am_testaux_srcdir, when fetching the 'shell-no-trail-bslash'
script.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: rename $am_testauxdir -> $am_testaux_srcdir
Stefano Lattarini [Wed, 7 Nov 2012 16:52:25 +0000 (17:52 +0100)]
tests: rename $am_testauxdir -> $am_testaux_srcdir

This is just a preparatory change in view of a future commit.

* t/ax/test-defs.in: Here.
* t/ax/tap-summary-aux.sh: And here.
* t/ax/testsuite-summary-checks.sh: And here.
* t/distcheck-missing-m4.sh: And here.
* t/distcheck-outdated-m4.sh: And here.
* t/self-check-shell-no-trail-bslash.sh: And here.
* t/test-driver-acsubst.sh: And here.
* t/test-driver-cond.sh: And here.
* t/test-driver-custom-multitest.sh: And here.
* t/test-driver-custom-multitest-recheck.sh: And here.
* t/test-driver-custom-multitest-recheck2.sh: And here.
* t/testsuite-summary-count-many.sh: And here.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agoMerge branch 'maint'
Stefano Lattarini [Wed, 31 Oct 2012 11:41:13 +0000 (12:41 +0100)]
Merge branch 'maint'

* maint:
  vala tests: source test-init.sh, not ./defs
  tests: fix a spurious typo-related failure
  tests: remove spurious leftover use of 'Exit'
  tests: can check our recipes avoid trailing backslashes
  vala: improve comments to AM_PROG_VALAC
  news: update w.r.t. recent vala changes
  vala: if no proper compiler found, set $(VALAC) to 'valac'
  vala: AM_PROG_VALAC should not produce an error for tool-old valac
  docs: document recent changes to AM_PROG_VALAC
  tests: enhance tests on AM_PROG_VALAC
  vala: style fixes in vala.m4
  vala: add action arguments, for when no proper vala compiler is found

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agovala tests: source test-init.sh, not ./defs
Stefano Lattarini [Wed, 31 Oct 2012 11:40:47 +0000 (12:40 +0100)]
vala tests: source test-init.sh, not ./defs

This will avoid spurious errors when the new vala tests (introduced
in the 'vala-work' branch) will be merged back to master.

* t/vala-headers.sh: Adjust as said.
* t/vala-libs.sh: Likewise.
* t/vala-mix.sh: Likewise.
* t/vala-mix2.sh: Likewise.
* t/vala-parallel.sh: Likewise.
* t/vala-vapi.sh: Likewise.
* t/vala-vpath.sh: Likewise.
* t/vala.sh: Likewise.
* t/vala2.sh: Likewise.
* t/vala3.sh: Likewise.
* t/vala4.sh: Likewise.
* t/vala5.sh: Likewise.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: fix a spurious typo-related failure
Stefano Lattarini [Wed, 31 Oct 2012 11:37:51 +0000 (12:37 +0100)]
tests: fix a spurious typo-related failure

* t/self-check-shell-no-trail-bslash.sh: Here, due to a mistaken
use of "||" instead of "&&".

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agoMerge branch 'vala-work' into maint
Stefano Lattarini [Wed, 31 Oct 2012 10:44:18 +0000 (11:44 +0100)]
Merge branch 'vala-work' into maint

* vala-work:
  vala: improve comments to AM_PROG_VALAC
  news: update w.r.t. recent vala changes
  vala: if no proper compiler found, set $(VALAC) to 'valac'
  vala: AM_PROG_VALAC should not produce an error for tool-old valac
  docs: document recent changes to AM_PROG_VALAC
  tests: enhance tests on AM_PROG_VALAC
  vala: style fixes in vala.m4
  vala: add action arguments, for when no proper vala compiler is found

11 years agotests: remove spurious leftover use of 'Exit'
Stefano Lattarini [Wed, 31 Oct 2012 10:41:31 +0000 (11:41 +0100)]
tests: remove spurious leftover use of 'Exit'

Issue revealed by the 'sc_tests_Exit_not_exit' maintainer check.

Commit 'v1.12.4-184-g9fed1c8' in master made the same fix basically,
but we mistakenly applied it to master only, rather than to maint.

* t/per-target-flags.sh: Here.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: can check our recipes avoid trailing backslashes
Stefano Lattarini [Sun, 28 Oct 2012 13:02:46 +0000 (14:02 +0100)]
tests: can check our recipes avoid trailing backslashes

This is related to commit v1.11-1704-g254227b of 2012-05-01,
"parallel-tests: avoid trailing backslashes in make recipes",
and automake bug#10436.

Recipes with a trailing backslash character (possibly followed by
blank characters only) can cause spurious syntax errors with at
least older bash versions (e.g., bash 2.05b), and can be potentially
be unportable to other weaker shells.

So provide a target that runs the testsuite looking for this kind
of breakage (without requiring a real bugged shell).

* t/ax/shell-no-trail-bslash.in: New, a "shell" that chokes on '-c'
commands having a trailing '\' (possibly followed by whitespace only).
* Makefile (t/ax/shell-no-trail-bslash): Generate this script from it.
(noinst_SCRIPTS, CLEANFILES): Add it.
(EXTRA_DIST): Add 't/ax/shell-no-trail-bslash.in'.
(check-no-trailing-backslash-in-recipes): New target, runs the testsuite
with 'shell-no-trail-bslash' as the CONFIG_SHELL, to catch possible
recipes having a trailing backslash character (possibly followed by
* .gitignore: Update.
* t/self-check-shell-no-trail-bslash.sh: New testsuite self-check.
* t/parallel-tests-trailing-bslash.sh: Remove as obsolete.
* t/list-of-tests.mk: Adjust.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agoMerge branch 'maint'
Stefano Lattarini [Sat, 27 Oct 2012 17:18:48 +0000 (19:18 +0200)]
Merge branch 'maint'

* maint:
  configure: correctly identify missing GNU compilers as such

11 years agoconfigure: correctly identify missing GNU compilers as such
Stefano Lattarini [Sat, 27 Oct 2012 17:10:20 +0000 (19:10 +0200)]
configure: correctly identify missing GNU compilers as such

* configure.ac: Here, instead of mistakenly diagnose them as "botched".

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: get rid of ./defs, it's no longer used.
Stefano Lattarini [Sat, 27 Oct 2012 16:31:21 +0000 (18:31 +0200)]
tests: get rid of ./defs, it's no longer used.

* defs: Delete.
* configure.ac (AC_CONFIG_LINKS): No longer link it.
* t/ax/tap-setup.sh: Don't look for a file named 'defs' in
the grandparent directory of the current test directory to
decide whether we're running in the correct directory.
* syntax-check.mk (xdefs): Remove '$(srcdir)/defs'.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agomaintcheck: fix the name of a check
Stefano Lattarini [Sat, 27 Oct 2012 16:26:19 +0000 (18:26 +0200)]
maintcheck: fix the name of a check

* (sc_tests_Exit_not_exit): Rename ...
(sc_tests_exit_not_Exit): ... like this, which is more faithful
to what the check actually does.  Adjust a grammaro in comments
while at it.
(syntax_check_rules): Adjust.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agomaintcheck: guard against uses of ./defs in tests
Stefano Lattarini [Sat, 27 Oct 2012 16:08:06 +0000 (18:08 +0200)]
maintcheck: guard against uses of ./defs in tests

Now, 'test-init.sh' should be used instead.

* (sc_tests_no_source_defs): New maintainer check.
(syntax_check_rules): Add it.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: remove spurious leftover use of 'Exit'
Stefano Lattarini [Sat, 27 Oct 2012 15:34:50 +0000 (17:34 +0200)]
tests: remove spurious leftover use of 'Exit'

* t/per-target-flags.sh: Here, and simply use 'exit' instead.
Issue revealed by the 'sc_tests_Exit_not_exit' maintainer check.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: remove an obsolete, and probably now wrong, comment
Stefano Lattarini [Sat, 27 Oct 2012 15:09:55 +0000 (17:09 +0200)]
tests: remove an obsolete, and probably now wrong, comment

* t/dirlist.sh: Here.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: remove obsolescent references to './defs'
Stefano Lattarini [Sat, 27 Oct 2012 15:08:28 +0000 (17:08 +0200)]
tests: remove obsolescent references to './defs'

* t/distcom-subdir.sh, t/distcom2.sh, t/ax/depcomp.sh, t/conff2.sh,
t/ccnoco3.sh, t/ccnoco.sh, t/self-check-dir.tap, t/self-check-exit.tap,
t/self-check-me.tap: Here.  Instead, refer to "am-test-lib.sh",
"test-init.sh", or simply "the testsuite setup", as appropriate.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: prefer including 'test-init.sh' rather than './defs'
Stefano Lattarini [Sat, 27 Oct 2012 14:41:39 +0000 (16:41 +0200)]
tests: prefer including 'test-init.sh' rather than './defs'

This is a follow-up to today's commit v1.12.4-22-g0610fc8,
"tests: prepare to move ./defs to t/ax/test-init.sh"

* All tests: To run the common setup, use the command:

    . test-init.sh

instead of the older, "historical" one:

    . ./defs || exit 1

Note that the "|| exit 1" wasn't really useful, since the 'errexit'
shell flag is in effect in both './defs' and 'test-init.sh', and all
the known shells that are good enough to run the automake testsuite
do automatically exit with error when a sourced file cannot be found
(at least, they do so in non-interactive mode, which is the only
mode that concerns us in the testsuite).

* t/ax/tap-summary-aux.sh, t/ax/testsuite-summary-checks.sh: Likewise.

* gen-testsuite-part: Do the same in the generated tests.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agoMerge branch 'maint'
Stefano Lattarini [Sat, 27 Oct 2012 14:15:04 +0000 (16:15 +0200)]
Merge branch 'maint'

* maint:
  tests: merge, tweak and modernize few test scripts
  tests: move coverage about BUILT_SOURCES
  tests: more meaningful names for some test cases
  tests: merge some grepping tests on Yacc support

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: merge, tweak and modernize few test scripts
Stefano Lattarini [Sat, 9 Jun 2012 18:49:09 +0000 (20:49 +0200)]
tests: merge, tweak and modernize few test scripts

Basically an adjusted-and-improved cherry-pick from Automake-NG
commit v1.12.1-343-gff30f83.

* t/specflg.sh, t/specflg2.sh, t/specflg3.sh: Merged into ...
* t/per-target-flags.sh: ... this test.
* t/fo.sh: Remove, its weak grepping checks well superseded by
the semantic checks in 't/fort4.sh'.
* t/cxxo.sh: Remove, its weak grepping checks well superseded
by the semantic checks in 't/cxx-demo.sh'.
* t/cxxcpp.sh: Enhance a little.
* t/empty.sh: Renamed ...
* t/empty-data-primary.sh: ... to this.  Add trailing ':' command.
* t/empty2.sh, t/empty3.sh, t/empty4.sh: Merged ...
* t/empty-sources-primary.tap: ... into this new test.
* t/no-outdir-option.sh: Remove.  A test to check than an obsolete
and now deleted option ("--output-dir") stays deleted is way too
much even for the most test-infected person ;-)
* t/list-of-tests.mk: Adjust.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: move coverage about BUILT_SOURCES
Stefano Lattarini [Sat, 27 Oct 2012 13:38:46 +0000 (15:38 +0200)]
tests: move coverage about BUILT_SOURCES

Basically a backport of some tests from Automake-NG.

* t/built-sources-check.sh: Sync it with the version in the ng/master
branch.  Accordingly, move part of the checks out ...
* t/built-sources-install.sh: ... into this new test, synced from
ng/master as well.
* t/built-sources-subdir.sh: Minor tweaks and enhancements to sync it
with the version in ng/master.
* t/built-sources-cond.sh: New test, synced from ng/master.
* t/built-sources.sh: Likewise, with minor edits to avoid a spurious
failure.
* t/built-sources-fork-bomb.sh: Likewise.
* t/list-of-tests.mk: Update.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: more meaningful names for some test cases
Stefano Lattarini [Sat, 27 Oct 2012 13:26:50 +0000 (15:26 +0200)]
tests: more meaningful names for some test cases

* t/yacc5.sh: Renamed ...
* t/yacc-grepping2.sh: ... like this.
* t/yacc7.sh: Renamed ...
* t/yacc-headers-and-pr47.sh: ... like this.
* t/yacc8.sh: Renamed ...
* t/yacc-subdir.sh: ... like this.
* t/subdir10.sh: Rename ...
* t/subdir-env-interference.sh: ... like this.
* t/specflg10.sh: Rename ...
* t/am-default-source-ext.sh: ... like this.
* t/suffix12.sh: Rename ...
* t/suffix-custom-subobj.sh: ... like this.
* t/suffix13.sh: Rename ...
* t/suffix-custom-subobj-and-specflg.sh: ... like this.
* t/check3.sh: Rename ...
* t/built-sources-check.sh: ... like this.
* t/subdirbuiltsources.sh: Rename ...
* t/built-sources-subdir.sh: ... like this.
* t/bsource.sh: Rename ...
* t/no-spurious-install-recursive.sh: ... like this.
* t/list-of-tests.mk: Adjust.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: merge some grepping tests on Yacc support
Stefano Lattarini [Sat, 27 Oct 2012 12:45:51 +0000 (14:45 +0200)]
tests: merge some grepping tests on Yacc support

* t/yacc.sh, t/yacc2.sh: Merge ...
* t/yacc-grepping.sh: ... into this test.
* t/list-of-tests.mk: Adjust.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agoMerge branch 'maint'
Stefano Lattarini [Sat, 27 Oct 2012 12:23:40 +0000 (14:23 +0200)]
Merge branch 'maint'

* maint:
  tests: prepare to move ./defs to t/ax/test-init.sh

11 years agotests: prepare to move ./defs to t/ax/test-init.sh
Stefano Lattarini [Sat, 27 Oct 2012 10:59:41 +0000 (12:59 +0200)]
tests: prepare to move ./defs to t/ax/test-init.sh

We don't do this in a sweeping passage, because that would cause
endless headaches in the synchronization between the maint, master
and ng/master branches.  Instead, we setup our framework to allow
test scripts to work by sourcing either './defs' or 'test-init.sh',
so that we'll be able to make the transition gradual and painless.

* t/ax/test-init.sh: New, copied from the previous ./defs file.
* defs: Simply work by sourcing the new file.
* Makefile.am (dist_noinst_DATA): List the new file.
* t/README: Adjust to mandate the sourcing of 'test-init.sh' rather
than of './defs'.
* t/c-demo.sh: Source 'test-init.sh' instead of ./defs.  This is
done to verify our new setup actually works.
* t/ac-output-old.tap: Likewise.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agoMerge branch 'maint'
Stefano Lattarini [Sat, 27 Oct 2012 09:57:43 +0000 (11:57 +0200)]
Merge branch 'maint'

* maint:
  depcomp: avoid potential interferences from the environment
  depcomp: improve comments about the 'gcc' depmode
  sync: update files from upstream with "make fetch"
  maintcheck: remove an obsolescent check
  tests: rename some tests to more expressive names, again
  tests: remove an obsolescent grepping check
  tests: merge two tests on automatic remake functionality
  tests: rename some test to more expressive names
  news: 'compile' supports libfoo.a naming when wrapping Microsoft tools
  tests: ensure generation of wrapper tests matching multiple conditions
  tests: simplify a loop in gen-testsuite-part
  compile: support libfoo.a naming when wrapping Microsoft tools
  NEWS: fix wording and grammaros, re-wrap text accordingly
  cosmetics: fix typo in 'lib/depcomp' comments

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agodepcomp: avoid potential interferences from the environment
Stefano Lattarini [Sat, 27 Oct 2012 09:19:22 +0000 (11:19 +0200)]
depcomp: avoid potential interferences from the environment

* lib/depcomp (gccflag, dashmflag): By explicitly initializing these
variables to the empty string by default.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agodepcomp: improve comments about the 'gcc' depmode
Stefano Lattarini [Sat, 27 Oct 2012 09:12:59 +0000 (11:12 +0200)]
depcomp: improve comments about the 'gcc' depmode

It is not only needed by obsolescent gcc compilers (pre-3.x),
but also by modern compiler like IBM C/C++.  State that ...

* lib/depcomp: ... here...
* gen-testsuite-part: ... and here, where we generate the
'depcomp*.tap' tests.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agovala: improve comments to AM_PROG_VALAC
Stefano Lattarini [Fri, 26 Oct 2012 18:22:40 +0000 (20:22 +0200)]
vala: improve comments to AM_PROG_VALAC

* m4/vala.m4 (AM_PROG_VALAC): Here.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agonews: update w.r.t. recent vala changes
Stefano Lattarini [Fri, 26 Oct 2012 18:18:51 +0000 (20:18 +0200)]
news: update w.r.t. recent vala changes

* NEWS: Here.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agovala: if no proper compiler found, set $(VALAC) to 'valac'
Stefano Lattarini [Fri, 26 Oct 2012 16:01:17 +0000 (18:01 +0200)]
vala: if no proper compiler found, set $(VALAC) to 'valac'

This is better than setting it to ':' (as is currently done), because
a triggered makefile rule invoking a vala compilation will then clearly
fail with an informative error message like "valac: command not found",
rather than silently, with the error possibly going unnoticed, or
triggering harder-to-diagnose fallout failures in later steps.

For a precedent of a similar behaviour, see the AC_PROG_YACC macro.

* m4/valac.m4: Implement the new semantic.
* doc/automake.texi (Vala Support): Document it.
* t/vala4.sh: Adjust.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agovala: AM_PROG_VALAC should not produce an error for tool-old valac
Sébastien Wilmet [Fri, 26 Oct 2012 15:08:09 +0000 (17:08 +0200)]
vala: AM_PROG_VALAC should not produce an error for tool-old valac

This change fixes automake bug#12688.

In the AM_PROG_VALAC macro, when the optional parameter specifying the
minimum release number is not provided, and/or if the Vala compiler is
not found, then there is a _warning_ message.

On the other hand, when the version number is specified and if the Vala
compiler is too old, there is an _error_ message.

This error message is problematic, because for a tarball, the Vala
compiler is not required: the generated C code is included in the
tarball.  So if a user wants to compile the software, he shouldn't
need the valac program with the right version.

* m4/vala.m4 (AM_PROG_VALAC): Modify to use AC_MSG_WARN instead
of AC_MSG_ERROR.
* t/vala4.sh: Adjust and enhance.
* doc/automake.texi (Vala Support): Likewise.
* THANKS: Update.

Co-authored-by: Matthieu Baerts <matttbe@glx-dock.org>
Co-authored-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Copyright-paperwork-exempt: yes
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agodocs: document recent changes to AM_PROG_VALAC
Stefano Lattarini [Fri, 26 Oct 2012 14:50:26 +0000 (16:50 +0200)]
docs: document recent changes to AM_PROG_VALAC

* doc/automake.texi (Vala Support): Here.  This is a follow-up to
recent commit 'v1.12.4-20-gdf202a3', "vala: add action arguments,
for when no proper vala compiler is found".

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: enhance tests on AM_PROG_VALAC
Stefano Lattarini [Fri, 26 Oct 2012 13:51:53 +0000 (15:51 +0200)]
tests: enhance tests on AM_PROG_VALAC

* t/vala4.sh: Here.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agovala: style fixes in vala.m4
Stefano Lattarini [Fri, 26 Oct 2012 13:18:44 +0000 (15:18 +0200)]
vala: style fixes in vala.m4

* m4/vala.m4 (AM_PROG_VALAC): Here.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agovala: add action arguments, for when no proper vala compiler is found
Daiki Ueno [Tue, 11 Sep 2012 08:55:37 +0000 (17:55 +0900)]
vala: add action arguments, for when no proper vala compiler is found

* m4/vala.m4 (AM_PROG_VALAC): Add optional action arguments to
control the behavior if specified version of valac is not found.
This emulates the behaviour of AM_PATH_PYTHON.
* t/vala4.sh: Enhance.

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

11 years agosync: update files from upstream with "make fetch"
Stefano Lattarini [Fri, 26 Oct 2012 13:05:53 +0000 (15:05 +0200)]
sync: update files from upstream with "make fetch"

* lib/config.guess, lib/config.sub: Update.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agomaintcheck: remove an obsolescent check
Stefano Lattarini [Fri, 26 Oct 2012 13:00:39 +0000 (15:00 +0200)]
maintcheck: remove an obsolescent check

* syntax-checks.mk (sc_test_names): Remove this check, which verified
that no test name contained an m4/m4sugar builtin or macro name.  Since
most tests use their own name as the first argument to AC_INIT, doing
that would have tickled a bug in Autoconf 2.62; but the bug was fixed
in Autoconf 2.63 already; and we are going to soon require Autoconf
2.65 anyway (in automake 1.13), so this check has become more annoying
than useful.
(syntax_check_rules): Don't list the removed check.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: rename some tests to more expressive names, again
Stefano Lattarini [Fri, 26 Oct 2012 12:50:46 +0000 (14:50 +0200)]
tests: rename some tests to more expressive names, again

* t/parallel-tests.sh: Rename ...
* t/parallel-tests-basics.sh: ... like this.
* t/parallel-tests3.sh: Rename ...
* t/parallel-tests-concurrency.sh: ... like this.
* t/parallel-tests5.sh: Rename ...
* t/parallel-tests-concurrency-2.sh: ... like this.
* t/parallel-tests6.sh: Rename ...
* t/parallel-tests-empty.sh: ... like this.  Adjust comments.
* t/parallel-tests8.sh: Rename ...
* t/parallel-tests-generated-and-distributed.sh: ... like this.
* t/parallel-tests9.sh: Rename ...
* t/parallel-tests-recheck.sh: ... like this.
* t/parallel-tests10.sh: Rename ...
* t/parallel-tests-trailing-whitespace.sh: ... like this.
* t/remake3a.sh: Rename ...
* t/remake-subdir-no-makefile.sh: ... like this.
* t/remake4.sh: Rename ...
* t/remake-not-after-make-dist.sh: ... like this.
* t/remake5.sh: Rename ...
* t/remake-maintainer-mode.sh: ... like this.
* t/remake6.sh: Rename ...
* t/remake-subdir3.sh: ... like this.
* t/remake7.sh: Rename ...
* t/remake-fail.sh: ... like this.
* t/remake11.sh: Rename ...
* t/remake-deeply-nested.sh: ... like this
* t/remake12.sh: Rename ...
* t/remake-mild-stress.sh: ... like this
* t/pr8365-remake-timing.sh: Rename ...
* t/remake-timing-bug-pr8365.sh: ... like this.
* t/list-of-tests.mk: Adjust.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: remove an obsolescent grepping check
Stefano Lattarini [Fri, 26 Oct 2012 12:16:05 +0000 (14:16 +0200)]
tests: remove an obsolescent grepping check

* t/remake3.sh: This one, superseded by ...
* t/remake3a.sh: ... this semantic test, whose comments have been
djusted accordingly.
* t/list-of-tests.mk: Adjust.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: merge two tests on automatic remake functionality
Stefano Lattarini [Fri, 26 Oct 2012 12:13:25 +0000 (14:13 +0200)]
tests: merge two tests on automatic remake functionality

* t/remake2.sh: Merge ...
* t/remake-subdir-grepping.sh: ... in here.
* t/list-of-tests.mk: Adjust.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: rename some test to more expressive names
Stefano Lattarini [Fri, 26 Oct 2012 10:52:35 +0000 (12:52 +0200)]
tests: rename some test to more expressive names

* t/remake.sh: Rename ...
* t/remake-subdir-grepping.sh: ... like this.
* t/remake8a.sh: Rename ...
* t/remake-makefile-intree.sh: ... like this, and adjust comments.
* t/remake8b.sh: Rename ...
* t/remake-makefile-vpath.sh: ... like this, and adjust comments.
* t/remake9a.sh: Rename ...
* t/remake-after-configure-ac.sh: ... like this, and adjust comments.
* t/remake9b.sh: Rename ...
* t/remake-after-makefile-am.sh: ... like this, and adjust comments.
* t/remake9c.sh: Rename ...
* t/remake-after-acinclude-m4.sh: ... like this, and adjust comments.
* t/remake9d.sh: Rename ...
* t/remake-after-aclocal-m4.sh: ... like this, and adjust comments.
* t/remake10a.sh: Rename ...
* t/remake-include-configure.sh: ... like this, and adjust comments.
* t/remake10b.sh: Rename ...
* t/remake-include-makefile.sh: ... like this, and adjust comments.
* t/remake10c.sh: Rename ...
* t/remake-include-aclocal.sh: ... like this, and adjust comments.
* t/list-of-tests.mk: Adjust.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agocompat: reinstate AM_PROG_MKDIR_P, for gettext
Jim Meyering [Mon, 22 Oct 2012 14:14:49 +0000 (16:14 +0200)]
compat: reinstate AM_PROG_MKDIR_P, for gettext

Do not remove AM_PROG_MKDIR_P just yet.

gettext (latest from git) still AC_REQUIRE's AM_PROG_MKDIR_P via its
intl.m4 and po.m4 files, which are pulled into *many* projects.

When I try to build one of those projects (coreutils) using the latest
from automake.git/master, I see this failure:

    $ aclocal -I m4
    configure.ac:477: warning: AM_PROG_MKDIR_P is m4_require'd \
      but not m4_defun'd
    m4/po.m4:23: AM_PO_SUBDIRS is expanded from...
    m4/gettext.m4:57: AM_GNU_GETTEXT is expanded from...
    configure.ac:477: the top level

That is because AM_PROG_MKDIR_P was removed (via commit
v1.12-20-g8a1c64f) in preparation for the next release of automake.

* NEWS: Remove the paragraph that announced the removal of
AM_PROG_MKDIR_P.
* Makefile.am (dist_automake_ac_DATA): Add m4/mkdirp.m4.
* m4/mkdirp.m4: Re-add file.
* t/mkdirp-deprecation.sh: Likewise.
* t/list-of-tests.mk: Add it.
* automake.in: Restore removed code, and adjust comments, s/1.13/1.14/
to reflect new plan for removal.
* doc/automake.texi (Obsolete Macros): Restore the section, but
now with only one entry: the one for AM_PROG_MKDIR_P.

11 years agonews: 'compile' supports libfoo.a naming when wrapping Microsoft tools
Stefano Lattarini [Fri, 26 Oct 2012 10:40:43 +0000 (12:40 +0200)]
news: 'compile' supports libfoo.a naming when wrapping Microsoft tools

This is a follow-up to commit 'v1.12.4-10-g3c5c939' of 2012-10-04,
"compile: support libfoo.a naming when wrapping Microsoft tools".

* NEWS (Bugs fixed in 1.12.5): Update.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: ensure generation of wrapper tests matching multiple conditions
Stefano Lattarini [Fri, 26 Oct 2012 09:36:12 +0000 (11:36 +0200)]
tests: ensure generation of wrapper tests matching multiple conditions

* gen-testsuite-part: Our old code to generate wrapper tests had a
severe limitation, in that if a test matched two or more conditions
calling for generation of wrapper tests, still only one wrapper test
was generated, instead of the three that would have been expected --
that is, one using the setup code triggered by the first condition,
one using the setup code triggered by the second condition, and one
using both this setup code fragments.
Admittedly, this was only a theoretical limitation for the moment,
since since so far no test exists that matches two or more conditions
for wrapping.  Still, this might change in the future, and easily in
an unnoticed way, so better fix the issue now, before it might become
a real problem.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: simplify a loop in gen-testsuite-part
Stefano Lattarini [Fri, 26 Oct 2012 09:04:14 +0000 (11:04 +0200)]
tests: simplify a loop in gen-testsuite-part

* gen-testsuite-part: No need to loop on the (key, value) entries
of the %test_generators has: we only use the value, and never the
key.  So loop simply on the values.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agocompile: support libfoo.a naming when wrapping Microsoft tools
Peter Rosin [Wed, 3 Oct 2012 22:08:26 +0000 (00:08 +0200)]
compile: support libfoo.a naming when wrapping Microsoft tools

There is a future plan to provide some means to have Automake
create static libraries that are named differently depending
on the system [1].

The background is that everyone has always named static libraries
libfoo.a, except the Redmond crowd who names them foo.lib, and
you have to jump through hoops to have Automake create libraries
named foo.lib in the land of non-GNU Windows while still creating
libfoo.a everywhere else.

However, there is probably no sane way to accomplish that system
dependent naming discussed in [1] without user intervention,
which makes it necessary to support the classic libfoo.a naming
when using Microsoft tools in the best possible way, for the
benefit of all projects today and for future projects not
opting in to whatever scheme is selected for the problem at
hand.

[1] http://lists.gnu.org/archive/html/automake/2012-09/msg00028.html

* lib/compile (func_cl_dashl): As a last resort, match -lfoo with
libfoo.a, if that file exist on the library search path.
* t/compile4.sh: Remove obsolescent workaround for the above.
* t/compile6.sh: Extend to check that libbaz.a is indeed found
when baz.lib and baz.dll.lib does not exist and that bar.lib
and bar.dll.lib are preferred over libbar.a.

Signed-off-by: Peter Rosin <peda@lysator.liu.se>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agoNEWS: fix wording and grammaros, re-wrap text accordingly
Stefano Lattarini [Sun, 14 Oct 2012 09:54:45 +0000 (11:54 +0200)]
NEWS: fix wording and grammaros, re-wrap text accordingly

Reported-by: Peter Rosin <peda@lysator.liu.se>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agocosmetics: fix typo in 'lib/depcomp' comments
Paul Eggert [Sun, 14 Oct 2012 09:43:26 +0000 (11:43 +0200)]
cosmetics: fix typo in 'lib/depcomp' comments

Fixes automake bug#12578.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agoMerge branch 'maint'
Stefano Lattarini [Tue, 2 Oct 2012 18:34:47 +0000 (20:34 +0200)]
Merge branch 'maint'

* maint:
  config headers: remove stale comment in makefile fragment
  NEWS: wording and quoting fixlets in few older entries
  config headers: don't emit rules for headers not generated by autoheader
  docs: fix minor typo: s/expending/expanding/
  sync: update files from upstream with "make fetch"
  maint: post-release minor version bump
  maint: typo fixes s/lies into/lies in/
  release: stable release 1.12.4
  NEWS: minor fix

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agoconfig headers: remove stale comment in makefile fragment
Stefano Lattarini [Tue, 2 Oct 2012 14:45:37 +0000 (16:45 +0200)]
config headers: remove stale comment in makefile fragment

* lib/am/remake-hdr.am: Here.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agoNEWS: wording and quoting fixlets in few older entries
Stefano Lattarini [Tue, 2 Oct 2012 14:11:49 +0000 (16:11 +0200)]
NEWS: wording and quoting fixlets in few older entries

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agoconfig headers: don't emit rules for headers not generated by autoheader
Stefano Lattarini [Fri, 28 Sep 2012 19:27:41 +0000 (21:27 +0200)]
config headers: don't emit rules for headers not generated by autoheader

This change fixed automake bug#12495.

Even if an AC_CONFIG_HEADERS invocation is passed a list of several files
as the first argument, only the first one of those file is considered by
autoheader for automatic generation of the corresponding '.in' template.
This is done on purpose, and is clearly documented in the Autoconf manual,
which (as of the 2.69 version) reads something like this:

    The autoheader program searches for the first invocation of
    AC_CONFIG_HEADERS in configure sources to determine the name of
    the template.  If the first call of AC_CONFIG_HEADERS specifies
    more than one input file name, autoheader uses the first one.

That is, an invocation like:

    AC_CONFIG_HEADERS([config.h config2.h])

should cause autoheader to generate only a 'config.h.in' template,
and not also a 'config2.h.in' one.

Accordingly, automake, when tracing AC_CONFIG_HEADERS, should generate
remake rules only for the template associated to the first input file
name passed to that macro.  In some situations, however, automake failed
to properly limit itself in this way; for example, with an input like:

    AC_CONFIG_HEADERS([config.h sub/foo.h])

in configure.ac, and with the 'sub' directory listed in the SUBDIRS
variable of the top-level Makefile, automake would erroneously generate
in 'sub/Makefile.in' a rule to remake the 'foo.h.in' template by
invoking autoheader.

This issue was likely introduced in commit 'Release-1-8-23-g262bb92'
of 2004-01-05.

* NEWS: Update.
* doc/automake.texi (Optional): Improve wording in the description of
hat rules automake generates in response to an 'AC_CONFIG_HEADERS'
invocation.
* lib/am/remake-hdr.am: Only emit autoheader-invoking remake rules for
the %CONFIG_HIN% template if that corresponds to the first argument of
AC_CONFIG_HEADERS, as explaned above.  Do so using the automake-time
conditional %?FIRST-HDR%, that is properly passed ...
* automake.in (handle_configure): ... from a 'file_contents' invocation
in here.
* t/autohdr-subdir-pr12495.sh: New test.
* t/list-of-tests.mk: Add it.
* THANKS: Update.

Helped-by: Hib Eris <hib@hiberis.nl>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agodocs: fix minor typo: s/expending/expanding/
Stefano Lattarini [Thu, 27 Sep 2012 07:43:27 +0000 (09:43 +0200)]
docs: fix minor typo: s/expending/expanding/

* doc/automake.texi (Wildcards): Here.  Fixes automake bug#12516.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agosync: update files from upstream with "make fetch"
Stefano Lattarini [Tue, 18 Sep 2012 11:57:51 +0000 (13:57 +0200)]
sync: update files from upstream with "make fetch"

* lib/texinfo.tex: Update.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agomaint: post-release minor version bump
Stefano Lattarini [Tue, 18 Sep 2012 11:55:55 +0000 (13:55 +0200)]
maint: post-release minor version bump

* configure.ac (AC_INIT): Bump version number to 1.12.4a.
* m4/amversion.m4: Likewise (automatically regenerated by
"make bootstrap").

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agomaint: typo fixes s/lies into/lies in/
Jim Meyering [Sun, 23 Sep 2012 16:22:30 +0000 (18:22 +0200)]
maint: typo fixes s/lies into/lies in/

11 years agorelease: stable release 1.12.4 v1.12.4
Stefano Lattarini [Mon, 17 Sep 2012 18:14:07 +0000 (20:14 +0200)]
release: stable release 1.12.4

* configure.ac (AC_INIT): Bump version number to 1.12.4.
* m4/amversion.m4: Likewise (auto-updated by "make bootstrap").

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agoNEWS: minor fix
Stefano Lattarini [Mon, 17 Sep 2012 18:31:53 +0000 (20:31 +0200)]
NEWS: minor fix

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agofix typos in mk-dirp.m4
Jim Meyering [Wed, 12 Sep 2012 15:31:24 +0000 (17:31 +0200)]
fix typos in mk-dirp.m4

* t/gettext-macros.sh: Fix typo in name of macro emitted into
mk-dirp.m4: s/AM_MKDIR_P/AM_PROG_MKDIR_P/,
and as Stefano Lattarini noted, also fix this typo:
s/AC_MKDIR_P/AC_PROG_MKDIR_P/.

11 years agotags: automake bug bug#12372 is fixed
Stefano Lattarini [Tue, 11 Sep 2012 09:31:20 +0000 (11:31 +0200)]
tags: automake bug bug#12372 is fixed

It has been fixed as a side effect of the overhauling of tags support.

* t/list-of-tests.mk (XFAIL_TESTS): No longer list 'tags-pr12372.sh'.
* NEWS: Update.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agoMerge branch 'maint'
Stefano Lattarini [Tue, 11 Sep 2012 09:24:51 +0000 (11:24 +0200)]
Merge branch 'maint'

* maint:
  coverage: better exposure for automake bug#12372 (tags-related)
  coverage: expose automake bug#12372 (tags-related)

11 years agocoverage: better exposure for automake bug#12372 (tags-related)
Stefano Lattarini [Tue, 11 Sep 2012 09:15:41 +0000 (11:15 +0200)]
coverage: better exposure for automake bug#12372 (tags-related)

Alas, in contrast with what is said in the commit message of previous
commit 'v1.12.3-14-g94b7b8e', that bug is still present also in the
current maint branch (which will become automake version 1.12.4); it
is just that it only triggers when a _SOURCES variable contains only
files with custom extension.

* t/tags-pr12372.sh: Extend.
* t/list-of-tests.mk: Add it.

Suggested-by: Юрий Пухальский <aikipooh@gmail.com>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agocoverage: expose automake bug#12372 (tags-related)
Stefano Lattarini [Fri, 7 Sep 2012 08:42:42 +0000 (10:42 +0200)]
coverage: expose automake bug#12372 (tags-related)

That bug is somehow already been fixed in the latest automake
version (1.12.4); but exercise it anyway in the testsuite, to
ensure we won't regress.

* t/tags-pr12372.sh: New test.
* t/list-of-tests.mk: Add it.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agoMerge branch 'maint'
Stefano Lattarini [Wed, 5 Sep 2012 12:40:52 +0000 (14:40 +0200)]
Merge branch 'maint'

* maint:
  sync: update files from upstream with "make fetch"
  news: cygnus will be removed in automake 1.13
  news: some changes for 1.13 has been "de-planned"
  news: report that the have seen fixlets after 1.12.3
  warns: enable category 'obsolete' by default

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agosync: update files from upstream with "make fetch"
Stefano Lattarini [Wed, 5 Sep 2012 12:33:31 +0000 (14:33 +0200)]
sync: update files from upstream with "make fetch"

* lib/texinfo.tex: Update.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agonews: cygnus will be removed in automake 1.13
Stefano Lattarini [Wed, 5 Sep 2012 12:32:35 +0000 (14:32 +0200)]
news: cygnus will be removed in automake 1.13

* NEWS (Future backward-incompatibilities): So document it here.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agonews: some changes for 1.13 has been "de-planned"
Stefano Lattarini [Wed, 5 Sep 2012 12:29:33 +0000 (14:29 +0200)]
news: some changes for 1.13 has been "de-planned"

* NEWS (Future backward-incompatibilities): The planned Automake release
1.13 already has too much stuff on its plate; so we are not going to
In Automake 1.13, we are definitely not going to change the exact order
in which the directories in the aclocal macro search path are looked up.
Also, experience and user feedback have shown that the "obsolescent"
two-arguments invocation for AM_INIT_AUTOMAKE:

    AM_INIT_AUTOMAKE(PACKAGE-NAME, PACKAGE-VERSION)

is still useful (until at least Autoconf is fixed to offer better support
for "dynamically" package versions), so we are not going to remove
support for that usage in Automake 1.13.  For more details, see commit
v1.12.2-245-g2abe183 of 2012-08-24, "AM_INIT_AUTOMAKE: allow obsolescent
two-args invocation once again".
(New in 1.12.1): Adjust accordingly.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agonews: report that the have seen fixlets after 1.12.3
Stefano Lattarini [Wed, 5 Sep 2012 12:19:28 +0000 (14:19 +0200)]
news: report that the have seen fixlets after 1.12.3

* NEWS: Here.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agowarns: enable category 'obsolete' by default
Stefano Lattarini [Tue, 4 Sep 2012 12:50:49 +0000 (14:50 +0200)]
warns: enable category 'obsolete' by default

No surprise that our users were bitten by backward-incompatible changes
especially hard: the warnings in the 'obsolete' category, that might
have informed them of the upcoming incompatibilities, and help them to
prepare for the transition, where not enabled by default!

* NEWS, doc/automake.texi: Update.
* lib/Automake/ChannelDefs.pm: Enable warnings in the category 'obsolete'
by default.
* t/warnings-obsolete-default.sh: New test.
* t/list-of-tests.mk: Add it.
* t/backcompat.sh: Use 'configure.ac' rather than 'configure.in' as
autoconf input file, to avoid spurious aclocal errors.
* t/backcompat2.sh: Likewise.
* t/backcompat3.sh: Likewise.
* t/backcompat5.sh: Add '-Wno-obsolete' when invoking aclocal.  Adjust
heading comments.
* t/backcompat6.sh: Likewise.
* t/cygnus-imply-foreign.sh:  Add '-Wno-obsolete' when invoking automake.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: fix a maintainer-check failure ('Exit' used instead of 'exit')
Stefano Lattarini [Tue, 28 Aug 2012 08:58:37 +0000 (10:58 +0200)]
tests: fix a maintainer-check failure ('Exit' used instead of 'exit')

* t/lisp-loadpath.sh: Here.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agoMerge branch 'maint'
Stefano Lattarini [Tue, 28 Aug 2012 08:00:45 +0000 (10:00 +0200)]
Merge branch 'maint'

* maint:
  sync: update files from upstream with "make fetch"
  automake: don't define many identical 'lang_*_rewrite' subroutines
  coverage: bugs #8844 and #9933 (already fixed by Akim's work on ylwrap)

11 years agosync: update files from upstream with "make fetch"
Stefano Lattarini [Tue, 28 Aug 2012 07:59:22 +0000 (09:59 +0200)]
sync: update files from upstream with "make fetch"

* lib/config.guess, lib/config.sub: Update.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agoautomake: don't define many identical 'lang_*_rewrite' subroutines
Stefano Lattarini [Wed, 6 Jun 2012 07:52:22 +0000 (09:52 +0200)]
automake: don't define many identical 'lang_*_rewrite' subroutines

This is just a simplifying refactoring, with no semantic change intended.

Cherry-picked from the Automake-NG commit 'v1.12.1-312-g63aa4a9' of
2012-06-07.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agocoverage: bugs #8844 and #9933 (already fixed by Akim's work on ylwrap)
Stefano Lattarini [Sun, 26 Aug 2012 17:25:02 +0000 (19:25 +0200)]
coverage: bugs #8844 and #9933 (already fixed by Akim's work on ylwrap)

* t/flex-header.sh: New test, show that automake bug#8844 and bug#9933
have already been fixed by the recent-ish improvements to ylwrap (merged
with commit v1.12.2-27-gec5cb49 of 2012-07-16, "Merge branch 'yacc-work'
into maint").
* t/list-of-tests.mk: Update.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agoMerge branch 'maint'
Stefano Lattarini [Sun, 26 Aug 2012 10:55:38 +0000 (12:55 +0200)]
Merge branch 'maint'

* maint:
  docs: don't suggest to use recursive makefile setup
  tests: fix a timestamp race in python tests
  tests: fixup: make distcheck-override-infodir pass again
  sync: update files from upstream with "make fetch"
  maint: post-release minor version bump
  release: stable release 1.12.3
  maintcheck: fix spurious warnings
  docs: fix typo: s/make install-info/make uninstall-info/
  tests: fixup: make a couple of tests executable

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agoAM_INIT_AUTOMAKE: allow obsolescent two-args invocation once again
Stefano Lattarini [Fri, 24 Aug 2012 08:47:17 +0000 (10:47 +0200)]
AM_INIT_AUTOMAKE: allow obsolescent two-args invocation once again

This partially reverts commit 'v1.12-67-ge186355' of 2012-05-25,
"init: obsolete usages of AM_INIT_AUTOMAKE not supported anymore"

Some users still need to be able to define the version number for
their package dynamically, at configure runtime.

Their user case is that, for development snapshots, they want to be
able to base the complete version of the package on the VCS revision
ID (mostly Git or Mercurial).  They could of course do so by
specifying such version dynamically in their call to AC_INIT, as is
done by several GNU packages.  But then they would need to regenerate
and re-run the configure script before each snapshot, which might be
very time-consuming for complex packages, to the point of slowing
down and even somewhat impeding development.

The situation should truly be solved in Autoconf, by allowing a way
to specify the version dynamically in a way that doesn't force the
configure script to be regenerated and re-run every time the package
version changes.  But until Autoconf has been improved to allow
this, Automake will have to support the obsolescent two-arguments
invocation for AM_INIT_AUTOMAKE, to avoid regressing the suboptimal
but working solution for the use case described above.

See also:
<http://lists.gnu.org/archive/html/automake/2012-08/msg00025.html>

* NEWS: Update.
* m4/init.m4 (AM_INIT_AUTOMAKE): Support once again invocation with
two or three arguments.
* t/aminit-moreargs-no-more.sh: Renamed ...
* t/aminit-moreargs-deprecated.sh: ... like this, and updated.
* t/nodef.sh: Recovered test, with minor adjustments.
* t/backcompat.sh: Likewise.
* t/backcompat2.sh: Likewise.
* t/backcompat3.sh: Likewise.
* t/backcompat6.sh: Likewise.
* t/list-of-tests.mk: Adjust.

Suggested-by: Bob Friesenhahn n<bfriesen@simple.dallas.tx.us>
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agodocs: don't suggest to use recursive makefile setup
Stefano Lattarini [Tue, 21 Aug 2012 13:03:05 +0000 (15:03 +0200)]
docs: don't suggest to use recursive makefile setup

* doc/automake.texi (Introduction): Here, by erroneously telling that
"there should generally be one Makefile.am per directory of a project".
For reference, see commit 'v1.12.1-25-g61dfb47' of 2012-06-12, "docs:
recursive make considered harmful".

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: fix a timestamp race in python tests
Adam Sampson [Thu, 16 Aug 2012 16:54:41 +0000 (18:54 +0200)]
tests: fix a timestamp race in python tests

Fixes automake bug#12210.

* t/python-missing.sh: Call aclocal and autoconf with the "--force"
option.  We need this because, on fast machines, it's possible for
'mypy.m4' and 'aclocal.m4' to end up with the same timestamp as configure,
so autoconf (without the "--force" options) wouldn't bother to rebuild it,
and would just rerun the previous AM_PATH_PYTHON test, succeeding rather
than failing as expected.
* t/python-am-path-iftrue.sh: Likewise.

Co-authored-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Copyright-paperwork-exempt: yes
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: fixup: make distcheck-override-infodir pass again
Peter Rosin [Tue, 14 Aug 2012 17:34:10 +0000 (19:34 +0200)]
tests: fixup: make distcheck-override-infodir pass again

Fixes Automake bug#12198.

* t/distcheck-override-infodir.sh (main.texi): Remove all leading
cruft added by commit v1.12.2-96-g133307b "maintcheck: fix spurious
warnings".

Signed-off-by: Peter Rosin <peda@lysator.liu.se>
11 years agosync: update files from upstream with "make fetch"
Stefano Lattarini [Tue, 14 Aug 2012 11:17:57 +0000 (13:17 +0200)]
sync: update files from upstream with "make fetch"

* lib/config.guess, lib/config.sub, lib/gitlog-to-changelog,
lib/texinfo.tex: Update.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agomaint: post-release minor version bump
Stefano Lattarini [Tue, 14 Aug 2012 11:09:41 +0000 (13:09 +0200)]
maint: post-release minor version bump

* configure.ac (AC_INIT): Bump version number to 1.12.3a.
* m4/amversion.m4: Likewise (automatically regenerated by
"make bootstrap").

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agorelease: stable release 1.12.3 v1.12.3
Stefano Lattarini [Mon, 13 Aug 2012 16:43:37 +0000 (18:43 +0200)]
release: stable release 1.12.3

* configure.ac (AC_INIT): Bump version number to 1.12.3.
* m4/amversion.m4: Likewise (auto-updated by "./bootstrap").

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agomaintcheck: fix spurious warnings
Stefano Lattarini [Mon, 13 Aug 2012 16:00:57 +0000 (18:00 +0200)]
maintcheck: fix spurious warnings

* t/distcheck-override-infodir.sh: Be sure that valid occurences
of the "aclocal" and "automake" strings, which can confuse the
'sc_tests_plain_automake' check, are protected by leading "#"
characters.
* t/ax/test-lib.sh: Always use '$(...)' for command subtitution,
to avoid triggering the 'sc_tests_command_subst' check; there was
still once place where `...` was used.  While at it, fix a related
comment.
* t/ax/test-defs.in ($sleep): Use creative quoting to avoid
spuriously triggering the 'sc_tests_plain_sleep' check.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agodocs: fix typo: s/make install-info/make uninstall-info/
Stefano Lattarini [Mon, 13 Aug 2012 13:03:43 +0000 (15:03 +0200)]
docs: fix typo: s/make install-info/make uninstall-info/

* doc/automake.texi (Texinfo): Here.  And a minor wording improvement
while we are at it.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: fixup: make a couple of tests executable
Stefano Lattarini [Mon, 13 Aug 2012 12:38:02 +0000 (14:38 +0200)]
tests: fixup: make a couple of tests executable

* t/python-am-path-iftrue.sh: This.
* t/python-missing.sh: And this.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agoMerge branch 'maint'
Stefano Lattarini [Mon, 13 Aug 2012 12:05:40 +0000 (14:05 +0200)]
Merge branch 'maint'

* maint:
  tests: rework tests on AM_PATH_PYTHON
  cosmetics: fix typos and references in comments
  typofix: in a test diagnostic
  readme: fixlets to HACKING

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agotests: rework tests on AM_PATH_PYTHON
Stefano Lattarini [Mon, 13 Aug 2012 11:16:49 +0000 (13:16 +0200)]
tests: rework tests on AM_PATH_PYTHON

* t/python8.sh, t/python9.sh: Merge into ...
* t/python-am-path-iftrue.sh: ... this new test, with minor adjustments.
* t/python4.sh, t/python5.sh, t/python6.sh, t/python7.sh: Merge into ...
* t/python-missing.sh: ... this new test.
* t/python5b.sh: Rename ...
* t/python-too-old.sh: ... like this, and adjust/extend.
* t/list-of-tests.mk: Adjust.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
11 years agocosmetics: fix typos and references in comments
Stefano Lattarini [Mon, 13 Aug 2012 10:10:46 +0000 (12:10 +0200)]
cosmetics: fix typos and references in comments

* lib/am/check.am: Here.
* doc/automake.texi: And here.
* t/*.sh: And in several of these tests.

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