@@ -450,6 +450,7 @@ CODEGEN_RS := $(call rwildcard,$(S)src/test/codegen/,*.rs)
450450CODEGEN_CC := $(call rwildcard,$(S ) src/test/codegen/,* .cc)
451451CODEGEN_UNITS_RS := $(call rwildcard,$(S ) src/test/codegen-units/,* .rs)
452452INCREMENTAL_RS := $(call rwildcard,$(S ) src/test/incremental/,* .rs)
453+ RMAKE_RS := $(wildcard $(S ) src/test/run-make/* /Makefile)
453454RUSTDOCCK_RS := $(call rwildcard,$(S ) src/test/rustdoc/,* .rs)
454455
455456RPASS_TESTS := $(RPASS_RS )
@@ -466,6 +467,7 @@ DEBUGINFO_LLDB_TESTS := $(DEBUGINFO_LLDB_RS)
466467CODEGEN_TESTS := $(CODEGEN_RS ) $(CODEGEN_CC )
467468CODEGEN_UNITS_TESTS := $(CODEGEN_UNITS_RS )
468469INCREMENTAL_TESTS := $(INCREMENTAL_RS )
470+ RMAKE_TESTS := $(RMAKE_RS )
469471RUSTDOCCK_TESTS := $(RUSTDOCCK_RS )
470472
471473CTEST_SRC_BASE_rpass = run-pass
@@ -533,6 +535,11 @@ CTEST_BUILD_BASE_incremental = incremental
533535CTEST_MODE_incremental = incremental
534536CTEST_RUNTOOL_incremental = $(CTEST_RUNTOOL )
535537
538+ CTEST_SRC_BASE_rmake = run-make
539+ CTEST_BUILD_BASE_rmake = run-make
540+ CTEST_MODE_rmake = run-make
541+ CTEST_RUNTOOL_rmake = $(CTEST_RUNTOOL )
542+
536543CTEST_SRC_BASE_rustdocck = rustdoc
537544CTEST_BUILD_BASE_rustdocck = rustdoc
538545CTEST_MODE_rustdocck = rustdoc
@@ -629,6 +636,11 @@ CTEST_COMMON_ARGS$(1)-T-$(2)-H-$(3) := \
629636 --host-rustcflags "$(RUSTC_FLAGS_$(3 ) ) $$(CTEST_RUSTC_FLAGS ) -L $$(RT_OUTPUT_DIR_$(3 ) ) " \
630637 --lldb-python-dir=$(CFG_LLDB_PYTHON_DIR ) \
631638 --target-rustcflags "$(RUSTC_FLAGS_$(2 ) ) $$(CTEST_RUSTC_FLAGS ) -L $$(RT_OUTPUT_DIR_$(2 ) ) " \
639+ --cc '$$(CC_$(3 ) ) ' \
640+ --cxx '$$(CXX_$(3 ) ) ' \
641+ --cflags "$$(CFG_GCCISH_CFLAGS_$(3 ) ) " \
642+ --llvm-components "$$(LLVM_ALL_COMPONENTS_$(3 ) ) " \
643+ --llvm-cxxflags "$$(LLVM_CXXFLAGS_$(3 ) ) " \
632644 $$(CTEST_TESTARGS )
633645
634646ifdef CFG_VALGRIND_RPASS
@@ -658,6 +670,9 @@ CTEST_DEPS_debuginfo-lldb_$(1)-T-$(2)-H-$(3) = $$(DEBUGINFO_LLDB_TESTS) \
658670CTEST_DEPS_codegen_$(1 ) -T-$(2 ) -H-$(3 ) = $$(CODEGEN_TESTS )
659671CTEST_DEPS_codegen-units_$(1 ) -T-$(2 ) -H-$(3 ) = $$(CODEGEN_UNITS_TESTS )
660672CTEST_DEPS_incremental_$(1 ) -T-$(2 ) -H-$(3 ) = $$(INCREMENTAL_TESTS )
673+ CTEST_DEPS_rmake_$(1 ) -T-$(2 ) -H-$(3 ) = $$(RMAKE_TESTS ) \
674+ $$(CSREQ$(1 ) _T_$(3 ) _H_$(3 ) ) $$(SREQ$(1 ) _T_$(2 ) _H_$(3 ) )
675+
661676CTEST_DEPS_rustdocck_$(1 ) -T-$(2 ) -H-$(3 ) = $$(RUSTDOCCK_TESTS ) \
662677 $$(HBIN$(1 ) _H_$(3 ) ) /rustdoc$$(X_$(3 ) ) \
663678 $(S ) src/etc/htmldocck.py
@@ -702,6 +717,10 @@ endif
702717endif
703718
704719ifeq ($$(CTEST_DONT_RUN_$(1 ) -T-$(2 ) -H-$(3 ) -$(4 ) ) ,)
720+ $$(call TEST_OK_FILE,$(1 ) ,$(2 ) ,$(3 ) ,$(4 ) ) : \
721+ export INCLUDE := $$(CFG_MSVC_INCLUDE_PATH_$$(HOST_$(3 ) ) )
722+ $$(call TEST_OK_FILE,$(1 ) ,$(2 ) ,$(3 ) ,$(4 ) ) : \
723+ export LIB := $$(CFG_MSVC_LIB_PATH_$$(HOST_$(3 ) ) )
705724$$(call TEST_OK_FILE,$(1 ) ,$(2 ) ,$(3 ) ,$(4 ) ) : \
706725 $$(TEST_SREQ$(1 ) _T_$(2 ) _H_$(3 ) ) \
707726 $$(CTEST_DEPS_$(4)_$(1)-T-$(2)-H-$(3))
@@ -724,7 +743,8 @@ endif
724743endef
725744
726745CTEST_NAMES = rpass rpass-valgrind rpass-full rfail-full cfail-full rfail cfail pfail \
727- debuginfo-gdb debuginfo-lldb codegen codegen-units rustdocck incremental
746+ debuginfo-gdb debuginfo-lldb codegen codegen-units rustdocck incremental \
747+ rmake
728748
729749$(foreach host,$(CFG_HOST), \
730750 $(eval $(foreach target,$(CFG_TARGET), \
@@ -1009,70 +1029,3 @@ endef
10091029
10101030$(foreach crate,$(TEST_CRATES), \
10111031 $(eval $(call DEF_CHECK_CRATE,$(crate))))
1012-
1013- # #####################################################################
1014- # RMAKE rules
1015- # #####################################################################
1016-
1017- RMAKE_TESTS := $(shell ls -d $(S ) src/test/run-make/* /)
1018- RMAKE_TESTS := $(RMAKE_TESTS:$(S ) src/test/run-make/%/=% )
1019-
1020- define DEF_RMAKE_FOR_T_H
1021- # $(1) the stage
1022- # $(2) target triple
1023- # $(3) host triple
1024-
1025-
1026- ifeq ($(2 )$(3 ) ,$$(CFG_BUILD )$$(CFG_BUILD ) )
1027- check-stage$(1 ) -T-$(2 ) -H-$(3 ) -rmake-exec : \
1028- $$(call TEST_OK_FILE,$(1 ) ,$(2 ) ,$(3 ) ,rmake)
1029-
1030- $$(call TEST_OK_FILE,$(1 ) ,$(2 ) ,$(3 ) ,rmake) : \
1031- $$(RMAKE_TESTS:%=$(3 ) /test/run-make/%-$(1 ) -T-$(2 ) -H-$(3 ) .ok )
1032- @touch $$@
1033-
1034- $(3 ) /test/run-make/% -$(1 ) -T-$(2 ) -H-$(3 ) .ok : \
1035- export INCLUDE := $$(CFG_MSVC_INCLUDE_PATH_$$(HOST_$(3 ) ) )
1036- $(3 ) /test/run-make/% -$(1 ) -T-$(2 ) -H-$(3 ) .ok : \
1037- export LIB := $$(CFG_MSVC_LIB_PATH_$$(HOST_$(3 ) ) )
1038- $(3 ) /test/run-make/% -$(1 ) -T-$(2 ) -H-$(3 ) .ok : \
1039- export MSVC_LIB := " $$ (CFG_MSVC_LIB_$$ (HOST_$( 3) ))"
1040- $(3 ) /test/run-make/% -$(1 ) -T-$(2 ) -H-$(3 ) .ok : \
1041- $(S ) src/test/run-make/%/Makefile \
1042- $$(CSREQ$(1 ) _T_$(2 ) _H_$(3 ) )
1043- @rm -rf $(3 ) /test/run-make/$$*
1044- @mkdir -p $(3 ) /test/run-make/$$*
1045- $$(Q ) touch $$@ .start_time
1046- $$(Q )$$(CFG_PYTHON ) $(S ) src/etc/maketest.py $$(dir $$< ) \
1047- $$(MAKE) \
1048- $$(HBIN$(1)_H_$(3))/rustc$$(X_$(3)) \
1049- $(3)/test/run-make/$$* \
1050- '$$(CC_$(3))' \
1051- "$$(CFG_GCCISH_CFLAGS_$(3))" \
1052- $$(HBIN$(1)_H_$(3))/rustdoc$$(X_$(3)) \
1053- "$$(TESTNAME)" \
1054- $$(LD_LIBRARY_PATH_ENV_NAME$(1)_T_$(2)_H_$(3)) \
1055- "$$(LD_LIBRARY_PATH_ENV_HOSTDIR$(1)_T_$(2)_H_$(3))" \
1056- "$$(LD_LIBRARY_PATH_ENV_TARGETDIR$(1)_T_$(2)_H_$(3))" \
1057- $(1) \
1058- $$(S) \
1059- $(3) \
1060- "$$(LLVM_LIBDIR_RUSTFLAGS_$(3))" \
1061- "$$(LLVM_ALL_COMPONENTS_$(3))" \
1062- "$$(LLVM_CXXFLAGS_$(3))" \
1063- '$$(CXX_$(3))'
1064- 1065- else
1066- # FIXME #11094 - The above rule doesn't work right for multiple targets
1067- check-stage$(1 ) -T-$(2 ) -H-$(3 ) -rmake-exec :
1068- @true
1069-
1070- endif
1071-
1072-
1073- endef
1074-
1075- $(foreach stage,$(STAGES), \
1076- $(foreach target,$(CFG_TARGET), \
1077- $(foreach host,$(CFG_HOST), \
1078- $(eval $(call DEF_RMAKE_FOR_T_H,$(stage),$(target),$(host))))))
0 commit comments