aboutsummaryrefslogtreecommitdiff
path: root/build/rule.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2015-07-21 18:20:33 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2015-07-22 12:26:34 +0200
commit34e5a2da18f76c7d7de79a5c12b0e85ee89c4095 (patch)
tree3e825e3883bc1ed083b0c33afa30c74c95dbef1e /build/rule.cxx
parenta1cec9e0df14f3c1a833e2a447b5324ff9c430d3 (diff)
Fix postponed re-examination logic
Now postponed takes precedence over changed.
Diffstat (limited to 'build/rule.cxx')
-rw-r--r--build/rule.cxx6
1 files changed, 5 insertions, 1 deletions
diff --git a/build/rule.cxx b/build/rule.cxx
index f53d9d9..f9b9a3c 100644
--- a/build/rule.cxx
+++ b/build/rule.cxx
@@ -228,10 +228,14 @@ namespace build
rmdir_status rs (rmdir (t.dir, t));
target_state ts (target_state::unchanged);
-
if (t.has_prerequisites ())
+ {
ts = reverse_execute_prerequisites (a, t);
+ if (ts == target_state::postponed)
+ return ts;
+ }
+
// If we couldn't remove the directory, return postponed meaning
// that the operation could not be performed at this time.
//