about summary refs log tree commit diff
diff options
context:
space:
mode:
authorGraydon Hoare <graydon@mozilla.com>2010-06-29 10:25:25 -0700
committerGraydon Hoare <graydon@mozilla.com>2010-06-29 10:25:25 -0700
commit3bc263f10215e5768e9ff57ee1f1aa2bd81da5d1 (patch)
treef814c9bf22b75349a288901e0725a6b43f548d67
parent023e5af6398f8892fee429759096ba8c2480ed7d (diff)
Improve makefile to try to avoid wedging on failure-to-dep lib/std.rc
-rw-r--r--src/Makefile15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/Makefile b/src/Makefile
index 5a72afdeea9..bb7a59d425c 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -631,17 +631,17 @@ test/run-fail/%.bc: test/run-fail/%.rs $(REQ)
 ML_DEPFILES := $(BOOT_MLS:%.ml=%.d)
 C_DEPFILES := $(RUNTIME_CS:%.cpp=%.d)
 
-%.d: %.cpp $(MKFILES)
+%.d.tmp: %.cpp $(MKFILES)
 	@$(call CFG_ECHO, dep: $<)
 	$(CFG_QUIET)$(call CFG_DEPEND_C, $@ \
       $(patsubst %.cpp, %$(CFG_OBJ_SUFFIX), $<), \
       $(RUNTIME_INCS)) $< $(CFG_PATH_MUNGE) >$@
 
-%.d: %.ml $(MKFILES)
+%.d.tmp: %.ml $(MKFILES)
 	@$(call CFG_ECHO, dep: $<)
 	$(CFG_QUIET)ocamldep$(OPT) $(ML_INCS) $< $(CFG_PATH_MUNGE) >$@
 
-%.d: %.mli $(MKFILES)
+%.d.tmp: %.mli $(MKFILES)
 	@$(call CFG_ECHO, dep: $<)
 	$(CFG_QUIET)ocamldep$(OPT) $(ML_INCS) $< $(CFG_PATH_MUNGE) >$@
 
@@ -656,18 +656,21 @@ CFG_INFO := $(info cfg: using built $(CFG_BOOT) for rust deps)
 STDLIB_DEPFILE := $(CFG_STDLIB).d
 CRATE_DEPFILES := $(ALL_TEST_CRATES:%.rc=%.d) $(STDLIB_DEPFILE)
 
-$(STDLIB_DEPFILE): $(STDLIB_CRATE) $(MKFILES) $(CFG_BOOT)
+$(STDLIB_DEPFILE).tmp: $(STDLIB_CRATE) $(MKFILES) $(CFG_BOOT)
 	@$(call CFG_ECHO, dep: $<)
 	$(BOOT) -shared -rdeps $< $(CFG_PATH_MUNGE) >$@
 
-%.d: %.rc $(MKFILES) $(CFG_BOOT)
+%.d.tmp: %.rc $(MKFILES) $(CFG_BOOT)
 	@$(call CFG_ECHO, dep: $<)
 	$(BOOT) -rdeps $< $(CFG_PATH_MUNGE) >$@
 
-%.d: %.rs $(MKFILES) $(CFG_BOOT)
+%.d.tmp: %.rs $(MKFILES) $(CFG_BOOT)
 	@$(call CFG_ECHO, dep: $<)
 	$(BOOT) -rdeps $< $(CFG_PATH_MUNGE) >$@
 
+%.d: %.d.tmp
+	$(CFG_QUIET)mv $< $@
+
 ifneq ($(MAKECMDGOALS),clean)
 -include $(CRATE_DEPFILES)
 endif