automake-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Automake-commit] [SCM] GNU Automake branch, parallel-tests-maint, updat


From: Stefano Lattarini
Subject: [Automake-commit] [SCM] GNU Automake branch, parallel-tests-maint, updated. v1.11-378-g4e9474e
Date: Sat, 11 Jun 2011 10:58:43 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Automake".

http://git.sv.gnu.org/gitweb/?p=automake.git;a=commitdiff;h=4e9474e6e9b18723d3fb02858824682dbd0e03f0

The branch, parallel-tests-maint has been updated
       via  4e9474e6e9b18723d3fb02858824682dbd0e03f0 (commit)
       via  5b7c6b4ce170477dc3a25a5ca669d117bfb40aa8 (commit)
       via  e4a70cff310e29066e388aa18aeb07242e003eec (commit)
       via  24b9022b753b129d9a2832904fbd9b7a7bbb17d6 (commit)
       via  67ca6940688ed14d84642b34df4f28a07b9d9f00 (commit)
       via  d235db335eaae0934ede72698395f8591d115f9a (commit)
       via  8a8890a9152528a4fc348bb15b27ebb2a4c3b7cb (commit)
       via  bee9871d6a8743b7f01789f196c214354e7f612a (commit)
       via  aa6883fdcf1e7f21ea81fe4745c0018a9398d43f (commit)
      from  f31a38aed9c8ffbd33d797aa2df5b5864860bb17 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 4e9474e6e9b18723d3fb02858824682dbd0e03f0
Merge: e4a70cf 5b7c6b4
Author: Stefano Lattarini <address@hidden>
Date:   Sat Jun 11 12:52:51 2011 +0200

    Merge branch 'maint' into parallel-tests-maint
    
    * maint:
      test defs: new function 'fatal_', for hard errors

commit e4a70cff310e29066e388aa18aeb07242e003eec
Merge: f31a38a 24b9022
Author: Stefano Lattarini <address@hidden>
Date:   Fri Jun 3 11:37:46 2011 +0200

    Merge branch 'maint' into parallel-tests-maint
    
    * maint:
      maintcheck: fix some failures, extend some checks
      automake, aclocal: honour configure-time AUTOCONF and AUTOM4TE
      build: the user can override AUTOM4TE, AUTORECONF and AUTOUPDATE too
      remake: behave better with non-GNU make in subdirectories
      tests/README: fix example about `make -e' usage

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                                          |  105 ++++++++++++++++++++
 Makefile.am                                        |   24 ++++-
 Makefile.in                                        |   20 +++-
 NEWS                                               |    4 +
 THANKS                                             |    1 +
 aclocal.in                                         |    2 +-
 automake.in                                        |    2 +-
 configure                                          |   12 ++-
 configure.ac                                       |    6 +-
 doc/Makefile.am                                    |   10 ++-
 doc/Makefile.in                                    |   13 ++-
 doc/automake.texi                                  |    2 +-
 lib/Automake/Makefile.in                           |    3 +
 lib/Automake/tests/Makefile.in                     |    3 +
 lib/Makefile.in                                    |    3 +
 lib/am/Makefile.in                                 |    3 +
 lib/am/configure.am                                |    2 +-
 m4/Makefile.in                                     |    3 +
 tests/Makefile.am                                  |    4 +
 tests/Makefile.in                                  |    7 ++
 tests/README                                       |   12 ++-
 tests/defs.in                                      |   15 +++-
 tests/depcomp8a.test                               |    6 +-
 tests/depcomp8b.test                               |    6 +-
 .../{gcj6.test => remake-subdir-from-subdir.test}  |   43 +++++----
 tests/remake-subdir-gnu.test                       |   80 +++++++++++++++
 ...-acconfig-no-subdir.test => remake-subdir.test} |   65 ++++++++----
 tests/remake-subdir2.test                          |   82 +++++++++++++++
 28 files changed, 466 insertions(+), 72 deletions(-)
 copy tests/{gcj6.test => remake-subdir-from-subdir.test} (58%)
 create mode 100755 tests/remake-subdir-gnu.test
 copy tests/{autodist-acconfig-no-subdir.test => remake-subdir.test} (51%)
 create mode 100755 tests/remake-subdir2.test

diff --git a/ChangeLog b/ChangeLog
index 6ec063d..0009283 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,108 @@
+2011-06-08  Stefano Lattarini  <address@hidden>
+
+       test defs: new function 'fatal_', for hard errors
+       Before this patch, the only way offered by tests/defs to
+       properly signal a hard error was the `framework_failure_'
+       function.  But the error message issued by that function,
+       as its name would suggest, refers to a set-up failure in the
+       testsuite, while hard errors can obviously also be due to
+       other reasons.  The best way to fix this inconsistency is to
+       introduce a new function with a more general error message.
+       Inspired by a recent similar change to Gnulib's tests/init.sh.
+       * tests/defs.in (fatal_): New function.
+       * tests/README (Section "Writing test cases" subsection "Do"):
+       Suggest the use of `fatal_', not of `framework_failure_', for
+       generic hard errors.  The latter should be reserved for "real"
+       set-up failures.
+
+2011-06-02  Stefano Lattarini  <address@hidden>
+
+       maintcheck: fix some failures, extend some checks
+       * Makefile.am (sc_diff_automake_in_automake): Update, as we
+       now expect 9 lines, not 8, to be changed from `automake.in'
+       to `automake'.
+       (sc_diff_aclocal_in_aclocal): New maintainer check, similar to
+       the above, and checking that only 10 lines are changed from
+       `aclocal.in' to `aclocal'.
+       (syntax_check_rules): Update.
+       (sc_tests_Exit_not_exit): Exempt self tests `self-check-*.test'
+       from this check, as they can legitimately use the bare `exit'
+       builtin in various places.
+       * doc/automake.texi (Python): Remove stray `@' from the end of
+       a line.  Typo introduced in commit `v1.11-312-g5bf7af6'.
+       * tests/depcomp8a.test: Pass DISTCHECK_CONFIGURE_FLAGS to make
+       from the environment rather than from the command line, to
+       pacify the `sc_tests_overriding_macros_on_cmdline' maintainer
+       check.
+       * tests/depcomp8b.test: Likewise.
+
+2011-05-29  Stefano Lattarini  <address@hidden>
+
+       remake: behave better with non-GNU make in subdirectories
+       Currently, with every decent make program, it is possible to
+       rebuild out-of-date autotools-generated files with a simple
+       "make Makefile" -- but for this to work reliably with non-GNU
+       make implementations, the command must be issued from the
+       top-level directory.  This patch removes such limitation.
+       * lib/am/configure.am (am--refresh): Depend on `%MAKEFILE%'.
+       * tests/defs.in (using_gmake): New function, backported from the
+       `master' branch (and simplified).
+       * tests/remake-subdir.test: New test.
+       * tests/remake-subdir2.test: Likewise.
+       * tests/remake-subdir-gnu.test: Likewise.
+       * tests/remake-subdir-from-subdir.test: Likewise.
+       * tests/Makefile.am (TESTS): Update.
+
+2011-05-29  Stefano Lattarini  <address@hidden>
+
+       automake, aclocal: honour configure-time AUTOCONF and AUTOM4TE
+       Currently, the Automake's own configure script allow definition
+       of AUTOCONF and AUTOM4TE, expected to point respectively to an
+       autoconf and autom4te programs.  But while these definitions are
+       honoured in the Automake's build systems and test suite, they
+       were *not* honoured in the generated `automake' and `aclocal'
+       scripts.  This behaviour, apart from being wrong in that it does
+       not allow the user enough freedom in choosing his tools, also
+       caused inconsistencies in the test suite, brining to spurious
+       failures.
+       Problem reported by Graham Reitz on the automake list; see thread:
+       <http://lists.gnu.org/archive/html/automake/2011-05/msg00022.html>
+       * automake.in ($traces): Use address@hidden', not simply `autoconf'.
+       * aclocal.in ($traces): Use address@hidden', not simply `autom4te'.
+       * Makefile.am (do_subst): Substitute also address@hidden' and
+       address@hidden'.
+       * NEWS: Update.
+       * THANKS: Update.
+
+2011-05-29  Stefano Lattarini  <address@hidden>
+
+       build: the user can override AUTOM4TE, AUTORECONF and AUTOUPDATE too
+       Our build system allows the user to override AUTOCONF and AUTOHEADER
+       at configure time, and honours these overrides in our testsuite.
+       But it didn't do the same with AUTOM4TE, AUTORECONF and AUTOUPDATE.
+       This change fixes that inconsistency.
+       * configure.ac (am_AUTOM4TE, am_AUTOUPDATE, am_AUTORECONF): New
+       AC_SUBSTitutions.  Update comments.
+       * tests/defs.in ($AUTOUPDATE): Default to address@hidden@' now.
+       ($AUTOM4TE): New variable, defaulting to address@hidden@'.
+       ($AUTORECONF): New variable, defaulting to address@hidden@'.
+       * doc/Makefile.am ($(srcdir)/amhello-1.0.tar.gz): Update.
+
+2011-05-22  Ralf Wildenhues  <address@hidden>
+           Stefano Lattarini  <address@hidden>
+
+       tests/README: fix example about `make -e' usage
+       * tests/README (Section "Writing test cases" subsection "Do"): When
+       some variable is never initialized in the Makefile, `-e' is not
+       necessary in order to override it.  DESTDIR is such a variable: we
+       ensure that we do not ever initialize it.  And as such, it is quite
+       portable to use:
+         $ make DESTDIR=/foo/bar install
+       and in fact, quite widely used.
+       So our example about when `make -e' is required, which references
+       the `DESTDIR' variable, is poorly chosen, if not downright wrong.
+       Rewrite it to use `prefix' as the overridden variable instead.
+
 2011-05-22  Stefano Lattarini  <address@hidden>
 
        parallel-tests: stricter checks on DISABLE_HARD_ERRORS support
diff --git a/Makefile.am b/Makefile.am
index 6e8b7df..f0cc95e 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -3,7 +3,8 @@
 ## Makefile for Automake.
 
 # Copyright (C) 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2007, 2008, 2009, 2010  Free Software Foundation, Inc.
+# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation,
+# Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -76,6 +77,8 @@ do_subst = sed \
   -e 's,address@hidden@],$(PERL),g' \
   -e 's,address@hidden@],$(PERL_THREADS),g' \
   -e 's,address@hidden@],$(SHELL),g' \
+  -e 's,address@hidden@],$(am_AUTOCONF),g' \
+  -e 's,address@hidden@],$(am_AUTOM4TE),g' \
   -e 's,address@hidden@],$(VERSION),g' \
   -e 's,address@hidden@],Generated from address@hidden; do not edit by 
hand.,g' \
   -e 's,address@hidden@],$(datadir),g'
@@ -113,6 +116,7 @@ dist-hook:
 syntax_check_rules = \
 sc_test_names \
 sc_diff_automake_in_automake \
+sc_diff_aclocal_in_automake \
 sc_perl_syntax \
 sc_no_brace_variable_expansions \
 sc_rm_minus_f \
@@ -212,15 +216,22 @@ sc_test_names:
           exit 1; \
         fi
 
-## This check avoids accidental configure substitutions in the source.
-## There are exactly 8 lines that should be modified.  This works out
-## to 28 lines of diffs.
+## These check avoids accidental configure substitutions in the source.
+## There are exactly 9 lines that should be modified from automake.in to
+## automake, and 10 lines that should be modified from aclocal.in to
+## aclocal; these wors out to 32 and 34 lines of diffs, respectively.
 sc_diff_automake_in_automake:
-       @if test `diff $(srcdir)/automake.in automake | wc -l` -ne 28; then \
+       @if test `diff $(srcdir)/automake.in automake | wc -l` -ne 32; then \
          echo "found too many diffs between automake.in and automake" 1>&2; \
          diff -c $(srcdir)/automake.in automake; \
          exit 1; \
        fi
+sc_diff_aclocal_in_aclocal:
+       @if test `diff $(srcdir)/aclocal.in aclocal | wc -l` -ne 34; then \
+         echo "found too many diffs between aclocal.in and aclocal" 1>&2; \
+         diff -c $(srcdir)/aclocal.in aclocal; \
+         exit 1; \
+       fi
 
 ## Syntax check with default Perl (on my machine, Perl 5).
 sc_perl_syntax:
@@ -384,9 +395,10 @@ sc_tests_here_document_format:
 
 ## Tests should never call exit directly, but use Exit.
 ## This is so that the exit status is transported correctly across the 0 trap.
-## Ignore comments, and ignore one perl line in ext2.test.
+## Ignore comments, testsuite self tests, and one perl line in ext2.test.
 sc_tests_Exit_not_exit:
        @found=false; for file in $(srcdir)/tests/*.test; do \
+         case $$file in */self-check-*.test) continue;; esac; \
          res=`sed -n -e '/^#/d; /^\$$PERL/d' -e '/<<.*END/,/^END/b' \
                      -e '/<<.*EOF/,/^EOF/b' -e '/exit [$$0-9]/p' $$file`; \
          if test -n "$$res"; then \
diff --git a/Makefile.in b/Makefile.in
index 49c35f5..d0951e0 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -16,7 +16,8 @@
 @SET_MAKE@
 
 # Copyright (C) 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2007, 2008, 2009, 2010  Free Software Foundation, Inc.
+# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation,
+# Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -194,6 +195,9 @@ abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
 am_AUTOCONF = @am_AUTOCONF@
 am_AUTOHEADER = @am_AUTOHEADER@
+am_AUTOM4TE = @am_AUTOM4TE@
+am_AUTORECONF = @am_AUTORECONF@
+am_AUTOUPDATE = @am_AUTOUPDATE@
 am__leading_dot = @am__leading_dot@
 am__tar = @am__tar@
 am__untar = @am__untar@
@@ -261,6 +265,8 @@ do_subst = sed \
   -e 's,address@hidden@],$(PERL),g' \
   -e 's,address@hidden@],$(PERL_THREADS),g' \
   -e 's,address@hidden@],$(SHELL),g' \
+  -e 's,address@hidden@],$(am_AUTOCONF),g' \
+  -e 's,address@hidden@],$(am_AUTOM4TE),g' \
   -e 's,address@hidden@],$(VERSION),g' \
   -e 's,address@hidden@],Generated from address@hidden; do not edit by 
hand.,g' \
   -e 's,address@hidden@],$(datadir),g'
@@ -271,6 +277,7 @@ do_subst = sed \
 syntax_check_rules = \
 sc_test_names \
 sc_diff_automake_in_automake \
+sc_diff_aclocal_in_automake \
 sc_perl_syntax \
 sc_no_brace_variable_expansions \
 sc_rm_minus_f \
@@ -372,7 +379,7 @@ texinfo.tex
 all: all-recursive
 
 .SUFFIXES:
-am--refresh:
+am--refresh: Makefile
        @:
 $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
        @for dep in $?; do \
@@ -939,11 +946,17 @@ sc_test_names:
         fi
 
 sc_diff_automake_in_automake:
-       @if test `diff $(srcdir)/automake.in automake | wc -l` -ne 28; then \
+       @if test `diff $(srcdir)/automake.in automake | wc -l` -ne 32; then \
          echo "found too many diffs between automake.in and automake" 1>&2; \
          diff -c $(srcdir)/automake.in automake; \
          exit 1; \
        fi
+sc_diff_aclocal_in_aclocal:
+       @if test `diff $(srcdir)/aclocal.in aclocal | wc -l` -ne 34; then \
+         echo "found too many diffs between aclocal.in and aclocal" 1>&2; \
+         diff -c $(srcdir)/aclocal.in aclocal; \
+         exit 1; \
+       fi
 
 sc_perl_syntax:
        perllibdir="./lib$(PATH_SEPARATOR)$(srcdir)/lib" $(PERL) -c -w automake
@@ -1082,6 +1095,7 @@ sc_tests_here_document_format:
 
 sc_tests_Exit_not_exit:
        @found=false; for file in $(srcdir)/tests/*.test; do \
+         case $$file in */self-check-*.test) continue;; esac; \
          res=`sed -n -e '/^#/d; /^\$$PERL/d' -e '/<<.*END/,/^END/b' \
                      -e '/<<.*EOF/,/^EOF/b' -e '/exit [$$0-9]/p' $$file`; \
          if test -n "$$res"; then \
diff --git a/NEWS b/NEWS
index c8219bd..b7f9b54 100644
--- a/NEWS
+++ b/NEWS
@@ -61,6 +61,10 @@ Bugs fixed in 1.11.0a:
 
   - Java sources specified with check_JAVA are not compiled anymore upon
     "make all", but only upon "make check".
+
+  - Now aclocal and automake, when they've to spawn autoconf or autom4te
+    processes, honour the configure-time definitions of AUTOCONF and
+    AUTOM4TE.
 
 New in 1.11:
 
diff --git a/THANKS b/THANKS
index 593ebc5..16a1ef8 100644
--- a/THANKS
+++ b/THANKS
@@ -117,6 +117,7 @@ Geoffrey Keating    address@hidden
 Glenn Amerine          address@hidden
 Gord Matzigkeit                address@hidden
 Gordon Sadler          address@hidden
+Graham Reitz           address@hidden
 Greg A. Woods          address@hidden
 Greg Schafer           address@hidden
 Guido Draheim          address@hidden
diff --git a/aclocal.in b/aclocal.in
index 2210fe3..4b63c1a 100644
--- a/aclocal.in
+++ b/aclocal.in
@@ -663,7 +663,7 @@ sub trace_used_macros ()
   my %files = map { $map{$_} => 1 } keys %macro_seen;
   %files = strip_redundant_includes %files;
 
-  my $traces = ($ENV{AUTOM4TE} || 'autom4te');
+  my $traces = ($ENV{AUTOM4TE} || '@am_AUTOM4TE@');
   $traces .= " --language Autoconf-without-aclocal-m4 ";
   # All candidate files.
   $traces .= join (' ',
diff --git a/automake.in b/automake.in
index a8ec749..2669418 100755
--- a/automake.in
+++ b/automake.in
@@ -5281,7 +5281,7 @@ sub scan_autoconf_traces ($)
                sinclude => 1,
              );
 
-  my $traces = ($ENV{AUTOCONF} || 'autoconf') . " ";
+  my $traces = ($ENV{AUTOCONF} || '@am_AUTOCONF@') . " ";
 
   # Use a separator unlikely to be used, not `:', the default, which
   # has a precise meaning for AC_CONFIG_FILES and so on.
diff --git a/configure b/configure
index 5af3df8..5044112 100755
--- a/configure
+++ b/configure
@@ -603,7 +603,10 @@ am__isrc
 INSTALL_DATA
 INSTALL_SCRIPT
 INSTALL_PROGRAM
+am_AUTOUPDATE
 am_AUTOHEADER
+am_AUTORECONF
+am_AUTOM4TE
 am_AUTOCONF
 build_os
 build_vendor
@@ -1774,11 +1777,18 @@ case $build_os in *\ *) build_os=`echo "$build_os" | 
sed 's/ /-/g'`;; esac
 
 # Save the AUTOCONF setting before AM_INIT_AUTOMAKE overrides it; this
 # way we can run Autoconf tests from configure (or from the test
-# suite) without being bothered by `missing'.  Likewise for autoheader.
+# suite) without being bothered by `missing'.  Likewise for autom4te,
+# autoreconf, autoheader, and autoupdate.
 am_AUTOCONF="${AUTOCONF-autoconf}"
 
+am_AUTOM4TE="${AUTOM4TE-autom4te}"
+
+am_AUTORECONF="${AUTORECONF-autoreconf}"
+
 am_AUTOHEADER="${AUTOHEADER-autoheader}"
 
+am_AUTOUPDATE="${AUTOUPDATE-autoupdate}"
+
 
 am__api_version='1.11'
 
diff --git a/configure.ac b/configure.ac
index de4583d..f804d18 100644
--- a/configure.ac
+++ b/configure.ac
@@ -28,9 +28,13 @@ AC_CANONICAL_BUILD
 
 # Save the AUTOCONF setting before AM_INIT_AUTOMAKE overrides it; this
 # way we can run Autoconf tests from configure (or from the test
-# suite) without being bothered by `missing'.  Likewise for autoheader.
+# suite) without being bothered by `missing'.  Likewise for autom4te,
+# autoreconf, autoheader, and autoupdate.
 AC_SUBST([am_AUTOCONF], ["${AUTOCONF-autoconf}"])
+AC_SUBST([am_AUTOM4TE], ["${AUTOM4TE-autom4te}"])
+AC_SUBST([am_AUTORECONF], ["${AUTORECONF-autoreconf}"])
 AC_SUBST([am_AUTOHEADER], ["${AUTOHEADER-autoheader}"])
+AC_SUBST([am_AUTOUPDATE], ["${AUTOUPDATE-autoupdate}"])
 
 AM_INIT_AUTOMAKE([1.10a dist-bzip2 filename-length-max=99 color-tests 
parallel-tests])
 
diff --git a/doc/Makefile.am b/doc/Makefile.am
index bb48fa2..f4f76c6 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -73,8 +73,14 @@ $(srcdir)/amhello-1.0.tar.gz: $(amhello_sources) 
$(top_srcdir)/configure.ac
        PATH="`pwd`/../tests$(PATH_SEPARATOR)$$PATH" && \
        export PATH && \
        cd $(srcdir)/amhello && \
-       ACLOCAL=aclocal-$(APIVERSION) AUTOMAKE=automake-$(APIVERSION) \
-       autoreconf -vfi && \
+       ACLOCAL=aclocal-$(APIVERSION) && export ACLOCAL && \
+       AUTOMAKE=automake-$(APIVERSION) && export AUTOMAKE && \
+       AUTOCONF='$(am_AUTOCONF)' && export AUTOCONF && \
+       AUTOM4TE='$(am_AUTOM4TE)' && export AUTOM4TE && \
+       AUTORECONF='$(am_AUTORECONF)' && export AUTORECONF && \
+       AUTOHEADER='$(am_AUTOHEADER)' && export AUTOHEADER && \
+       AUTOUPDATE='$(am_AUTOUPDATE)' && export AUTOUPDATE && \
+       $(am_AUTORECONF) -vfi && \
        ./configure && \
        $(MAKE) $(AM_MAKEFLAGS) distcheck && \
        $(MAKE) $(AM_MAKEFLAGS) distclean && \
diff --git a/doc/Makefile.in b/doc/Makefile.in
index c1739e5..3034dcb 100644
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
@@ -161,6 +161,9 @@ abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
 am_AUTOCONF = @am_AUTOCONF@
 am_AUTOHEADER = @am_AUTOHEADER@
+am_AUTOM4TE = @am_AUTOM4TE@
+am_AUTORECONF = @am_AUTORECONF@
+am_AUTOUPDATE = @am_AUTOUPDATE@
 am__leading_dot = @am__leading_dot@
 am__tar = @am__tar@
 am__untar = @am__untar@
@@ -817,8 +820,14 @@ $(srcdir)/amhello-1.0.tar.gz: $(amhello_sources) 
$(top_srcdir)/configure.ac
        PATH="`pwd`/../tests$(PATH_SEPARATOR)$$PATH" && \
        export PATH && \
        cd $(srcdir)/amhello && \
-       ACLOCAL=aclocal-$(APIVERSION) AUTOMAKE=automake-$(APIVERSION) \
-       autoreconf -vfi && \
+       ACLOCAL=aclocal-$(APIVERSION) && export ACLOCAL && \
+       AUTOMAKE=automake-$(APIVERSION) && export AUTOMAKE && \
+       AUTOCONF='$(am_AUTOCONF)' && export AUTOCONF && \
+       AUTOM4TE='$(am_AUTOM4TE)' && export AUTOM4TE && \
+       AUTORECONF='$(am_AUTORECONF)' && export AUTORECONF && \
+       AUTOHEADER='$(am_AUTOHEADER)' && export AUTOHEADER && \
+       AUTOUPDATE='$(am_AUTOUPDATE)' && export AUTOUPDATE && \
+       $(am_AUTORECONF) -vfi && \
        ./configure && \
        $(MAKE) $(AM_MAKEFLAGS) distcheck && \
        $(MAKE) $(AM_MAKEFLAGS) distclean && \
diff --git a/doc/automake.texi b/doc/automake.texi
index d6072bf..493ea07 100644
--- a/doc/automake.texi
+++ b/doc/automake.texi
@@ -7605,7 +7605,7 @@ files in your @file{Makefile.am}, depending on where you 
want your files
 installed (see the definitions of @code{pythondir} and
 @code{pkgpythondir} below).
 
address@hidden AM_PATH_PYTHON (@ovar{version}, @ovar{action-if-found}, @
address@hidden AM_PATH_PYTHON (@ovar{version}, @ovar{action-if-found},
   @ovar{action-if-not-found})
 
 Search for a Python interpreter on the system.  This macro takes three
diff --git a/lib/Automake/Makefile.in b/lib/Automake/Makefile.in
index 5f051ed..baccf7d 100644
--- a/lib/Automake/Makefile.in
+++ b/lib/Automake/Makefile.in
@@ -181,6 +181,9 @@ abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
 am_AUTOCONF = @am_AUTOCONF@
 am_AUTOHEADER = @am_AUTOHEADER@
+am_AUTOM4TE = @am_AUTOM4TE@
+am_AUTORECONF = @am_AUTORECONF@
+am_AUTOUPDATE = @am_AUTOUPDATE@
 am__leading_dot = @am__leading_dot@
 am__tar = @am__tar@
 am__untar = @am__untar@
diff --git a/lib/Automake/tests/Makefile.in b/lib/Automake/tests/Makefile.in
index b4940db..7ed17d6 100644
--- a/lib/Automake/tests/Makefile.in
+++ b/lib/Automake/tests/Makefile.in
@@ -226,6 +226,9 @@ abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
 am_AUTOCONF = @am_AUTOCONF@
 am_AUTOHEADER = @am_AUTOHEADER@
+am_AUTOM4TE = @am_AUTOM4TE@
+am_AUTORECONF = @am_AUTORECONF@
+am_AUTOUPDATE = @am_AUTOUPDATE@
 am__leading_dot = @am__leading_dot@
 am__tar = @am__tar@
 am__untar = @am__untar@
diff --git a/lib/Makefile.in b/lib/Makefile.in
index d9e41e2..bc2a6c0 100644
--- a/lib/Makefile.in
+++ b/lib/Makefile.in
@@ -183,6 +183,9 @@ abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
 am_AUTOCONF = @am_AUTOCONF@
 am_AUTOHEADER = @am_AUTOHEADER@
+am_AUTOM4TE = @am_AUTOM4TE@
+am_AUTORECONF = @am_AUTORECONF@
+am_AUTOUPDATE = @am_AUTOUPDATE@
 am__leading_dot = @am__leading_dot@
 am__tar = @am__tar@
 am__untar = @am__untar@
diff --git a/lib/am/Makefile.in b/lib/am/Makefile.in
index 352c64f..649c1bf 100644
--- a/lib/am/Makefile.in
+++ b/lib/am/Makefile.in
@@ -141,6 +141,9 @@ abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
 am_AUTOCONF = @am_AUTOCONF@
 am_AUTOHEADER = @am_AUTOHEADER@
+am_AUTOM4TE = @am_AUTOM4TE@
+am_AUTORECONF = @am_AUTORECONF@
+am_AUTOUPDATE = @am_AUTOUPDATE@
 am__leading_dot = @am__leading_dot@
 am__tar = @am__tar@
 am__untar = @am__untar@
diff --git a/lib/am/configure.am b/lib/am/configure.am
index e9299d6..d00846a 100644
--- a/lib/am/configure.am
+++ b/lib/am/configure.am
@@ -22,7 +22,7 @@
 ## %MAKEFILE% is updated before considering the am--refresh target.
 if %?TOPDIR_P%
 .PHONY: am--refresh
-am--refresh:
+am--refresh: %MAKEFILE%
        @:
 endif %?TOPDIR_P%
 
diff --git a/m4/Makefile.in b/m4/Makefile.in
index cd80415..ff4dd43 100644
--- a/m4/Makefile.in
+++ b/m4/Makefile.in
@@ -141,6 +141,9 @@ abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
 am_AUTOCONF = @am_AUTOCONF@
 am_AUTOHEADER = @am_AUTOHEADER@
+am_AUTOM4TE = @am_AUTOM4TE@
+am_AUTORECONF = @am_AUTORECONF@
+am_AUTOUPDATE = @am_AUTOUPDATE@
 am__leading_dot = @am__leading_dot@
 am__tar = @am__tar@
 am__untar = @am__untar@
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 86a49c0..94b7a08 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -658,6 +658,10 @@ remake4.test \
 remake5.test \
 remake6.test \
 remake7.test \
+remake-subdir-from-subdir.test \
+remake-subdir-gnu.test \
+remake-subdir.test \
+remake-subdir2.test \
 pr8365-remake-timing.test \
 regex.test \
 req.test \
diff --git a/tests/Makefile.in b/tests/Makefile.in
index 42272c7..c7f0ff2 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -231,6 +231,9 @@ abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
 am_AUTOCONF = @am_AUTOCONF@
 am_AUTOHEADER = @am_AUTOHEADER@
+am_AUTOM4TE = @am_AUTOM4TE@
+am_AUTORECONF = @am_AUTORECONF@
+am_AUTOUPDATE = @am_AUTOUPDATE@
 am__leading_dot = @am__leading_dot@
 am__tar = @am__tar@
 am__untar = @am__untar@
@@ -926,6 +929,10 @@ remake4.test \
 remake5.test \
 remake6.test \
 remake7.test \
+remake-subdir-from-subdir.test \
+remake-subdir-gnu.test \
+remake-subdir.test \
+remake-subdir2.test \
 pr8365-remake-timing.test \
 regex.test \
 req.test \
diff --git a/tests/README b/tests/README
index 9680a54..57b2ddb 100644
--- a/tests/README
+++ b/tests/README
@@ -102,8 +102,10 @@ Do
 
   Use the `skip_' function to skip tests, with a meaningful message if
   possible.  Where convenient, use the `warn_' function to print generic
-  warnings, and the `fail_' function for test failures.  Finally, you may
-  use the `framework_fail_' function for hard errors.
+  warnings, the `fail_' function for test failures, and the `fatal_'
+  function for hard errors.  In case a hard error is due to a failed
+  set-up of a test scenario, you can use the `framework_fail_' function
+  instead.
 
   For tests that use the `parallel-tests' Automake option, set the shell
   variable `parallel_tests' to "yes" before including ./defs.  Also,
@@ -181,11 +183,11 @@ Do not
   here.)
 
   Do not override Makefile variables using make arguments, as in e.g.:
-    $MAKE DESTDIR=/foo/bar install
+    $MAKE prefix=/opt install
   This is not portable for recursive targets (targets that call a
-  sub-make may not pass `DESTDIR=/foo/bar' along).  Use the following
+  sub-make may not pass `prefix=/opt' along).  Use the following
   instead:
-    DESTDIR=/foo/bar $MAKE -e install
+    prefix=/opt $MAKE -e install
 
   Do not send a test case without signing a copyright disclaimer.
   See http://sources.redhat.com/automake/contribute.html or
diff --git a/tests/defs.in b/tests/defs.in
index e020498..5849fbd 100644
--- a/tests/defs.in
+++ b/tests/defs.in
@@ -98,8 +98,10 @@ export SHELL
 test -z "$PERL" && PERL='@PERL@'
 test -z "$MAKE" && MAKE=make
 test -z "$AUTOCONF" && AUTOCONF="@am_AUTOCONF@"
+test -z "$AUTOM4TE" && AUTOM4TE="@am_AUTOM4TE@"
+test -z "$AUTORECONF" && AUTORECONF="@am_AUTORECONF@"
 test -z "$AUTOHEADER" && AUTOHEADER="@am_AUTOHEADER@"
-test -z "$AUTOUPDATE" && AUTOUPDATE=autoupdate
+test -z "$AUTOUPDATE" && AUTOUPDATE="@am_AUTOUPDATE@"
 test -z "$MISSING" && MISSING=`pwd`/../lib/missing
 # Use -Werror because this also turns some Perl warnings into error.
 # (Tests for which this is inappropriate should use -Wno-error.)
@@ -146,6 +148,7 @@ Exit ()
 warn_ () { echo "$@" 1>&$stderr_fileno_; }
 fail_ () { warn_ "$me: failed test: $@"; Exit 1; }
 skip_ () { warn_ "$me: skipped test: $@"; Exit 77; }
+fatal_ () { warn_ "$me: hard error: $@"; Exit 99; }
 framework_failure_ () { warn_ "$me: set-up failure: $@"; Exit 99; }
 
 # cross_compiling
@@ -513,6 +516,16 @@ is_newest ()
   test -z "$is_newest_files"
 }
 
+# using_gmake
+# -----------
+# Return success if $MAKE is GNU make, return failure otherwise.
+using_gmake ()
+{
+  # Use --version AND -v, because SGI Make doesn't fail on --version.
+  # Also grep for GNU because newer versions of FreeBSD make do
+  # not complain about `--version' (they seem to silently ignore it).
+  $MAKE --version -v | grep GNU
+}
 
 # AUTOMAKE_run status [options...]
 # --------------------------------
diff --git a/tests/depcomp8a.test b/tests/depcomp8a.test
index d8eff56..ea14c3f 100755
--- a/tests/depcomp8a.test
+++ b/tests/depcomp8a.test
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Copyright (C) 2010 Free Software Foundation, Inc.
+# Copyright (C) 2010, 2011 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -57,7 +57,7 @@ $AUTOCONF
 ./configure --enable-dependency-tracking
 $MAKE
 ./zardoz
-$MAKE DISTCHECK_CONFIGURE_FLAGS='--enable-dependency-tracking' distcheck
+DISTCHECK_CONFIGURE_FLAGS='--enable-dependency-tracking' $MAKE distcheck
 
 # Try again with subdir-objects option.
 
@@ -76,6 +76,6 @@ $AUTOCONF
 ./configure --enable-dependency-tracking
 $MAKE
 ./zardoz
-$MAKE DISTCHECK_CONFIGURE_FLAGS='--enable-dependency-tracking' distcheck
+DISTCHECK_CONFIGURE_FLAGS='--enable-dependency-tracking' $MAKE distcheck
 
 :
diff --git a/tests/depcomp8b.test b/tests/depcomp8b.test
index 6315d4d..d36e754 100755
--- a/tests/depcomp8b.test
+++ b/tests/depcomp8b.test
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Copyright (C) 2010 Free Software Foundation, Inc.
+# Copyright (C) 2010, 2011 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -52,7 +52,7 @@ $AUTOCONF
 # Don't reject slower dependency extractors, for better coverage.
 ./configure --enable-dependency-tracking
 $MAKE
-$MAKE DISTCHECK_CONFIGURE_FLAGS='--enable-dependency-tracking' distcheck
+DISTCHECK_CONFIGURE_FLAGS='--enable-dependency-tracking' $MAKE distcheck
 
 # Try again with subdir-objects option.
 
@@ -70,6 +70,6 @@ $AUTOCONF
 # Don't reject slower dependency extractors, for better coverage.
 ./configure --enable-dependency-tracking
 $MAKE
-$MAKE DISTCHECK_CONFIGURE_FLAGS='--enable-dependency-tracking' distcheck
+DISTCHECK_CONFIGURE_FLAGS='--enable-dependency-tracking' $MAKE distcheck
 
 :
diff --git a/tests/gcj6.test b/tests/remake-subdir-from-subdir.test
similarity index 58%
copy from tests/gcj6.test
copy to tests/remake-subdir-from-subdir.test
index be5f49c..1e369f8 100755
--- a/tests/gcj6.test
+++ b/tests/remake-subdir-from-subdir.test
@@ -14,40 +14,43 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# AM_PROG_GCJ should cause OBJEXT and EXEEXT to be set.
+# Check that remake rules works for adding a new subdirectory from a
+# pre-existing subdirectory.
 
-required='gcj'
 . ./defs || Exit 1
 
 set -e
 
-cat >> configure.in << 'END'
-AM_PROG_GCJ
+cat >> configure.in <<'END'
+m4_include([subdirs.m4])
+AC_SUBST([MAGIC], [magic])
 AC_OUTPUT
 END
 
-cat > Makefile.am << 'END'
-noinst_PROGRAMS = test
-test_SOURCES = Test.java
-test_LDFLAGS = --main=Test
-END
+echo 'AC_CONFIG_FILES([sub/Makefile])' > subdirs.m4
+echo 'SUBDIRS = sub' > Makefile.am
 
-cat >Test.java << 'END'
-public class Test {
-    public static void main(String[] argv) {
-        System.out.println("Hello, automake!");
-    }
-}
-END
+mkdir sub
+: > sub/Makefile.am
 
 $ACLOCAL
-$AUTOMAKE
 $AUTOCONF
+$AUTOMAKE
+
 ./configure
+$MAKE
 
-# These fail without e.g., AC_PROG_CC.
+cd sub
+$sleep
+echo 'AC_CONFIG_FILES([sub/subsub/Makefile])' >> ../subdirs.m4
+echo 'SUBDIRS = subsub' >> Makefile.am
+mkdir subsub
+cat > subsub/Makefile.am <<'END'
+all-local:
+       : > ok-it-works
+END
+using_gmake || $MAKE Makefile
 $MAKE
-grep "OBJEXT = " Makefile
-grep "EXEEXT = " Makefile
+test -f subsub/ok-it-works
 
 :
diff --git a/tests/remake-subdir-gnu.test b/tests/remake-subdir-gnu.test
new file mode 100755
index 0000000..cc683f3
--- /dev/null
+++ b/tests/remake-subdir-gnu.test
@@ -0,0 +1,80 @@
+#! /bin/sh
+# Copyright (C) 2011 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# 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 that remake rules works from subdirectories, even using
+# `GNUmakefile' as makefiles name.  This obviously requires GNU
+# make.
+
+required=GNUmake
+. ./defs || Exit 1
+
+set -e
+
+magic1='::MagicString::One::'
+magic2='__MagicString__Two__'
+
+debug_info ()
+{
+  grep -i magic configure GNUmakefile.in GNUmakefile \
+                sub/GNUmakefile.in sub/GNUmakefile
+}
+
+cat > configure.in <<END
+AC_INIT([$me], [1.0])
+AM_INIT_AUTOMAKE
+AC_CONFIG_FILES([GNUmakefile sub/GNUmakefile])
+AC_SUBST([MAGIC], [magic])
+AC_OUTPUT
+END
+
+cat > GNUmakefile.am <<'END'
+SUBDIRS = sub
+END
+
+mkdir sub
+: > sub/GNUmakefile.am
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE
+
+./configure
+$MAKE
+debug_info
+
+$sleep
+sed "s|magic|$magic1|" configure.in > t
+mv -f t configure.in
+cd sub
+$MAKE
+cd ..
+debug_info
+$FGREP $magic1 configure
+$FGREP $magic1 GNUmakefile
+$FGREP $magic1 sub/GNUmakefile
+
+$sleep
+cd sub
+echo MAGIC = $magic2 >> GNUmakefile.am
+$MAKE
+cd ..
+debug_info
+$FGREP $magic2 sub/GNUmakefile
+$FGREP $magic2 sub/GNUmakefile.in
+$FGREP $magic1 sub/GNUmakefile sub/GNUmakefile.in && Exit 1
+$FGREP $magic2 GNUmakefile GNUmakefile.in && Exit 1
+
+:
diff --git a/tests/autodist-acconfig-no-subdir.test b/tests/remake-subdir.test
similarity index 51%
copy from tests/autodist-acconfig-no-subdir.test
copy to tests/remake-subdir.test
index e6bd5a9..5bbc345 100755
--- a/tests/autodist-acconfig-no-subdir.test
+++ b/tests/remake-subdir.test
@@ -14,45 +14,68 @@
 # 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 that `acconfig.h' is *not* automatically distributed when
-# placed in a subdirectory.
-# Related to automake bug#7819.
+# Check that remake rules works from subdirectories, even with non-GNU
+# make implementations.
 
 . ./defs || Exit 1
 
 set -e
 
-cat >> configure.in <<END
+if using_gmake; then
+  remake=$MAKE
+else
+  remake="$MAKE Makefile"
+fi
+
+magic1='::MagicString::One::'
+magic2='__MagicString__Two__'
+
+debug_info ()
+{
+  grep -i magic configure Makefile.in Makefile sub/Makefile.in sub/Makefile
+}
+
+cat >> configure.in <<'END'
 AC_CONFIG_FILES([sub/Makefile])
+AC_SUBST([MAGIC], [magic])
 AC_OUTPUT
 END
 
 cat > Makefile.am <<'END'
 SUBDIRS = sub
-sub/acconfig.h:
-       echo target $@ should not be built >&2; exit 1
-check-local: distdir
-       ls -l $(distdir)/sub
-       test ! -f $(distdir)/sub/acconfig.h
 END
 
 mkdir sub
-
-cat > sub/Makefile.am <<'END'
-acconfig.h:
-       echo target $@ should not be built >&2; exit 1
-check-local:
-       echo $(DISTFILES) | grep 'acconfig\.h' && exit 1; :
-       echo $(DIST_COMMON) | grep 'acconfig\.h' && exit 1; :
-END
-
-: > sub/acconfig.h
+: > sub/Makefile.am
 
 $ACLOCAL
-$AUTOMAKE
 $AUTOCONF
+$AUTOMAKE
 
 ./configure
-$MAKE check
+$MAKE
+debug_info
+
+$sleep
+sed "s|magic|$magic1|" configure.in > t
+mv -f t configure.in
+cd sub
+$remake
+cd ..
+debug_info
+$FGREP $magic1 configure
+$FGREP $magic1 Makefile
+$FGREP $magic1 sub/Makefile
+
+$sleep
+cd sub
+echo MAGIC = $magic2 >> Makefile.am
+$remake
+cd ..
+debug_info
+$FGREP $magic2 sub/Makefile
+$FGREP $magic2 sub/Makefile.in
+$FGREP $magic1 sub/Makefile sub/Makefile.in && Exit 1
+$FGREP $magic2 Makefile Makefile.in && Exit 1
 
 :
diff --git a/tests/remake-subdir2.test b/tests/remake-subdir2.test
new file mode 100755
index 0000000..09d1a36
--- /dev/null
+++ b/tests/remake-subdir2.test
@@ -0,0 +1,82 @@
+#! /bin/sh
+# Copyright (C) 2011 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# 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 that remake rules works from subdirectories, even when makefiles
+# are not named "Makefile".
+
+. ./defs || Exit 1
+
+set -e
+
+magic1='::MagicString::One::'
+magic2='__MagicString__Two__'
+
+debug_info ()
+{
+  grep -i magic configure build.in build.mk sub/build.in sub/build.mk
+}
+
+cat > configure.in <<END
+AC_INIT([$me], [1.0])
+AM_INIT_AUTOMAKE
+AC_CONFIG_FILES([build.mk:build.in])
+AC_CONFIG_FILES([sub/build.mk:sub/build.in])
+AC_SUBST([MAGIC], [magic])
+AC_OUTPUT
+END
+
+cat > build.am <<'END'
+AM_MAKEFLAGS = -f build.mk
+SUBDIRS = sub
+END
+
+mkdir sub
+cat > sub/build.am <<'END'
+AM_MAKEFLAGS = -f build.mk
+END
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE
+./configure
+ls -l # For debugging.
+
+$MAKE -f build.mk
+debug_info
+
+$sleep
+sed "s|magic|$magic1|" configure.in > t
+mv -f t configure.in
+cd sub
+$MAKE -f build.mk build.mk
+cd ..
+debug_info
+$FGREP $magic1 configure
+$FGREP $magic1 build.mk
+$FGREP $magic1 sub/build.mk
+
+$sleep
+cd sub
+echo MAGIC = $magic2 >> build.am
+$MAKE -f build.mk build.mk
+cd ..
+debug_info
+$FGREP $magic2 sub/build.mk
+$FGREP $magic2 sub/build.in
+$FGREP $magic1 sub/build.in sub/build.mk && Exit 1
+$FGREP $magic2 build.in build.mk && Exit 1
+
+:


hooks/post-receive
-- 
GNU Automake



reply via email to

[Prev in Thread] Current Thread [Next in Thread]