2012-12-10 19:32:48 -06:00
|
|
|
# Copyright 2012 The Rust Project Developers. See the COPYRIGHT
|
|
|
|
# file at the top-level directory of this distribution and at
|
|
|
|
# http://rust-lang.org/COPYRIGHT.
|
|
|
|
#
|
|
|
|
# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
|
|
|
# http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
|
|
|
# <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
|
|
|
# option. This file may not be copied, modified, or distributed
|
|
|
|
# except according to those terms.
|
|
|
|
|
2011-11-21 15:11:40 -06:00
|
|
|
# CP_HOST_STAGE_N template: arg 1 is the N we're promoting *from*, arg
|
|
|
|
# 2 is N+1. Must be invoked to promote target artifacts to host
|
|
|
|
# artifacts for stage 1-3 (stage0 host artifacts come from the
|
|
|
|
# snapshot). Arg 3 is the triple we're copying FROM and arg 4 is the
|
|
|
|
# triple we're copying TO.
|
2011-10-01 22:12:08 -05:00
|
|
|
#
|
|
|
|
# The easiest way to read this template is to assume we're promoting
|
|
|
|
# stage1 to stage2 and mentally gloss $(1) as 1, $(2) as 2.
|
|
|
|
|
2011-11-21 15:11:40 -06:00
|
|
|
define CP_HOST_STAGE_N
|
2011-10-01 22:12:08 -05:00
|
|
|
|
|
|
|
# Host libraries and executables (stage$(2)/bin/rustc and its runtime needs)
|
|
|
|
|
2013-03-02 06:25:12 -06:00
|
|
|
# Note: $(3) and $(4) are both the same!
|
|
|
|
|
|
|
|
$$(HBIN$(2)_H_$(4))/rustc$$(X_$(4)): \
|
|
|
|
$$(TBIN$(1)_T_$(4)_H_$(3))/rustc$$(X_$(4)) \
|
|
|
|
$$(HLIB$(2)_H_$(4))/$(CFG_RUNTIME_$(4)) \
|
|
|
|
$$(HLIB$(2)_H_$(4))/$(CFG_RUSTLLVM_$(4)) \
|
|
|
|
$$(HLIB$(2)_H_$(4))/$(CFG_LIBRUSTC_$(4)) \
|
2013-05-03 11:53:47 -05:00
|
|
|
$$(HSTDLIB_DEFAULT$(2)_H_$(4)) \
|
2013-05-17 12:45:09 -05:00
|
|
|
$$(HEXTRALIB_DEFAULT$(2)_H_$(4)) \
|
2013-10-22 17:13:18 -05:00
|
|
|
$$(HLIBRUSTUV_DEFAULT$(2)_H_$(4)) \
|
2013-05-03 11:53:47 -05:00
|
|
|
| $$(HBIN$(2)_H_$(4))/
|
|
|
|
|
2011-10-01 22:12:08 -05:00
|
|
|
@$$(call E, cp: $$@)
|
|
|
|
$$(Q)cp $$< $$@
|
|
|
|
|
2013-03-02 06:25:12 -06:00
|
|
|
$$(HLIB$(2)_H_$(4))/$(CFG_LIBRUSTC_$(4)): \
|
|
|
|
$$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUSTC_$(4)) \
|
|
|
|
$$(HLIB$(2)_H_$(4))/$(CFG_LIBSYNTAX_$(4)) \
|
|
|
|
$$(HLIB$(2)_H_$(4))/$(CFG_RUNTIME_$(4)) \
|
|
|
|
$$(HLIB$(2)_H_$(4))/$(CFG_RUSTLLVM_$(4)) \
|
2013-05-03 11:53:47 -05:00
|
|
|
$$(HSTDLIB_DEFAULT$(2)_H_$(4)) \
|
2013-05-17 12:45:09 -05:00
|
|
|
$$(HEXTRALIB_DEFAULT$(2)_H_$(4)) \
|
2013-10-22 17:13:18 -05:00
|
|
|
$$(HLIBRUSTUV_DEFAULT$(2)_H_$(4)) \
|
2013-05-04 05:46:11 -05:00
|
|
|
| $$(HLIB$(2)_H_$(4))/
|
2013-05-03 11:53:47 -05:00
|
|
|
|
2011-10-01 22:12:08 -05:00
|
|
|
@$$(call E, cp: $$@)
|
2013-07-08 11:35:47 -05:00
|
|
|
$$(call REMOVE_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(LIBRUSTC_GLOB_$(4)),$$(notdir $$@))
|
2011-10-01 22:12:08 -05:00
|
|
|
$$(Q)cp $$< $$@
|
2013-03-02 06:25:12 -06:00
|
|
|
$$(Q)cp -R $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBRUSTC_GLOB_$(4)) \
|
|
|
|
$(wildcard $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBRUSTC_DSYM_GLOB_$(4))) \
|
2011-12-02 10:51:59 -06:00
|
|
|
$$(HLIB$(2)_H_$(4))
|
2013-07-08 11:35:47 -05:00
|
|
|
$$(call LIST_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(LIBRUSTC_GLOB_$(4)),$$(notdir $$@))
|
2011-10-01 22:12:08 -05:00
|
|
|
|
2013-03-02 06:25:12 -06:00
|
|
|
$$(HLIB$(2)_H_$(4))/$(CFG_LIBSYNTAX_$(4)): \
|
|
|
|
$$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBSYNTAX_$(4)) \
|
|
|
|
$$(HLIB$(2)_H_$(4))/$(CFG_RUNTIME_$(4)) \
|
|
|
|
$$(HLIB$(2)_H_$(4))/$(CFG_RUSTLLVM_$(4)) \
|
2013-05-03 11:53:47 -05:00
|
|
|
$$(HSTDLIB_DEFAULT$(2)_H_$(4)) \
|
2013-05-17 12:45:09 -05:00
|
|
|
$$(HEXTRALIB_DEFAULT$(2)_H_$(4)) \
|
2013-10-22 17:13:18 -05:00
|
|
|
$$(HLIBRUSTUV_DEFAULT$(2)_H_$(4)) \
|
2013-05-04 05:46:11 -05:00
|
|
|
| $$(HLIB$(2)_H_$(4))/
|
2012-03-22 17:27:35 -05:00
|
|
|
@$$(call E, cp: $$@)
|
2013-07-08 11:35:47 -05:00
|
|
|
$$(call REMOVE_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(LIBSYNTAX_GLOB_$(4)),$$(notdir $$@))
|
2012-03-22 17:27:35 -05:00
|
|
|
$$(Q)cp $$< $$@
|
2013-03-02 06:25:12 -06:00
|
|
|
$$(Q)cp -R $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBSYNTAX_GLOB_$(4)) \
|
|
|
|
$$(wildcard $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBSYNTAX_DSYM_GLOB_$(4))) \
|
2012-03-22 17:27:35 -05:00
|
|
|
$$(HLIB$(2)_H_$(4))
|
2013-07-08 11:35:47 -05:00
|
|
|
$$(call LIST_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(LIBSYNTAX_GLOB_$(4)),$$(notdir $$@))
|
2012-03-22 17:27:35 -05:00
|
|
|
|
2013-03-02 06:25:12 -06:00
|
|
|
$$(HLIB$(2)_H_$(4))/$(CFG_RUNTIME_$(4)): \
|
2013-05-03 11:53:47 -05:00
|
|
|
$$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_RUNTIME_$(4)) \
|
2013-05-04 05:46:11 -05:00
|
|
|
| $$(HLIB$(2)_H_$(4))/
|
2011-10-01 22:12:08 -05:00
|
|
|
@$$(call E, cp: $$@)
|
|
|
|
$$(Q)cp $$< $$@
|
|
|
|
|
2013-05-17 12:45:09 -05:00
|
|
|
$$(HLIB$(2)_H_$(4))/$(CFG_STDLIB_$(4)): \
|
|
|
|
$$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_STDLIB_$(4)) \
|
2013-05-03 11:53:47 -05:00
|
|
|
$$(HLIB$(2)_H_$(4))/$(CFG_RUNTIME_$(4)) \
|
2013-05-04 05:46:11 -05:00
|
|
|
| $$(HLIB$(2)_H_$(4))/
|
2011-12-05 18:46:37 -06:00
|
|
|
@$$(call E, cp: $$@)
|
2013-07-08 11:35:47 -05:00
|
|
|
$$(call REMOVE_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(STDLIB_GLOB_$(4)),$$(notdir $$@))
|
2011-12-05 18:46:37 -06:00
|
|
|
$$(Q)cp $$< $$@
|
2013-10-22 17:13:18 -05:00
|
|
|
# Subtle: We do not let the shell expand $$(STDLIB_DSYM_GLOB) directly rather
|
2012-07-13 14:41:26 -05:00
|
|
|
# we use Make's $$(wildcard) facility. The reason is that, on mac, when using
|
2013-05-17 12:45:09 -05:00
|
|
|
# USE_SNAPSHOT_STDLIB, we copy the std.dylib file out of the snapshot.
|
2012-07-13 14:41:26 -05:00
|
|
|
# In that case, there is no .dSYM file. Annoyingly, bash then refuses to expand
|
2013-05-17 12:45:09 -05:00
|
|
|
# glob, and cp reports an error because libstd-*.dylib.dsym does not exist.
|
2012-07-13 14:41:26 -05:00
|
|
|
# Make instead expands the glob to nothing, which gives us the correct behavior.
|
|
|
|
# (Copy .dsym file if it exists, but do nothing otherwise)
|
2013-05-17 12:45:09 -05:00
|
|
|
$$(Q)cp -R $$(TLIB$(1)_T_$(4)_H_$(3))/$(STDLIB_GLOB_$(4)) \
|
|
|
|
$$(wildcard $$(TLIB$(1)_T_$(4)_H_$(3))/$(STDLIB_DSYM_GLOB_$(4))) \
|
2011-12-02 10:51:59 -06:00
|
|
|
$$(HLIB$(2)_H_$(4))
|
2013-07-08 11:35:47 -05:00
|
|
|
$$(call LIST_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(STDLIB_GLOB_$(4)),$$(notdir $$@))
|
2011-12-05 18:46:37 -06:00
|
|
|
|
2013-05-17 12:45:09 -05:00
|
|
|
$$(HLIB$(2)_H_$(4))/$(CFG_EXTRALIB_$(4)): \
|
|
|
|
$$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_EXTRALIB_$(4)) \
|
|
|
|
$$(HLIB$(2)_H_$(4))/$(CFG_STDLIB_$(4)) \
|
2013-05-03 11:53:47 -05:00
|
|
|
$$(HLIB$(2)_H_$(4))/$(CFG_RUNTIME_$(4)) \
|
2013-05-04 05:46:11 -05:00
|
|
|
| $$(HLIB$(2)_H_$(4))/
|
2011-12-05 18:46:37 -06:00
|
|
|
@$$(call E, cp: $$@)
|
2013-07-08 11:35:47 -05:00
|
|
|
$$(call REMOVE_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(EXTRALIB_GLOB_$(4)),$$(notdir $$@))
|
2011-12-05 18:46:37 -06:00
|
|
|
$$(Q)cp $$< $$@
|
2013-05-17 12:45:09 -05:00
|
|
|
$$(Q)cp -R $$(TLIB$(1)_T_$(4)_H_$(3))/$(EXTRALIB_GLOB_$(4)) \
|
|
|
|
$$(wildcard $$(TLIB$(1)_T_$(4)_H_$(3))/$(EXTRALIB_DSYM_GLOB_$(4))) \
|
2011-12-02 10:51:59 -06:00
|
|
|
$$(HLIB$(2)_H_$(4))
|
2013-07-08 11:35:47 -05:00
|
|
|
$$(call LIST_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(EXTRALIB_GLOB_$(4)),$$(notdir $$@))
|
2011-12-05 18:46:37 -06:00
|
|
|
|
2013-10-22 17:13:18 -05:00
|
|
|
$$(HLIB$(2)_H_$(4))/$(CFG_LIBRUSTUV_$(4)): \
|
|
|
|
$$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUSTUV_$(4)) \
|
|
|
|
$$(HLIB$(2)_H_$(4))/$(CFG_STDLIB_$(4)) \
|
|
|
|
$$(HLIB$(2)_H_$(4))/$(CFG_RUNTIME_$(4)) \
|
|
|
|
| $$(HLIB$(2)_H_$(4))/
|
|
|
|
@$$(call E, cp: $$@)
|
|
|
|
$$(call REMOVE_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(LIBRUSTUV_GLOB_$(4)),$$(notdir $$@))
|
|
|
|
$$(Q)cp $$< $$@
|
|
|
|
$$(Q)cp -R $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBRUSTUV_GLOB_$(4)) \
|
|
|
|
$$(wildcard $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBRUSTUV_DSYM_GLOB_$(4))) \
|
|
|
|
$$(HLIB$(2)_H_$(4))
|
|
|
|
$$(call LIST_ALL_OLD_GLOB_MATCHES_EXCEPT,$$(dir $$@),$(LIBRUSTUV_GLOB_$(4)),$$(notdir $$@))
|
|
|
|
|
2013-05-17 12:45:09 -05:00
|
|
|
$$(HLIB$(2)_H_$(4))/libstd.rlib: \
|
|
|
|
$$(TLIB$(1)_T_$(4)_H_$(3))/libstd.rlib \
|
2013-05-03 11:53:47 -05:00
|
|
|
$$(HLIB$(2)_H_$(4))/$$(CFG_RUNTIME_$(4)) \
|
2013-05-04 05:46:11 -05:00
|
|
|
| $$(HLIB$(2)_H_$(4))/
|
2011-10-01 22:12:08 -05:00
|
|
|
@$$(call E, cp: $$@)
|
|
|
|
$$(Q)cp $$< $$@
|
|
|
|
|
2013-05-17 12:45:09 -05:00
|
|
|
$$(HLIB$(2)_H_$(4))/libextra.rlib: \
|
|
|
|
$$(TLIB$(1)_T_$(4)_H_$(3))/libextra.rlib \
|
|
|
|
$$(HLIB$(2)_H_$(4))/libstd.rlib \
|
2013-05-03 11:53:47 -05:00
|
|
|
$$(HLIB$(2)_H_$(4))/$$(CFG_RUNTIME_$(4)) \
|
2013-05-04 05:46:11 -05:00
|
|
|
| $$(HLIB$(2)_H_$(4))/
|
2011-10-01 22:12:08 -05:00
|
|
|
@$$(call E, cp: $$@)
|
|
|
|
$$(Q)cp $$< $$@
|
|
|
|
|
2011-12-16 19:21:18 -06:00
|
|
|
$$(HLIB$(2)_H_$(4))/librustc.rlib: \
|
|
|
|
$$(TLIB$(1)_T_$(4)_H_$(3))/librustc.rlib \
|
|
|
|
$$(HLIB$(2)_H_$(4))/libstd.rlib \
|
2013-05-17 12:45:09 -05:00
|
|
|
$$(HLIB$(2)_H_$(4))/libextra.rlib \
|
2013-05-03 11:53:47 -05:00
|
|
|
$$(HLIB$(2)_H_$(4))/$$(CFG_RUNTIME_$(4)) \
|
2013-05-04 05:46:11 -05:00
|
|
|
| $$(HLIB$(2)_H_$(4))/
|
2011-12-16 19:21:18 -06:00
|
|
|
@$$(call E, cp: $$@)
|
|
|
|
$$(Q)cp $$< $$@
|
|
|
|
|
2013-03-02 06:25:12 -06:00
|
|
|
$$(HLIB$(2)_H_$(4))/$(CFG_RUSTLLVM_$(4)): \
|
2013-05-03 11:53:47 -05:00
|
|
|
$$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_RUSTLLVM_$(4)) \
|
2013-05-04 05:46:11 -05:00
|
|
|
| $$(HLIB$(2)_H_$(4))/
|
2011-10-01 22:12:08 -05:00
|
|
|
@$$(call E, cp: $$@)
|
|
|
|
$$(Q)cp $$< $$@
|
|
|
|
|
2013-05-03 11:53:47 -05:00
|
|
|
$$(HBIN$(2)_H_$(4))/:
|
2013-05-04 03:57:56 -05:00
|
|
|
mkdir -p $$@
|
2013-05-03 11:53:47 -05:00
|
|
|
|
2013-05-07 01:29:05 -05:00
|
|
|
ifneq ($(CFG_LIBDIR),bin)
|
2013-05-04 05:46:11 -05:00
|
|
|
$$(HLIB$(2)_H_$(4))/:
|
|
|
|
mkdir -p $$@
|
2013-05-07 01:29:05 -05:00
|
|
|
endif
|
2013-05-04 05:46:11 -05:00
|
|
|
|
2011-10-01 22:12:08 -05:00
|
|
|
endef
|
|
|
|
|
2013-10-21 04:18:21 -05:00
|
|
|
$(foreach t,$(CFG_HOST), \
|
2011-11-21 15:11:40 -06:00
|
|
|
$(eval $(call CP_HOST_STAGE_N,0,1,$(t),$(t))) \
|
|
|
|
$(eval $(call CP_HOST_STAGE_N,1,2,$(t),$(t))) \
|
|
|
|
$(eval $(call CP_HOST_STAGE_N,2,3,$(t),$(t))))
|