automake-commit
[Top][All Lists]
Advanced

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

[Automake-commit] [SCM] GNU Automake branch, master, updated. Release-1-


From: Ralf Wildenhues
Subject: [Automake-commit] [SCM] GNU Automake branch, master, updated. Release-1-10-162-g7456aef
Date: Fri, 22 Aug 2008 12:57:48 +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=7456aefd1d03be416197986600242e994bd34546

The branch, master has been updated
       via  7456aefd1d03be416197986600242e994bd34546 (commit)
      from  f9cee424996297f6936af2f0ba6002ecfb2821d6 (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 7456aefd1d03be416197986600242e994bd34546
Author: Ralf Wildenhues <address@hidden>
Date:   Fri Aug 22 13:19:04 2008 +0200

    Fix rebuilding of removed subdir/Makefile.in files.
    
    * lib/am/configure.am (%MAKEFILE-IN%) [?!TOPDIR_P?]: If
    subdir/Makefile.in was removed, am--refresh would not update
    it.  Fix up for it by running the per-directory rebuild rule.
    * tests/remake6.test, tests/remake6.test: New tests.
    * tests/Makefile.am: Adjust.
    * NEWS, THANKS: Update.
    Report and initial patch by Ilya N. Golubev.
    
    Signed-off-by: Ralf Wildenhues <address@hidden>

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

Summary of changes:
 ChangeLog                           |   11 +++++++
 NEWS                                |    3 ++
 THANKS                              |    1 +
 doc/Makefile.in                     |    4 +-
 lib/Automake/Makefile.in            |    4 +-
 lib/Automake/tests/Makefile.in      |    4 +-
 lib/Makefile.in                     |    4 +-
 lib/am/Makefile.in                  |    4 +-
 lib/am/configure.am                 |   11 +++++--
 m4/Makefile.in                      |    4 +-
 tests/Makefile.am                   |    2 +
 tests/Makefile.in                   |    6 ++-
 tests/{mdate4.test => remake6.test} |   49 +++++++++++++++++++++---------
 tests/{mdate4.test => remake7.test} |   55 +++++++++++++++++++++++++---------
 14 files changed, 115 insertions(+), 47 deletions(-)
 copy tests/{mdate4.test => remake6.test} (51%)
 copy tests/{mdate4.test => remake7.test} (54%)

diff --git a/ChangeLog b/ChangeLog
index cc540cd..136668c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2008-08-22  Ralf Wildenhues  <address@hidden>
+
+       Fix rebuilding of removed subdir/Makefile.in files.
+       * lib/am/configure.am (%MAKEFILE-IN%) [?!TOPDIR_P?]: If
+       subdir/Makefile.in was removed, am--refresh would not update
+       it.  Fix up for it by running the per-directory rebuild rule.
+       * tests/remake6.test, tests/remake7.test: New tests.
+       * tests/Makefile.am: Adjust.
+       * NEWS, THANKS: Update.
+       Report and initial patch by Ilya N. Golubev.
+
 2008-08-19  Ralf Wildenhues  <address@hidden>
 
        * tests/notrans.test: Use multiple man files of each type.
diff --git a/NEWS b/NEWS
index 181ba05..bd1f369 100644
--- a/NEWS
+++ b/NEWS
@@ -55,6 +55,9 @@ New in 1.10a:
     stub rules.  This allows `make' to trigger a rerun of `aclocal'
     also if some previously needed macro file has been removed.
 
+  - Rebuild rules now also work for a removed `subdir/Makefile.in' in
+    an otherwise up to date tree.
+
   - The `color-tests' option causes colored test result output on terminals.
 
   - New prefix `notrans_' for manpages which should not be transformed
diff --git a/THANKS b/THANKS
index 3442ba0..20be34e 100644
--- a/THANKS
+++ b/THANKS
@@ -116,6 +116,7 @@ Harlan Stenn                address@hidden
 He Li                  address@hidden
 Henrik Frystyk Nielsen address@hidden
 Ian Lance Taylor       address@hidden
+Ilya N. Golubev                address@hidden
 Imacat                 address@hidden
 Inoue                  address@hidden
 James Amundson         address@hidden
diff --git a/doc/Makefile.in b/doc/Makefile.in
index b5f1f42..e82c47e 100644
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
@@ -208,8 +208,8 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  
$(am__configure_deps)
        @for dep in $?; do \
          case '$(am__configure_deps)' in \
            *$$dep*) \
-             cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-               && exit 0; \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
              exit 1;; \
          esac; \
        done; \
diff --git a/lib/Automake/Makefile.in b/lib/Automake/Makefile.in
index 78f9670..a5a014a 100644
--- a/lib/Automake/Makefile.in
+++ b/lib/Automake/Makefile.in
@@ -237,8 +237,8 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  
$(am__configure_deps)
        @for dep in $?; do \
          case '$(am__configure_deps)' in \
            *$$dep*) \
-             cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-               && exit 0; \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
              exit 1;; \
          esac; \
        done; \
diff --git a/lib/Automake/tests/Makefile.in b/lib/Automake/tests/Makefile.in
index 8d9cd99..5cb486e 100644
--- a/lib/Automake/tests/Makefile.in
+++ b/lib/Automake/tests/Makefile.in
@@ -165,8 +165,8 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  
$(am__configure_deps)
        @for dep in $?; do \
          case '$(am__configure_deps)' in \
            *$$dep*) \
-             cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-               && exit 0; \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
              exit 1;; \
          esac; \
        done; \
diff --git a/lib/Makefile.in b/lib/Makefile.in
index 9ec8209..2c0e7a0 100644
--- a/lib/Makefile.in
+++ b/lib/Makefile.in
@@ -213,8 +213,8 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  
$(am__configure_deps)
        @for dep in $?; do \
          case '$(am__configure_deps)' in \
            *$$dep*) \
-             cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-               && exit 0; \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
              exit 1;; \
          esac; \
        done; \
diff --git a/lib/am/Makefile.in b/lib/am/Makefile.in
index cf4a604..9796e10 100644
--- a/lib/am/Makefile.in
+++ b/lib/am/Makefile.in
@@ -204,8 +204,8 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  
$(am__configure_deps)
        @for dep in $?; do \
          case '$(am__configure_deps)' in \
            *$$dep*) \
-             cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-               && exit 0; \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
              exit 1;; \
          esac; \
        done; \
diff --git a/lib/am/configure.am b/lib/am/configure.am
index 879f837..4623f41 100644
--- a/lib/am/configure.am
+++ b/lib/am/configure.am
@@ -1,5 +1,5 @@
 ## automake - create Makefile.in from Makefile.am
-## Copyright (C) 2001, 2002, 2003, 2004, 2006, 2007  Free Software
+## Copyright (C) 2001, 2002, 2003, 2004, 2006, 2007, 2008  Free Software
 ## Foundation, Inc.
 
 ## This program is free software; you can redistribute it and/or modify
@@ -41,8 +41,13 @@ endif %?TOPDIR_P%
            *$$dep*) \
 ?TOPDIR_P?           echo ' cd $(srcdir) && $(AUTOMAKE) --%STRICTNESS% 
%USE-DEPS%'; \
 ?TOPDIR_P?           cd $(srcdir) && $(AUTOMAKE) --%STRICTNESS% %USE-DEPS% \
-?!TOPDIR_P?          cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh 
\
-               && exit 0; \
+?TOPDIR_P?             && exit 0; \
+?!TOPDIR_P?          ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) 
am--refresh ) \
+## If on the other hand, subdir/Makefile.in has been removed, then toplevel
+## am--refresh will not be aware of any need to run.  We still invoke it
+## due to $? listing all prerequisites.  Fix up for it by running the rebuild
+## rule for this file only, below.
+?!TOPDIR_P?            && { if test -f $@; then exit 0; else break; fi; }; \
              exit 1;; \
          esac; \
        done; \
diff --git a/m4/Makefile.in b/m4/Makefile.in
index 75eb69d..4a2504e 100644
--- a/m4/Makefile.in
+++ b/m4/Makefile.in
@@ -201,8 +201,8 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  
$(am__configure_deps)
        @for dep in $?; do \
          case '$(am__configure_deps)' in \
            *$$dep*) \
-             cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-               && exit 0; \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
              exit 1;; \
          esac; \
        done; \
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 45624af..1e19657 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -496,6 +496,8 @@ remake2.test \
 remake3.test \
 remake4.test \
 remake5.test \
+remake6.test \
+remake7.test \
 regex.test \
 req.test \
 reqd.test \
diff --git a/tests/Makefile.in b/tests/Makefile.in
index 766ab9d..969a57b 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -647,6 +647,8 @@ remake2.test \
 remake3.test \
 remake4.test \
 remake5.test \
+remake6.test \
+remake7.test \
 regex.test \
 req.test \
 reqd.test \
@@ -803,8 +805,8 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  
$(am__configure_deps)
        @for dep in $?; do \
          case '$(am__configure_deps)' in \
            *$$dep*) \
-             cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-               && exit 0; \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
              exit 1;; \
          esac; \
        done; \
diff --git a/tests/mdate4.test b/tests/remake6.test
similarity index 51%
copy from tests/mdate4.test
copy to tests/remake6.test
index 551a12d..b94dda3 100755
--- a/tests/mdate4.test
+++ b/tests/remake6.test
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Copyright (C) 2001, 2002  Free Software Foundation, Inc.
+# Copyright (C) 2008  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
@@ -14,10 +14,10 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# Test to make sure that mdate-sh is added to the right directory.
-# Report from Kevin Dalley
+# Make sure remaking rules work when subdir Makefile.in has been removed.
 
 . ./defs || exit 1
+set -e
 
 cat > configure.in << 'END'
 AC_INIT
@@ -25,21 +25,40 @@ AM_INIT_AUTOMAKE(nonesuch, nonesuch)
 AC_OUTPUT(Makefile sub/Makefile)
 END
 
-cat > Makefile.am << 'END'
+cat > Makefile.am <<'END'
 SUBDIRS = sub
 END
-
 mkdir sub
+: > sub/Makefile.am
 
-cat > sub/Makefile.am << 'END'
-info_TEXINFOS = textutils.texi
-END
+$ACLOCAL
+$AUTOMAKE
+$AUTOCONF
+./configure
+$MAKE
 
-cat > sub/textutils.texi << 'END'
address@hidden version.texi
address@hidden textutils.info
-END
+# Now, we are set up.  Ensure that, for either missing Makefile.in,
+# or updated Makefile.am, rebuild rules are run, and run exactly once
+# only.
+
+rm -f Makefile.in
+$MAKE >stdout
+cat stdout
+test `grep -c " --run " stdout` -eq 1
+
+rm -f sub/Makefile.in
+$MAKE >stdout
+cat stdout
+test `grep -c " --run " stdout` -eq 1
+
+$sleep  # Let touched files appear newer.
+
+touch Makefile.am
+$MAKE >stdout
+cat stdout
+test `grep -c " --run " stdout` -eq 1
 
-$ACLOCAL || exit 1
-$AUTOMAKE -a || exit 1
-test -f sub/mdate-sh
+touch sub/Makefile.am
+$MAKE >stdout
+cat stdout
+test `grep -c " --run " stdout` -eq 1
diff --git a/tests/mdate4.test b/tests/remake7.test
similarity index 54%
copy from tests/mdate4.test
copy to tests/remake7.test
index 551a12d..7207285 100755
--- a/tests/mdate4.test
+++ b/tests/remake7.test
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Copyright (C) 2001, 2002  Free Software Foundation, Inc.
+# Copyright (C) 2008  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
@@ -14,10 +14,10 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# Test to make sure that mdate-sh is added to the right directory.
-# Report from Kevin Dalley
+# Make sure remaking rules fail when they should.
 
 . ./defs || exit 1
+set -e
 
 cat > configure.in << 'END'
 AC_INIT
@@ -25,21 +25,46 @@ AM_INIT_AUTOMAKE(nonesuch, nonesuch)
 AC_OUTPUT(Makefile sub/Makefile)
 END
 
-cat > Makefile.am << 'END'
+cat > Makefile.am <<'END'
 SUBDIRS = sub
 END
-
 mkdir sub
+: > sub/Makefile.am
 
-cat > sub/Makefile.am << 'END'
-info_TEXINFOS = textutils.texi
-END
+$ACLOCAL
+$AUTOMAKE
+$AUTOCONF
+./configure
+$MAKE
 
-cat > sub/textutils.texi << 'END'
address@hidden version.texi
address@hidden textutils.info
-END
+$sleep
+
+# Fail for broken input files.
+
+echo "if FOO" > sub/Makefile.am
+$MAKE && exit 1
+
+: >sub/Makefile.am
+$MAKE
+
+mv Makefile.am backup
+echo "if FOO" > Makefile.am
+$MAKE && exit 1
+
+# Fail for missing input files, with or without missing
+# Makefile.in files.
+
+cp backup Makefile.am
+mv sub/Makefile.am sub/backup
+$MAKE && exit 1
+
+rm -f sub/Makefile.in
+$MAKE && exit 1
+
+mv sub/backup sub/Makefile.am
+rm -f Makefile.am
+$MAKE && exit 1
 
-$ACLOCAL || exit 1
-$AUTOMAKE -a || exit 1
-test -f sub/mdate-sh
+rm -f Makefile.in
+$MAKE && exit 1
+:


hooks/post-receive
--
GNU Automake




reply via email to

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