about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2013-08-31 17:35:39 -0700
committerbors <bors@rust-lang.org>2013-08-31 17:35:39 -0700
commit617850131b795312c4dd404ae7d853b54d883105 (patch)
tree493f3c83e8d7c1cb2d4e6740625599042bc8ae1b
parenta60c6a8b18b4b3ff3426076a7511938a72fe9d19 (diff)
parentb1a22518f0c687db008c4abf5e8e0411fb58c2f5 (diff)
downloadrust-617850131b795312c4dd404ae7d853b54d883105.tar.gz
rust-617850131b795312c4dd404ae7d853b54d883105.zip
auto merge of #8907 : pnkfelix/rust/fsk-fix-makefile-8865, r=thestinger
Fix #8865.
-rw-r--r--mk/stage0.mk4
-rw-r--r--mk/target.mk17
2 files changed, 17 insertions, 4 deletions
diff --git a/mk/stage0.mk b/mk/stage0.mk
index 7d0255db4ac..b11dca3aa06 100644
--- a/mk/stage0.mk
+++ b/mk/stage0.mk
@@ -6,7 +6,9 @@ $(HBIN0_H_$(CFG_BUILD_TRIPLE))/:
 $(HLIB0_H_$(CFG_BUILD_TRIPLE))/:
 	mkdir -p $@
 
-$(HBIN0_H_$(CFG_BUILD_TRIPLE))/rustc$(X_$(CFG_BUILD_TRIPLE)):		\
+SNAPSHOT_RUSTC_POST_CLEANUP=$(HBIN0_H_$(CFG_BUILD_TRIPLE))/rustc$(X_$(CFG_BUILD_TRIPLE))
+
+$(SNAPSHOT_RUSTC_POST_CLEANUP):						\
 		$(S)src/snapshots.txt					\
 		$(S)src/etc/get-snapshot.py $(MKFILE_DEPS)		\
 		| $(HBIN0_H_$(CFG_BUILD_TRIPLE))/
diff --git a/mk/target.mk b/mk/target.mk
index 0d798f4cc1b..0ddeb84e06a 100644
--- a/mk/target.mk
+++ b/mk/target.mk
@@ -27,18 +27,28 @@ WFLAGS_ST2 = -D warnings
 # $(2) is the target triple
 # $(3) is the host triple
 
+# Every recipe in TARGET_STAGE_N outputs to $$(TLIB$(1)_T_$(2)_H_$(3),
+# a directory that can be cleaned out during the middle of a run of
+# the get-snapshot.py script.  Therefore, every recipe needs to have
+# an order-only dependency either on $(SNAPSHOT_RUSTC_POST_CLEANUP) or
+# on $$(TSREQ$(1)_T_$(2)_H_$(3)), to ensure that no products will be
+# put into the target area until after the get-snapshot.py script has
+# had its chance to clean it out; otherwise the other products will be
+# inadvertantly included in the clean out.
 
 define TARGET_STAGE_N
 
 $$(TLIB$(1)_T_$(2)_H_$(3))/libmorestack.a: \
 		rt/$(2)/stage$(1)/arch/$$(HOST_$(2))/libmorestack.a \
-		| $$(TLIB$(1)_T_$(2)_H_$(3))/
+		| $$(TLIB$(1)_T_$(2)_H_$(3))/ \
+		  $(SNAPSHOT_RUSTC_POST_CLEANUP)
 	@$$(call E, cp: $$@)
 	$$(Q)cp $$< $$@
 
 $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_RUNTIME_$(2)): \
 		rt/$(2)/stage$(1)/$(CFG_RUNTIME_$(2)) \
-		| $$(TLIB$(1)_T_$(2)_H_$(3))/
+		| $$(TLIB$(1)_T_$(2)_H_$(3))/ \
+		  $(SNAPSHOT_RUSTC_POST_CLEANUP)
 	@$$(call E, cp: $$@)
 	$$(Q)cp $$< $$@
 
@@ -77,7 +87,8 @@ ifneq ($$(findstring $(2),$$(CFG_HOST_TRIPLES)),)
 
 $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_RUSTLLVM_$(3)): \
 		rustllvm/$(2)/$(CFG_RUSTLLVM_$(3)) \
-		| $$(TLIB$(1)_T_$(2)_H_$(3))/
+		| $$(TLIB$(1)_T_$(2)_H_$(3))/ \
+		  $(SNAPSHOT_RUSTC_POST_CLEANUP)
 	@$$(call E, cp: $$@)
 	$$(Q)cp $$< $$@