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:
parent
ed106dd6ea
commit
38c67a4c8d
10 changed files with 103 additions and 95 deletions
57
Makefile.in
57
Makefile.in
|
@ -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))) \
|
||||||
|
|
20
mk/clean.mk
20
mk/clean.mk
|
@ -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
|
||||||
|
|
||||||
|
|
12
mk/fuzzer.mk
12
mk/fuzzer.mk
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
4
mk/pp.mk
4
mk/pp.mk
|
@ -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; \
|
||||||
|
|
17
mk/snap.mk
17
mk/snap.mk
|
@ -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
|
||||||
|
|
10
mk/stage0.mk
10
mk/stage0.mk
|
@ -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)))
|
||||||
|
|
||||||
|
|
48
mk/stageN.mk
48
mk/stageN.mk
|
@ -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 $$< $$@
|
||||||
|
|
||||||
|
|
24
mk/tests.mk
24
mk/tests.mk
|
@ -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, $<)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue