@@ -70,16 +70,22 @@ include config.mk
70
70
ALL_OBJ_FILES :=
71
71
72
72
MKFILE_DEPS := config.stamp $(call rwildcard,$(CFG_SRC_DIR ) mk/,* )
73
- NON_HOST_TRIPLES = $(filter-out $(CFG_HOST_TRIPLE ) ,$(CFG_TARGET_TRIPLES ) )
73
+ NON_BUILD_HOST_TRIPLES = $(filter-out $(CFG_BUILD_TRIPLE ) ,$(CFG_HOST_TRIPLES ) )
74
+ NON_BUILD_TARGET_TRIPLES = $(filter-out $(CFG_BUILD_TRIPLE ) ,$(CFG_TARGET_TRIPLES ) )
74
75
75
76
ifneq ($(MAKE_RESTARTS ) ,)
76
77
CFG_INFO := $(info cfg: make restarts: $(MAKE_RESTARTS ) )
77
78
endif
78
79
79
- CFG_INFO := $(info cfg: shell host triple $(CFG_HOST_TRIPLE ) )
80
+ CFG_INFO := $(info cfg: build triple $(CFG_BUILD_TRIPLE ) )
81
+ CFG_INFO := $(info cfg: host triples $(CFG_HOST_TRIPLES ) )
82
+ CFG_INFO := $(info cfg: target triples $(CFG_TARGET_TRIPLES ) )
80
83
81
- ifneq ($(wildcard $(NON_HOST_TRIPLES ) ) ,)
82
- CFG_INFO := $(info cfg: non host triples $(NON_HOST_TRIPLES ) )
84
+ ifneq ($(wildcard $(NON_BUILD_HOST_TRIPLES ) ) ,)
85
+ CFG_INFO := $(info cfg: non-build host triples $(NON_BUILD_HOST_TRIPLES ) )
86
+ endif
87
+ ifneq ($(wildcard $(NON_BUILD_TARGET_TRIPLES ) ) ,)
88
+ CFG_INFO := $(info cfg: non-build target triples $(NON_BUILD_TARGET_TRIPLES ) )
83
89
endif
84
90
85
91
CFG_RUSTC_FLAGS := $(RUSTFLAGS )
@@ -124,37 +130,6 @@ else
124
130
CFG_VALGRIND_COMPILE :=
125
131
endif
126
132
127
- CFG_RUNTIME :=$(call CFG_LIB_NAME,rustrt)
128
- CFG_RUSTLLVM :=$(call CFG_LIB_NAME,rustllvm)
129
- CFG_CORELIB :=$(call CFG_LIB_NAME,core)
130
- CFG_STDLIB :=$(call CFG_LIB_NAME,std)
131
- CFG_LIBRUSTC :=$(call CFG_LIB_NAME,rustc)
132
- CFG_LIBSYNTAX :=$(call CFG_LIB_NAME,syntax)
133
- CFG_LIBFUZZER :=$(call CFG_LIB_NAME,fuzzer)
134
- CFG_LIBRUSTPKG :=$(call CFG_LIB_NAME,rustpkg)
135
- CFG_LIBRUSTDOC :=$(call CFG_LIB_NAME,rustdoc)
136
- CFG_LIBRUSTI :=$(call CFG_LIB_NAME,rusti)
137
- CFG_LIBRUST :=$(call CFG_LIB_NAME,rust)
138
-
139
- STDLIB_GLOB :=$(call CFG_LIB_GLOB,std)
140
- CORELIB_GLOB :=$(call CFG_LIB_GLOB,core)
141
- LIBRUSTC_GLOB :=$(call CFG_LIB_GLOB,rustc)
142
- LIBSYNTAX_GLOB :=$(call CFG_LIB_GLOB,syntax)
143
- LIBFUZZER_GLOB :=$(call CFG_LIB_GLOB,fuzzer)
144
- LIBRUSTPKG_GLOB :=$(call CFG_LIB_GLOB,rustpkg)
145
- LIBRUSTDOC_GLOB :=$(call CFG_LIB_GLOB,rustdoc)
146
- LIBRUSTI_GLOB :=$(call CFG_LIB_GLOB,rusti)
147
- LIBRUST_GLOB :=$(call CFG_LIB_GLOB,rust)
148
- STDLIB_DSYM_GLOB :=$(call CFG_LIB_DSYM_GLOB,std)
149
- CORELIB_DSYM_GLOB :=$(call CFG_LIB_DSYM_GLOB,core)
150
- LIBRUSTC_DSYM_GLOB :=$(call CFG_LIB_DSYM_GLOB,rustc)
151
- LIBSYNTAX_DSYM_GLOB :=$(call CFG_LIB_DSYM_GLOB,syntax)
152
- LIBFUZZER_DSYM_GLOB :=$(call CFG_LIB_DSYM_GLOB,fuzzer)
153
- LIBRUSTPKG_DSYM_GLOB :=$(call CFG_LIB_DSYM_GLOB,rustpkg)
154
- LIBRUSTDOC_DSYM_GLOB :=$(call CFG_LIB_DSYM_GLOB,rustdoc)
155
- LIBRUSTI_DSYM_GLOB :=$(call CFG_LIB_DSYM_GLOB,rusti)
156
- LIBRUST_DSYM_GLOB :=$(call CFG_LIB_DSYM_GLOB,rust)
157
-
158
133
# version-string calculation
159
134
CFG_GIT_DIR := $(CFG_SRC_DIR ) .git
160
135
CFG_RELEASE = 0.6
@@ -193,7 +168,12 @@ else
193
168
endif
194
169
195
170
S := $(CFG_SRC_DIR )
196
- X := $(CFG_EXE_SUFFIX )
171
+
172
+ define DEF_X
173
+ X_$(1 ) := $(CFG_EXE_SUFFIX_$(1 ) )
174
+ endef
175
+ $(foreach target,$(CFG_TARGET_TRIPLES),\
176
+ $(eval $(call DEF_X,$(target))))
197
177
198
178
# Look in doc and src dirs.
199
179
VPATH := $(S ) doc $(S ) src
@@ -209,6 +189,49 @@ GENERATED :=
209
189
% :: s.%
210
190
% :: SCCS/s.%
211
191
192
+
193
+ # #####################################################################
194
+ # Crates
195
+ # #####################################################################
196
+
197
+ define DEF_LIBS
198
+
199
+ CFG_RUNTIME_$(1 ) :=$(call CFG_LIB_NAME_$(1 ) ,rustrt)
200
+ CFG_RUSTLLVM_$(1 ) :=$(call CFG_LIB_NAME_$(1 ) ,rustllvm)
201
+ CFG_CORELIB_$(1 ) :=$(call CFG_LIB_NAME_$(1 ) ,core)
202
+ CFG_STDLIB_$(1 ) :=$(call CFG_LIB_NAME_$(1 ) ,std)
203
+ CFG_LIBRUSTC_$(1 ) :=$(call CFG_LIB_NAME_$(1 ) ,rustc)
204
+ CFG_LIBSYNTAX_$(1 ) :=$(call CFG_LIB_NAME_$(1 ) ,syntax)
205
+ CFG_LIBFUZZER_$(1 ) :=$(call CFG_LIB_NAME_$(1 ) ,fuzzer)
206
+ CFG_LIBRUSTPKG_$(1 ) :=$(call CFG_LIB_NAME_$(1 ) ,rustpkg)
207
+ CFG_LIBRUSTDOC_$(1 ) :=$(call CFG_LIB_NAME_$(1 ) ,rustdoc)
208
+ CFG_LIBRUSTI_$(1 ) :=$(call CFG_LIB_NAME_$(1 ) ,rusti)
209
+ CFG_LIBRUST_$(1 ) :=$(call CFG_LIB_NAME_$(1 ) ,rust)
210
+
211
+ STDLIB_GLOB_$(1 ) :=$(call CFG_LIB_GLOB_$(1 ) ,std)
212
+ CORELIB_GLOB_$(1 ) :=$(call CFG_LIB_GLOB_$(1 ) ,core)
213
+ LIBRUSTC_GLOB_$(1 ) :=$(call CFG_LIB_GLOB_$(1 ) ,rustc)
214
+ LIBSYNTAX_GLOB_$(1 ) :=$(call CFG_LIB_GLOB_$(1 ) ,syntax)
215
+ LIBFUZZER_GLOB_$(1 ) :=$(call CFG_LIB_GLOB_$(1 ) ,fuzzer)
216
+ LIBRUSTPKG_GLOB_$(1 ) :=$(call CFG_LIB_GLOB_$(1 ) ,rustpkg)
217
+ LIBRUSTDOC_GLOB_$(1 ) :=$(call CFG_LIB_GLOB_$(1 ) ,rustdoc)
218
+ LIBRUSTI_GLOB_$(1 ) :=$(call CFG_LIB_GLOB_$(1 ) ,rusti)
219
+ LIBRUST_GLOB_$(1 ) :=$(call CFG_LIB_GLOB_$(1 ) ,rust)
220
+ STDLIB_DSYM_GLOB_$(1 ) :=$(call CFG_LIB_DSYM_GLOB_$(1 ) ,std)
221
+ CORELIB_DSYM_GLOB_$(1 ) :=$(call CFG_LIB_DSYM_GLOB_$(1 ) ,core)
222
+ LIBRUSTC_DSYM_GLOB_$(1 ) :=$(call CFG_LIB_DSYM_GLOB_$(1 ) ,rustc)
223
+ LIBSYNTAX_DSYM_GLOB_$(1 ) :=$(call CFG_LIB_DSYM_GLOB_$(1 ) ,syntax)
224
+ LIBFUZZER_DSYM_GLOB_$(1 ) :=$(call CFG_LIB_DSYM_GLOB_$(1 ) ,fuzzer)
225
+ LIBRUSTPKG_DSYM_GLOB_$(1 ) :=$(call CFG_LIB_DSYM_GLOB_$(1 ) ,rustpkg)
226
+ LIBRUSTDOC_DSYM_GLOB_$(1 ) :=$(call CFG_LIB_DSYM_GLOB_$(1 ) ,rustdoc)
227
+ LIBRUSTI_DSYM_GLOB_$(1 ) :=$(call CFG_LIB_DSYM_GLOB_$(1 ) ,rusti)
228
+ LIBRUST_DSYM_GLOB_$(1 ) :=$(call CFG_LIB_DSYM_GLOB_$(1 ) ,rust)
229
+
230
+ endef
231
+
232
+ $(foreach target,$(CFG_TARGET_TRIPLES),\
233
+ $(eval $(call DEF_LIBS,$(target))))
234
+
212
235
# #####################################################################
213
236
# Core library variables
214
237
# #####################################################################
@@ -254,8 +277,8 @@ CFG_LLVM_BUILD_DIR_$(1):=$$(CFG_LLVM_BUILD_DIR_$(subst -,_,$(1)))
254
277
CFG_LLVM_INST_DIR_$(1 ) :=$$(CFG_LLVM_INST_DIR_$(subst -,_,$(1 ) ) )
255
278
256
279
# Any rules that depend on LLVM should depend on LLVM_CONFIG
257
- LLVM_CONFIG_$(1 ) :=$$(CFG_LLVM_INST_DIR_$(1 ) ) /bin/llvm-config$$(X )
258
- LLVM_MC_$(1 ) :=$$(CFG_LLVM_INST_DIR_$(1 ) ) /bin/llvm-mc$$(X )
280
+ LLVM_CONFIG_$(1 ) :=$$(CFG_LLVM_INST_DIR_$(1 ) ) /bin/llvm-config$$(X_ $( 1 ) )
281
+ LLVM_MC_$(1 ) :=$$(CFG_LLVM_INST_DIR_$(1 ) ) /bin/llvm-mc$$(X_ $( 1 ) )
259
282
LLVM_VERSION_$(1 ) =$$(shell "$$(LLVM_CONFIG_$(1 ) ) " --version)
260
283
LLVM_BINDIR_$(1 ) =$$(shell "$$(LLVM_CONFIG_$(1 ) ) " --bindir)
261
284
LLVM_INCDIR_$(1 ) =$$(shell "$$(LLVM_CONFIG_$(1 ) ) " --includedir)
@@ -267,13 +290,13 @@ LLVM_LDFLAGS_$(1)=$$(shell "$$(LLVM_CONFIG_$(1))" --ldflags)
267
290
LLVM_CXXFLAGS_$(1 ) =$$(subst -I, -iquote , $$(shell "$$(LLVM_CONFIG_$(1 ) ) " --cxxflags) )
268
291
LLVM_HOST_TRIPLE_$(1 ) =$$(shell "$$(LLVM_CONFIG_$(1 ) ) " --host-target)
269
292
270
- LLVM_AS_$(1 ) =$$(CFG_LLVM_INST_DIR_$(1 ) ) /bin/llvm-as$$(X )
271
- LLC_$(1 ) =$$(CFG_LLVM_INST_DIR_$(1 ) ) /bin/llc$$(X )
293
+ LLVM_AS_$(1 ) =$$(CFG_LLVM_INST_DIR_$(1 ) ) /bin/llvm-as$$(X_ $( 1 ) )
294
+ LLC_$(1 ) =$$(CFG_LLVM_INST_DIR_$(1 ) ) /bin/llc$$(X_ $( 1 ) )
272
295
273
296
endef
274
297
275
- $(foreach target ,$(CFG_TARGET_TRIPLES ), \
276
- $(eval $(call DEF_LLVM_VARS,$(target ))))
298
+ $(foreach host ,$(CFG_HOST_TRIPLES ), \
299
+ $(eval $(call DEF_LLVM_VARS,$(host ))))
277
300
278
301
# #####################################################################
279
302
# Exports for sub-utilities
@@ -285,7 +308,7 @@ $(foreach target,$(CFG_TARGET_TRIPLES), \
285
308
export CFG_SRC_DIR
286
309
export CFG_BUILD_DIR
287
310
export CFG_VERSION
288
- export CFG_HOST_TRIPLE
311
+ export CFG_BUILD_TRIPLE
289
312
export CFG_LLVM_ROOT
290
313
export CFG_ENABLE_MINGW_CROSS
291
314
export CFG_PREFIX
@@ -332,26 +355,26 @@ ifdef CFG_DISABLE_SHAREDSTD
332
355
$$(TLIB$(1 ) _T_$(2 ) _H_$(3 ) ) /librustc.rlib
333
356
else
334
357
HCORELIB_DEFAULT$(1)_H_$(3) = \
335
- $$(HLIB$(1 ) _H_$(3 ) ) /$(CFG_CORELIB )
358
+ $$(HLIB$(1 ) _H_$(3 ) ) /$(CFG_CORELIB_ $( 3 ) )
336
359
TCORELIB_DEFAULT$(1)_T_$(2)_H_$(3) = \
337
- $$(TLIB$(1 ) _T_$(2 ) _H_$(3 ) ) /$(CFG_CORELIB )
360
+ $$(TLIB$(1 ) _T_$(2 ) _H_$(3 ) ) /$(CFG_CORELIB_ $( 2 ) )
338
361
339
362
HSTDLIB_DEFAULT$(1)_H_$(3) = \
340
- $$(HLIB$(1 ) _H_$(3 ) ) /$(CFG_STDLIB )
363
+ $$(HLIB$(1 ) _H_$(3 ) ) /$(CFG_STDLIB_ $( 3 ) )
341
364
TSTDLIB_DEFAULT$(1)_T_$(2)_H_$(3) = \
342
- $$(TLIB$(1 ) _T_$(2 ) _H_$(3 ) ) /$(CFG_STDLIB )
365
+ $$(TLIB$(1 ) _T_$(2 ) _H_$(3 ) ) /$(CFG_STDLIB_ $( 2 ) )
343
366
344
367
HLIBRUSTC_DEFAULT$(1)_H_$(3) = \
345
- $$(HLIB$(1 ) _H_$(3 ) ) /$(CFG_LIBRUSTC )
368
+ $$(HLIB$(1 ) _H_$(3 ) ) /$(CFG_LIBRUSTC_ $( 3 ) )
346
369
TLIBRUSTC_DEFAULT$(1)_T_$(2)_H_$(3) = \
347
- $$(TLIB$(1 ) _T_$(2 ) _H_$(3 ) ) /$(CFG_LIBRUSTC )
370
+ $$(TLIB$(1 ) _T_$(2 ) _H_$(3 ) ) /$(CFG_LIBRUSTC_ $( 2 ) )
348
371
endif
349
372
350
373
# Preqrequisites for using the stageN compiler
351
374
HSREQ$(1 ) _H_$(3 ) = \
352
- $$(HBIN$(1 ) _H_$(3 ) ) /rustc$$(X ) \
353
- $$(HLIB$(1 ) _H_$(3 ) ) /$$( CFG_RUNTIME ) \
354
- $$(HLIB$(1 ) _H_$(3 ) ) /$$( CFG_RUSTLLVM ) \
375
+ $$(HBIN$(1 ) _H_$(3 ) ) /rustc$$(X_ $( 3 ) ) \
376
+ $$(HLIB$(1 ) _H_$(3 ) ) /$( CFG_RUNTIME_ $( 3 ) ) \
377
+ $$(HLIB$(1 ) _H_$(3 ) ) /$( CFG_RUSTLLVM_ $( 3 ) ) \
355
378
$$(HCORELIB_DEFAULT$(1 ) _H_$(3 ) ) \
356
379
$$(HSTDLIB_DEFAULT$(1 ) _H_$(3 ) ) \
357
380
$$(HLIBSYNTAX_DEFAULT$(1 ) _H_$(3 ) ) \
@@ -361,37 +384,37 @@ HSREQ$(1)_H_$(3) = \
361
384
# Prerequisites for using the stageN compiler to build target artifacts
362
385
TSREQ$(1 ) _T_$(2 ) _H_$(3 ) = \
363
386
$$(HSREQ$(1 ) _H_$(3 ) ) \
364
- $$(TLIB$(1 ) _T_$(2 ) _H_$(3 ) ) /$$( CFG_RUNTIME ) \
387
+ $$(TLIB$(1 ) _T_$(2 ) _H_$(3 ) ) /$( CFG_RUNTIME_ $( 2 ) ) \
365
388
$$(TLIB$(1 ) _T_$(2 ) _H_$(3 ) ) /libmorestack.a
366
389
367
390
# Prerequisites for a working stageN compiler and libraries, for a specific target
368
391
SREQ$(1 ) _T_$(2 ) _H_$(3 ) = \
369
392
$$(TSREQ$(1 ) _T_$(2 ) _H_$(3 ) ) \
370
- $$(TLIB$(1 ) _T_$(2 ) _H_$(3 ) ) /$$( CFG_CORELIB ) \
371
- $$(TLIB$(1 ) _T_$(2 ) _H_$(3 ) ) /$$( CFG_STDLIB )
393
+ $$(TLIB$(1 ) _T_$(2 ) _H_$(3 ) ) /$( CFG_CORELIB_ $( 2 ) ) \
394
+ $$(TLIB$(1 ) _T_$(2 ) _H_$(3 ) ) /$( CFG_STDLIB_ $( 2 ) )
372
395
373
396
# Prerequisites for a working stageN compiler and libraries, for a specific target
374
397
CSREQ$(1 ) _T_$(2 ) _H_$(3 ) = \
375
398
$$(TSREQ$(1 ) _T_$(2 ) _H_$(3 ) ) \
376
- $$(HBIN$(1 ) _H_$(3 ) ) /fuzzer$$(X ) \
377
- $$(HBIN$(1 ) _H_$(3 ) ) /rustpkg$$(X ) \
378
- $$(HBIN$(1 ) _H_$(3 ) ) /rustdoc$$(X ) \
379
- $$(HBIN$(1 ) _H_$(3 ) ) /rusti$$(X ) \
380
- $$(HBIN$(1 ) _H_$(3 ) ) /rust$$(X ) \
381
- $$(HLIB$(1 ) _H_$(3 ) ) /$$( CFG_LIBFUZZER ) \
382
- $$(HLIB$(1 ) _H_$(3 ) ) /$$( CFG_LIBRUSTPKG ) \
383
- $$(HLIB$(1 ) _H_$(3 ) ) /$$( CFG_LIBRUSTDOC ) \
384
- $$(HLIB$(1 ) _H_$(3 ) ) /$$( CFG_LIBRUSTI ) \
385
- $$(HLIB$(1 ) _H_$(3 ) ) /$$( CFG_LIBRUST ) \
386
- $$(TLIB$(1 ) _T_$(2 ) _H_$(3 ) ) /$$( CFG_CORELIB ) \
387
- $$(TLIB$(1 ) _T_$(2 ) _H_$(3 ) ) /$$( CFG_STDLIB ) \
388
- $$(TLIB$(1 ) _T_$(2 ) _H_$(3 ) ) /$$( CFG_LIBSYNTAX ) \
389
- $$(TLIB$(1 ) _T_$(2 ) _H_$(3 ) ) /$$( CFG_LIBRUSTC ) \
390
- $$(TLIB$(1 ) _T_$(2 ) _H_$(3 ) ) /$$( CFG_LIBFUZZER ) \
391
- $$(TLIB$(1 ) _T_$(2 ) _H_$(3 ) ) /$$( CFG_LIBRUSTPKG ) \
392
- $$(TLIB$(1 ) _T_$(2 ) _H_$(3 ) ) /$$( CFG_LIBRUSTDOC ) \
393
- $$(TLIB$(1 ) _T_$(2 ) _H_$(3 ) ) /$$( CFG_LIBRUSTI ) \
394
- $$(TLIB$(1 ) _T_$(2 ) _H_$(3 ) ) /$$( CFG_LIBRUST )
399
+ $$(HBIN$(1 ) _H_$(3 ) ) /fuzzer$$(X_ $( 3 ) ) \
400
+ $$(HBIN$(1 ) _H_$(3 ) ) /rustpkg$$(X_ $( 3 ) ) \
401
+ $$(HBIN$(1 ) _H_$(3 ) ) /rustdoc$$(X_ $( 3 ) ) \
402
+ $$(HBIN$(1 ) _H_$(3 ) ) /rusti$$(X_ $( 3 ) ) \
403
+ $$(HBIN$(1 ) _H_$(3 ) ) /rust$$(X_ $( 3 ) ) \
404
+ $$(HLIB$(1 ) _H_$(3 ) ) /$( CFG_LIBFUZZER_ $( 3 ) ) \
405
+ $$(HLIB$(1 ) _H_$(3 ) ) /$( CFG_LIBRUSTPKG_ $( 3 ) ) \
406
+ $$(HLIB$(1 ) _H_$(3 ) ) /$( CFG_LIBRUSTDOC_ $( 3 ) ) \
407
+ $$(HLIB$(1 ) _H_$(3 ) ) /$( CFG_LIBRUSTI_ $( 3 ) ) \
408
+ $$(HLIB$(1 ) _H_$(3 ) ) /$( CFG_LIBRUST_ $( 3 ) ) \
409
+ $$(TLIB$(1 ) _T_$(2 ) _H_$(3 ) ) /$( CFG_CORELIB_ $( 2 ) ) \
410
+ $$(TLIB$(1 ) _T_$(2 ) _H_$(3 ) ) /$( CFG_STDLIB_ $( 2 ) ) \
411
+ $$(TLIB$(1 ) _T_$(2 ) _H_$(3 ) ) /$( CFG_LIBSYNTAX_ $( 2 ) ) \
412
+ $$(TLIB$(1 ) _T_$(2 ) _H_$(3 ) ) /$( CFG_LIBRUSTC_ $( 2 ) ) \
413
+ $$(TLIB$(1 ) _T_$(2 ) _H_$(3 ) ) /$( CFG_LIBFUZZER_ $( 2 ) ) \
414
+ $$(TLIB$(1 ) _T_$(2 ) _H_$(3 ) ) /$( CFG_LIBRUSTPKG_ $( 2 ) ) \
415
+ $$(TLIB$(1 ) _T_$(2 ) _H_$(3 ) ) /$( CFG_LIBRUSTDOC_ $( 2 ) ) \
416
+ $$(TLIB$(1 ) _T_$(2 ) _H_$(3 ) ) /$( CFG_LIBRUSTI_ $( 2 ) ) \
417
+ $$(TLIB$(1 ) _T_$(2 ) _H_$(3 ) ) /$( CFG_LIBRUST_ $( 2 ) )
395
418
396
419
ifeq ($(1 ) ,0)
397
420
# Don't run the the stage0 compiler under valgrind - that ship has sailed
@@ -409,28 +432,30 @@ CFGFLAG$(1)_T_$(2)_H_$(3) = stage$(1)
409
432
# if you're building a cross config, the host->* parts are
410
433
# effectively stage1, since it uses the just-built stage0.
411
434
ifeq ($(1 ) ,0)
412
- ifneq ($(strip $(CFG_HOST_TRIPLE ) ) ,$(strip $(3 ) ) )
435
+ ifneq ($(strip $(CFG_BUILD_TRIPLE ) ) ,$(strip $(3 ) ) )
413
436
CFGFLAG$(1)_T_$(2)_H_$(3) = stage1
414
437
endif
415
438
endif
416
439
417
440
STAGE$(1 ) _T_$(2 ) _H_$(3 ) := \
418
- $$(Q )$$(call CFG_RUN_TARG ,$(1 ) , \
441
+ $$(Q )$$(call CFG_RUN_TARG_ $( 3 ) ,$(1 ) , \
419
442
$$(CFG_VALGRIND_COMPILE$(1 ) ) \
420
- $$(HBIN$(1 ) _H_$(3 ) ) /rustc$$(X ) \
443
+ $$(HBIN$(1 ) _H_$(3 ) ) /rustc$$(X_ $( 3 ) ) \
421
444
--cfg $$(CFGFLAG$(1 ) _T_$(2 ) _H_$(3 ) ) \
422
- $$(CFG_RUSTC_FLAGS ) $$(EXTRAFLAGS_STAGE$(1 ) ) --target=$(2 ) )
445
+ $$(CFG_RUSTC_FLAGS ) $$(EXTRAFLAGS_STAGE$(1 ) ) --target=$(2 ) ) \
446
+ $$(RUSTC_FLAGS_$(2 ) )
423
447
424
448
PERF_STAGE$(1 ) _T_$(2 ) _H_$(3 ) := \
425
- $$(Q )$$(call CFG_RUN_TARG ,$(1 ) , \
449
+ $$(Q )$$(call CFG_RUN_TARG_ $( 3 ) ,$(1 ) , \
426
450
$$(CFG_PERF_TOOL ) \
427
- $$(HBIN$(1 ) _H_$(3 ) ) /rustc$$(X ) \
451
+ $$(HBIN$(1 ) _H_$(3 ) ) /rustc$$(X_ $( 3 ) ) \
428
452
--cfg $$(CFGFLAG$(1 ) _T_$(2 ) _H_$(3 ) ) \
429
- $$(CFG_RUSTC_FLAGS ) $$(EXTRAFLAGS_STAGE$(1 ) ) --target=$(2 ) )
453
+ $$(CFG_RUSTC_FLAGS ) $$(EXTRAFLAGS_STAGE$(1 ) ) --target=$(2 ) ) \
454
+ $$(RUSTC_FLAGS_$(2 ) )
430
455
431
456
endef
432
457
433
- $(foreach build,$(CFG_TARGET_TRIPLES ), \
458
+ $(foreach build,$(CFG_HOST_TRIPLES ), \
434
459
$(eval $(foreach target,$(CFG_TARGET_TRIPLES), \
435
460
$(eval $(foreach stage,$(STAGES), \
436
461
$(eval $(call SREQ,$(stage),$(target),$(build))))))))
@@ -451,13 +476,13 @@ rustc-stage$(2)-H-$(1): \
451
476
452
477
endef
453
478
454
- $(foreach host,$(CFG_TARGET_TRIPLES ), \
479
+ $(foreach host,$(CFG_HOST_TRIPLES ), \
455
480
$(eval $(foreach stage,1 2 3, \
456
481
$(eval $(call DEF_RUSTC_STAGE_TARGET,$(host),$(stage))))))
457
482
458
- rustc-stage1 : rustc-stage1-H-$(CFG_HOST_TRIPLE )
459
- rustc-stage2 : rustc-stage2-H-$(CFG_HOST_TRIPLE )
460
- rustc-stage3 : rustc-stage3-H-$(CFG_HOST_TRIPLE )
483
+ rustc-stage1 : rustc-stage1-H-$(CFG_BUILD_TRIPLE )
484
+ rustc-stage2 : rustc-stage2-H-$(CFG_BUILD_TRIPLE )
485
+ rustc-stage3 : rustc-stage3-H-$(CFG_BUILD_TRIPLE )
461
486
462
487
define DEF_RUSTC_TARGET
463
488
# $(1) == architecture
@@ -468,12 +493,12 @@ endef
468
493
$(foreach host,$(CFG_TARGET_TRIPLES), \
469
494
$(eval $(call DEF_RUSTC_TARGET,$(host))))
470
495
471
- rustc-stage1 : rustc-stage1-H-$(CFG_HOST_TRIPLE )
472
- rustc-stage2 : rustc-stage2-H-$(CFG_HOST_TRIPLE )
473
- rustc-stage3 : rustc-stage3-H-$(CFG_HOST_TRIPLE )
474
- rustc : rustc-H-$(CFG_HOST_TRIPLE )
496
+ rustc-stage1 : rustc-stage1-H-$(CFG_BUILD_TRIPLE )
497
+ rustc-stage2 : rustc-stage2-H-$(CFG_BUILD_TRIPLE )
498
+ rustc-stage3 : rustc-stage3-H-$(CFG_BUILD_TRIPLE )
499
+ rustc : rustc-H-$(CFG_BUILD_TRIPLE )
475
500
476
- rustc-H-all : $(foreach host,$(CFG_TARGET_TRIPLES ) ,rustc-H-$(host ) )
501
+ rustc-H-all : $(foreach host,$(CFG_HOST_TRIPLES ) ,rustc-H-$(host ) )
477
502
478
503
# #####################################################################
479
504
# Entrypoint rule
@@ -489,19 +514,27 @@ CFG_INFO := $(info cfg: *** stage2 and later will not be built ***)
489
514
CFG_INFO := $(info cfg:)
490
515
491
516
# XXX This is surely busted
492
- all : $(SREQ1$(CFG_HOST_TRIPLE ) ) $(GENERATED ) docs
517
+ all : $(SREQ1$(CFG_BUILD_TRIPLE ) ) $(GENERATED ) docs
493
518
494
519
else
495
520
496
521
define ALL_TARGET_N
522
+ ifneq ($$(findstring $(1 ) ,$$(CFG_HOST_TRIPLES ) ) ,)
523
+ # This is a host
497
524
all-target-$(1 ) -host-$(2 ) : $$(CSREQ2_T_$(1 ) _H_$(2 ) )
525
+ else
526
+ # This is a target only
527
+ all-target-$(1 ) -host-$(2 ) : $$(SREQ2_T_$(1 ) _H_$(2 ) )
528
+ endif
498
529
endef
499
530
500
531
$(foreach target,$(CFG_TARGET_TRIPLES), \
501
- $(eval $(call ALL_TARGET_N,$(target),$(CFG_HOST_TRIPLE))))
532
+ $(foreach host,$(CFG_HOST_TRIPLES), \
533
+ $(eval $(call ALL_TARGET_N,$(target),$(host)))))
502
534
503
535
ALL_TARGET_RULES = $(foreach target,$(CFG_TARGET_TRIPLES ) , \
504
- all-target-$(target ) -host-$(CFG_HOST_TRIPLE ) )
536
+ $(foreach host,$(CFG_HOST_TRIPLES ) , \
537
+ all-target-$(target ) -host-$(host ) ) )
505
538
506
539
all : $(ALL_TARGET_RULES ) $(GENERATED ) docs
507
540
0 commit comments