Skip to content

Commit 8fdcd4a

Browse files
committed
---
yaml --- r: 142714 b: refs/heads/try2 c: e7040e8 h: refs/heads/master v: v3
1 parent 2565e4b commit 8fdcd4a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

72 files changed

+6104
-2194
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ refs/heads/snap-stage3: 78a7676898d9f80ab540c6df5d4c9ce35bb50463
55
refs/heads/try: 519addf6277dbafccbb4159db4b710c37eaa2ec5
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
8-
refs/heads/try2: 4412df20ae5bbb1c52e6271f3667639c95a2b726
8+
refs/heads/try2: e7040e8a249a8cd53931603b89e0d12b0b854398
99
refs/heads/dist-snap: ba4081a5a8573875fed17545846f6f6902c8ba8d
1010
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
1111
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503

branches/try2/Makefile.in

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,39 @@ LIBRUST_DSYM_GLOB_$(1) :=$(call CFG_LIB_DSYM_GLOB_$(1),rust)
235235

236236
endef
237237

238+
# $(1) is the path for directory to match against
239+
# $(2) is the glob to use in the match
240+
# $(3) is filename (usually the target being created) to filter out from match
241+
# (i.e. filename is not out-of-date artifact from prior Rust version/build)
242+
#
243+
# Note that a common bug is to accidentally construct the glob denoted
244+
# by $(2) with a space character prefix, which invalidates the
245+
# construction $(1)$(2).
246+
define CHECK_FOR_OLD_GLOB_MATCHES_EXCEPT
247+
$(Q)MATCHES="$(filter-out %$(3),$(wildcard $(1)/$(2)))"; if [ -n "$$MATCHES" ] ; then echo "Warning: there are previous" \'$(2)\' "libraries:" $$MATCHES; fi
248+
endef
249+
250+
# Same interface as above, but deletes rather than just listing the files.
251+
define REMOVE_ALL_OLD_GLOB_MATCHES_EXCEPT
252+
$(Q)MATCHES="$(filter-out %$(3),$(wildcard $(1)/$(2)))"; if [ -n "$$MATCHES" ] ; then echo "Warning: removing previous" \'$(2)\' "libraries:" $$MATCHES; rm -v $$MATCHES ; fi
253+
endef
254+
255+
# We use a different strategy for LIST_ALL_OLD_GLOB_MATCHES_EXCEPT
256+
# than in the macros above because it needs the result of running the
257+
# `ls` command after other rules in the command list have run; the
258+
# macro-expander for $(wildcard ...) would deliver its results too
259+
# soon. (This is in contrast to the macros above, which are meant to
260+
# be run at the outset of a command list in a rule.)
261+
ifdef VERBOSE
262+
define LIST_ALL_OLD_GLOB_MATCHES_EXCEPT
263+
@echo "Info: now are following matches for" '$(2)' "libraries:"
264+
@( cd $(1) && ( ls $(2) 2>/dev/null || true ) | grep -v $(3) || true )
265+
endef
266+
else
267+
define LIST_ALL_OLD_GLOB_MATCHES_EXCEPT
268+
endef
269+
endif
270+
238271
$(foreach target,$(CFG_TARGET_TRIPLES),\
239272
$(eval $(call DEF_LIBS,$(target))))
240273

branches/try2/mk/host.mk

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,12 @@ $$(HLIB$(2)_H_$(4))/$(CFG_LIBRUSTC_$(4)): \
4545
| $$(HLIB$(2)_H_$(4))/
4646

4747
@$$(call E, cp: $$@)
48+
$$(call REMOVE_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(LIBRUSTC_GLOB_$(4)),$$(notdir $$@))
4849
$$(Q)cp $$< $$@
4950
$$(Q)cp -R $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBRUSTC_GLOB_$(4)) \
5051
$(wildcard $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBRUSTC_DSYM_GLOB_$(4))) \
5152
$$(HLIB$(2)_H_$(4))
53+
$$(call LIST_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(LIBRUSTC_GLOB_$(4)),$$(notdir $$@))
5254

5355
$$(HLIB$(2)_H_$(4))/$(CFG_LIBSYNTAX_$(4)): \
5456
$$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBSYNTAX_$(4)) \
@@ -58,10 +60,12 @@ $$(HLIB$(2)_H_$(4))/$(CFG_LIBSYNTAX_$(4)): \
5860
$$(HEXTRALIB_DEFAULT$(2)_H_$(4)) \
5961
| $$(HLIB$(2)_H_$(4))/
6062
@$$(call E, cp: $$@)
63+
$$(call REMOVE_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(LIBSYNTAX_GLOB_$(4)),$$(notdir $$@))
6164
$$(Q)cp $$< $$@
6265
$$(Q)cp -R $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBSYNTAX_GLOB_$(4)) \
6366
$$(wildcard $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBSYNTAX_DSYM_GLOB_$(4))) \
6467
$$(HLIB$(2)_H_$(4))
68+
$$(call LIST_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(LIBSYNTAX_GLOB_$(4)),$$(notdir $$@))
6569

6670
$$(HLIB$(2)_H_$(4))/$(CFG_RUNTIME_$(4)): \
6771
$$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_RUNTIME_$(4)) \
@@ -74,6 +78,7 @@ $$(HLIB$(2)_H_$(4))/$(CFG_STDLIB_$(4)): \
7478
$$(HLIB$(2)_H_$(4))/$(CFG_RUNTIME_$(4)) \
7579
| $$(HLIB$(2)_H_$(4))/
7680
@$$(call E, cp: $$@)
81+
$$(call REMOVE_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(STDLIB_GLOB_$(4)),$$(notdir $$@))
7782
$$(Q)cp $$< $$@
7883
# Subtle: We do not let the shell expand $(STDLIB_DSYM_GLOB) directly rather
7984
# we use Make's $$(wildcard) facility. The reason is that, on mac, when using
@@ -85,17 +90,20 @@ $$(HLIB$(2)_H_$(4))/$(CFG_STDLIB_$(4)): \
8590
$$(Q)cp -R $$(TLIB$(1)_T_$(4)_H_$(3))/$(STDLIB_GLOB_$(4)) \
8691
$$(wildcard $$(TLIB$(1)_T_$(4)_H_$(3))/$(STDLIB_DSYM_GLOB_$(4))) \
8792
$$(HLIB$(2)_H_$(4))
93+
$$(call LIST_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(STDLIB_GLOB_$(4)),$$(notdir $$@))
8894

8995
$$(HLIB$(2)_H_$(4))/$(CFG_EXTRALIB_$(4)): \
9096
$$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_EXTRALIB_$(4)) \
9197
$$(HLIB$(2)_H_$(4))/$(CFG_STDLIB_$(4)) \
9298
$$(HLIB$(2)_H_$(4))/$(CFG_RUNTIME_$(4)) \
9399
| $$(HLIB$(2)_H_$(4))/
94100
@$$(call E, cp: $$@)
101+
$$(call REMOVE_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(EXTRALIB_GLOB_$(4)),$$(notdir $$@))
95102
$$(Q)cp $$< $$@
96103
$$(Q)cp -R $$(TLIB$(1)_T_$(4)_H_$(3))/$(EXTRALIB_GLOB_$(4)) \
97104
$$(wildcard $$(TLIB$(1)_T_$(4)_H_$(3))/$(EXTRALIB_DSYM_GLOB_$(4))) \
98105
$$(HLIB$(2)_H_$(4))
106+
$$(call LIST_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(EXTRALIB_GLOB_$(4)),$$(notdir $$@))
99107

100108
$$(HLIB$(2)_H_$(4))/libstd.rlib: \
101109
$$(TLIB$(1)_T_$(4)_H_$(3))/libstd.rlib \

branches/try2/mk/install.mk

Lines changed: 64 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,48 @@
1212
# For consistency it might be desirable for stageN to be an exact
1313
# mirror of the installation directory structure.
1414

15-
# Installation macro. Call with source directory as arg 1,
16-
# destination directory as arg 2, and filename/libname-glob as arg 3
15+
# Installation macros.
16+
# For INSTALL,
17+
# $(1) is the source dirctory
18+
# $(2) is the destination directory
19+
# $(3) is the filename/libname-glob
1720
ifdef VERBOSE
1821
INSTALL = install -m755 $(1)/$(3) $(2)/$(3)
19-
INSTALL_LIB = install -m644 `ls -drt1 $(1)/$(3) | tail -1` $(2)/
2022
else
2123
INSTALL = $(Q)$(call E, install: $(2)/$(3)) && install -m755 $(1)/$(3) $(2)/$(3)
22-
INSTALL_LIB = $(Q)$(call E, install_lib: $(2)/$(3)) && \
23-
install -m644 `ls -drt1 $(1)/$(3) | tail -1` $(2)/
2424
endif
2525

26+
# For INSTALL_LIB,
27+
# Target-specific $(LIB_SOURCE_DIR) is the source directory
28+
# Target-specific $(LIB_DESTIN_DIR) is the destination directory
29+
# $(1) is the filename/libname-glob
30+
ifdef VERBOSE
31+
DO_INSTALL_LIB = install -m644 `ls -drt1 $(LIB_SOURCE_DIR)/$(1) | tail -1` $(LIB_DESTIN_DIR)/
32+
else
33+
DO_INSTALL_LIB = $(Q)$(call E, install_lib: $(LIB_DESTIN_DIR)/$(1)) && \
34+
install -m644 `ls -drt1 $(LIB_SOURCE_DIR)/$(1) | tail -1` $(LIB_DESTIN_DIR)/
35+
endif
36+
37+
# Target-specific $(LIB_SOURCE_DIR) is the source directory
38+
# Target-specific $(LIB_DESTIN_DIR) is the destination directory
39+
# $(1) is the filename/libname-glob
40+
define INSTALL_LIB
41+
$(if $(filter-out 1,$(words $(wildcard $(LIB_SOURCE_DIR)/$(1)))), \
42+
$(error Aborting install because more than one library matching \
43+
$(1) is present in build tree $(LIB_SOURCE_DIR): \
44+
$(wildcard $(LIB_SOURCE_DIR)/$(1))))
45+
$(Q)LIB_NAME="$(notdir $(lastword $(wildcard $(LIB_SOURCE_DIR)/$(1))))"; \
46+
MATCHES="$(filter-out %$(notdir $(lastword $(wildcard $(LIB_SOURCE_DIR)/$(1)))),\
47+
$(wildcard $(LIB_DESTIN_DIR)/$(1)))"; \
48+
if [ -n "$$MATCHES" ]; then \
49+
echo "Warning, one or libraries matching Rust library '$(1)'" && \
50+
echo " (other than '$$LIB_NAME' itself) already present" && \
51+
echo " at destination $(LIB_DESTIN_DIR):" && \
52+
echo $$MATCHES ; \
53+
fi
54+
$(call DO_INSTALL_LIB,$(1))
55+
endef
56+
2657
# The stage we install from
2758
ISTAGE = 2
2859

@@ -49,38 +80,32 @@ $(foreach target,$(CFG_TARGET_TRIPLES), \
4980
$(eval $(call INSTALL_PREPARE_N,$(target),$(CFG_BUILD_TRIPLE))))
5081

5182
define INSTALL_TARGET_N
83+
install-target-$(1)-host-$(2): LIB_SOURCE_DIR=$$(TL$(1)$(2))
84+
install-target-$(1)-host-$(2): LIB_DESTIN_DIR=$$(PTL$(1)$(2))
5285
install-target-$(1)-host-$(2): $$(TSREQ$$(ISTAGE)_T_$(1)_H_$(2)) $$(SREQ$$(ISTAGE)_T_$(1)_H_$(2))
5386
$$(Q)mkdir -p $$(PTL$(1)$(2))
54-
$$(Q)$$(call INSTALL_LIB,$$(TL$(1)$(2)),$$(PTL$(1)$(2)),$$(CFG_RUNTIME_$(1)))
55-
$$(Q)$$(call INSTALL_LIB, \
56-
$$(TL$(1)$(2)),$$(PTL$(1)$(2)),$$(STDLIB_GLOB_$(1)))
57-
$$(Q)$$(call INSTALL_LIB, \
58-
$$(TL$(1)$(2)),$$(PTL$(1)$(2)),$$(EXTRALIB_GLOB_$(1)))
59-
$$(Q)$$(call INSTALL_LIB,$$(TL$(1)$(2)),$$(PTL$(1)$(2)),libmorestack.a)
87+
$$(Q)$$(call INSTALL_LIB,$$(CFG_RUNTIME_$(1)))
88+
$$(Q)$$(call INSTALL_LIB,$$(STDLIB_GLOB_$(1)))
89+
$$(Q)$$(call INSTALL_LIB,$$(EXTRALIB_GLOB_$(1)))
90+
$$(Q)$$(call INSTALL_LIB,libmorestack.a)
6091

6192
endef
6293

6394
define INSTALL_HOST_N
95+
install-target-$(1)-host-$(2): LIB_SOURCE_DIR=$$(TL$(1)$(2))
96+
install-target-$(1)-host-$(2): LIB_DESTIN_DIR=$$(PTL$(1)$(2))
6497
install-target-$(1)-host-$(2): $$(CSREQ$$(ISTAGE)_T_$(1)_H_$(2))
6598
$$(Q)mkdir -p $$(PTL$(1)$(2))
66-
$$(Q)$$(call INSTALL_LIB,$$(TL$(1)$(2)),$$(PTL$(1)$(2)),$$(CFG_RUNTIME_$(1)))
67-
$$(Q)$$(call INSTALL_LIB, \
68-
$$(TL$(1)$(2)),$$(PTL$(1)$(2)),$$(STDLIB_GLOB_$(1)))
69-
$$(Q)$$(call INSTALL_LIB, \
70-
$$(TL$(1)$(2)),$$(PTL$(1)$(2)),$$(EXTRALIB_GLOB_$(1)))
71-
$$(Q)$$(call INSTALL_LIB, \
72-
$$(TL$(1)$(2)),$$(PTL$(1)$(2)),$$(LIBRUSTC_GLOB_$(1)))
73-
$$(Q)$$(call INSTALL_LIB, \
74-
$$(TL$(1)$(2)),$$(PTL$(1)$(2)),$$(LIBSYNTAX_GLOB_$(1)))
75-
$$(Q)$$(call INSTALL_LIB, \
76-
$$(TL$(1)$(2)),$$(PTL$(1)$(2)),$$(LIBRUSTPKG_GLOB_$(1)))
77-
$$(Q)$$(call INSTALL_LIB, \
78-
$$(TL$(1)$(2)),$$(PTL$(1)$(2)),$$(LIBRUSTDOC_GLOB_$(1)))
79-
$$(Q)$$(call INSTALL_LIB, \
80-
$$(TL$(1)$(2)),$$(PTL$(1)$(2)),$$(LIBRUSTI_GLOB_$(1)))
81-
$$(Q)$$(call INSTALL_LIB, \
82-
$$(TL$(1)$(2)),$$(PTL$(1)$(2)),$$(LIBRUST_GLOB_$(1)))
83-
$$(Q)$$(call INSTALL_LIB,$$(TL$(1)$(2)),$$(PTL$(1)$(2)),libmorestack.a)
99+
$$(Q)$$(call INSTALL_LIB,$$(CFG_RUNTIME_$(1)))
100+
$$(Q)$$(call INSTALL_LIB,$$(STDLIB_GLOB_$(1)))
101+
$$(Q)$$(call INSTALL_LIB,$$(EXTRALIB_GLOB_$(1)))
102+
$$(Q)$$(call INSTALL_LIB,$$(LIBRUSTC_GLOB_$(1)))
103+
$$(Q)$$(call INSTALL_LIB,$$(LIBSYNTAX_GLOB_$(1)))
104+
$$(Q)$$(call INSTALL_LIB,$$(LIBRUSTPKG_GLOB_$(1)))
105+
$$(Q)$$(call INSTALL_LIB,$$(LIBRUSTDOC_GLOB_$(1)))
106+
$$(Q)$$(call INSTALL_LIB,$$(LIBRUSTI_GLOB_$(1)))
107+
$$(Q)$$(call INSTALL_LIB,$$(LIBRUST_GLOB_$(1)))
108+
$$(Q)$$(call INSTALL_LIB,libmorestack.a)
84109

85110
endef
86111

@@ -104,6 +129,8 @@ PHB = $(PREFIX_BIN)
104129
# Shorthand for the prefix bin directory
105130
PHL = $(PREFIX_LIB)
106131

132+
install-host: LIB_SOURCE_DIR=$(HL)
133+
install-host: LIB_DESTIN_DIR=$(PHL)
107134
install-host: $(CSREQ$(ISTAGE)_T_$(CFG_BUILD_TRIPLE)_H_$(CFG_BUILD_TRIPLE))
108135
$(Q)mkdir -p $(PREFIX_BIN)
109136
$(Q)mkdir -p $(PREFIX_LIB)
@@ -113,14 +140,14 @@ install-host: $(CSREQ$(ISTAGE)_T_$(CFG_BUILD_TRIPLE)_H_$(CFG_BUILD_TRIPLE))
113140
$(Q)$(call INSTALL,$(HB2),$(PHB),rustdoc$(X_$(CFG_BUILD_TRIPLE)))
114141
$(Q)$(call INSTALL,$(HB2),$(PHB),rusti$(X_$(CFG_BUILD_TRIPLE)))
115142
$(Q)$(call INSTALL,$(HB2),$(PHB),rust$(X_$(CFG_BUILD_TRIPLE)))
116-
$(Q)$(call INSTALL_LIB,$(HL),$(PHL),$(STDLIB_GLOB_$(CFG_BUILD_TRIPLE)))
117-
$(Q)$(call INSTALL_LIB,$(HL),$(PHL),$(EXTRALIB_GLOB_$(CFG_BUILD_TRIPLE)))
118-
$(Q)$(call INSTALL_LIB,$(HL),$(PHL),$(LIBRUSTC_GLOB_$(CFG_BUILD_TRIPLE)))
119-
$(Q)$(call INSTALL_LIB,$(HL),$(PHL),$(LIBSYNTAX_GLOB_$(CFG_BUILD_TRIPLE)))
120-
$(Q)$(call INSTALL_LIB,$(HL),$(PHL),$(LIBRUSTI_GLOB_$(CFG_BUILD_TRIPLE)))
121-
$(Q)$(call INSTALL_LIB,$(HL),$(PHL),$(LIBRUST_GLOB_$(CFG_BUILD_TRIPLE)))
122-
$(Q)$(call INSTALL_LIB,$(HL),$(PHL),$(LIBRUSTPKG_GLOB_$(CFG_BUILD_TRIPLE)))
123-
$(Q)$(call INSTALL_LIB,$(HL),$(PHL),$(LIBRUSTDOC_GLOB_$(CFG_BUILD_TRIPLE)))
143+
$(Q)$(call INSTALL_LIB,$(STDLIB_GLOB_$(CFG_BUILD_TRIPLE)))
144+
$(Q)$(call INSTALL_LIB,$(EXTRALIB_GLOB_$(CFG_BUILD_TRIPLE)))
145+
$(Q)$(call INSTALL_LIB,$(LIBRUSTC_GLOB_$(CFG_BUILD_TRIPLE)))
146+
$(Q)$(call INSTALL_LIB,$(LIBSYNTAX_GLOB_$(CFG_BUILD_TRIPLE)))
147+
$(Q)$(call INSTALL_LIB,$(LIBRUSTI_GLOB_$(CFG_BUILD_TRIPLE)))
148+
$(Q)$(call INSTALL_LIB,$(LIBRUST_GLOB_$(CFG_BUILD_TRIPLE)))
149+
$(Q)$(call INSTALL_LIB,$(LIBRUSTPKG_GLOB_$(CFG_BUILD_TRIPLE)))
150+
$(Q)$(call INSTALL_LIB,$(LIBRUSTDOC_GLOB_$(CFG_BUILD_TRIPLE)))
124151
$(Q)$(call INSTALL,$(HL),$(PHL),$(CFG_RUNTIME_$(CFG_BUILD_TRIPLE)))
125152
$(Q)$(call INSTALL,$(HL),$(PHL),$(CFG_RUSTLLVM_$(CFG_BUILD_TRIPLE)))
126153
$(Q)$(call INSTALL,$(S)/man, \

branches/try2/mk/stage0.mk

Lines changed: 42 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,16 @@
11
# Extract the snapshot host compiler
22

3+
$(HBIN0_H_$(CFG_BUILD_TRIPLE))/:
4+
mkdir -p $@
35

6+
$(HLIB0_H_$(CFG_BUILD_TRIPLE))/:
7+
mkdir -p $@
48

59
$(HBIN0_H_$(CFG_BUILD_TRIPLE))/rustc$(X_$(CFG_BUILD_TRIPLE)): \
610
$(S)src/snapshots.txt \
7-
$(S)src/etc/get-snapshot.py $(MKFILE_DEPS)
11+
$(S)src/etc/get-snapshot.py $(MKFILE_DEPS) \
12+
| $(HBIN0_H_$(CFG_BUILD_TRIPLE))/
13+
814
@$(call E, fetch: $@)
915
# Note: the variable "SNAPSHOT_FILE" is generally not set, and so
1016
# we generally only pass one argument to this script.
@@ -22,23 +28,28 @@ endif
2228
# Host libs will be extracted by the above rule
2329

2430
$(HLIB0_H_$(CFG_BUILD_TRIPLE))/$(CFG_RUNTIME_$(CFG_BUILD_TRIPLE)): \
25-
$(HBIN0_H_$(CFG_BUILD_TRIPLE))/rustc$(X_$(CFG_BUILD_TRIPLE))
31+
$(HBIN0_H_$(CFG_BUILD_TRIPLE))/rustc$(X_$(CFG_BUILD_TRIPLE)) \
32+
| $(HLIB0_H_$(CFG_BUILD_TRIPLE))/
2633
$(Q)touch $@
2734

2835
$(HLIB0_H_$(CFG_BUILD_TRIPLE))/$(CFG_STDLIB_$(CFG_BUILD_TRIPLE)): \
29-
$(HBIN0_H_$(CFG_BUILD_TRIPLE))/rustc$(X_$(CFG_BUILD_TRIPLE))
36+
$(HBIN0_H_$(CFG_BUILD_TRIPLE))/rustc$(X_$(CFG_BUILD_TRIPLE)) \
37+
| $(HLIB0_H_$(CFG_BUILD_TRIPLE))/
3038
$(Q)touch $@
3139

3240
$(HLIB0_H_$(CFG_BUILD_TRIPLE))/$(CFG_EXTRALIB_$(CFG_BUILD_TRIPLE)): \
33-
$(HBIN0_H_$(CFG_BUILD_TRIPLE))/rustc$(X_$(CFG_BUILD_TRIPLE))
41+
$(HBIN0_H_$(CFG_BUILD_TRIPLE))/rustc$(X_$(CFG_BUILD_TRIPLE)) \
42+
| $(HLIB0_H_$(CFG_BUILD_TRIPLE))/
3443
$(Q)touch $@
3544

3645
$(HLIB0_H_$(CFG_BUILD_TRIPLE))/$(CFG_LIBRUSTC_$(CFG_BUILD_TRIPLE)): \
37-
$(HBIN0_H_$(CFG_BUILD_TRIPLE))/rustc$(X_$(CFG_BUILD_TRIPLE))
46+
$(HBIN0_H_$(CFG_BUILD_TRIPLE))/rustc$(X_$(CFG_BUILD_TRIPLE)) \
47+
| $(HLIB0_H_$(CFG_BUILD_TRIPLE))/
3848
$(Q)touch $@
3949

4050
$(HLIB0_H_$(CFG_BUILD_TRIPLE))/$(CFG_RUSTLLVM_$(CFG_BUILD_TRIPLE)): \
41-
$(HBIN0_H_$(CFG_BUILD_TRIPLE))/rustc$(X_$(CFG_BUILD_TRIPLE))
51+
$(HBIN0_H_$(CFG_BUILD_TRIPLE))/rustc$(X_$(CFG_BUILD_TRIPLE)) \
52+
| $(HLIB0_H_$(CFG_BUILD_TRIPLE))/
4253
$(Q)touch $@
4354

4455
# For other targets, let the host build the target:
@@ -48,33 +59,51 @@ define BOOTSTRAP_STAGE0
4859
# $(2) stage to bootstrap from
4960
# $(3) target to bootstrap from
5061

51-
$$(HBIN0_H_$(1))/rustc$$(X_$(1)): \
52-
$$(TBIN$(2)_T_$(1)_H_$(3))/rustc$$(X_$(1))
62+
$(HBIN0_H_$(1))/:
63+
mkdir -p $@
64+
65+
$(HLIB0_H_$(1))/:
66+
mkdir -p $@
67+
68+
$$(HBIN0_H_$(1))/rustc$$(X_$(1)): \
69+
$$(TBIN$(2)_T_$(1)_H_$(3))/rustc$$(X_$(1)) \
70+
| $(HBIN0_H_$(1))/
5371
@$$(call E, cp: $$@)
5472
$$(Q)cp $$< $$@
5573

5674
$$(HLIB0_H_$(1))/$(CFG_RUNTIME_$(1)): \
57-
$$(TLIB$(2)_T_$(1)_H_$(3))/$(CFG_RUNTIME_$(1))
75+
$$(TLIB$(2)_T_$(1)_H_$(3))/$(CFG_RUNTIME_$(1)) \
76+
| $(HLIB0_H_$(1))/
5877
@$$(call E, cp: $$@)
5978
$$(Q)cp $$< $$@
6079

6180
$$(HLIB0_H_$(1))/$(CFG_STDLIB_$(1)): \
62-
$$(TLIB$(2)_T_$(1)_H_$(3))/$(CFG_STDLIB_$(1))
81+
$$(TLIB$(2)_T_$(1)_H_$(3))/$(CFG_STDLIB_$(1)) \
82+
| $(HLIB0_H_$(1))/
6383
@$$(call E, cp: $$@)
84+
$$(call CHECK_FOR_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(EXTRALIB_GLOB_$(4)),$$(notdir $$@))
6485
$$(Q)cp $$(TLIB$(2)_T_$(1)_H_$(3))/$(STDLIB_GLOB_$(1)) $$@
86+
$$(call LIST_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(EXTRALIB_GLOB_$(4)),$$(notdir $$@))
6587

6688
$$(HLIB0_H_$(1))/$(CFG_EXTRALIB_$(1)): \
67-
$$(TLIB$(2)_T_$(1)_H_$(3))/$(CFG_EXTRALIB_$(1))
89+
$$(TLIB$(2)_T_$(1)_H_$(3))/$(CFG_EXTRALIB_$(1)) \
90+
| $(HLIB0_H_$(1))/
6891
@$$(call E, cp: $$@)
92+
$$(call CHECK_FOR_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(EXTRALIB_GLOB_$(4)),$$(notdir $$@))
6993
$$(Q)cp $$(TLIB$(2)_T_$(1)_H_$(3))/$(EXTRALIB_GLOB_$(1)) $$@
94+
$$(call LIST_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(EXTRALIB_GLOB_$(4)),$$(notdir $$@))
7095

7196
$$(HLIB0_H_$(1))/$(CFG_LIBRUSTC_$(1)): \
72-
$$(TLIB$(2)_T_$(1)_H_$(3))/$(CFG_LIBRUSTC_$(1))
97+
$$(TLIB$(2)_T_$(1)_H_$(3))/$(CFG_LIBRUSTC_$(1)) \
98+
| $(HLIB0_H_$(1))/
7399
@$$(call E, cp: $$@)
100+
$$(call CHECK_FOR_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(LIBRUSTC_GLOB_$(4)),$$(notdir $$@))
74101
$$(Q)cp $$(TLIB$(2)_T_$(1)_H_$(3))/$(LIBRUSTC_GLOB_$(1)) $$@
102+
$$(call LIST_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(LIBRUSTC_GLOB_$(4)),$$(notdir $$@))
75103

76104
$$(HLIB0_H_$(1))/$(CFG_RUSTLLVM_$(1)): \
77-
$$(TLIB$(2)_T_$(1)_H_$(3))/$(CFG_RUSTLLVM_$(1))
105+
$$(TLIB$(2)_T_$(1)_H_$(3))/$(CFG_RUSTLLVM_$(1)) \
106+
| $(HLIB0_H_$(1))/
78107
@$$(call E, cp: $$@)
79108
$$(Q)cp $$< $$@
80109

branches/try2/mk/target.mk

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,15 +48,19 @@ $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_STDLIB_$(2)): \
4848
$$(TSREQ$(1)_T_$(2)_H_$(3)) \
4949
| $$(TLIB$(1)_T_$(2)_H_$(3))/
5050
@$$(call E, compile_and_link: $$@)
51+
$$(call REMOVE_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(STDLIB_GLOB_$(2)),$$(notdir $$@))
5152
$$(STAGE$(1)_T_$(2)_H_$(3)) $$(WFLAGS_ST$(1)) -o $$@ $$< && touch $$@
53+
$$(call LIST_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(STDLIB_GLOB_$(2)),$$(notdir $$@))
5254

5355
$$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_EXTRALIB_$(2)): \
5456
$$(EXTRALIB_CRATE) $$(EXTRALIB_INPUTS) \
5557
$$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_STDLIB_$(2)) \
5658
$$(TSREQ$(1)_T_$(2)_H_$(3)) \
5759
| $$(TLIB$(1)_T_$(2)_H_$(3))/
5860
@$$(call E, compile_and_link: $$@)
61+
$$(call REMOVE_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(EXTRALIB_GLOB_$(2)),$$(notdir $$@))
5962
$$(STAGE$(1)_T_$(2)_H_$(3)) $$(WFLAGS_ST$(1)) -o $$@ $$< && touch $$@
63+
$$(call LIST_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(EXTRALIB_GLOB_$(2)),$$(notdir $$@))
6064

6165
$$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBSYNTAX_$(3)): \
6266
$$(LIBSYNTAX_CRATE) $$(LIBSYNTAX_INPUTS) \
@@ -65,7 +69,9 @@ $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBSYNTAX_$(3)): \
6569
$$(TEXTRALIB_DEFAULT$(1)_T_$(2)_H_$(3)) \
6670
| $$(TLIB$(1)_T_$(2)_H_$(3))/
6771
@$$(call E, compile_and_link: $$@)
72+
$$(call REMOVE_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(LIBSYNTAX_GLOB_$(2)),$$(notdir $$@))
6873
$$(STAGE$(1)_T_$(2)_H_$(3)) $(BORROWCK) -o $$@ $$< && touch $$@
74+
$$(call LIST_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(LIBSYNTAX_GLOB_$(2)),$$(notdir $$@))
6975

7076
# Only build the compiler for host triples
7177
ifneq ($$(findstring $(2),$$(CFG_HOST_TRIPLES)),)
@@ -83,7 +89,9 @@ $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUSTC_$(3)): \
8389
$$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_RUSTLLVM_$(3)) \
8490
| $$(TLIB$(1)_T_$(2)_H_$(3))/
8591
@$$(call E, compile_and_link: $$@)
92+
$$(call REMOVE_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(LIBRUSTC_GLOB_$(2)),$$(notdir $$@))
8693
$$(STAGE$(1)_T_$(2)_H_$(3)) -o $$@ $$< && touch $$@
94+
$$(call LIST_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(LIBRUSTC_GLOB_$(2)),$$(notdir $$@))
8795

8896
$$(TBIN$(1)_T_$(2)_H_$(3))/rustc$$(X_$(3)): \
8997
$$(DRIVER_CRATE) \

0 commit comments

Comments
 (0)