2011-10-01 20:12:08 -07:00
|
|
|
# Extract the snapshot host compiler
|
|
|
|
|
2013-07-04 16:51:45 +02:00
|
|
|
$(HBIN0_H_$(CFG_BUILD_TRIPLE))/:
|
|
|
|
mkdir -p $@
|
2012-04-05 15:40:34 -07:00
|
|
|
|
2013-07-04 16:51:45 +02:00
|
|
|
$(HLIB0_H_$(CFG_BUILD_TRIPLE))/:
|
|
|
|
mkdir -p $@
|
2012-04-05 15:40:34 -07:00
|
|
|
|
2013-03-02 21:25:12 +09:00
|
|
|
$(HBIN0_H_$(CFG_BUILD_TRIPLE))/rustc$(X_$(CFG_BUILD_TRIPLE)): \
|
2011-11-21 13:11:40 -08:00
|
|
|
$(S)src/snapshots.txt \
|
2013-07-04 16:51:45 +02:00
|
|
|
$(S)src/etc/get-snapshot.py $(MKFILE_DEPS) \
|
|
|
|
| $(HBIN0_H_$(CFG_BUILD_TRIPLE))/
|
|
|
|
|
2011-05-03 11:34:44 -07:00
|
|
|
@$(call E, fetch: $@)
|
2012-02-09 17:58:09 -08:00
|
|
|
# Note: the variable "SNAPSHOT_FILE" is generally not set, and so
|
2013-05-03 19:25:04 -04:00
|
|
|
# we generally only pass one argument to this script.
|
2012-04-05 15:40:34 -07:00
|
|
|
ifdef CFG_ENABLE_LOCAL_RUST
|
2013-02-21 16:15:01 -08:00
|
|
|
$(Q)$(S)src/etc/local_stage0.sh $(CFG_BUILD_TRIPLE) $(CFG_LOCAL_RUST_ROOT)
|
2013-05-03 19:25:04 -04:00
|
|
|
else
|
2013-02-21 16:15:01 -08:00
|
|
|
$(Q)$(CFG_PYTHON) $(S)src/etc/get-snapshot.py $(CFG_BUILD_TRIPLE) $(SNAPSHOT_FILE)
|
2012-10-05 00:08:34 +02:00
|
|
|
ifdef CFG_ENABLE_PAX_FLAGS
|
|
|
|
@$(call E, apply PaX flags: $@)
|
2012-10-04 03:46:32 +02:00
|
|
|
@"$(CFG_PAXCTL)" -cm "$@"
|
|
|
|
endif
|
2013-05-03 19:25:04 -04:00
|
|
|
endif
|
2011-05-03 15:51:21 -07:00
|
|
|
$(Q)touch $@
|
2011-05-01 20:18:52 +00:00
|
|
|
|
2011-10-01 20:12:08 -07:00
|
|
|
# Host libs will be extracted by the above rule
|
2011-05-03 11:34:44 -07:00
|
|
|
|
2013-02-27 14:53:35 +09:00
|
|
|
$(HLIB0_H_$(CFG_BUILD_TRIPLE))/$(CFG_RUNTIME_$(CFG_BUILD_TRIPLE)): \
|
2013-07-04 16:51:45 +02:00
|
|
|
$(HBIN0_H_$(CFG_BUILD_TRIPLE))/rustc$(X_$(CFG_BUILD_TRIPLE)) \
|
|
|
|
| $(HLIB0_H_$(CFG_BUILD_TRIPLE))/
|
2011-07-21 16:11:35 -07:00
|
|
|
$(Q)touch $@
|
2011-05-04 18:28:30 -07:00
|
|
|
|
2013-05-17 10:45:09 -07:00
|
|
|
$(HLIB0_H_$(CFG_BUILD_TRIPLE))/$(CFG_STDLIB_$(CFG_BUILD_TRIPLE)): \
|
2013-07-04 16:51:45 +02:00
|
|
|
$(HBIN0_H_$(CFG_BUILD_TRIPLE))/rustc$(X_$(CFG_BUILD_TRIPLE)) \
|
|
|
|
| $(HLIB0_H_$(CFG_BUILD_TRIPLE))/
|
2011-12-05 16:46:37 -08:00
|
|
|
$(Q)touch $@
|
|
|
|
|
2013-05-17 10:45:09 -07:00
|
|
|
$(HLIB0_H_$(CFG_BUILD_TRIPLE))/$(CFG_EXTRALIB_$(CFG_BUILD_TRIPLE)): \
|
2013-07-04 16:51:45 +02:00
|
|
|
$(HBIN0_H_$(CFG_BUILD_TRIPLE))/rustc$(X_$(CFG_BUILD_TRIPLE)) \
|
|
|
|
| $(HLIB0_H_$(CFG_BUILD_TRIPLE))/
|
2011-07-20 16:32:53 -07:00
|
|
|
$(Q)touch $@
|
2011-07-11 16:31:47 -04:00
|
|
|
|
2013-02-27 14:53:35 +09:00
|
|
|
$(HLIB0_H_$(CFG_BUILD_TRIPLE))/$(CFG_LIBRUSTC_$(CFG_BUILD_TRIPLE)): \
|
2013-07-04 16:51:45 +02:00
|
|
|
$(HBIN0_H_$(CFG_BUILD_TRIPLE))/rustc$(X_$(CFG_BUILD_TRIPLE)) \
|
|
|
|
| $(HLIB0_H_$(CFG_BUILD_TRIPLE))/
|
2011-12-16 17:21:18 -08:00
|
|
|
$(Q)touch $@
|
|
|
|
|
2013-02-27 14:53:35 +09:00
|
|
|
$(HLIB0_H_$(CFG_BUILD_TRIPLE))/$(CFG_RUSTLLVM_$(CFG_BUILD_TRIPLE)): \
|
2013-07-04 16:51:45 +02:00
|
|
|
$(HBIN0_H_$(CFG_BUILD_TRIPLE))/rustc$(X_$(CFG_BUILD_TRIPLE)) \
|
|
|
|
| $(HLIB0_H_$(CFG_BUILD_TRIPLE))/
|
2011-07-11 16:31:47 -04:00
|
|
|
$(Q)touch $@
|
2011-11-22 13:04:52 -08:00
|
|
|
|
|
|
|
# For other targets, let the host build the target:
|
|
|
|
|
|
|
|
define BOOTSTRAP_STAGE0
|
|
|
|
# $(1) target to bootstrap
|
|
|
|
# $(2) stage to bootstrap from
|
|
|
|
# $(3) target to bootstrap from
|
|
|
|
|
2013-07-04 16:51:45 +02:00
|
|
|
$(HBIN0_H_$(1))/:
|
|
|
|
mkdir -p $@
|
|
|
|
|
|
|
|
$(HLIB0_H_$(1))/:
|
|
|
|
mkdir -p $@
|
|
|
|
|
|
|
|
$$(HBIN0_H_$(1))/rustc$$(X_$(1)): \
|
|
|
|
$$(TBIN$(2)_T_$(1)_H_$(3))/rustc$$(X_$(1)) \
|
|
|
|
| $(HBIN0_H_$(1))/
|
2011-11-22 13:04:52 -08:00
|
|
|
@$$(call E, cp: $$@)
|
|
|
|
$$(Q)cp $$< $$@
|
|
|
|
|
2013-03-02 21:25:12 +09:00
|
|
|
$$(HLIB0_H_$(1))/$(CFG_RUNTIME_$(1)): \
|
2013-07-04 16:51:45 +02:00
|
|
|
$$(TLIB$(2)_T_$(1)_H_$(3))/$(CFG_RUNTIME_$(1)) \
|
|
|
|
| $(HLIB0_H_$(1))/
|
2011-11-22 13:04:52 -08:00
|
|
|
@$$(call E, cp: $$@)
|
|
|
|
$$(Q)cp $$< $$@
|
|
|
|
|
2013-03-02 21:25:12 +09:00
|
|
|
$$(HLIB0_H_$(1))/$(CFG_STDLIB_$(1)): \
|
2013-07-04 16:51:45 +02:00
|
|
|
$$(TLIB$(2)_T_$(1)_H_$(3))/$(CFG_STDLIB_$(1)) \
|
|
|
|
| $(HLIB0_H_$(1))/
|
2011-11-22 13:04:52 -08:00
|
|
|
@$$(call E, cp: $$@)
|
2013-07-08 18:35:47 +02:00
|
|
|
$$(call CHECK_FOR_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(EXTRALIB_GLOB_$(4)),$$(notdir $$@))
|
2013-03-02 21:25:12 +09:00
|
|
|
$$(Q)cp $$(TLIB$(2)_T_$(1)_H_$(3))/$(STDLIB_GLOB_$(1)) $$@
|
2013-07-08 18:35:47 +02:00
|
|
|
$$(call LIST_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(EXTRALIB_GLOB_$(4)),$$(notdir $$@))
|
2011-11-22 13:04:52 -08:00
|
|
|
|
2013-05-17 10:45:09 -07:00
|
|
|
$$(HLIB0_H_$(1))/$(CFG_EXTRALIB_$(1)): \
|
2013-07-04 16:51:45 +02:00
|
|
|
$$(TLIB$(2)_T_$(1)_H_$(3))/$(CFG_EXTRALIB_$(1)) \
|
|
|
|
| $(HLIB0_H_$(1))/
|
2013-05-17 10:45:09 -07:00
|
|
|
@$$(call E, cp: $$@)
|
2013-07-08 18:35:47 +02:00
|
|
|
$$(call CHECK_FOR_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(EXTRALIB_GLOB_$(4)),$$(notdir $$@))
|
2013-05-17 10:45:09 -07:00
|
|
|
$$(Q)cp $$(TLIB$(2)_T_$(1)_H_$(3))/$(EXTRALIB_GLOB_$(1)) $$@
|
2013-07-08 18:35:47 +02:00
|
|
|
$$(call LIST_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(EXTRALIB_GLOB_$(4)),$$(notdir $$@))
|
2013-05-17 10:45:09 -07:00
|
|
|
|
2013-03-02 21:25:12 +09:00
|
|
|
$$(HLIB0_H_$(1))/$(CFG_LIBRUSTC_$(1)): \
|
2013-07-04 16:51:45 +02:00
|
|
|
$$(TLIB$(2)_T_$(1)_H_$(3))/$(CFG_LIBRUSTC_$(1)) \
|
|
|
|
| $(HLIB0_H_$(1))/
|
2011-12-16 17:21:18 -08:00
|
|
|
@$$(call E, cp: $$@)
|
2013-07-08 18:35:47 +02:00
|
|
|
$$(call CHECK_FOR_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(LIBRUSTC_GLOB_$(4)),$$(notdir $$@))
|
2013-03-02 21:25:12 +09:00
|
|
|
$$(Q)cp $$(TLIB$(2)_T_$(1)_H_$(3))/$(LIBRUSTC_GLOB_$(1)) $$@
|
2013-07-08 18:35:47 +02:00
|
|
|
$$(call LIST_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(LIBRUSTC_GLOB_$(4)),$$(notdir $$@))
|
2011-12-16 17:21:18 -08:00
|
|
|
|
2013-03-02 21:25:12 +09:00
|
|
|
$$(HLIB0_H_$(1))/$(CFG_RUSTLLVM_$(1)): \
|
2013-07-04 16:51:45 +02:00
|
|
|
$$(TLIB$(2)_T_$(1)_H_$(3))/$(CFG_RUSTLLVM_$(1)) \
|
|
|
|
| $(HLIB0_H_$(1))/
|
2011-11-22 13:04:52 -08:00
|
|
|
@$$(call E, cp: $$@)
|
|
|
|
$$(Q)cp $$< $$@
|
|
|
|
|
|
|
|
endef
|
|
|
|
|
2011-11-23 15:20:28 -08:00
|
|
|
# Use stage1 to build other architectures: then you don't have to wait
|
|
|
|
# for stage2, but you get the latest updates to the compiler source.
|
2013-02-21 16:15:01 -08:00
|
|
|
$(foreach t,$(NON_BUILD_HOST_TRIPLES), \
|
|
|
|
$(eval $(call BOOTSTRAP_STAGE0,$(t),1,$(CFG_BUILD_TRIPLE))))
|