28
28
PREPARE_STAGE =2
29
29
endif
30
30
31
- prepare : PREPARE_DIR_CMD=$(DEFAULT_PREPARE_DIR_CMD )
32
- prepare : PREPARE_BIN_CMD=$(DEFAULT_PREPARE_BIN_CMD )
33
- prepare : PREPARE_LIB_CMD=$(DEFAULT_PREPARE_LIB_CMD )
34
- prepare : PREPARE_MAN_CMD=$(DEFAULT_PREPARE_MAN_CMD )
35
- prepare : prepare-base
36
-
37
- prepare-base : PREPARE_SOURCE_DIR=$(PREPARE_HOST ) /stage$(PREPARE_STAGE )
38
- prepare-base : PREPARE_SOURCE_BIN_DIR=$(PREPARE_SOURCE_DIR ) /bin
39
- prepare-base : PREPARE_SOURCE_LIB_DIR=$(PREPARE_SOURCE_DIR ) /$(CFG_LIBDIR_RELATIVE )
40
- prepare-base : PREPARE_SOURCE_MAN_DIR=$(S ) /man
41
- prepare-base : PREPARE_DEST_BIN_DIR=$(PREPARE_DEST_DIR ) /bin
42
- prepare-base : PREPARE_DEST_LIB_DIR=$(PREPARE_DEST_DIR ) /$(CFG_LIBDIR_RELATIVE )
43
- prepare-base : PREPARE_DEST_MAN_DIR=$(PREPARE_DEST_DIR ) /share/man/man1
44
- prepare-base : prepare-host prepare-targets
45
-
46
- prepare-everything : prepare-host prepare-targets
47
-
48
31
DEFAULT_PREPARE_DIR_CMD = umask 022 && mkdir -p
49
32
DEFAULT_PREPARE_BIN_CMD = install -m755
50
33
DEFAULT_PREPARE_LIB_CMD = install -m644
@@ -93,29 +76,17 @@ define PREPARE_MAN
93
76
$(Q )$(PREPARE_MAN_CMD ) $(PREPARE_SOURCE_MAN_DIR ) /$(1 ) $(PREPARE_DEST_MAN_DIR ) /$(1 )
94
77
endef
95
78
96
-
97
79
PREPARE_TOOLS = $(filter-out compiletest, $(TOOLS ) )
98
80
99
- prepare-host : prepare-host-tools
100
-
101
- prepare-host-tools : \
102
- $(foreach tool, $(PREPARE_TOOLS),\
103
- $(foreach host,$(CFG_HOST),\
104
- prepare-host-tool-$(tool)-$(PREPARE_STAGE)-$(host)))
105
-
106
- prepare-host-dirs : prepare-maybe-clean
107
- $(call PREPARE_DIR,$(PREPARE_DEST_BIN_DIR ) )
108
- $(call PREPARE_DIR,$(PREPARE_DEST_LIB_DIR ) )
109
- $(call PREPARE_DIR,$(PREPARE_DEST_MAN_DIR ) )
110
81
111
82
# $(1) is tool
112
83
# $(2) is stage
113
84
# $(3) is host
85
+ # $(4) tag
114
86
define DEF_PREPARE_HOST_TOOL
115
- prepare-host-tool-$(1 ) -$(2 ) -$(3 ) : prepare-maybe-clean \
116
- $$(foreach dep,$$(TOOL_DEPS_$(1 ) ) ,prepare-host-lib-$$(dep ) -$(2 ) -$(3 ) ) \
117
- $$(HBIN$(2 ) _H_$(3 ) ) /$(1 )$$(X_$(3 ) ) \
118
- prepare-host-dirs
87
+ prepare-host-tool-$(1 ) -$(2 ) -$(3 ) -$(4 ) : prepare-maybe-clean-$(4 ) \
88
+ $$(foreach dep,$$(TOOL_DEPS_$(1 ) ) ,prepare-host-lib-$$(dep ) -$(2 ) -$(3 ) -$(4 ) ) \
89
+ prepare-host-dirs-$(4 )
119
90
$$(if $$(findstring $(2 ) , $$(PREPARE_STAGE ) ) ,\
120
91
$$(if $$(findstring $(3 ) , $$(PREPARE_HOST ) ) ,\
121
92
$$(call PREPARE_BIN,$(1 )$$(X_$$(PREPARE_HOST ) ) ) ,) ,)
@@ -124,45 +95,35 @@ prepare-host-tool-$(1)-$(2)-$(3): prepare-maybe-clean \
124
95
$$(call PREPARE_MAN,$(1 ) .1) ,) ,)
125
96
endef
126
97
127
- $(foreach tool,$(PREPARE_TOOLS),\
128
- $(foreach host,$(CFG_HOST),\
129
- $(eval $(call DEF_PREPARE_HOST_TOOL,$(tool),$(PREPARE_STAGE),$(host)))))
130
-
131
98
# For host libraries only install dylibs, not rlibs since the host libs are only
132
99
# used to support rustc and rustc uses dynamic linking
133
100
#
134
101
# $(1) is tool
135
102
# $(2) is stage
136
103
# $(3) is host
104
+ # $(4) tag
137
105
define DEF_PREPARE_HOST_LIB
138
- prepare-host-lib-$(1 ) -$(2 ) -$(3 ) : PREPARE_WORKING_SOURCE_LIB_DIR=$$(PREPARE_SOURCE_LIB_DIR )
139
- prepare-host-lib-$(1 ) -$(2 ) -$(3 ) : PREPARE_WORKING_DEST_LIB_DIR=$$(PREPARE_DEST_LIB_DIR )
140
- prepare-host-lib-$(1 ) -$(2 ) -$(3 ) : prepare-maybe-clean \
141
- $$(foreach dep,$$(RUST_DEPS_$(1 ) ) ,prepare-host-lib-$$(dep ) -$(2 ) -$(3 ) ) \
106
+ prepare-host-lib-$(1 ) -$(2 ) -$(3 ) - $( 4 ) : PREPARE_WORKING_SOURCE_LIB_DIR=$$(PREPARE_SOURCE_LIB_DIR )
107
+ prepare-host-lib-$(1 ) -$(2 ) -$(3 ) - $( 4 ) : PREPARE_WORKING_DEST_LIB_DIR=$$(PREPARE_DEST_LIB_DIR )
108
+ prepare-host-lib-$(1 ) -$(2 ) -$(3 ) - $( 4 ) : prepare-maybe-clean- $( 4 ) \
109
+ $$(foreach dep,$$(RUST_DEPS_$(1 ) ) ,prepare-host-lib-$$(dep ) -$(2 ) -$(3 ) - $( 4 ) ) \
142
110
$$(HLIB$(2 ) _H_$(3 ) ) /stamp.$(1 ) \
143
- prepare-host-dirs
111
+ prepare-host-dirs- $( 4 )
144
112
$$(if $$(findstring $(2 ) , $$(PREPARE_STAGE ) ) ,\
145
113
$$(if $$(findstring $(3 ) , $$(PREPARE_HOST ) ) ,\
146
114
$$(call PREPARE_LIB,$$(call CFG_LIB_GLOB_$$(PREPARE_HOST ) ,$(1 ) ) ) ,) ,)
147
115
endef
148
116
149
- $(foreach lib,$(CRATES),\
150
- $(foreach host,$(CFG_HOST),\
151
- $(eval $(call DEF_PREPARE_HOST_LIB,$(lib),$(PREPARE_STAGE),$(host)))))
152
-
153
- prepare-targets :\
154
- $(foreach host,$(CFG_HOST),\
155
- $(foreach target,$(CFG_TARGET),\
156
- prepare-target-$(target)-host-$(host)-$(PREPARE_STAGE)))
157
117
158
118
# $(1) is stage
159
119
# $(2) is target
160
120
# $(3) is host
121
+ # $(4) tag
161
122
define DEF_PREPARE_TARGET_N
162
123
# Rebind PREPARE_*_LIB_DIR to point to rustlib, then install the libs for the targets
163
- prepare-target-$(2 ) -host-$(3 ) -$(1 ) : PREPARE_WORKING_SOURCE_LIB_DIR=$$(PREPARE_SOURCE_LIB_DIR ) /$$(CFG_RUSTLIBDIR ) /$(2 ) /lib
164
- prepare-target-$(2 ) -host-$(3 ) -$(1 ) : PREPARE_WORKING_DEST_LIB_DIR=$$(PREPARE_DEST_LIB_DIR ) /$$(CFG_RUSTLIBDIR ) /$(2 ) /lib
165
- prepare-target-$(2 ) -host-$(3 ) -$(1 ) : prepare-maybe-clean \
124
+ prepare-target-$(2 ) -host-$(3 ) -$(1 ) - $( 4 ) : PREPARE_WORKING_SOURCE_LIB_DIR=$$(PREPARE_SOURCE_LIB_DIR ) /$$(CFG_RUSTLIBDIR ) /$(2 ) /lib
125
+ prepare-target-$(2 ) -host-$(3 ) -$(1 ) - $( 4 ) : PREPARE_WORKING_DEST_LIB_DIR=$$(PREPARE_DEST_LIB_DIR ) /$$(CFG_RUSTLIBDIR ) /$(2 ) /lib
126
+ prepare-target-$(2 ) -host-$(3 ) -$(1 ) - $( 4 ) : prepare-maybe-clean- $( 4 ) \
166
127
$$(foreach crate,$$(TARGET_CRATES ) , \
167
128
$$(TLIB$(1 ) _T_$(2 ) _H_$(3 ) ) /stamp.$$(crate ) ) \
168
129
$$(if $$(findstring $(2 ) ,$$(CFG_HOST ) ) , \
@@ -186,12 +147,53 @@ prepare-target-$(2)-host-$(3)-$(1): prepare-maybe-clean \
186
147
$$(call PREPARE_LIB,libcompiler-rt.a) ,) ,) ,)
187
148
endef
188
149
189
- $(foreach host,$(CFG_HOST),\
190
- $(foreach target,$(CFG_TARGET), \
191
- $(eval $(call DEF_PREPARE_TARGET_N,$(PREPARE_STAGE),$(target),$(host)))))
150
+ define DEF_PREPARE
151
+
152
+ prepare-base-$(1 ) : PREPARE_SOURCE_DIR=$$(PREPARE_HOST ) /stage$$(PREPARE_STAGE )
153
+ prepare-base-$(1 ) : PREPARE_SOURCE_BIN_DIR=$$(PREPARE_SOURCE_DIR ) /bin
154
+ prepare-base-$(1 ) : PREPARE_SOURCE_LIB_DIR=$$(PREPARE_SOURCE_DIR ) /$$(CFG_LIBDIR_RELATIVE )
155
+ prepare-base-$(1 ) : PREPARE_SOURCE_MAN_DIR=$$(S ) /man
156
+ prepare-base-$(1 ) : PREPARE_DEST_BIN_DIR=$$(PREPARE_DEST_DIR ) /bin
157
+ prepare-base-$(1 ) : PREPARE_DEST_LIB_DIR=$$(PREPARE_DEST_DIR ) /$$(CFG_LIBDIR_RELATIVE )
158
+ prepare-base-$(1 ) : PREPARE_DEST_MAN_DIR=$$(PREPARE_DEST_DIR ) /share/man/man1
159
+ prepare-base-$(1 ) : prepare-host-$(1 ) prepare-targets-$(1 )
160
+
161
+ prepare-host-$(1 ) : prepare-host-tools-$(1 )
162
+
163
+ prepare-host-tools-$(1 ) : \
164
+ $$(foreach tool, $$(PREPARE_TOOLS ) ,\
165
+ $$(foreach host,$$(CFG_HOST ) ,\
166
+ prepare-host-tool-$$(tool ) -$$(PREPARE_STAGE ) -$$(host ) -$(1 ) ) )
167
+
168
+ prepare-host-dirs-$(1 ) : prepare-maybe-clean-$(1 )
169
+ $$(call PREPARE_DIR,$$(PREPARE_DEST_BIN_DIR ) )
170
+ $$(call PREPARE_DIR,$$(PREPARE_DEST_LIB_DIR ) )
171
+ $$(call PREPARE_DIR,$$(PREPARE_DEST_MAN_DIR ) )
172
+
173
+ $$(foreach tool,$$(PREPARE_TOOLS ) ,\
174
+ $$(foreach host,$$(CFG_HOST ) ,\
175
+ $$(eval $$(call DEF_PREPARE_HOST_TOOL,$$(tool ) ,$$(PREPARE_STAGE ) ,$$(host ) ,$(1 ) ) ) ) )
176
+
177
+ $$(foreach lib,$$(CRATES ) ,\
178
+ $$(foreach host,$$(CFG_HOST ) ,\
179
+ $$(eval $$(call DEF_PREPARE_HOST_LIB,$$(lib ) ,$$(PREPARE_STAGE ) ,$$(host ) ,$(1 ) ) ) ) )
180
+
181
+ prepare-targets-$(1 ) :\
182
+ $$(foreach host,$$(CFG_HOST ) ,\
183
+ $$(foreach target,$$(CFG_TARGET ) ,\
184
+ prepare-target-$$(target ) -host-$$(host ) -$$(PREPARE_STAGE ) -$(1 ) ) )
185
+
186
+ $$(foreach host,$$(CFG_HOST ) ,\
187
+ $$(foreach target,$$(CFG_TARGET ) , \
188
+ $$(eval $$(call DEF_PREPARE_TARGET_N,$$(PREPARE_STAGE ) ,$$(target ) ,$$(host ) ,$(1 ) ) ) ) )
189
+
190
+ prepare-maybe-clean-$(1 ) :
191
+ $$(if $$(findstring true,$$(PREPARE_CLEAN ) ) ,\
192
+ @$$(call E, cleaning destination $$(PREPARE_DEST_DIR ) ) ,)
193
+ $$(if $$(findstring true,$$(PREPARE_CLEAN ) ) ,\
194
+ $$(Q ) rm -rf $$(PREPARE_DEST_DIR ) ,)
195
+
196
+
197
+ endef
198
+
192
199
193
- prepare-maybe-clean :
194
- $(if $(findstring true,$(PREPARE_CLEAN ) ) ,\
195
- @$(call E, cleaning destination $(PREPARE_DEST_DIR)),)
196
- $(if $(findstring true,$(PREPARE_CLEAN)),\
197
- $(Q)rm -rf $(PREPARE_DEST_DIR),)
0 commit comments