basic builds function
This commit is contained in:
parent
579399f92f
commit
9c12c7c7f5
14 changed files with 371 additions and 323 deletions
94
Makefile.in
94
Makefile.in
|
@ -42,6 +42,8 @@
|
||||||
#
|
#
|
||||||
# Admittedly this is a little convoluted.
|
# Admittedly this is a little convoluted.
|
||||||
|
|
||||||
|
STAGES = 0 1 2 3
|
||||||
|
|
||||||
######################################################################
|
######################################################################
|
||||||
# Residual auto-configuration
|
# Residual auto-configuration
|
||||||
######################################################################
|
######################################################################
|
||||||
|
@ -243,51 +245,52 @@ export CFG_PREFIX
|
||||||
######################################################################
|
######################################################################
|
||||||
|
|
||||||
define SREQ
|
define SREQ
|
||||||
|
# $(1) is the stage number
|
||||||
|
# $(2) is the target triple
|
||||||
|
# $(3) is the build triple
|
||||||
|
|
||||||
# Destinations of artifacts for the host compiler
|
# Destinations of artifacts for the host compiler
|
||||||
HOST_ROOT$(1) = stage$(1)
|
HROOT$(1)_H_$(3) = $(3)/stage$(1)
|
||||||
HOST_BIN$(1) = $$(HOST_ROOT$(1))/bin
|
HBIN$(1)_H_$(3) = $$(HROOT$(1)_H_$(3))/bin
|
||||||
HOST_LIB$(1) = $$(HOST_ROOT$(1))/lib
|
HLIB$(1)_H_$(3) = $$(HROOT$(1)_H_$(3))/lib
|
||||||
|
|
||||||
# Destinations of artifacts for target architectures
|
# Destinations of artifacts for target architectures
|
||||||
TARGET_ROOT$(1)$(2) = $$(HOST_LIB$(1))/rustc/$(2)
|
TROOT$(1)_T_$(2)_H_$(3) = $$(HLIB$(1)_H_$(3))/rustc/$(2)
|
||||||
TARGET_BIN$(1)$(2) = $$(TARGET_ROOT$(1)$(2))/bin
|
TBIN$(1)_T_$(2)_H_$(3) = $$(TROOT$(1)_T_$(2)_H_$(3))/bin
|
||||||
TARGET_LIB$(1)$(2) = $$(TARGET_ROOT$(1)$(2))/lib
|
TLIB$(1)_T_$(2)_H_$(3) = $$(TROOT$(1)_T_$(2)_H_$(3))/lib
|
||||||
|
|
||||||
# The target locations of artifacts for the host architecture (used for
|
|
||||||
# promoting target binaries to host binaries)
|
|
||||||
TARGET_HOST_ROOT$(1) = $$(TARGET_ROOT$(1)$$(CFG_HOST_TRIPLE))
|
|
||||||
TARGET_HOST_BIN$(1) = $$(TARGET_BIN$(1)$$(CFG_HOST_TRIPLE))
|
|
||||||
TARGET_HOST_LIB$(1) = $$(TARGET_LIB$(1)$$(CFG_HOST_TRIPLE))
|
|
||||||
|
|
||||||
# The name of the standard library used by rustc
|
# The name of the standard library used by rustc
|
||||||
ifdef CFG_DISABLE_SHAREDSTD
|
ifdef CFG_DISABLE_SHAREDSTD
|
||||||
HOST_STDLIB_DEFAULT$(1) = $$(HOST_LIB$(1))/libstd.rlib
|
HSTDLIB_DEFAULT$(1)_H_$(3) = \
|
||||||
TARGET_STDLIB_DEFAULT$(1)$(2) = $$(TARGET_LIB$(1)$(2))/libstd.rlib
|
$$(HLIB$(1)_H_$(3))/libstd.rlib
|
||||||
|
TSTDLIB_DEFAULT$(1)_T_$(2)_H_$(3) = \
|
||||||
|
$$(TLIB$(1)_T_$(2)_H_$(3))/libstd.rlib
|
||||||
else
|
else
|
||||||
HOST_STDLIB_DEFAULT$(1) = $$(HOST_LIB$(1))/$(CFG_STDLIB)
|
HSTDLIB_DEFAULT$(1)_H_$(3) = \
|
||||||
TARGET_STDLIB_DEFAULT$(1)$(2) = $$(TARGET_LIB$(1)$(2))/$(CFG_STDLIB)
|
$$(HLIB$(1)_H_$(3))/$(CFG_STDLIB)
|
||||||
|
TSTDLIB_DEFAULT$(1)_T_$(2)_H_$(3) = \
|
||||||
|
$$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_STDLIB)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Preqrequisites for using the stageN compiler
|
# Preqrequisites for using the stageN compiler
|
||||||
HOST_SREQ$(1) = \
|
HSREQ$(1)_H_$(3) = \
|
||||||
$$(HOST_BIN$(1))/rustc$$(X) \
|
$$(HBIN$(1)_H_$(3))/rustc$$(X) \
|
||||||
$$(HOST_LIB$(1))/$$(CFG_RUNTIME) \
|
$$(HLIB$(1)_H_$(3))/$$(CFG_RUNTIME) \
|
||||||
$$(HOST_LIB$(1))/$$(CFG_RUSTLLVM) \
|
$$(HLIB$(1)_H_$(3))/$$(CFG_RUSTLLVM) \
|
||||||
$$(HOST_STDLIB_DEFAULT$(1)) \
|
$$(HSTDLIB_DEFAULT$(1)_H_$(3)) \
|
||||||
$$(MKFILES)
|
$$(MKFILES)
|
||||||
|
|
||||||
# Prerequisites for using the stageN compiler to build target artifacts
|
# Prerequisites for using the stageN compiler to build target artifacts
|
||||||
TARGET_SREQ$(1)$(2) = \
|
TSREQ$(1)_T_$(2)_H_$(3) = \
|
||||||
$$(HOST_SREQ$(1)) \
|
$$(HSREQ$(1)_H_$(3)) \
|
||||||
$$(TARGET_LIB$(1)$(2))/$$(CFG_RUNTIME) \
|
$$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_RUNTIME) \
|
||||||
$$(TARGET_LIB$(1)$(2))/intrinsics.bc \
|
$$(TLIB$(1)_T_$(2)_H_$(3))/intrinsics.bc \
|
||||||
$$(TARGET_LIB$(1)$(2))/libmorestack.a
|
$$(TLIB$(1)_T_$(2)_H_$(3))/libmorestack.a
|
||||||
|
|
||||||
# Prerequisites for complete stageN targets
|
# Prerequisites for complete stageN targets
|
||||||
SREQ$(1)$(2) = \
|
SREQ$(1)_T_$(2)_H_$(3) = \
|
||||||
$$(TARGET_SREQ$(1)$(2)) \
|
$$(TSREQ$(1)_T_$(2)_H_$(3)) \
|
||||||
$$(TARGET_LIB$(1)$(2))/$$(CFG_STDLIB)
|
$$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_STDLIB)
|
||||||
|
|
||||||
ifeq ($(1),0)
|
ifeq ($(1),0)
|
||||||
# Don't run the the stage0 compiler under valgrind - that ship has sailed
|
# Don't run the the stage0 compiler under valgrind - that ship has sailed
|
||||||
|
@ -296,21 +299,24 @@ else
|
||||||
CFG_VALGRIND_COMPILE$(1) = $$(CFG_VALGRIND_COMPILE)
|
CFG_VALGRIND_COMPILE$(1) = $$(CFG_VALGRIND_COMPILE)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
STAGE$(1)_$(2) := $$(Q)$$(call CFG_RUN_TARG,$(1), \
|
STAGE$(1)_T_$(2)_H_$(3) := \
|
||||||
$$(CFG_VALGRIND_COMPILE$(1)) $$(HOST_BIN$(1))/rustc$$(X) \
|
$$(Q)$$(call CFG_RUN_TARG,$(1), \
|
||||||
$$(CFG_RUSTC_FLAGS) --target=$(2))
|
$$(CFG_VALGRIND_COMPILE$(1)) \
|
||||||
|
$$(HBIN$(1)_H_$(3))/rustc$$(X) \
|
||||||
|
$$(CFG_RUSTC_FLAGS) --target=$(2))
|
||||||
|
|
||||||
PERF_STAGE$(1)_$(2) := $$(Q)$$(call CFG_RUN_TARG,$(1), \
|
PERF_STAGE$(1)_T_$(2)_H_$(3) := \
|
||||||
$$(CFG_PERF_TOOL) $$(HOST_BIN$(1))/rustc$$(X) \
|
$$(Q)$$(call CFG_RUN_TARG,$(1), \
|
||||||
$$(CFG_RUSTC_FLAGS) --target=$(2))
|
$$(CFG_PERF_TOOL) \
|
||||||
|
$$(HBIN$(1)_H_$(3))/rustc$$(X) \
|
||||||
|
$$(CFG_RUSTC_FLAGS) --target=$(2))
|
||||||
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
$(foreach target,$(CFG_TARGET_TRIPLES), \
|
$(foreach build,$(CFG_TARGET_TRIPLES), \
|
||||||
$(eval $(call SREQ,0,$(target))) \
|
$(eval $(foreach target,$(CFG_TARGET_TRIPLES), \
|
||||||
$(eval $(call SREQ,1,$(target))) \
|
$(eval $(foreach stage,$(STAGES), \
|
||||||
$(eval $(call SREQ,2,$(target))) \
|
$(eval $(call SREQ,$(stage),$(target),$(build))))))))
|
||||||
$(eval $(call SREQ,3,$(target))))
|
|
||||||
|
|
||||||
######################################################################
|
######################################################################
|
||||||
# Entrypoint rule
|
# Entrypoint rule
|
||||||
|
@ -327,11 +333,13 @@ all: $(SREQ1$(CFG_HOST_TRIPLE)) $(GENERATED) $(DOCS)
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
||||||
TARGET_SREQS := $(foreach target,$(CFG_TARGET_TRIPLES),$(SREQ3$(target)))
|
TSREQS := \
|
||||||
FUZZ := $(HOST_BIN3)/fuzzer$(X)
|
$(foreach target,$(CFG_TARGET_TRIPLES), \
|
||||||
|
$(SREQ3_T_$(target)_H_$(CFG_HOST_TRIPLE)))
|
||||||
|
FUZZ := $(HBIN3_H_$(CFG_HOST_TRIPLE))/fuzzer$(X)
|
||||||
|
|
||||||
#all: $(SREQ3$(CFG_HOST_TRIPLE)) $(GENERATED) $(DOCS) $(FUZZ)
|
#all: $(SREQ3$(CFG_HOST_TRIPLE)) $(GENERATED) $(DOCS) $(FUZZ)
|
||||||
all: $(TARGET_SREQS) $(GENERATED) $(DOCS) $(FUZZ)
|
all: $(TSREQS) $(GENERATED) $(DOCS) $(FUZZ)
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
24
configure
vendored
24
configure
vendored
|
@ -380,25 +380,27 @@ do
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
|
|
||||||
for t in $CFG_TARGET_TRIPLES
|
for h in $CFG_TARGET_TRIPLES
|
||||||
do
|
do
|
||||||
for i in 0 1 2 3
|
for t in $CFG_TARGET_TRIPLES
|
||||||
do
|
do
|
||||||
# host bin dir
|
for i in 0 1 2 3
|
||||||
make_dir stage$i/bin
|
do
|
||||||
|
# host bin dir
|
||||||
|
make_dir $h/stage$i/bin
|
||||||
|
|
||||||
# host lib dir
|
# host lib dir
|
||||||
make_dir stage$i/lib
|
make_dir $h/stage$i/lib
|
||||||
|
|
||||||
# target bin dir
|
# target bin dir
|
||||||
make_dir stage$i/lib/rustc/$t/bin
|
make_dir $h/stage$i/lib/rustc/$t/bin
|
||||||
|
|
||||||
# target lib dir
|
# target lib dir
|
||||||
make_dir stage$i/lib/rustc/$t/lib
|
make_dir $h/stage$i/lib/rustc/$t/lib
|
||||||
|
done
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
||||||
# Configure submodules
|
# Configure submodules
|
||||||
step_msg "configuring submodules"
|
step_msg "configuring submodules"
|
||||||
|
|
||||||
|
|
66
mk/clean.mk
66
mk/clean.mk
|
@ -2,12 +2,16 @@
|
||||||
# Cleanup
|
# Cleanup
|
||||||
######################################################################
|
######################################################################
|
||||||
|
|
||||||
CLEAN_STAGE_RULES = $(foreach target,$(CFG_TARGET_TRIPLES), \
|
CLEAN_STAGE_RULES = \
|
||||||
clean0$(target) clean1$(target) clean2$(target) clean3$(target)) \
|
$(foreach stage, $(STAGES), \
|
||||||
clean0 clean1 clean2 clean3
|
$(foreach host, $(CFG_TARGET_TRIPLES), \
|
||||||
|
clean$(stage)_H_$(host) \
|
||||||
|
$(foreach target, $(CFG_TARGET_TRIPLES), \
|
||||||
|
clean$(stage)_H_$(host)_T_$(target))))
|
||||||
|
|
||||||
CLEAN_LLVM_RULES = $(foreach target,$(CFG_TARGET_TRIPLES), \
|
CLEAN_LLVM_RULES = \
|
||||||
clean-llvm$(target))
|
$(foreach target, $(CFG_TARGET_TRIPLES), \
|
||||||
|
clean-llvm$(target))
|
||||||
|
|
||||||
.PHONY: clean clean-all clean-misc
|
.PHONY: clean clean-all clean-misc
|
||||||
|
|
||||||
|
@ -45,41 +49,45 @@ clean-misc:
|
||||||
$(Q)rm -Rf doc/version.texi
|
$(Q)rm -Rf doc/version.texi
|
||||||
$(Q)rm -rf libuv
|
$(Q)rm -rf libuv
|
||||||
|
|
||||||
define CLEAN_STAGE_N
|
define CLEAN_HOST_STAGE_N
|
||||||
|
|
||||||
clean$(1):
|
clean$(1)_H_$(2):
|
||||||
$(Q)rm -f $$(HOST_BIN$(1))/rustc$(X)
|
$(Q)rm -f $$(HBIN$(1)_H_$(2))/rustc$(X)
|
||||||
$(Q)rm -f $$(HOST_BIN$(1))/fuzzer$(X)
|
$(Q)rm -f $$(HBIN$(1)_H_$(2))/fuzzer$(X)
|
||||||
$(Q)rm -f $$(HOST_LIB$(1))/$(CFG_RUNTIME)
|
$(Q)rm -f $$(HLIB$(1)_H_$(2))/$(CFG_RUNTIME)
|
||||||
$(Q)rm -f $$(HOST_LIB$(1))/$(CFG_STDLIB)
|
$(Q)rm -f $$(HLIB$(1)_H_$(2))/$(CFG_STDLIB)
|
||||||
$(Q)rm -f $$(HOST_LIB$(1))/$(CFG_RUSTLLVM)
|
$(Q)rm -f $$(HLIB$(1)_H_$(2))/$(CFG_RUSTLLVM)
|
||||||
$(Q)rm -f $$(HOST_LIB$(1))/libstd.rlib
|
$(Q)rm -f $$(HLIB$(1)_H_$(2))/libstd.rlib
|
||||||
|
|
||||||
clean$(1)$(2):
|
|
||||||
$(Q)rm -f $$(TARGET_BIN$(1)$(2))/rustc$(X)
|
|
||||||
$(Q)rm -f $$(TARGET_BIN$(1)$(2))/fuzzer$(X)
|
|
||||||
$(Q)rm -f $$(TARGET_LIB$(1)$(2))/$(CFG_RUNTIME)
|
|
||||||
$(Q)rm -f $$(TARGET_LIB$(1)$(2))/$(CFG_STDLIB)
|
|
||||||
$(Q)rm -f $$(TARGET_LIB$(1)$(2))/$(CFG_RUSTLLVM)
|
|
||||||
$(Q)rm -f $$(TARGET_LIB$(1)$(2))/libstd.rlib
|
|
||||||
$(Q)rm -f $$(TARGET_LIB$(1)$(2))/intrinsics.bc
|
|
||||||
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
$(foreach target, $(CFG_TARGET_TRIPLES), \
|
$(foreach host, $(CFG_TARGET_TRIPLES), \
|
||||||
$(eval $(call CLEAN_STAGE_N,0,$(target))) \
|
$(eval $(foreach stage, $(STAGES), \
|
||||||
$(eval $(call CLEAN_STAGE_N,1,$(target))) \
|
$(eval $(call CLEAN_HOST_STAGE_N,$(stage),$(host))))))
|
||||||
$(eval $(call CLEAN_STAGE_N,2,$(target))) \
|
|
||||||
$(eval $(call CLEAN_STAGE_N,3,$(target))))
|
|
||||||
|
|
||||||
|
define CLEAN_TARGET_STAGE_N
|
||||||
|
|
||||||
|
clean$(1)_T_$(2)_H$(3):
|
||||||
|
$(Q)rm -f $$(TBIN$(1)_T_$(2)_H_$(3))/rustc$(X)
|
||||||
|
$(Q)rm -f $$(TBIN$(1)_T_$(2)_H_$(3))/fuzzer$(X)
|
||||||
|
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_RUNTIME)
|
||||||
|
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_STDLIB)
|
||||||
|
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_RUSTLLVM)
|
||||||
|
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/libstd.rlib
|
||||||
|
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/intrinsics.bc
|
||||||
|
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(foreach host, $(CFG_TARGET_TRIPLES), \
|
||||||
|
$(eval $(foreach target, $(CFG_TARGET_TRIPLES), \
|
||||||
|
$(eval $(foreach stage, $(STAGES), \
|
||||||
|
$(eval $(call CLEAN_TARGET_STAGE_N,$(stage),$(target),$(host))))))))
|
||||||
|
|
||||||
define DEF_CLEAN_LLVM_TARGET
|
define DEF_CLEAN_LLVM_TARGET
|
||||||
ifeq ($(CFG_LLVM_ROOT),)
|
ifeq ($(CFG_LLVM_ROOT),)
|
||||||
|
|
||||||
clean-llvm$(1):
|
clean-llvm$(1):
|
||||||
$$(Q)$$(MAKE) -C $$(CFG_LLVM_BUILD_DIR_$(1)) clean
|
$$(Q)$$(MAKE) -C $$(CFG_LLVM_BUILD_DIR_$(1)) clean
|
||||||
else
|
else
|
||||||
|
|
||||||
clean-llvm$(1): ;
|
clean-llvm$(1): ;
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
57
mk/host.mk
57
mk/host.mk
|
@ -1,56 +1,59 @@
|
||||||
# HOST_STAGE_N template: arg 1 is the N we're promoting *from*, arg 2
|
# CP_HOST_STAGE_N template: arg 1 is the N we're promoting *from*, arg
|
||||||
# is N+1. Must be invoked to promote target artifacts to host artifacts
|
# 2 is N+1. Must be invoked to promote target artifacts to host
|
||||||
# for stage 1-3 (stage0 host artifacts come from the snapshot).
|
# 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.
|
||||||
#
|
#
|
||||||
# The easiest way to read this template is to assume we're promoting
|
# 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.
|
# stage1 to stage2 and mentally gloss $(1) as 1, $(2) as 2.
|
||||||
|
|
||||||
define HOST_STAGE_N
|
define CP_HOST_STAGE_N
|
||||||
|
|
||||||
# Host libraries and executables (stage$(2)/bin/rustc and its runtime needs)
|
# Host libraries and executables (stage$(2)/bin/rustc and its runtime needs)
|
||||||
|
|
||||||
$$(HOST_BIN$(2))/rustc$$(X): \
|
$$(HBIN$(2)_H_$(4))/rustc$$(X): \
|
||||||
$$(TARGET_HOST_BIN$(1))/rustc$$(X) \
|
$$(TBIN$(1)_T_$(4)_H_$(3))/rustc$$(X) \
|
||||||
$$(HOST_LIB$(2))/$$(CFG_RUNTIME) \
|
$$(HLIB$(2)_H_$(4))/$$(CFG_RUNTIME) \
|
||||||
$$(HOST_LIB$(2))/$$(CFG_RUSTLLVM) \
|
$$(HLIB$(2)_H_$(4))/$$(CFG_RUSTLLVM) \
|
||||||
$$(HOST_STDLIB_DEFAULT$(2))
|
$$(HSTDLIB_DEFAULT$(2)_H_$(4))
|
||||||
@$$(call E, cp: $$@)
|
@$$(call E, cp: $$@)
|
||||||
$$(Q)cp $$< $$@
|
$$(Q)cp $$< $$@
|
||||||
|
|
||||||
# FIXME: The fuzzer depends on this. Remove once it's rpathed to correctly
|
# FIXME: The fuzzer depends on this. Remove once it's rpathed to correctly
|
||||||
# find it in the appropriate target directory
|
# find it in the appropriate target directory
|
||||||
$$(HOST_LIB$(2))/$$(CFG_LIBRUSTC): \
|
$$(HLIB$(2)_H_$(4))/$$(CFG_LIBRUSTC): \
|
||||||
$$(TARGET_HOST_LIB$(1))/$$(CFG_LIBRUSTC) \
|
$$(TLIB$(1)_T_$(4)_H_$(3))/$$(CFG_LIBRUSTC) \
|
||||||
$$(HOST_LIB$(2))/$$(CFG_RUNTIME) \
|
$$(HLIB$(2)_H_$(4))/$$(CFG_RUNTIME) \
|
||||||
$$(HOST_LIB$(2))/$$(CFG_RUSTLLVM) \
|
$$(HLIB$(2)_H_$(4))/$$(CFG_RUSTLLVM) \
|
||||||
$$(HOST_STDLIB_DEFAULT$(2))
|
$$(HSTDLIB_DEFAULT$(2)_H_$(3))
|
||||||
@$$(call E, cp: $$@)
|
@$$(call E, cp: $$@)
|
||||||
$$(Q)cp $$< $$@
|
$$(Q)cp $$< $$@
|
||||||
|
|
||||||
$$(HOST_LIB$(2))/$$(CFG_RUNTIME): \
|
$$(HLIB$(2)_H_$(4))/$$(CFG_RUNTIME): \
|
||||||
$$(TARGET_HOST_LIB$(1))/$$(CFG_RUNTIME)
|
$$(TLIB$(1)_T_$(4)_H_$(3))/$$(CFG_RUNTIME)
|
||||||
@$$(call E, cp: $$@)
|
@$$(call E, cp: $$@)
|
||||||
$$(Q)cp $$< $$@
|
$$(Q)cp $$< $$@
|
||||||
|
|
||||||
$$(HOST_LIB$(2))/$$(CFG_STDLIB): \
|
$$(HLIB$(2)_H_$(4))/$$(CFG_STDLIB): \
|
||||||
$$(TARGET_HOST_LIB$(1))/$$(CFG_STDLIB) \
|
$$(TLIB$(1)_T_$(4)_H_$(3))/$$(CFG_STDLIB) \
|
||||||
$$(HOST_LIB$(2))/$$(CFG_RUNTIME)
|
$$(HLIB$(2)_H_$(4))/$$(CFG_RUNTIME)
|
||||||
@$$(call E, cp: $$@)
|
@$$(call E, cp: $$@)
|
||||||
$$(Q)cp $$< $$@
|
$$(Q)cp $$< $$@
|
||||||
|
|
||||||
$$(HOST_LIB$(2))/libstd.rlib: \
|
$$(HLIB$(2)_H_$(4))/libstd.rlib: \
|
||||||
$$(TARGET_HOST_LIB$(1))/libstd.rlib \
|
$$(TLIB$(1)_T_$(4)_H_$(3))/libstd.rlib \
|
||||||
$$(HOST_LIB$(2))/$$(CFG_RUNTIME)
|
$$(HLIB$(2)_H_$(4))/$$(CFG_RUNTIME)
|
||||||
@$$(call E, cp: $$@)
|
@$$(call E, cp: $$@)
|
||||||
$$(Q)cp $$< $$@
|
$$(Q)cp $$< $$@
|
||||||
|
|
||||||
$$(HOST_LIB$(2))/$$(CFG_RUSTLLVM): \
|
$$(HLIB$(2)_H_$(4))/$$(CFG_RUSTLLVM): \
|
||||||
$$(TARGET_HOST_LIB$(1))/$$(CFG_RUSTLLVM)
|
$$(TLIB$(1)_T_$(4)_H_$(3))/$$(CFG_RUSTLLVM)
|
||||||
@$$(call E, cp: $$@)
|
@$$(call E, cp: $$@)
|
||||||
$$(Q)cp $$< $$@
|
$$(Q)cp $$< $$@
|
||||||
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
$(eval $(call HOST_STAGE_N,0,1))
|
$(foreach t,$(CFG_TARGET_TRIPLES), \
|
||||||
$(eval $(call HOST_STAGE_N,1,2))
|
$(eval $(call CP_HOST_STAGE_N,0,1,$(t),$(t))) \
|
||||||
$(eval $(call HOST_STAGE_N,2,3))
|
$(eval $(call CP_HOST_STAGE_N,1,2,$(t),$(t))) \
|
||||||
|
$(eval $(call CP_HOST_STAGE_N,2,3,$(t),$(t))))
|
||||||
|
|
|
@ -17,43 +17,44 @@ PREFIX_ROOT = $(CFG_PREFIX)
|
||||||
PREFIX_BIN = $(PREFIX_ROOT)/bin
|
PREFIX_BIN = $(PREFIX_ROOT)/bin
|
||||||
PREFIX_LIB = $(PREFIX_ROOT)/lib
|
PREFIX_LIB = $(PREFIX_ROOT)/lib
|
||||||
|
|
||||||
|
define INSTALL_TARGET_N
|
||||||
|
# $(1) is the target triple
|
||||||
|
# $(2) is the host triple
|
||||||
|
|
||||||
|
# T{B,L} == Target {Bin, Lib} for stage ${ISTAGE}
|
||||||
|
TB$(1)_H_$(2) = $$(TBIN$$(ISTAGE)_T_$(1)_H_$(2))
|
||||||
|
TL$(1)_H_$(2) = $$(TLIB$$(ISTAGE))_T_$(1)_H_$(2))
|
||||||
|
|
||||||
|
# PT{R,B,L} == Prefix Target {Root, Bin, Lib}
|
||||||
|
PTR_T_$(1)_H_$(2) = $$(PREFIX_LIB)/rustc/$(1)
|
||||||
|
PTB_T_$(1)_H_$(2) = $$(PTR_T_$(1)_H_$(2))/bin
|
||||||
|
PTL_T_$(1)_H_$(2) = $$(PTR_T_$(1)_H_$(2))/lib
|
||||||
|
|
||||||
|
install-target-$(1)-host-$(2): $$(SREQ$$(ISTAGE)_T_$(1)_H_$(2))
|
||||||
|
$(Q)mkdir -p $$(PTL_$(1)_H_$(2))
|
||||||
|
$(Q)$(call INSTALL,$$(TL$(1)_H_$(2)),$$(PTL$(1)_H_$(2)),$$(CFG_RUNTIME))
|
||||||
|
$(Q)$(call INSTALL,$$(TL$(1)_H_$(2)),$$(PTL$(1)_H_$(2)),$$(CFG_STDLIB))
|
||||||
|
$(Q)$(call INSTALL,$$(TL$(1)_H_$(2)),$$(PTL$(1)_H_$(2)),intrinsics.bc)
|
||||||
|
$(Q)$(call INSTALL,$$(TL$(1)_H_$(2)),$$(PTL$(1)_H_$(2)),libmorestack.a)
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(foreach target,$(CFG_TARGET_TRIPLES), \
|
||||||
|
$(eval $(call INSTALL_TARGET_N,$(target),$(CFG_HOST_TRIPLE))))
|
||||||
|
|
||||||
|
INSTALL_TARGET_RULES = $(foreach target,$(CFG_TARGET_TRIPLES), \
|
||||||
|
install-target-$(target)-host-$(CFG_HOST_TRIPLE))
|
||||||
|
|
||||||
|
install: install-host install-targets
|
||||||
|
|
||||||
# Shorthand for build/stageN/bin
|
# Shorthand for build/stageN/bin
|
||||||
HB = $(HOST_BIN$(ISTAGE))
|
HB = $(HBIN$(ISTAGE)_H_$(HT))
|
||||||
# Shorthand for build/stageN/lib
|
# Shorthand for build/stageN/lib
|
||||||
HL = $(HOST_LIB$(ISTAGE))
|
HL = $(HLIB$(ISTAGE)_H_$(HT))
|
||||||
# Shorthand for the prefix bin directory
|
# Shorthand for the prefix bin directory
|
||||||
PHB = $(PREFIX_BIN)
|
PHB = $(PREFIX_BIN)
|
||||||
# Shorthand for the prefix bin directory
|
# Shorthand for the prefix bin directory
|
||||||
PHL = $(PREFIX_LIB)
|
PHL = $(PREFIX_LIB)
|
||||||
|
|
||||||
define INSTALL_TARGET_N
|
|
||||||
|
|
||||||
PREFIX_TARGET_ROOT$(1) = $$(PREFIX_LIB)/rustc/$(1)
|
|
||||||
PREFIX_TARGET_BIN$(1) = $$(PREFIX_TARGET_ROOT$(1))/bin
|
|
||||||
PREFIX_TARGET_LIB$(1) = $$(PREFIX_TARGET_ROOT$(1))/lib
|
|
||||||
|
|
||||||
# Similar to the H* macros above but for each target triple
|
|
||||||
TB$(1) = $$(TARGET_BIN$$(ISTAGE)$(1))
|
|
||||||
TL$(1) = $$(TARGET_LIB$$(ISTAGE)$(1))
|
|
||||||
PTB$(1) = $$(PREFIX_TARGET_BIN$(1))
|
|
||||||
PTL$(1) = $$(PREFIX_TARGET_LIB$(1))
|
|
||||||
|
|
||||||
install-target$(1): $$(SREQ$$(ISTAGE)$(1))
|
|
||||||
$(Q)mkdir -p $$(PREFIX_TARGET_LIB$(1))
|
|
||||||
$(Q)$(call INSTALL,$$(TL$(1)),$$(PTL$(1)),$$(CFG_RUNTIME))
|
|
||||||
$(Q)$(call INSTALL,$$(TL$(1)),$$(PTL$(1)),$$(CFG_STDLIB))
|
|
||||||
$(Q)$(call INSTALL,$$(TL$(1)),$$(PTL$(1)),intrinsics.bc)
|
|
||||||
$(Q)$(call INSTALL,$$(TL$(1)),$$(PTL$(1)),libmorestack.a)
|
|
||||||
endef
|
|
||||||
|
|
||||||
$(foreach target,$(CFG_TARGET_TRIPLES), \
|
|
||||||
$(eval $(call INSTALL_TARGET_N,$(target))))
|
|
||||||
|
|
||||||
INSTALL_TARGET_RULES = $(foreach target,$(CFG_TARGET_TRIPLES), \
|
|
||||||
install-target$(target))
|
|
||||||
|
|
||||||
install: install-host install-targets
|
|
||||||
|
|
||||||
install-host: $(SREQ$(ISTAGE)$(CFG_HOST_TRIPLE))
|
install-host: $(SREQ$(ISTAGE)$(CFG_HOST_TRIPLE))
|
||||||
$(Q)mkdir -p $(PREFIX_BIN)
|
$(Q)mkdir -p $(PREFIX_BIN)
|
||||||
$(Q)mkdir -p $(PREFIX_LIB)
|
$(Q)mkdir -p $(PREFIX_LIB)
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
|
|
||||||
ifdef CFG_PERF_TOOL
|
ifdef CFG_PERF_TOOL
|
||||||
rustc-perf$(X): stage2/bin/rustc$(X)
|
rustc-perf$(X): $(CFG_HOST_TRIPLE)/stage2/bin/rustc$(X)
|
||||||
@$(call E, perf compile: $@)
|
@$(call E, perf compile: $@)
|
||||||
$(PERF_STAGE2_$(CFG_HOST_TRIPLE)) -o $@ $(COMPILER_CRATE) >rustc-perf.err 2>&1
|
$(PERF_STAGE2_$(CFG_HOST_TRIPLE)) -o $@ $(COMPILER_CRATE) >rustc-perf.err 2>&1
|
||||||
$(Q)rm -f $@
|
$(Q)rm -f $@
|
||||||
else
|
else
|
||||||
rustc-perf$(X): stage2/bin/rustc$(X)
|
rustc-perf$(X): $(CFG_HOST_TRIPLE)/stage2/bin/rustc$(X)
|
||||||
$(Q)touch $@
|
$(Q)touch $@
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
|
@ -101,7 +101,7 @@ else
|
||||||
CFG_GCCISH_CFLAGS += -O2
|
CFG_GCCISH_CFLAGS += -O2
|
||||||
endif
|
endif
|
||||||
|
|
||||||
CFG_TESTLIB=$(CFG_BUILD_DIR)/$(strip \
|
CFG_TESTLIB=$(CFG_BUILD_DIR)/$(CFG_HOST_TRIPLE)/$(strip \
|
||||||
$(if $(findstring stage0,$(1)), \
|
$(if $(findstring stage0,$(1)), \
|
||||||
stage0/lib, \
|
stage0/lib, \
|
||||||
$(if $(findstring stage1,$(1)), \
|
$(if $(findstring stage1,$(1)), \
|
||||||
|
|
2
mk/pp.mk
2
mk/pp.mk
|
@ -15,7 +15,7 @@ endif
|
||||||
reformat: $(SREQ1$(CFG_HOST_TRIPLE))
|
reformat: $(SREQ1$(CFG_HOST_TRIPLE))
|
||||||
@$(call E, reformat [stage1]: $@)
|
@$(call E, reformat [stage1]: $@)
|
||||||
for i in $(PP_INPUTS_FILTERED); \
|
for i in $(PP_INPUTS_FILTERED); \
|
||||||
do $(call CFG_RUN_TARG,1,stage1/rustc$(X)) \
|
do $(call CFG_RUN_TARG,1,$(CFG_HOST_TRIPLE)/stage1/rustc$(X)) \
|
||||||
--pretty normal $$i >$$i.tmp; \
|
--pretty normal $$i >$$i.tmp; \
|
||||||
if [ $$? -ne 0 ]; \
|
if [ $$? -ne 0 ]; \
|
||||||
then echo failed to print $$i; rm $$i.tmp; \
|
then echo failed to print $$i; rm $$i.tmp; \
|
||||||
|
|
12
mk/snap.mk
12
mk/snap.mk
|
@ -1,9 +1,9 @@
|
||||||
|
|
||||||
snap-stage1: $(HOST_SREQ1)
|
snap-stage1: $(HSREQ1_H_$(CFG_HOST_TRIPLE))
|
||||||
$(S)src/etc/make-snapshot.py stage1
|
$(S)src/etc/make-snapshot.py $(CFG_HOST_TRIPLE)/stage1
|
||||||
|
|
||||||
snap-stage2: $(HOST_SREQ2)
|
snap-stage2: $(HSREQ2_H_$(CFG_HOST_TRIPLE)
|
||||||
$(S)src/etc/make-snapshot.py stage2
|
$(S)src/etc/make-snapshot.py $(CFG_HOST_TRIPLE)/stage2
|
||||||
|
|
||||||
snap-stage3: $(HOST_SREQ3)
|
snap-stage3: $(HSREQ3_H_$(CFG_HOST_TRIPLE)
|
||||||
$(S)src/etc/make-snapshot.py stage3
|
$(S)src/etc/make-snapshot.py $(CFG_HOST_TRIPLE)/stage3
|
||||||
|
|
17
mk/stage0.mk
17
mk/stage0.mk
|
@ -1,19 +1,22 @@
|
||||||
# Extract the snapshot host compiler
|
# Extract the snapshot host compiler
|
||||||
|
|
||||||
$(HOST_BIN0)/rustc$(X): \
|
$(HBIN0_H_$(CFG_HOST_TRIPLE))/rustc$(X): \
|
||||||
$(S)src/snapshots.txt \
|
$(S)src/snapshots.txt \
|
||||||
$(S)src/etc/get-snapshot.py $(MKFILES)
|
$(S)src/etc/get-snapshot.py $(MKFILES)
|
||||||
@$(call E, fetch: $@)
|
@$(call E, fetch: $@)
|
||||||
$(Q)$(S)src/etc/get-snapshot.py
|
$(Q)$(S)src/etc/get-snapshot.py $(CFG_HOST_TRIPLE)
|
||||||
$(Q)touch $@
|
$(Q)touch $@
|
||||||
|
|
||||||
# Host libs will be extracted by the above rule
|
# Host libs will be extracted by the above rule
|
||||||
|
|
||||||
$(HOST_LIB0)/$(CFG_RUNTIME): $(HOST_BIN0)/rustc$(X)
|
$(HLIB0_H_$(CFG_HOST_TRIPLE))/$(CFG_RUNTIME): \
|
||||||
|
$(HBIN0_H_$(CFG_HOST_TRIPLE))/rustc$(X)
|
||||||
$(Q)touch $@
|
$(Q)touch $@
|
||||||
|
|
||||||
$(HOST_LIB0)/$(CFG_STDLIB): $(HOST_BIN0)/rustc$(X)
|
$(HLIB0_H_$(CFG_HOST_TRIPLE))/$(CFG_STDLIB): \
|
||||||
|
$(HBIN0_H_$(CFG_HOST_TRIPLE))/rustc$(X)
|
||||||
$(Q)touch $@
|
$(Q)touch $@
|
||||||
|
|
||||||
$(HOST_LIB0)/$(CFG_RUSTLLVM): $(HOST_BIN0)/rustc$(X)
|
$(HLIB0_H_$(CFG_HOST_TRIPLE))/$(CFG_RUSTLLVM): \
|
||||||
|
$(HBIN0_H_$(CFG_HOST_TRIPLE))/rustc$(X)
|
||||||
$(Q)touch $@
|
$(Q)touch $@
|
||||||
|
|
73
mk/target.mk
73
mk/target.mk
|
@ -1,67 +1,64 @@
|
||||||
# TARGET_STAGE_N template: This defines how target artifacts are built
|
# TARGET_STAGE_N template: This defines how target artifacts are built
|
||||||
# for all stage/target architecture combinations. Argument 1 is the
|
# for all stage/target architecture combinations. The arguments:
|
||||||
# stage and arg 2 is the target triple
|
# $(1) is the stage
|
||||||
|
# $(2) is the target triple
|
||||||
# FIXME: We don't actually know how to build many of these when host
|
# $(3) is the host triple
|
||||||
# and target architectures are not the same
|
|
||||||
|
|
||||||
define TARGET_STAGE_N
|
define TARGET_STAGE_N
|
||||||
|
|
||||||
$$(TARGET_LIB$(1)$(2))/intrinsics.ll: \
|
$$(TLIB$(1)_T_$(2)_H_$(3))/intrinsics.ll: \
|
||||||
$$(S)src/rt/intrinsics/intrinsics.$(HOST_$(2)).ll.in
|
$$(S)src/rt/intrinsics/intrinsics.$(HOST_$(2)).ll.in
|
||||||
@$$(call E, sed: $$@)
|
@$$(call E, sed: $$@)
|
||||||
$$(Q)sed s/@CFG_TARGET_TRIPLE@/$(2)/ $$< > $$@
|
$$(Q)sed s/@CFG_TARGET_TRIPLE@/$(2)/ $$< > $$@
|
||||||
|
|
||||||
$$(TARGET_LIB$(1)$(2))/intrinsics.bc: $$(TARGET_LIB$(1)$(2))/intrinsics.ll \
|
$$(TLIB$(1)_T_$(2)_H_$(3))/intrinsics.bc: \
|
||||||
|
$$(TLIB$(1)_T_$(2)_H_$(3))/intrinsics.ll \
|
||||||
$$(LLVM_CONFIG_$(2))
|
$$(LLVM_CONFIG_$(2))
|
||||||
@$$(call E, llvms-as: $$@)
|
@$$(call E, llvms-as: $$@)
|
||||||
$$(Q)$$(LLVM_AS_$(2)) -o $$@ $$<
|
$$(Q)$$(LLVM_AS_$(2)) -o $$@ $$<
|
||||||
|
|
||||||
$$(TARGET_LIB$(1)$(2))/libmorestack.a: rt/$(2)/arch/$$(HOST_$(2))/libmorestack.a
|
$$(TLIB$(1)_T_$(2)_H_$(3))/libmorestack.a: \
|
||||||
|
rt/$(2)/arch/$$(HOST_$(2))/libmorestack.a
|
||||||
@$$(call E, cp: $$@)
|
@$$(call E, cp: $$@)
|
||||||
$$(Q)cp $$< $$@
|
$$(Q)cp $$< $$@
|
||||||
|
|
||||||
$$(TARGET_LIB$(1)$(2))/$$(CFG_STDLIB): \
|
$$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_STDLIB): \
|
||||||
$$(STDLIB_CRATE) $$(STDLIB_INPUTS) \
|
$$(STDLIB_CRATE) $$(STDLIB_INPUTS) \
|
||||||
$$(TARGET_SREQ$(1)$(2))
|
$$(TSREQ$(1)_T_$(2)_H_$(3))
|
||||||
@$$(call E, compile_and_link: $$@)
|
@$$(call E, compile_and_link: $$@)
|
||||||
$$(STAGE$(1)_$(2)) --lib -o $$@ $$<
|
$$(STAGE$(1)_T_$(2)_H_$(3)) --lib -o $$@ $$<
|
||||||
|
|
||||||
$$(TARGET_LIB$(1)$(2))/libstd.rlib: \
|
$$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_RUNTIME): \
|
||||||
$$(STDLIB_CRATE) $$(STDLIB_INPUTS) \
|
rt/$(2)/$$(CFG_RUNTIME)
|
||||||
$$(TARGET_SREQ$(1)$(2))
|
|
||||||
@$$(call E, compile_and_link: $$@)
|
|
||||||
$$(STAGE$(1)_$(2)) --lib --static -o $$@ $$<
|
|
||||||
|
|
||||||
$$(TARGET_LIB$(1)$(2))/$$(CFG_RUNTIME): rt/$(2)/$$(CFG_RUNTIME)
|
|
||||||
@$$(call E, cp: $$@)
|
@$$(call E, cp: $$@)
|
||||||
$$(Q)cp $$< $$@
|
$$(Q)cp $$< $$@
|
||||||
|
|
||||||
$$(TARGET_LIB$(1)$(2))/$$(CFG_RUSTLLVM): rustllvm/$(2)/$$(CFG_RUSTLLVM)
|
$$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_RUSTLLVM): \
|
||||||
|
rustllvm/$(2)/$$(CFG_RUSTLLVM)
|
||||||
@$$(call E, cp: $$@)
|
@$$(call E, cp: $$@)
|
||||||
$$(Q)cp $$< $$@
|
$$(Q)cp $$< $$@
|
||||||
|
|
||||||
$$(TARGET_BIN$(1)$(2))/rustc$$(X): \
|
$$(TBIN$(1)_T_$(2)_H_$(3))/rustc$$(X): \
|
||||||
$$(COMPILER_CRATE) $$(COMPILER_INPUTS) \
|
$$(COMPILER_CRATE) $$(COMPILER_INPUTS) \
|
||||||
$$(TARGET_SREQ$(1)$(2)) \
|
$$(TSREQ$(1)_T_$(2)_H_$(3)) \
|
||||||
$$(TARGET_LIB$(1)$(2))/$$(CFG_RUSTLLVM) \
|
$$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_RUSTLLVM) \
|
||||||
$$(TARGET_STDLIB_DEFAULT$(1)$(2))
|
$$(TSTDLIB_DEFAULT$(1)_T_$(2)_H_$(3))
|
||||||
@$$(call E, compile_and_link: $$@ for stage $(1) and target $(2))
|
|
||||||
$$(STAGE$(1)_$(2)) -o $$@ $$<
|
|
||||||
|
|
||||||
$$(TARGET_LIB$(1)$(2))/$$(CFG_LIBRUSTC): \
|
|
||||||
$$(COMPILER_CRATE) $$(COMPILER_INPUTS) \
|
|
||||||
$$(TARGET_SREQ$(1)$(2)) \
|
|
||||||
$$(TARGET_LIB$(1)$(2))/$$(CFG_RUSTLLVM) \
|
|
||||||
$$(TARGET_STDLIB_DEFAULT$(1)$(2))
|
|
||||||
@$$(call E, compile_and_link: $$@)
|
@$$(call E, compile_and_link: $$@)
|
||||||
$$(STAGE$(1)_$(2)) --lib -o $$@ $$<
|
$$(STAGE$(1)_T_$(2)_H_$(3)) -o $$@ $$<
|
||||||
|
|
||||||
|
$$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_LIBRUSTC): \
|
||||||
|
$$(COMPILER_CRATE) $$(COMPILER_INPUTS) \
|
||||||
|
$$(TSREQ$(1)_T_$(2)_H_$(3)) \
|
||||||
|
$$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_RUSTLLVM) \
|
||||||
|
$$(TSTDLIB_DEFAULT$(1)_T_$(2)_H_$(3))
|
||||||
|
@$$(call E, compile_and_link: $$@)
|
||||||
|
$$(STAGE$(1)_T_$(2)_H_$(3)) --lib -o $$@ $$<
|
||||||
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
# Instantiate template for all stages
|
# Instantiate template for all stages
|
||||||
$(foreach target,$(CFG_TARGET_TRIPLES), \
|
$(foreach target,$(CFG_TARGET_TRIPLES), \
|
||||||
$(eval $(call TARGET_STAGE_N,0,$(target))) \
|
$(eval $(call TARGET_STAGE_N,0,$(target),$(CFG_HOST_TRIPLE))) \
|
||||||
$(eval $(call TARGET_STAGE_N,1,$(target))) \
|
$(eval $(call TARGET_STAGE_N,1,$(target),$(CFG_HOST_TRIPLE))) \
|
||||||
$(eval $(call TARGET_STAGE_N,2,$(target))) \
|
$(eval $(call TARGET_STAGE_N,2,$(target),$(CFG_HOST_TRIPLE))) \
|
||||||
$(eval $(call TARGET_STAGE_N,3,$(target))))
|
$(eval $(call TARGET_STAGE_N,3,$(target),$(CFG_HOST_TRIPLE))))
|
||||||
|
|
234
mk/tests.mk
234
mk/tests.mk
|
@ -112,180 +112,204 @@ define TEST_STAGEN
|
||||||
# command line.
|
# command line.
|
||||||
#
|
#
|
||||||
# $(1) is the stage number
|
# $(1) is the stage number
|
||||||
# $(2) is the target triple
|
# $(2) is the target triple to test
|
||||||
|
# $(3) is the host triple to test
|
||||||
|
|
||||||
check-stage$(1)-$(2): tidy \
|
check-stage$(1)-$(2)-H-$(3): tidy \
|
||||||
check-stage$(1)-$(2)-rustc \
|
check-stage$(1)-$(2)-H-$(3)-rustc \
|
||||||
check-stage$(1)-$(2)-std \
|
check-stage$(1)-$(2)-H-$(3)-std \
|
||||||
check-stage$(1)-$(2)-rpass \
|
check-stage$(1)-$(2)-H-$(3)-rpass \
|
||||||
check-stage$(1)-$(2)-rfail \
|
check-stage$(1)-$(2)-H-$(3)-rfail \
|
||||||
check-stage$(1)-$(2)-cfail \
|
check-stage$(1)-$(2)-H-$(3)-cfail \
|
||||||
check-stage$(1)-$(2)-bench \
|
check-stage$(1)-$(2)-H-$(3)-bench \
|
||||||
check-stage$(1)-$(2)-pretty
|
check-stage$(1)-$(2)-H-$(3)-pretty
|
||||||
|
|
||||||
check-stage$(1)-$(2)-std: check-stage$(1)-$(2)-std-dummy
|
check-stage$(1)-$(2)-H-$(3)-std: \
|
||||||
|
check-stage$(1)-$(2)-H-$(3)-std-dummy
|
||||||
|
|
||||||
check-stage$(1)-$(2)-rustc: check-stage$(1)-$(2)-rustc-dummy
|
check-stage$(1)-$(2)-H-$(3)-rustc: \
|
||||||
|
check-stage$(1)-$(2)-H-$(3)-rustc-dummy
|
||||||
|
|
||||||
check-stage$(1)-$(2)-cfail: check-stage$(1)-$(2)-cfail-dummy
|
check-stage$(1)-$(2)-H-$(3)-cfail: \
|
||||||
|
check-stage$(1)-$(2)-H-$(3)-cfail-dummy
|
||||||
|
|
||||||
check-stage$(1)-$(2)-rfail: check-stage$(1)-$(2)-rfail-dummy
|
check-stage$(1)-$(2)-H-$(3)-rfail: \
|
||||||
|
check-stage$(1)-$(2)-H-$(3)-rfail-dummy
|
||||||
|
|
||||||
check-stage$(1)-$(2)-rpass: check-stage$(1)-$(2)-rpass-dummy
|
check-stage$(1)-$(2)-H-$(3)-rpass: \
|
||||||
|
check-stage$(1)-$(2)-H-$(3)-rpass-dummy
|
||||||
|
|
||||||
check-stage$(1)-$(2)-bench: check-stage$(1)-$(2)-bench-dummy
|
check-stage$(1)-$(2)-H-$(3)-bench: \
|
||||||
|
check-stage$(1)-$(2)-H-$(3)-bench-dummy
|
||||||
|
|
||||||
check-stage$(1)-$(2)-perf: check-stage$(1)-$(2)-perf-dummy
|
check-stage$(1)-$(2)-H-$(3)-perf: \
|
||||||
|
check-stage$(1)-$(2)-H-$(3)-perf-dummy
|
||||||
|
|
||||||
check-stage$(1)-$(2)-pretty: check-stage$(1)-$(2)-pretty-rpass \
|
check-stage$(1)-$(2)-H-$(3)-pretty: \
|
||||||
check-stage$(1)-$(2)-pretty-rfail \
|
check-stage$(1)-$(2)-H-$(3)-pretty-rpass \
|
||||||
check-stage$(1)-$(2)-pretty-bench \
|
check-stage$(1)-$(2)-H-$(3)-pretty-rfail \
|
||||||
check-stage$(1)-$(2)-pretty-pretty
|
check-stage$(1)-$(2)-H-$(3)-pretty-bench \
|
||||||
|
check-stage$(1)-$(2)-H-$(3)-pretty-pretty
|
||||||
|
|
||||||
check-stage$(1)-$(2)-pretty-rpass: check-stage$(1)-$(2)-pretty-rpass-dummy
|
check-stage$(1)-$(2)-H-$(3)-pretty-rpass: \
|
||||||
|
check-stage$(1)-$(2)-H-$(3)-pretty-rpass-dummy
|
||||||
|
|
||||||
check-stage$(1)-$(2)-pretty-rfail: check-stage$(1)-$(2)-pretty-rfail-dummy
|
check-stage$(1)-$(2)-H-$(3)-pretty-rfail: \
|
||||||
|
check-stage$(1)-$(2)-H-$(3)-pretty-rfail-dummy
|
||||||
|
|
||||||
check-stage$(1)-$(2)-pretty-bench: check-stage$(1)-$(2)-pretty-bench-dummy
|
check-stage$(1)-$(2)-H-$(3)-pretty-bench: \
|
||||||
|
check-stage$(1)-$(2)-H-$(3)-pretty-bench-dummy
|
||||||
check-stage$(1)-$(2)-pretty-pretty: check-stage$(1)-$(2)-pretty-pretty-dummy
|
|
||||||
|
|
||||||
|
check-stage$(1)-$(2)-H-$(3)-pretty-pretty: \
|
||||||
|
check-stage$(1)-$(2)-H-$(3)-pretty-pretty-dummy
|
||||||
|
|
||||||
# Rules for the standard library test runner
|
# Rules for the standard library test runner
|
||||||
|
|
||||||
test/stdtest.stage$(1)-$(2)$$(X): $$(STDTEST_CRATE) $$(STDTEST_INPUTS) \
|
$(3)/test/stdtest.stage$(1)-$(2)$$(X): \
|
||||||
$$(SREQ$(1)$(2))
|
$$(STDTEST_CRATE) $$(STDTEST_INPUTS) \
|
||||||
|
$$(SREQ$(1)_T_$(2)_H_$(3))
|
||||||
@$$(call E, compile_and_link: $$@)
|
@$$(call E, compile_and_link: $$@)
|
||||||
$$(STAGE$(1)_$(2)) -o $$@ $$< --test
|
$$(STAGE$(1)_$(2)) -o $$@ $$< --test
|
||||||
|
|
||||||
check-stage$(1)-$(2)-std-dummy: test/stdtest.stage$(1)-$(2)$$(X)
|
check-stage$(1)-$(2)-H-$(3)-std-dummy: \
|
||||||
|
$(3)/test/stdtest.stage$(1)-$(2)$$(X)
|
||||||
@$$(call E, run: $$<)
|
@$$(call E, run: $$<)
|
||||||
$$(Q)$$(call CFG_RUN_TEST,$$<) $$(TESTARGS)
|
$$(Q)$$(call CFG_RUN_TEST,$$<) $$(TESTARGS)
|
||||||
|
|
||||||
|
|
||||||
# Rules for the rustc test runner
|
# Rules for the rustc test runner
|
||||||
|
|
||||||
test/rustctest.stage$(1)-$(2)$$(X): \
|
$(3)/test/rustctest.stage$(1)-$(2)$$(X): \
|
||||||
$$(COMPILER_CRATE) $$(COMPILER_INPUTS) $$(SREQ$(1)$(2)) \
|
$$(COMPILER_CRATE) \
|
||||||
$$(TARGET_LIB$(1)$(2))/$$(CFG_RUSTLLVM)
|
$$(COMPILER_INPUTS) \
|
||||||
|
$$(SREQ$(1)_T_$(2)_H_$(3)) \
|
||||||
|
$$(TARGET_LIB$(1)_T_$(2)_H_$(3))/$$(CFG_RUSTLLVM)
|
||||||
@$$(call E, compile_and_link: $$@)
|
@$$(call E, compile_and_link: $$@)
|
||||||
$$(STAGE$(1)_$(2)) -o $$@ $$< --test
|
$$(STAGE$(1)_$(2)) -o $$@ $$< --test
|
||||||
|
|
||||||
check-stage$(1)-$(2)-rustc-dummy: test/rustctest.stage$(1)-$(2)$$(X)
|
check-stage$(1)-$(2)-H-$(3)-rustc-dummy: \
|
||||||
|
$(3)/test/rustctest.stage$(1)-$(2)$$(X)
|
||||||
@$$(call E, run: $$<)
|
@$$(call E, run: $$<)
|
||||||
$$(Q)$$(call CFG_RUN_TEST,$$<) \
|
$$(Q)$$(call CFG_RUN_TEST,$$<) $$(TESTARGS)
|
||||||
$$(TESTARGS)
|
|
||||||
|
|
||||||
|
|
||||||
# Rules for the cfail/rfail/rpass/bench/perf test runner
|
# Rules for the cfail/rfail/rpass/bench/perf test runner
|
||||||
|
|
||||||
CTEST_COMMON_ARGS$(1)-$(2) := --compile-lib-path $$(HOST_LIB$(1)) \
|
CTEST_COMMON_ARGS$(1)-$(2)-$(3) := \
|
||||||
--run-lib-path $$(TARGET_LIB$(1)$$(CFG_HOST_TRIPLE)) \
|
--compile-lib-path $$(HLIB$(1)_H_$(3)) \
|
||||||
--rustc-path $$(HOST_BIN$(1))/rustc$$(X) \
|
--run-lib-path $$(TLIB$(1)_T_$(2)_H_$(3)) \
|
||||||
--stage-id stage$(1)-$(2) \
|
--rustc-path $$(HBIN$(1)_H_$(3))/rustc$$(X) \
|
||||||
--rustcflags "$$(CFG_RUSTC_FLAGS) --target=$(2)" \
|
--stage-id stage$(1)-$(2) \
|
||||||
$$(CTEST_TESTARGS)
|
--rustcflags "$$(CFG_RUSTC_FLAGS) --target=$(2)" \
|
||||||
|
$$(CTEST_TESTARGS)
|
||||||
|
|
||||||
CFAIL_ARGS$(1)-$(2) := $$(CTEST_COMMON_ARGS$(1)-$(2)) \
|
CFAIL_ARGS$(1)-$(2)-$(3) := $$(CTEST_COMMON_ARGS$(1)-$(2)-$(3)) \
|
||||||
--src-base $$(S)src/test/compile-fail/ \
|
--src-base $$(S)src/test/compile-fail/ \
|
||||||
--build-base test/compile-fail/ \
|
--build-base test/compile-fail/ \
|
||||||
--mode compile-fail
|
--mode compile-fail
|
||||||
|
|
||||||
RFAIL_ARGS$(1)-$(2) := $$(CTEST_COMMON_ARGS$(1)-$(2)) \
|
RFAIL_ARGS$(1)-$(2)-$(3) := $$(CTEST_COMMON_ARGS$(1)-$(2)-$(3)) \
|
||||||
--src-base $$(S)src/test/run-fail/ \
|
--src-base $$(S)src/test/run-fail/ \
|
||||||
--build-base test/run-fail/ \
|
--build-base test/run-fail/ \
|
||||||
--mode run-fail \
|
--mode run-fail \
|
||||||
$$(CTEST_RUNTOOL)
|
$$(CTEST_RUNTOOL)
|
||||||
|
|
||||||
RPASS_ARGS$(1)-$(2) := $$(CTEST_COMMON_ARGS$(1)-$(2)) \
|
RPASS_ARGS$(1)-$(2)-$(3) := $$(CTEST_COMMON_ARGS$(1)-$(2)-$(3)) \
|
||||||
--src-base $$(S)src/test/run-pass/ \
|
--src-base $$(S)src/test/run-pass/ \
|
||||||
--build-base test/run-pass/ \
|
--build-base test/run-pass/ \
|
||||||
--mode run-pass \
|
--mode run-pass \
|
||||||
$$(CTEST_RUNTOOL)
|
$$(CTEST_RUNTOOL)
|
||||||
|
|
||||||
BENCH_ARGS$(1)-$(2) := $$(CTEST_COMMON_ARGS$(1)-$(2)) \
|
BENCH_ARGS$(1)-$(2)-$(3) := $$(CTEST_COMMON_ARGS$(1)-$(2)-$(3)) \
|
||||||
--src-base $$(S)src/test/bench/ \
|
--src-base $$(S)src/test/bench/ \
|
||||||
--build-base test/bench/ \
|
--build-base test/bench/ \
|
||||||
--mode run-pass \
|
--mode run-pass \
|
||||||
$$(CTEST_RUNTOOL)
|
$$(CTEST_RUNTOOL)
|
||||||
|
|
||||||
PERF_ARGS$(1)-$(2) := $$(CTEST_COMMON_ARGS$(1)-$(2)) \
|
PERF_ARGS$(1)-$(2)-$(3) := $$(CTEST_COMMON_ARGS$(1)-$(2)-$(3)) \
|
||||||
--src-base $$(S)src/test/bench/ \
|
--src-base $$(S)src/test/bench/ \
|
||||||
--build-base test/perf/ \
|
--build-base test/perf/ \
|
||||||
--mode run-pass \
|
--mode run-pass \
|
||||||
$$(CTEST_PERF_RUNTOOL)
|
$$(CTEST_PERF_RUNTOOL)
|
||||||
|
|
||||||
PRETTY_RPASS_ARGS$(1)-$(2) := $$(CTEST_COMMON_ARGS$(1)-$(2)) \
|
PRETTY_RPASS_ARGS$(1)-$(2)-$(3) := $$(CTEST_COMMON_ARGS$(1)-$(2)-$(3)) \
|
||||||
--src-base $$(S)src/test/run-pass/ \
|
--src-base $$(S)src/test/run-pass/ \
|
||||||
--build-base test/run-pass/ \
|
--build-base test/run-pass/ \
|
||||||
--mode pretty
|
--mode pretty
|
||||||
|
|
||||||
PRETTY_RFAIL_ARGS$(1)-$(2) := $$(CTEST_COMMON_ARGS$(1)-$(2)) \
|
PRETTY_RFAIL_ARGS$(1)-$(2)-$(3) := $$(CTEST_COMMON_ARGS$(1)-$(2)-$(3)) \
|
||||||
--src-base $$(S)src/test/run-fail/ \
|
--src-base $$(S)src/test/run-fail/ \
|
||||||
--build-base test/run-fail/ \
|
--build-base test/run-fail/ \
|
||||||
--mode pretty
|
--mode pretty
|
||||||
|
|
||||||
PRETTY_BENCH_ARGS$(1)-$(2) := $$(CTEST_COMMON_ARGS$(1)-$(2)) \
|
PRETTY_BENCH_ARGS$(1)-$(2)-$(3) := $$(CTEST_COMMON_ARGS$(1)-$(2)-$(3)) \
|
||||||
--src-base $$(S)src/test/bench/ \
|
--src-base $$(S)src/test/bench/ \
|
||||||
--build-base test/bench/ \
|
--build-base test/bench/ \
|
||||||
--mode pretty
|
--mode pretty
|
||||||
|
|
||||||
PRETTY_PRETTY_ARGS$(1)-$(2) := $$(CTEST_COMMON_ARGS$(1)-$(2)) \
|
PRETTY_PRETTY_ARGS$(1)-$(2)-$(3) := $$(CTEST_COMMON_ARGS$(1)-$(2)-$(3)) \
|
||||||
--src-base $$(S)src/test/pretty/ \
|
--src-base $$(S)src/test/pretty/ \
|
||||||
--build-base test/pretty/ \
|
--build-base test/pretty/ \
|
||||||
--mode pretty
|
--mode pretty
|
||||||
|
|
||||||
check-stage$(1)-$(2)-cfail-dummy: $$(HOST_BIN$(1))/compiletest$$(X) \
|
check-stage$(1)-$(2)-$(3)-cfail-dummy: \
|
||||||
$$(SREQ$(1)$(2)) \
|
$$(HBIN$(1)_H_$(3))/compiletest$$(X) \
|
||||||
$$(CFAIL_TESTS)
|
$$(SREQ$(1)_T_$(2)_H_$(3)) \
|
||||||
|
$$(CFAIL_TESTS)
|
||||||
@$$(call E, run: $$<)
|
@$$(call E, run: $$<)
|
||||||
$$(Q)$$(call CFG_RUN_CTEST,$(1),$$<) $$(CFAIL_ARGS$(1)-$(2))
|
$$(Q)$$(call CFG_RUN_CTEST,$(1),$$<) $$(CFAIL_ARGS$(1)-$(2))
|
||||||
|
|
||||||
check-stage$(1)-$(2)-rfail-dummy: $$(HOST_BIN$(1))/compiletest$$(X) \
|
check-stage$(1)-$(2)-$(3)-rfail-dummy: \
|
||||||
$$(SREQ$(1)$(2)) \
|
$$(HBIN$(1)_H_$(3))/compiletest$$(X) \
|
||||||
$$(RFAIL_TESTS)
|
$$(SREQ$(1)_T_$(2)_H_$(3)) \
|
||||||
|
$$(RFAIL_TESTS)
|
||||||
@$$(call E, run: $$<)
|
@$$(call E, run: $$<)
|
||||||
$$(Q)$$(call CFG_RUN_CTEST,$(1),$$<) $$(RFAIL_ARGS$(1)-$(2))
|
$$(Q)$$(call CFG_RUN_CTEST,$(1),$$<) $$(RFAIL_ARGS$(1)-$(2))
|
||||||
|
|
||||||
check-stage$(1)-$(2)-rpass-dummy: $$(HOST_BIN$(1))/compiletest$$(X) \
|
check-stage$(1)-$(2)-$(3)-rpass-dummy: \
|
||||||
$$(SREQ$(1)$(2)) \
|
$$(HBIN$(1)_H_$(3))/compiletest$$(X) \
|
||||||
$$(RPASS_TESTS)
|
$$(SREQ$(1)_T_$(2)_H_$(3)) \
|
||||||
|
$$(RPASS_TESTS)
|
||||||
@$$(call E, run: $$<)
|
@$$(call E, run: $$<)
|
||||||
$$(Q)$$(call CFG_RUN_CTEST,$(1),$$<) $$(RPASS_ARGS$(1)-$(2))
|
$$(Q)$$(call CFG_RUN_CTEST,$(1),$$<) $$(RPASS_ARGS$(1)-$(2))
|
||||||
|
|
||||||
check-stage$(1)-$(2)-bench-dummy: $$(HOST_BIN$(1))/compiletest$$(X) \
|
check-stage$(1)-$(2)-$(3)-bench-dummy: \
|
||||||
$$(SREQ$(1)$(2)) \
|
$$(HBIN$(1)_H_$(3))/compiletest$$(X) \
|
||||||
$$(BENCH_TESTS)
|
$$(SREQ$(1)_T_$(2)_H_$(3)) \
|
||||||
|
$$(BENCH_TESTS)
|
||||||
@$$(call E, run: $$<)
|
@$$(call E, run: $$<)
|
||||||
$$(Q)$$(call CFG_RUN_CTEST,$(1),$$<) $$(BENCH_ARGS$(1)-$(2))
|
$$(Q)$$(call CFG_RUN_CTEST,$(1),$$<) $$(BENCH_ARGS$(1)-$(2))
|
||||||
|
|
||||||
check-stage$(1)-$(2)-perf-dummy: $$(HOST_BIN$(1))/compiletest$$(X) \
|
check-stage$(1)-$(2)-$(3)-perf-dummy: \
|
||||||
$$(SREQ$(1)$(2)) \
|
$$(HBIN$(1)_H_$(3))/compiletest$$(X) \
|
||||||
$$(BENCH_TESTS)
|
$$(SREQ$(1)_T_$(2)_H_$(3)) \
|
||||||
|
$$(BENCH_TESTS)
|
||||||
@$$(call E, perf: $$<)
|
@$$(call E, perf: $$<)
|
||||||
$$(Q)$$(call CFG_RUN_CTEST,$(1),$$<) $$(PERF_ARGS$(1)-$(2))
|
$$(Q)$$(call CFG_RUN_CTEST,$(1),$$<) $$(PERF_ARGS$(1)-$(2))
|
||||||
|
|
||||||
check-stage$(1)-$(2)-pretty-rpass-dummy: $$(HOST_BIN$(1))/compiletest$$(X) \
|
check-stage$(1)-$(2)-$(3)-pretty-rpass-dummy: \
|
||||||
$$(SREQ$(1)$(2)) \
|
$$(HBIN$(1)_H_$(3))/compiletest$$(X) \
|
||||||
$$(RPASS_TESTS)
|
$$(SREQ$(1)_T_$(2)_H_$(3)) \
|
||||||
|
$$(RPASS_TESTS)
|
||||||
@$$(call E, run: $$<)
|
@$$(call E, run: $$<)
|
||||||
$$(Q)$$(call CFG_RUN_CTEST,$(1),$$<) $$(PRETTY_RPASS_ARGS$(1)-$(2))
|
$$(Q)$$(call CFG_RUN_CTEST,$(1),$$<) $$(PRETTY_RPASS_ARGS$(1)-$(2))
|
||||||
|
|
||||||
check-stage$(1)-$(2)-pretty-rfail-dummy: $$(HOST_BIN$(1))/compiletest$$(X) \
|
check-stage$(1)-$(2)-pretty-rfail-dummy: \
|
||||||
$$(SREQ$(1)$(2)) \
|
$$(HBIN$(1)_H_$(3))/compiletest$$(X) \
|
||||||
$$(RFAIL_TESTS)
|
$$(SREQ$(1)_T_$(2)_H_$(3)) \
|
||||||
|
$$(RFAIL_TESTS)
|
||||||
@$$(call E, run: $$<)
|
@$$(call E, run: $$<)
|
||||||
$$(Q)$$(call CFG_RUN_CTEST,$(1),$$<) $$(PRETTY_RFAIL_ARGS$(1)-$(2))
|
$$(Q)$$(call CFG_RUN_CTEST,$(1),$$<) $$(PRETTY_RFAIL_ARGS$(1)-$(2))
|
||||||
|
|
||||||
check-stage$(1)-$(2)-pretty-bench-dummy: $$(HOST_BIN$(1))/compiletest$$(X) \
|
check-stage$(1)-$(2)-pretty-bench-dummy: \
|
||||||
$$(SREQ$(1)$(2)) \
|
$$(HBIN$(1)_H_$(3))/compiletest$$(X) \
|
||||||
$$(BENCH_TESTS)
|
$$(SREQ$(1)_T_$(2)_H_$(3)) \
|
||||||
|
$$(BENCH_TESTS)
|
||||||
@$$(call E, run: $$<)
|
@$$(call E, run: $$<)
|
||||||
$$(Q)$$(call CFG_RUN_CTEST,$(1),$$<) $$(PRETTY_BENCH_ARGS$(1)-$(2))
|
$$(Q)$$(call CFG_RUN_CTEST,$(1),$$<) $$(PRETTY_BENCH_ARGS$(1)-$(2))
|
||||||
|
|
||||||
check-stage$(1)-$(2)-pretty-pretty-dummy: $$(HOST_BIN$(1))/compiletest$$(X) \
|
check-stage$(1)-$(2)-pretty-pretty-dummy: \
|
||||||
$$(SREQ$(1)$(2)) \
|
$$(HBIN$(1)_H_$(3))/compiletest$$(X) \
|
||||||
$$(PRETTY_TESTS)
|
$$(SREQ$(1)_T_$(2)_H_$(3)) \
|
||||||
|
$$(PRETTY_TESTS)
|
||||||
@$$(call E, run: $$<)
|
@$$(call E, run: $$<)
|
||||||
$$(Q)$$(call CFG_RUN_CTEST,$(1),$$<) $$(PRETTY_PRETTY_ARGS$(1)-$(2))
|
$$(Q)$$(call CFG_RUN_CTEST,$(1),$$<) $$(PRETTY_PRETTY_ARGS$(1)-$(2))
|
||||||
|
|
||||||
|
|
42
mk/tools.mk
42
mk/tools.mk
|
@ -12,39 +12,39 @@ COMPILETEST_INPUTS := $(wildcard $(S)src/compiletest/*rs)
|
||||||
# have tools that need to built for other targets.
|
# have tools that need to built for other targets.
|
||||||
define TOOLS_STAGE_N
|
define TOOLS_STAGE_N
|
||||||
|
|
||||||
$$(TARGET_BIN$(1)$(CFG_HOST_TRIPLE))/fuzzer$$(X): \
|
$$(TBIN$(1)_T_$(4)_H_$(3))/fuzzer$$(X): \
|
||||||
$$(FUZZER_CRATE) $$(FUZZER_INPUTS) \
|
$$(FUZZER_CRATE) $$(FUZZER_INPUTS) \
|
||||||
$$(TARGET_SREQ$(1)$(CFG_HOST_TRIPLE)) \
|
$$(TSREQ$(1)_T_$(4)_H_$(3)) \
|
||||||
$$(TARGET_LIB$(1)$(CFG_HOST_TRIPLE))/$$(CFG_STDLIB) \
|
$$(TLIB$(1)_T_$(4)_H_$(3))/$$(CFG_STDLIB) \
|
||||||
$$(TARGET_LIB$(1)$(CFG_HOST_TRIPLE))/$$(CFG_LIBRUSTC)
|
$$(TLIB$(1)_T_$(4)_H_$(3))/$$(CFG_LIBRUSTC)
|
||||||
@$$(call E, compile_and_link: $$@)
|
@$$(call E, compile_and_link: $$@)
|
||||||
$$(STAGE$(1)_$$(CFG_HOST_TRIPLE)) -o $$@ $$<
|
$$(STAGE$(1)_T_$(4)_H_$(3)) -o $$@ $$<
|
||||||
|
|
||||||
# Promote the stageN target to stageN+1 host
|
# Promote the stageN target to stageN+1 host
|
||||||
# FIXME: Shouldn't need to depend on host/librustc.so once
|
# FIXME: Shouldn't need to depend on host/librustc.so once
|
||||||
# rpath is working
|
# rpath is working
|
||||||
$$(HOST_BIN$(2))/fuzzer$$(X): \
|
$$(HBIN$(2)_H_$(4))/fuzzer$$(X): \
|
||||||
$$(TARGET_BIN$(1)$(CFG_HOST_TRIPLE))/fuzzer$$(X) \
|
$$(TBIN$(1)_T_$(4)_H_$(3))/fuzzer$$(X) \
|
||||||
$$(HOST_LIB$(2))/$$(CFG_LIBRUSTC) \
|
$$(HLIB$(2)_H_$(4))/$$(CFG_LIBRUSTC) \
|
||||||
$$(HOST_SREQ$(2))
|
$$(HSREQ$(2)_H_$(4))
|
||||||
@$$(call E, cp: $$@)
|
@$$(call E, cp: $$@)
|
||||||
$$(Q)cp $$< $$@
|
$$(Q)cp $$< $$@
|
||||||
|
|
||||||
$$(TARGET_BIN$(1)$(CFG_HOST_TRIPLE))/compiletest$$(X): \
|
$$(TBIN$(1)_T_$(4)_H_$(3))/compiletest$$(X): \
|
||||||
$$(COMPILETEST_CRATE) $$(COMPILETEST_INPUTS) \
|
$$(COMPILETEST_CRATE) $$(COMPILETEST_INPUTS) \
|
||||||
$$(TARGET_SREQ$(1)$(CFG_HOST_TRIPLE)) \
|
$$(TSREQ$(1)_T_$(4)_H_$(3)) \
|
||||||
$$(TARGET_LIB$(1)$(CFG_HOST_TRIPLE))/$$(CFG_STDLIB)
|
$$(TLIB$(1)_T_$(4)_H_$(3))/$$(CFG_STDLIB)
|
||||||
@$$(call E, compile_and_link: $$@)
|
@$$(call E, compile_and_link: $$@)
|
||||||
$$(STAGE$(1)_$$(CFG_HOST_TRIPLE)) -o $$@ $$<
|
$$(STAGE$(1)_T_$(4)_H_$(3)) -o $$@ $$<
|
||||||
|
|
||||||
$$(HOST_BIN$(2))/compiletest$$(X): \
|
$$(HBIN$(2)_H_$(4))/compiletest$$(X): \
|
||||||
$$(TARGET_BIN$(1)$(CFG_HOST_TRIPLE))/compiletest$$(X) \
|
$$(TBIN$(1)_T_$(4)_H_$(3))/compiletest$$(X) \
|
||||||
$$(HOST_SREQ$(2))
|
$$(HSREQ$(2)_$(4))
|
||||||
@$$(call E, cp: $$@)
|
@$$(call E, cp: $$@)
|
||||||
$$(Q)cp $$< $$@
|
$$(Q)cp $$< $$@
|
||||||
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
$(eval $(call TOOLS_STAGE_N,0,1))
|
$(eval $(call TOOLS_STAGE_N,0,1,$(CFG_HOST_TRIPLE),$(CFG_HOST_TRIPLE)))
|
||||||
$(eval $(call TOOLS_STAGE_N,1,2))
|
$(eval $(call TOOLS_STAGE_N,1,2,$(CFG_HOST_TRIPLE),$(CFG_HOST_TRIPLE)))
|
||||||
$(eval $(call TOOLS_STAGE_N,2,3))
|
$(eval $(call TOOLS_STAGE_N,2,3,$(CFG_HOST_TRIPLE),$(CFG_HOST_TRIPLE)))
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
import os, tarfile, hashlib, re, shutil
|
import os, tarfile, hashlib, re, shutil, sys
|
||||||
from snapshot import *
|
from snapshot import *
|
||||||
|
|
||||||
|
|
||||||
|
@ -11,7 +11,8 @@ def unpack_snapshot(snap):
|
||||||
kernel = get_kernel()
|
kernel = get_kernel()
|
||||||
for name in snapshot_files[kernel]:
|
for name in snapshot_files[kernel]:
|
||||||
p = "rust-stage0/" + name
|
p = "rust-stage0/" + name
|
||||||
fp = os.path.join("stage0", name)
|
stagep = os.path.join(triple, "stage0")
|
||||||
|
fp = os.path.join(stagep, name)
|
||||||
print("extracting " + fp)
|
print("extracting " + fp)
|
||||||
tar.extract(p, download_unpack_base)
|
tar.extract(p, download_unpack_base)
|
||||||
tp = os.path.join(download_unpack_base, p)
|
tp = os.path.join(download_unpack_base, p)
|
||||||
|
@ -57,6 +58,7 @@ def determine_curr_snapshot_for_platform():
|
||||||
|
|
||||||
# Main
|
# Main
|
||||||
|
|
||||||
|
triple = sys.argv[1]
|
||||||
snap = determine_curr_snapshot_for_platform()
|
snap = determine_curr_snapshot_for_platform()
|
||||||
dl = os.path.join(download_dir_base, snap)
|
dl = os.path.join(download_dir_base, snap)
|
||||||
url = download_url_base + "/" + snap
|
url = download_url_base + "/" + snap
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue