[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Automake-commit] [SCM] GNU Automake branch, master, updated. Release-1-10-162-g7456aef,
Ralf Wildenhues <=