1 # Extract the snapshot host compiler
3 $(HBIN0_H_$(CFG_BUILD))/:
6 $(HLIB0_H_$(CFG_BUILD))/:
9 $(SNAPSHOT_RUSTC_POST_CLEANUP): \
10 $(S)src/snapshots.txt \
11 $(S)src/etc/get-snapshot.py $(MKFILE_DEPS) \
12 | $(HBIN0_H_$(CFG_BUILD))/
15 # Note: the variable "SNAPSHOT_FILE" is generally not set, and so
16 # we generally only pass one argument to this script.
17 ifdef CFG_ENABLE_LOCAL_RUST
18 $(Q)$(S)src/etc/local_stage0.sh $(CFG_BUILD) $(CFG_LOCAL_RUST_ROOT) rustlib
20 $(Q)$(CFG_PYTHON) $(S)src/etc/get-snapshot.py $(CFG_BUILD) $(SNAPSHOT_FILE)
21 ifdef CFG_ENABLE_PAX_FLAGS
22 @$(call E, apply PaX flags: $@)
23 @"$(CFG_PAXCTL)" -cm "$@"
28 # For other targets, let the host build the target:
30 define BOOTSTRAP_STAGE0
31 # $(1) target to bootstrap
32 # $(2) stage to bootstrap from
33 # $(3) target to bootstrap from
41 $$(HBIN0_H_$(1))/rustc$$(X_$(1)): \
42 $$(TBIN$(2)_T_$(1)_H_$(3))/rustc$$(X_$(1)) \
49 # Use stage1 to build other architectures: then you don't have to wait
50 # for stage2, but you get the latest updates to the compiler source.
51 $(foreach t,$(NON_BUILD_HOST), \
52 $(eval $(call BOOTSTRAP_STAGE0,$(t),1,$(CFG_BUILD))))