1
Fork 0

Abstract the build directories further in the makefiles

This defines variables for host bin and lib directories as well as all target
bin and lib directories then uses them everywhere.
This commit is contained in:
Brian Anderson 2011-09-30 12:24:28 -07:00
parent ed106dd6ea
commit 38c67a4c8d
10 changed files with 103 additions and 95 deletions

View file

@ -169,32 +169,41 @@ LLC := $(CFG_LLVM_BINDIR)/llc$(X)
define SREQ define SREQ
# Destinations of artifacts for target architectures
TARGET_ROOT$(1)$(2) = stage$(1)/lib/rustc/$(2) TARGET_ROOT$(1)$(2) = stage$(1)/lib/rustc/$(2)
TARGET_BIN$(1)$(2) = $(TARGET_ROOT$(1)$(2))/bin TARGET_BIN$(1)$(2) = $$(TARGET_ROOT$(1)$(2))/bin
TARGET_LIB$(1)$(2) = $(TARGET_ROOT$(1)$(2))/lib TARGET_LIB$(1)$(2) = $$(TARGET_ROOT$(1)$(2))
HOST_ROOT$(1) = $(TARGET_ROOT$(1)$$(CFG_HOST_TRIPLE))
HOST_BIN$(1) = $(TARGET_BIN$(1)$$(CFG_HOST_TRIPLE)) # Destinations of artifacts for the host compiler
HOST_LIB$(1) = $(TARGET_LIB$(1)$$(CFG_HOST_TRIPLE)) HOST_ROOT$(1) = stage$(1)
HOST_BIN$(1) = $$(HOST_ROOT$(1))/bin
HOST_LIB$(1) = $$(HOST_ROOT$(1))/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))
ifdef CFG_DISABLE_SHAREDSTD ifdef CFG_DISABLE_SHAREDSTD
SREQ$(1)$(2) = $(HOST_BIN$(1))/rustc$(X) \ SREQ$(1)$(2) = $$(HOST_BIN$(1))/rustc$(X) \
$(HOST_LIB$(1))/$$(CFG_RUNTIME) \ $$(HOST_LIB$(1))/$$(CFG_RUNTIME) \
$$(call CFG_STDLIB_DEFAULT,stage$(1),stage$(1)) \ $$(call CFG_STDLIB_DEFAULT,stage$(1),stage$(1)) \
$(HOST_LIB$(1))/$$(CFG_RUSTLLVM) \ $$(HOST_LIB$(1))/$$(CFG_RUSTLLVM) \
$(TARGET_LIB$(1)$(2))/$$(CFG_RUNTIME) \ $$(TARGET_LIB$(1)$(2))/$$(CFG_RUNTIME) \
$(TARGET_LIB$(1)$(2))/$$(CFG_STDLIB) \ $$(TARGET_LIB$(1)$(2))/$$(CFG_STDLIB) \
$(TARGET_LIB$(1)$(2))/intrinsics.bc \ $$(TARGET_LIB$(1)$(2))/intrinsics.bc \
$(TARGET_LIB$(1)$(2))/main.o \ $$(TARGET_LIB$(1)$(2))/main.o \
$$(MKFILES) $$(MKFILES)
else else
SREQ$(1)$(2) = $(HOST_BIN$(1))/rustc$(X) \ SREQ$(1)$(2) = $$(HOST_BIN$(1))/rustc$(X) \
$(HOST_LIB$(1))/$$(CFG_RUNTIME) \ $$(HOST_LIB$(1))/$$(CFG_RUNTIME) \
$$(call CFG_STDLIB_DEFAULT,stage$(1),stage$(1)) \ $$(call CFG_STDLIB_DEFAULT,stage$(1),stage$(1)) \
$(HOST_LIB$(1))/$$(CFG_RUSTLLVM) \ $$(HOST_LIB$(1))/$$(CFG_RUSTLLVM) \
$(TARGET_LIB$(1)$(2))/$$(CFG_RUNTIME) \ $$(TARGET_LIB$(1)$(2))/$$(CFG_RUNTIME) \
$(TARGET_LIB$(1)$(2))/$$(CFG_STDLIB) \ $$(TARGET_LIB$(1)$(2))/$$(CFG_STDLIB) \
$(TARGET_LIB$(1)$(2))/intrinsics.bc \ $$(TARGET_LIB$(1)$(2))/intrinsics.bc \
$(TARGET_LIB$(1)$(2))/main.o \ $$(TARGET_LIB$(1)$(2))/main.o \
$$(MKFILES) $$(MKFILES)
endif endif
@ -205,17 +214,17 @@ else
CFG_VALGRIND_COMPILE$(1) = $$(CFG_VALGRIND_COMPILE) CFG_VALGRIND_COMPILE$(1) = $$(CFG_VALGRIND_COMPILE)
endif endif
STAGE$(1) := $$(Q)$$(call CFG_RUN_TARG,stage$(1), \ STAGE$(1) := $$(Q)$$(call CFG_RUN_TARG,$(1), \
$$(CFG_VALGRIND_COMPILE) stage$(1)/bin/rustc$$(X) \ $$(CFG_VALGRIND_COMPILE) $$(HOST_BIN$(1))/rustc$$(X) \
$$(CFG_RUSTC_FLAGS) --target=$(2)) $$(CFG_RUSTC_FLAGS) --target=$(2))
PERF_STAGE$(1) := $$(Q)$$(call CFG_RUN_TARG,stage$(1), \ PERF_STAGE$(1) := $$(Q)$$(call CFG_RUN_TARG,$(1), \
$$(CFG_PERF_TOOL) stage$(1)/bin/rustc$$(X) \ $$(CFG_PERF_TOOL) $$(HOST_BIN$(1))/rustc$$(X) \
$$(CFG_RUSTC_FLAGS) --target=$(2)) $$(CFG_RUSTC_FLAGS) --target=$(2))
endef endef
FUZZ := stage1/bin/fuzzer$(X) FUZZ := $(HOST_BIN$(1))/fuzzer$(X)
$(foreach target,$(CFG_TARGET_TRIPLES), \ $(foreach target,$(CFG_TARGET_TRIPLES), \
$(eval $(call SREQ,0,$(target))) \ $(eval $(call SREQ,0,$(target))) \

View file

@ -44,16 +44,16 @@ clean-misc:
define CLEAN_STAGE_N define CLEAN_STAGE_N
clean$(1)$(2): clean$(1)$(2):
$(Q)rm -f stage$(1)/bin/rustc $(Q)rm -f $$(HOST_BIN$(1))/rustc
$(Q)rm -f stage$(1)/bin/fuzzer $(Q)rm -f $$(HOST_BIN$(1))/fuzzer
$(Q)rm -f stage$(1)/lib/$(CFG_RUNTIME) $(Q)rm -f $$(HOST_LIB$(1))/$(CFG_RUNTIME)
$(Q)rm -f stage$(1)/lib/$(CFG_STDLIB) $(Q)rm -f $$(HOST_LIB$(1))/$(CFG_STDLIB)
$(Q)rm -f stage$(1)/lib/$(CFG_RUSTLLVM) $(Q)rm -f $$(HOST_LIB$(1))/$(CFG_RUSTLLVM)
$(Q)rm -f stage$(1)/lib/rustc/$(2)/$(CFG_RUNTIME) $(Q)rm -f $$(TARGET_LIB$(1)$(2))/$(CFG_RUNTIME)
$(Q)rm -f stage$(1)/lib/rustc/$(2)/$(CFG_STDLIB) $(Q)rm -f $$(TARGET_LIB$(1)$(2))/$(CFG_STDLIB)
$(Q)rm -f stage$(1)/lib/rustc/$(2)/libstd.rlib $(Q)rm -f $$(TARGET_LIB$(1)$(2))/libstd.rlib
$(Q)rm -f stage$(1)/lib/rustc/$(2)/intrinsics.bc $(Q)rm -f $$(TARGET_LIB$(1)$(2))/intrinsics.bc
$(Q)rm -f stage$(1)/lib/rustc/$(2)/main.o $(Q)rm -f $$(TARGET_LIB$(1)$(2))/main.o
endef endef

View file

@ -4,13 +4,13 @@ FUZZER_INPUTS := $(wildcard $(addprefix $(S)src/fuzzer/, *.rs))
define FUZZ_STAGE_N define FUZZ_STAGE_N
stage$(2)/bin/fuzzer$$(X): $$(FUZZER_CRATE) $$(FUZZER_INPUTS) \ stage$(2)/bin/fuzzer$$(X): $$(FUZZER_CRATE) $$(FUZZER_INPUTS) \
$$(SREQ$(2)$(CFG_HOST_TRIPLE)) \ $$(SREQ$(2)$$(CFG_HOST_TRIPLE)) \
stage$(2)/lib/$$(CFG_RUNTIME) \ $$(HOST_LIB$(2))/$$(CFG_RUNTIME) \
stage$(2)/lib/$$(CFG_RUSTLLVM) \ $$(HOST_LIB$(2))/$$(CFG_RUSTLLVM) \
stage$(2)/lib/$$(CFG_STDLIB) \ $$(HOST_LIB$(2))/$$(CFG_STDLIB) \
stage$(2)/lib/$$(CFG_LIBRUSTC) $$(HOST_LIB$(2))/$$(CFG_LIBRUSTC)
@$$(call E, compile_and_link: $$@) @$$(call E, compile_and_link: $$@)
$$(STAGE$(1)) -L stage1/lib -o $$@ $$< $$(STAGE$(1)) -L $$(HOST_LIB$(2)) -o $$@ $$<
endef endef

View file

@ -2,7 +2,7 @@
ifdef CFG_PERF_TOOL ifdef CFG_PERF_TOOL
rustc-perf$(X): stage2/bin/rustc$(X) rustc-perf$(X): stage2/bin/rustc$(X)
@$(call E, perf compile: $@) @$(call E, perf compile: $@)
$(PERF_STAGE1) -L stage2 -o $@ $(COMPILER_CRATE) >rustc-perf.err 2>&1 $(PERF_STAGE1) -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): stage2/bin/rustc$(X)

View file

@ -98,7 +98,7 @@ ifdef CFG_UNIXY
CFG_EXE_SUFFIX := CFG_EXE_SUFFIX :=
CFG_LDPATH := CFG_LDPATH :=
CFG_RUN=$(CFG_LDENV)=$(1) $(2) CFG_RUN=$(CFG_LDENV)=$(1) $(2)
CFG_RUN_TARG=$(call CFG_RUN,$(CFG_BUILD_DIR)/$(1)/lib,$(2)) CFG_RUN_TARG=$(call CFG_RUN,$(CFG_BUILD_DIR)/$(HOST_LIB$(1)),$(2))
CFG_RUN_TEST=$(call CFG_RUN,$(call CFG_TESTLIB,$(1)),\ CFG_RUN_TEST=$(call CFG_RUN,$(call CFG_TESTLIB,$(1)),\
$(CFG_VALGRIND) $(1)) $(CFG_VALGRIND) $(1))
CFG_LIBUV_LINK_FLAGS=-lpthread CFG_LIBUV_LINK_FLAGS=-lpthread
@ -139,7 +139,7 @@ ifdef CFG_WINDOWSY
CFG_LDPATH :=$(CFG_LLVM_BINDIR) CFG_LDPATH :=$(CFG_LLVM_BINDIR)
CFG_LDPATH :=$(CFG_LDPATH):$$PATH CFG_LDPATH :=$(CFG_LDPATH):$$PATH
CFG_RUN=PATH="$(CFG_LDPATH):$(1)" $(2) CFG_RUN=PATH="$(CFG_LDPATH):$(1)" $(2)
CFG_RUN_TARG=$(call CFG_RUN,$(1)/lib,$(2)) CFG_RUN_TARG=$(call CFG_RUN,$(HOST_LIB$(1)),$(2))
CFG_RUN_TEST=$(call CFG_RUN,$(call CFG_TESTLIB,$(1)),$(1)) CFG_RUN_TEST=$(call CFG_RUN,$(call CFG_TESTLIB,$(1)),$(1))
CFG_LIBUV_LINK_FLAGS=-lWs2_32 CFG_LIBUV_LINK_FLAGS=-lWs2_32

View file

@ -12,10 +12,10 @@ else
"no-reformat\|xfail-pretty\|xfail-test") "no-reformat\|xfail-pretty\|xfail-test")
endif endif
reformat: $(SREQ1) 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,stage1,stage1/rustc$(X)) \ do $(call CFG_RUN_TARG,1,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; \

View file

@ -1,13 +1,12 @@
snap-stage1: stage1/bin/rustc$(X) stage1/lib/$(CFG_RUNTIME) \ snap-stage1: $(HOST_BIN1)/rustc$(X) $(HOST_LIB1)/$(CFG_RUNTIME) \
stage1/lib/$(CFG_RUSTLLVM) stage1/lib/$(CFG_STDLIB) $(HOST_LIB1)/$(CFG_RUSTLLVM) $(HOST_LIB1)/$(CFG_STDLIB)
$(S)src/etc/make-snapshot.py stage1 $(S)src/etc/make-snapshot.py stage1
snap-stage2: stage2/bin/rustc$(X) stage2/lib/$(CFG_RUNTIME) \ snap-stage1: $(HOST_BIN2)/rustc$(X) $(HOST_LIB2)/$(CFG_RUNTIME) \
stage2/lib/$(CFG_RUSTLLVM) stage2/lib/$(CFG_STDLIB) $(HOST_LIB2)/$(CFG_RUSTLLVM) $(HOST_LIB2)/$(CFG_STDLIB)
$(S)src/etc/make-snapshot.py stage2 $(S)src/etc/make-snapshot.py stage1
snap-stage3: stage3/bin/rustc$(X) stage3/lib/$(CFG_RUNTIME) \
stage3/lib/$(CFG_RUSTLLVM) stage3/lib/$(CFG_STDLIB)
$(S)src/etc/make-snapshot.py stage3
snap-stage1: $(HOST_BIN3)/rustc$(X) $(HOST_LIB3)/$(CFG_RUNTIME) \
$(HOST_LIB3)/$(CFG_RUSTLLVM) $(HOST_LIB3)/$(CFG_STDLIB)
$(S)src/etc/make-snapshot.py stage1

View file

@ -1,22 +1,22 @@
stage0/bin/rustc$(X): $(S)src/snapshots.txt $(S)src/etc/get-snapshot.py $(MKFILES) $(HOST_BIN0)/rustc$(X): $(S)src/snapshots.txt $(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
$(Q)touch $@ $(Q)touch $@
# Host libs will be made in the process of making rustc above. # Host libs will be made in the process of making rustc above.
stage0/lib/$(CFG_RUNTIME): stage0/bin/rustc$(X) $(HOST_LIB0)/$(CFG_RUNTIME): $(HOST_BIN0)/rustc$(X)
$(Q)touch $@ $(Q)touch $@
stage0/lib/$(CFG_STDLIB): stage0/bin/rustc$(X) $(HOST_LIB0)/$(CFG_STDLIB): $(HOST_BIN0)/rustc$(X)
$(Q)touch $@ $(Q)touch $@
stage0/lib/$(CFG_RUSTLLVM): stage0/bin/rustc$(X) $(HOST_LIB0)/$(CFG_RUSTLLVM): $(HOST_BIN0)/rustc$(X)
$(Q)touch $@ $(Q)touch $@
# Instantiate template (in stageN.mk) for building # Instantiate template (in stageN.mk) for building
# target libraries. # target libraries.
SREQpre = stage0/lib/$(CFG_HOST_TRIPLE)/main.o $(MKFILES) SREQpre = $(MKFILES)
$(eval $(call TARGET_LIBS,pre,0,$(CFG_HOST_TRIPLE))) $(eval $(call TARGET_LIBS,pre,0,$(CFG_HOST_TRIPLE)))

View file

@ -19,37 +19,37 @@ define STAGE_N
# for different directories, to handle cases where (say) a test relies on a # for different directories, to handle cases where (say) a test relies on a
# compiler that relies on a .o file. # compiler that relies on a .o file.
stage$(2)/bin/%.o: stage$(2)/bin/%.s $$(HOST_BIN$(2))/%.o: $$(HOST_BIN$(2))/%.s
@$$(call E, assemble [gcc]: $$@) @$$(call E, assemble [gcc]: $$@)
$$(Q)gcc $$(CFG_GCCISH_CFLAGS) -o $$@ -c $$< $$(Q)gcc $$(CFG_GCCISH_CFLAGS) -o $$@ -c $$<
stage$(2)/lib/%.o: stage$(2)/lib/%.s $$(HOST_LIB$(2))/%.o: $$(HOST_LIB$(2))/%.s
@$$(call E, assemble [gcc]: $$@) @$$(call E, assemble [gcc]: $$@)
$$(Q)gcc $$(CFG_GCCISH_CFLAGS) -o $$@ -c $$< $$(Q)gcc $$(CFG_GCCISH_CFLAGS) -o $$@ -c $$<
stage$(2)/bin/rustc$$(X): $$(COMPILER_CRATE) $$(COMPILER_INPUTS) \ $$(HOST_BIN$(2))/rustc$$(X): $$(COMPILER_CRATE) $$(COMPILER_INPUTS) \
stage$(2)/lib/$$(CFG_RUNTIME) \ $$(HOST_LIB$(2))/$$(CFG_RUNTIME) \
$$(call CFG_STDLIB_DEFAULT,stage$(1),stage$(2)) \ $$(call CFG_STDLIB_DEFAULT,stage$(1),stage$(2)) \
stage$(2)/lib/$$(CFG_RUSTLLVM) \ $$(HOST_LIB$(2))/$$(CFG_RUSTLLVM) \
$$(SREQ$(1)$(3)) $$(SREQ$(1)$(3))
@$$(call E, compile_and_link: $$@) @$$(call E, compile_and_link: $$@)
$$(STAGE$(1)) -L stage$(2)/lib -o $$@ $$< $$(STAGE$(1)) -L $$(HOST_LIB$(2)) -o $$@ $$<
stage$(2)/lib/$$(CFG_LIBRUSTC): \ $$(HOST_LIB$(2))/$$(CFG_LIBRUSTC): \
$$(COMPILER_CRATE) $$(COMPILER_INPUTS) \ $$(COMPILER_CRATE) $$(COMPILER_INPUTS) \
$$(SREQ$(2)$(3)) $$(SREQ$(2)$(3))
@$$(call E, compile_and_link: $$@) @$$(call E, compile_and_link: $$@)
$$(STAGE$(1)) -L stage$(2)/lib --lib -o $$@ $$< $$(STAGE$(1)) -L $$(HOST_LIB$(2)) --lib -o $$@ $$<
stage$(2)/lib/$$(CFG_RUNTIME): rt/$$(CFG_RUNTIME) $$(HOST_LIB$(2))/$$(CFG_RUNTIME): rt/$$(CFG_RUNTIME)
@$$(call E, cp: $$@) @$$(call E, cp: $$@)
$$(Q)cp $$< $$@ $$(Q)cp $$< $$@
stage$(2)/lib/$$(CFG_STDLIB): stage$(1)/lib/rustc/$$(CFG_HOST_TRIPLE)/$$(CFG_STDLIB) $$(HOST_LIB$(2))/$$(CFG_STDLIB): $$(TARGET_HOST_LIB$(1))/$$(CFG_STDLIB)
@$$(call E, cp: $$@) @$$(call E, cp: $$@)
$$(Q)cp $$< $$@ $$(Q)cp $$< $$@
stage$(2)/lib/$$(CFG_RUSTLLVM): rustllvm/$$(CFG_RUSTLLVM) $$(HOST_LIB$(2))/$$(CFG_RUSTLLVM): rustllvm/$$(CFG_RUSTLLVM)
@$$(call E, cp: $$@) @$$(call E, cp: $$@)
$$(Q)cp $$< $$@ $$(Q)cp $$< $$@
@ -66,35 +66,35 @@ define TARGET_LIBS
# using these exclusively, you should delete the non-arch-prefixed # using these exclusively, you should delete the non-arch-prefixed
# rules above. They're duplicates, redundant. # rules above. They're duplicates, redundant.
stage$(2)/lib/rustc/$(3)/intrinsics.bc: $$(INTRINSICS_BC) $$(TARGET_LIB$(2)$(3))/intrinsics.bc: $$(INTRINSICS_BC)
@$$(call E, cp: $$@) @$$(call E, cp: $$@)
$$(Q)cp $$< $$@ $$(Q)cp $$< $$@
stage$(2)/lib/rustc/$(3)/main.o: rt/main.o $$(TARGET_LIB$(2)$(3))/main.o: rt/main.o
@$$(call E, cp: $$@) @$$(call E, cp: $$@)
$$(Q)cp $$< $$@ $$(Q)cp $$< $$@
stage$(2)/lib/rustc/$(3)/$$(CFG_STDLIB): \ $$(TARGET_LIB$(2)$(3))/$$(CFG_STDLIB): \
$$(STDLIB_CRATE) $$(STDLIB_INPUTS) \ $$(STDLIB_CRATE) $$(STDLIB_INPUTS) \
stage$(2)/bin/rustc$$(X) \ $$(HOST_BIN$(2))/rustc$$(X) \
stage$(2)/lib/$$(CFG_RUNTIME) \ $$(HOST_LIB$(2))/$$(CFG_RUNTIME) \
stage$(2)/lib/$$(CFG_RUSTLLVM) \ $$(HOST_LIB$(2))/$$(CFG_RUSTLLVM) \
stage$(2)/lib/rustc/$(3)/intrinsics.bc \ $$(TARGET_LIB$(2)$(3))/intrinsics.bc \
$$(SREQ$(1)$(3)) $$(SREQ$(1)$(3))
@$$(call E, compile_and_link: $$@) @$$(call E, compile_and_link: $$@)
$$(STAGE$(2)) --lib -o $$@ $$< $$(STAGE$(2)) --lib -o $$@ $$<
stage$(2)/lib/rustc/$(3)/libstd.rlib: \ $$(TARGET_LIB$(2)$(3))/libstd.rlib: \
$$(STDLIB_CRATE) $$(STDLIB_INPUTS) \ $$(STDLIB_CRATE) $$(STDLIB_INPUTS) \
stage$(2)/bin/rustc$$(X) \ $$(HOST_BIN$(2))/rustc$$(X) \
stage$(2)/lib/$$(CFG_RUNTIME) \ $$(HOST_LIB$(2))/$$(CFG_RUNTIME) \
stage$(2)/lib/$$(CFG_RUSTLLVM) \ $$(HOST_LIB$(2))/$$(CFG_RUSTLLVM) \
stage$(2)/lib/rustc/$(3)/intrinsics.bc \ $$(TARGET_LIB$(2)$(3))/intrinsics.bc \
$$(SREQ$(1)$(3)) $$(SREQ$(1)$(3))
@$$(call E, compile_and_link: $$@) @$$(call E, compile_and_link: $$@)
$$(STAGE$(2)) --lib --static -o $$@ $$< $$(STAGE$(2)) --lib --static -o $$@ $$<
stage$(2)/lib/rustc/$(3)/$$(CFG_RUNTIME): rt/$$(CFG_RUNTIME) $$(TARGET_LIB$(2)$(3))/$$(CFG_RUNTIME): rt/$$(CFG_RUNTIME)
@$$(call E, cp: $$@) @$$(call E, cp: $$@)
$$(Q)cp $$< $$@ $$(Q)cp $$< $$@

View file

@ -68,7 +68,7 @@ STDTEST_INPUTS := $(wildcard $(S)src/test/stdtest/*rs)
ifdef CTEST_VALGRIND ifdef CTEST_VALGRIND
CFG_RUN_CTEST=$(call CFG_RUN_TEST,$(2)) CFG_RUN_CTEST=$(call CFG_RUN_TEST,$(2))
else else
CFG_RUN_CTEST=$(call CFG_RUN,stage$(1)/lib/rustc/$(CFG_HOST_TRIPLE),$(2)) CFG_RUN_CTEST=$(call CFG_RUN,$(TARGET_HOST_LIB$(1)),$(2))
endif endif
###################################################################### ######################################################################
@ -146,16 +146,16 @@ test/stdtest.stage$(2).out.tmp: test/stdtest.stage$(2)$$(X)
check-stage$(2)-rustc: test/rustctest.stage$(2).out \ check-stage$(2)-rustc: test/rustctest.stage$(2).out \
test/rustctest.stage$(2)$$(X): $$(COMPILER_CRATE) $$(COMPILER_INPUTS) \ test/rustctest.stage$(2)$$(X): $$(COMPILER_CRATE) $$(COMPILER_INPUTS) \
stage$(2)/lib/$$(CFG_RUNTIME) \ $$(HOST_LIB$(2))/$$(CFG_RUNTIME) \
$$(call CFG_STDLIB_DEFAULT,stage$(1),stage$(2)) \ $$(call CFG_STDLIB_DEFAULT,stage$(1),stage$(2)) \
stage$(2)/lib/$$(CFG_RUSTLLVM) \ $$(HOST_LIB$(2))/$$(CFG_RUSTLLVM) \
$$(SREQ$(1)$$(CFG_HOST_TRIPLE)) $$(SREQ$(1)$$(CFG_HOST_TRIPLE))
@$$(call E, compile_and_link: $$@) @$$(call E, compile_and_link: $$@)
$$(STAGE$(1)) -o $$@ $$< --test $$(STAGE$(1)) -o $$@ $$< --test
test/rustctest.stage$(2).out.tmp: test/rustctest.stage$(2)$$(X) test/rustctest.stage$(2).out.tmp: test/rustctest.stage$(2)$$(X)
@$$(call E, run: $$<) @$$(call E, run: $$<)
$$(Q)$$(call CFG_RUN,$(CFG_BUILD_DIR)/stage$(2)/lib,$$(CFG_VALGRIND) $$<) \ $$(Q)$$(call CFG_RUN,$$(HOST_LIB$(2)),$$(CFG_VALGRIND) $$<) \
$$(TESTARGS) $$(TESTARGS)
$$(Q)touch $$@ $$(Q)touch $$@
@ -185,9 +185,9 @@ check-stage$(2)-pretty: check-stage$(2)-pretty-rpass \
check-stage$(2)-pretty-bench \ check-stage$(2)-pretty-bench \
check-stage$(2)-pretty-pretty \ check-stage$(2)-pretty-pretty \
CTEST_COMMON_ARGS$(2) := --compile-lib-path stage$(2)/lib \ CTEST_COMMON_ARGS$(2) := --compile-lib-path $$(HOST_LIB$(2)) \
--run-lib-path stage$(2)/lib/$$(CFG_HOST_TRIPLE) \ --run-lib-path $$(TARGET_LIB$(2)$$(CFG_HOST_TRIPLE)) \
--rustc-path stage$(2)/bin/rustc$$(X) \ --rustc-path $$(HOST_BIN$(2))/rustc$$(X) \
--stage-id stage$(2) \ --stage-id stage$(2) \
--rustcflags "$$(CFG_RUSTC_FLAGS)" \ --rustcflags "$$(CFG_RUSTC_FLAGS)" \
$$(CTEST_TESTARGS) \ $$(CTEST_TESTARGS) \
@ -204,19 +204,19 @@ RFAIL_ARGS$(2) := $$(CTEST_COMMON_ARGS$(2)) \
$$(CTEST_RUNTOOL) \ $$(CTEST_RUNTOOL) \
RPASS_ARGS$(2) := $$(CTEST_COMMON_ARGS$(2)) \ RPASS_ARGS$(2) := $$(CTEST_COMMON_ARGS$(2)) \
--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$(2) := $$(CTEST_COMMON_ARGS$(2)) \ BENCH_ARGS$(2) := $$(CTEST_COMMON_ARGS$(2)) \
--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$(2) := $$(CTEST_COMMON_ARGS$(2)) \ PERF_ARGS$(2) := $$(CTEST_COMMON_ARGS$(2)) \
--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) \
@ -324,9 +324,9 @@ stage2/lib/$(FT_LIB): test/$(FT).rc $(SREQ2$(CFG_HOST_TRIPLE))
@$(call E, compile_and_link: $@) @$(call E, compile_and_link: $@)
$(STAGE2) --lib -o $@ $< $(STAGE2) --lib -o $@ $<
test/$(FT_DRIVER)$(X): test/$(FT_DRIVER).rs stage2/lib/$(FT_LIB) $(SREQ2$(CFG_HOST_TRIPLE)) test/$(FT_DRIVER)$(X): test/$(FT_DRIVER).rs $(HOST_LIB2)/$(FT_LIB) $(SREQ2$(CFG_HOST_TRIPLE))
@$(call E, compile_and_link: $@) @$(call E, compile_and_link: $@)
$(STAGE2) -L stage2/lib -o $@ $< $(STAGE2) -L $(HOST_LIB2) -o $@ $<
test/$(FT_DRIVER).out: test/$(FT_DRIVER)$(X) $(SREQ2$(CFG_HOST_TRIPLE)) test/$(FT_DRIVER).out: test/$(FT_DRIVER)$(X) $(SREQ2$(CFG_HOST_TRIPLE))
$(Q)$(call CFG_RUN_TEST, $<) $(Q)$(call CFG_RUN_TEST, $<)