aboutsummaryrefslogtreecommitdiff
path: root/usr.bin/make
diff options
context:
space:
mode:
authorMax Khon <fjoe@FreeBSD.org>2007-04-20 06:25:45 +0000
committerMax Khon <fjoe@FreeBSD.org>2007-04-20 06:25:45 +0000
commitbc5748e31f269cfeebe1686718fc4c03a5de277e (patch)
tree2488644fcf3899c882fa294fe7562b43dedfa30c /usr.bin/make
parentfb1e3ccd7effb0c6b129995a499b2514a95675fe (diff)
Notes
Diffstat (limited to 'usr.bin/make')
-rw-r--r--usr.bin/make/main.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/usr.bin/make/main.c b/usr.bin/make/main.c
index 8eceedfae4de..e575ff2f8797 100644
--- a/usr.bin/make/main.c
+++ b/usr.bin/make/main.c
@@ -704,6 +704,7 @@ Remake_Makefiles(void)
Boolean saveTouchFlag = touchFlag;
Boolean saveQueryFlag = queryFlag;
Boolean saveNoExecute = noExecute;
+ int mtime;
/*
* Create node
@@ -767,6 +768,7 @@ Remake_Makefiles(void)
/*
* Check and remake the makefile
*/
+ mtime = Dir_MTime(gn);
Compat_Make(gn, gn);
/*
@@ -785,9 +787,18 @@ Remake_Makefiles(void)
* ABORTED gn was not remade because one of its inferiors
* could not be made due to errors.
*/
- if (gn->made == MADE)
- remade_cnt++;
- else if (gn->made == ERROR)
+ if (gn->made == MADE) {
+ if (mtime != Dir_MTime(gn)) {
+ DEBUGF(MAKE,
+ ("%s updated (%d -> %d).\n",
+ gn->name, mtime, gn->mtime));
+ remade_cnt++;
+ } else {
+ DEBUGF(MAKE,
+ ("%s not updated: skipping restart.\n",
+ gn->name));
+ }
+ } else if (gn->made == ERROR)
error_cnt++;
else if (gn->made == ABORTED) {
printf("`%s' not remade because of errors.\n",