From 7714d52cd9381c8ba3257da124cd91ffadeda4d5 Mon Sep 17 00:00:00 2001 From: Young-il Choi Date: Sat, 2 Mar 2013 21:25:12 +0900 Subject: [PATCH] mk: cleanup - lib and executable suffix handling --- Makefile.in | 178 ++++++++++++++++++++++++++----------------------- configure | 60 +++++++++++------ mk/clean.mk | 30 +++++---- mk/docs.mk | 2 +- mk/host.mk | 82 ++++++++++++----------- mk/install.mk | 22 +++--- mk/perf.mk | 6 +- mk/platform.mk | 175 ++++++++++++++++++++++-------------------------- mk/pp.mk | 2 +- mk/rt.mk | 42 ++++++------ mk/rustllvm.mk | 2 +- mk/stage0.mk | 42 ++++++------ mk/target.mk | 2 +- mk/tests.mk | 86 +++++++++++++++--------- mk/tools.mk | 150 ++++++++++++++++++++--------------------- 15 files changed, 463 insertions(+), 418 deletions(-) diff --git a/Makefile.in b/Makefile.in index ccc0af3acdf..9d31ddbf54e 100644 --- a/Makefile.in +++ b/Makefile.in @@ -130,7 +130,71 @@ else CFG_VALGRIND_COMPILE := endif -define LIBREQ +# version-string calculation +CFG_GIT_DIR := $(CFG_SRC_DIR).git +CFG_RELEASE = 0.6 +CFG_VERSION = $(CFG_RELEASE) + +ifneq ($(wildcard $(CFG_GIT)),) +ifneq ($(wildcard $(CFG_GIT_DIR)),) + CFG_VERSION += $(shell git --git-dir=$(CFG_GIT_DIR) log -1 \ + --pretty=format:'(%h %ci)') + CFG_VER_HASH = $(shell git --git-dir=$(CFG_GIT_DIR) log -1 \ + --pretty=format:'%H') +endif +endif + +ifdef CFG_ENABLE_VALGRIND + $(info cfg: enabling valgrind (CFG_ENABLE_VALGRIND)) +else + CFG_VALGRIND := +endif +ifdef CFG_BAD_VALGRIND + $(info cfg: disabling valgrind due to its unreliability on this platform) + CFG_VALGRIND := +endif + + +###################################################################### +# Target-and-rule "utility variables" +###################################################################### + +ifdef VERBOSE + Q := + E = +else + Q := @ + E = echo $(1) +endif + +S := $(CFG_SRC_DIR) + +define DEF_X +X_$(1) := $(CFG_EXE_SUFFIX_$(1)) +endef +$(foreach target,$(CFG_TARGET_TRIPLES),\ + $(eval $(call DEF_X,$(target)))) + +# Look in doc and src dirs. +VPATH := $(S)doc $(S)src + +# "Source" files we generate in builddir along the way. +GENERATED := + +# Delete the built-in rules. +.SUFFIXES: +%:: %,v +%:: RCS/%,v +%:: RCS/% +%:: s.% +%:: SCCS/s.% + + +###################################################################### +# Crates +###################################################################### + +define DEF_LIBS CFG_RUNTIME_$(1) :=$(call CFG_LIB_NAME_$(1),rustrt) CFG_RUSTLLVM_$(1) :=$(call CFG_LIB_NAME_$(1),rustllvm) @@ -165,62 +229,8 @@ LIBRUST_DSYM_GLOB_$(1) :=$(call CFG_LIB_DSYM_GLOB_$(1),rust) endef -$(foreach target,$(CFG_TARGET_TRIPLES), \ - $(eval $(call LIBREQ,$(target)))) - -# version-string calculation -CFG_GIT_DIR := $(CFG_SRC_DIR).git -CFG_RELEASE = 0.6 -CFG_VERSION = $(CFG_RELEASE) - -ifneq ($(wildcard $(CFG_GIT)),) -ifneq ($(wildcard $(CFG_GIT_DIR)),) - CFG_VERSION += $(shell git --git-dir=$(CFG_GIT_DIR) log -1 \ - --pretty=format:'(%h %ci)') - CFG_VER_HASH = $(shell git --git-dir=$(CFG_GIT_DIR) log -1 \ - --pretty=format:'%H') -endif -endif - -ifdef CFG_ENABLE_VALGRIND - $(info cfg: enabling valgrind (CFG_ENABLE_VALGRIND)) -else - CFG_VALGRIND := -endif -ifdef CFG_BAD_VALGRIND - $(info cfg: disabling valgrind due to its unreliability on this platform) - CFG_VALGRIND := -endif - - -###################################################################### -# Target-and-rule "utility variables" -###################################################################### - -#ifdef VERBOSE - Q := - E = -#else -# Q := @ -# E = echo $(1) -#endif - -S := $(CFG_SRC_DIR) -X := $(CFG_EXE_SUFFIX) - -# Look in doc and src dirs. -VPATH := $(S)doc $(S)src - -# "Source" files we generate in builddir along the way. -GENERATED := - -# Delete the built-in rules. -.SUFFIXES: -%:: %,v -%:: RCS/%,v -%:: RCS/% -%:: s.% -%:: SCCS/s.% +$(foreach target,$(CFG_TARGET_TRIPLES),\ + $(eval $(call DEF_LIBS,$(target)))) ###################################################################### # Core library variables @@ -267,8 +277,8 @@ CFG_LLVM_BUILD_DIR_$(1):=$$(CFG_LLVM_BUILD_DIR_$(subst -,_,$(1))) CFG_LLVM_INST_DIR_$(1):=$$(CFG_LLVM_INST_DIR_$(subst -,_,$(1))) # Any rules that depend on LLVM should depend on LLVM_CONFIG -LLVM_CONFIG_$(1):=$$(CFG_LLVM_INST_DIR_$(1))/bin/llvm-config$$(X) -LLVM_MC_$(1):=$$(CFG_LLVM_INST_DIR_$(1))/bin/llvm-mc$$(X) +LLVM_CONFIG_$(1):=$$(CFG_LLVM_INST_DIR_$(1))/bin/llvm-config$$(X_$(1)) +LLVM_MC_$(1):=$$(CFG_LLVM_INST_DIR_$(1))/bin/llvm-mc$$(X_$(1)) LLVM_VERSION_$(1)=$$(shell "$$(LLVM_CONFIG_$(1))" --version) LLVM_BINDIR_$(1)=$$(shell "$$(LLVM_CONFIG_$(1))" --bindir) LLVM_INCDIR_$(1)=$$(shell "$$(LLVM_CONFIG_$(1))" --includedir) @@ -280,8 +290,8 @@ LLVM_LDFLAGS_$(1)=$$(shell "$$(LLVM_CONFIG_$(1))" --ldflags) LLVM_CXXFLAGS_$(1)=$$(subst -I, -iquote , $$(shell "$$(LLVM_CONFIG_$(1))" --cxxflags)) LLVM_HOST_TRIPLE_$(1)=$$(shell "$$(LLVM_CONFIG_$(1))" --host-target) -LLVM_AS_$(1)=$$(CFG_LLVM_INST_DIR_$(1))/bin/llvm-as$$(X) -LLC_$(1)=$$(CFG_LLVM_INST_DIR_$(1))/bin/llc$$(X) +LLVM_AS_$(1)=$$(CFG_LLVM_INST_DIR_$(1))/bin/llvm-as$$(X_$(1)) +LLC_$(1)=$$(CFG_LLVM_INST_DIR_$(1))/bin/llc$$(X_$(1)) endef @@ -357,12 +367,12 @@ else HLIBRUSTC_DEFAULT$(1)_H_$(3) = \ $$(HLIB$(1)_H_$(3))/$(CFG_LIBRUSTC_$(3)) TLIBRUSTC_DEFAULT$(1)_T_$(2)_H_$(3) = \ - $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUSTC_$(3)) + $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUSTC_$(2)) endif # Preqrequisites for using the stageN compiler HSREQ$(1)_H_$(3) = \ - $$(HBIN$(1)_H_$(3))/rustc$$(X) \ + $$(HBIN$(1)_H_$(3))/rustc$$(X_$(3)) \ $$(HLIB$(1)_H_$(3))/$(CFG_RUNTIME_$(3)) \ $$(HLIB$(1)_H_$(3))/$(CFG_RUSTLLVM_$(3)) \ $$(HCORELIB_DEFAULT$(1)_H_$(3)) \ @@ -386,25 +396,25 @@ SREQ$(1)_T_$(2)_H_$(3) = \ # Prerequisites for a working stageN compiler and libraries, for a specific target CSREQ$(1)_T_$(2)_H_$(3) = \ $$(TSREQ$(1)_T_$(2)_H_$(3)) \ - $$(HBIN$(1)_H_$(3))/fuzzer$$(X) \ - $$(HBIN$(1)_H_$(3))/rustpkg$$(X) \ - $$(HBIN$(1)_H_$(3))/rustdoc$$(X) \ - $$(HBIN$(1)_H_$(3))/rusti$$(X) \ - $$(HBIN$(1)_H_$(3))/rust$$(X) \ + $$(HBIN$(1)_H_$(3))/fuzzer$$(X_$(3)) \ + $$(HBIN$(1)_H_$(3))/rustpkg$$(X_$(3)) \ + $$(HBIN$(1)_H_$(3))/rustdoc$$(X_$(3)) \ + $$(HBIN$(1)_H_$(3))/rusti$$(X_$(3)) \ + $$(HBIN$(1)_H_$(3))/rust$$(X_$(3)) \ $$(HLIB$(1)_H_$(3))/$(CFG_LIBFUZZER_$(3)) \ $$(HLIB$(1)_H_$(3))/$(CFG_LIBRUSTPKG_$(3)) \ $$(HLIB$(1)_H_$(3))/$(CFG_LIBRUSTDOC_$(3)) \ $$(HLIB$(1)_H_$(3))/$(CFG_LIBRUSTI_$(3)) \ $$(HLIB$(1)_H_$(3))/$(CFG_LIBRUST_$(3)) \ - $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_CORELIB_$(3)) \ - $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_STDLIB_$(3)) \ - $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBSYNTAX_$(3)) \ - $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUSTC_$(3)) \ - $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBFUZZER_$(3)) \ - $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUSTPKG_$(3)) \ - $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUSTDOC_$(3)) \ - $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUSTI_$(3)) \ - $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUST_$(3)) + $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_CORELIB_$(2)) \ + $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_STDLIB_$(2)) \ + $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBSYNTAX_$(2)) \ + $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUSTC_$(2)) \ + $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBFUZZER_$(2)) \ + $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUSTPKG_$(2)) \ + $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUSTDOC_$(2)) \ + $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUSTI_$(2)) \ + $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUST_$(2)) ifeq ($(1),0) # Don't run the the stage0 compiler under valgrind - that ship has sailed @@ -428,18 +438,20 @@ endif endif STAGE$(1)_T_$(2)_H_$(3) := \ - $$(Q)$$(call CFG_RUN_TARG,$(1), \ + $$(Q)$$(call CFG_RUN_TARG_$(3),$(1), \ $$(CFG_VALGRIND_COMPILE$(1)) \ - $$(HBIN$(1)_H_$(3))/rustc$$(X) \ + $$(HBIN$(1)_H_$(3))/rustc$$(X_$(3)) \ --cfg $$(CFGFLAG$(1)_T_$(2)_H_$(3)) \ - $$(CFG_RUSTC_FLAGS) $$(EXTRAFLAGS_STAGE$(1)) --target=$(2)) + $$(CFG_RUSTC_FLAGS) $$(EXTRAFLAGS_STAGE$(1)) --target=$(2)) \ + $$(RUSTC_FLAGS_$(2)) PERF_STAGE$(1)_T_$(2)_H_$(3) := \ - $$(Q)$$(call CFG_RUN_TARG,$(1), \ + $$(Q)$$(call CFG_RUN_TARG_$(3),$(1), \ $$(CFG_PERF_TOOL) \ - $$(HBIN$(1)_H_$(3))/rustc$$(X) \ + $$(HBIN$(1)_H_$(3))/rustc$$(X_$(3)) \ --cfg $$(CFGFLAG$(1)_T_$(2)_H_$(3)) \ - $$(CFG_RUSTC_FLAGS) $$(EXTRAFLAGS_STAGE$(1)) --target=$(2)) + $$(CFG_RUSTC_FLAGS) $$(EXTRAFLAGS_STAGE$(1)) --target=$(2)) \ + $$(RUSTC_FLAGS_$(2)) endef diff --git a/configure b/configure index 5e4ab2bfdb1..a1c6e686474 100755 --- a/configure +++ b/configure @@ -349,7 +349,8 @@ valopt llvm-root "" "set LLVM root" valopt build-triple "${DEFAULT_BUILD_TRIPLE}" "LLVM build triple" valopt host-triples "${CFG_BUILD_TRIPLE}" "LLVM host triples" valopt target-triples "${CFG_HOST_TRIPLES}" "LLVM target triples" -valopt android-ndk-path "" "Android NDK Standalone path" +valopt android-cross-path "/opt/ndk_standalone" "Android NDK standalone path" +valopt mingw32-cross-path "" "MinGW32 cross compiler path" # Validate Options step_msg "validating $CFG_SELF args" @@ -530,29 +531,44 @@ else CFG_C_COMPILER="gcc" fi -if [ ! -z "$CFG_ANDROID_NDK_PATH" ] -then - if [ ! -f $CFG_ANDROID_NDK_PATH/bin/arm-linux-androideabi-gcc ] - then - err "NDK $CFG_ANDROID_NDK_PATH/bin/arm-linux-androideabi-gcc not found" - fi - if [ ! -f $CFG_ANDROID_NDK_PATH/bin/arm-linux-androideabi-g++ ] - then - err "NDK $CFG_ANDROID_NDK_PATH/bin/arm-linux-androideabi-g++ not found" - fi - if [ ! -f $CFG_ANDROID_NDK_PATH/bin/arm-linux-androideabi-ar ] - then - err "NDK $CFG_ANDROID_NDK_PATH/bin/arm-linux-androideabi-ar not found" - fi - - CFG_CROSS_PREFIX_arm=$CFG_ANDROID_NDK_PATH"/bin/arm-linux-androideabi-" -fi - # a little post-processing of various config values CFG_PREFIX=${CFG_PREFIX%/} CFG_TARGET_TRIPLES="$(echo $CFG_TARGET_TRIPLES | tr ',' ' ')" +# copy host-triples to target-triples so that hosts are a subset of targets +V_TEMP="" +for i in $CFG_HOST_TRIPLES $CFG_TARGET_TRIPLES; +do + echo "$V_TEMP" | grep -qF $i || V_TEMP="$V_TEMP${V_TEMP:+ }$i" +done +CFG_TARGET_TRIPLES=$V_TEMP + +# check target-specific tool-chains +for i in $CFG_TARGET_TRIPLES +do + case $i in + arm-unknown-android) + + if [ ! -f $CFG_ANDROID_CROSS_PATH/bin/arm-linux-androideabi-gcc ] + then + err "NDK $CFG_ANDROID_CROSS_PATH/bin/arm-linux-androideabi-gcc not found" + fi + if [ ! -f $CFG_ANDROID_CROSS_PATH/bin/arm-linux-androideabi-g++ ] + then + err "NDK $CFG_ANDROID_CROSS_PATH/bin/arm-linux-androideabi-g++ not found" + fi + if [ ! -f $CFG_ANDROID_CROSS_PATH/bin/arm-linux-androideabi-ar ] + then + err "NDK $CFG_ANDROID_CROSS_PATH/bin/arm-linux-androideabi-ar not found" + fi + ;; + + *) + ;; + esac +done + if [ -z "$CFG_ENABLE_CLANG" -a -z "$CFG_GCC" ] then err "either clang or gcc is required" @@ -595,7 +611,7 @@ do make_dir rt/$t for i in \ isaac linenoise sync test arch/i386 arch/x86_64 arch/arm \ - libuv libuv/src + libuv libuv/src/ares libuv/src/eio libuv/src/ev do make_dir rt/$t/$i done @@ -603,6 +619,7 @@ done # On windows we just store the libraries in the bin directory because # there's no rpath +# FIXME: Thise needs to parameterized over target triples. Do it in platform.mk CFG_LIBDIR=lib if [ "$CFG_OSTYPE" = "pc-mingw32" ] then @@ -841,7 +858,8 @@ putvar CFG_TARGET_TRIPLES putvar CFG_C_COMPILER putvar CFG_LIBDIR putvar CFG_DISABLE_MANAGE_SUBMODULES -putvar CFG_CROSS_PREFIX_arm +putvar CFG_ANDROID_CROSS_PATH +putvar CFG_MINGW32_CROSS_PATH if [ ! -z "$CFG_ENABLE_PAX_FLAGS" ] then diff --git a/mk/clean.mk b/mk/clean.mk index ddee25443d2..30897eea457 100644 --- a/mk/clean.mk +++ b/mk/clean.mk @@ -62,13 +62,13 @@ clean-misc: define CLEAN_HOST_STAGE_N clean$(1)_H_$(2): - $(Q)rm -f $$(HBIN$(1)_H_$(2))/rustc$(X) - $(Q)rm -f $$(HBIN$(1)_H_$(2))/fuzzer$(X) - $(Q)rm -f $$(HBIN$(1)_H_$(2))/rustpkg$(X) - $(Q)rm -f $$(HBIN$(1)_H_$(2))/serializer$(X) - $(Q)rm -f $$(HBIN$(1)_H_$(2))/rustdoc$(X) - $(Q)rm -f $$(HBIN$(1)_H_$(2))/rusti$(X) - $(Q)rm -f $$(HBIN$(1)_H_$(2))/rust$(X) + $(Q)rm -f $$(HBIN$(1)_H_$(2))/rustc$(X_$(2)) + $(Q)rm -f $$(HBIN$(1)_H_$(2))/fuzzer$(X_$(2)) + $(Q)rm -f $$(HBIN$(1)_H_$(2))/rustpkg$(X_$(2)) + $(Q)rm -f $$(HBIN$(1)_H_$(2))/serializer$(X_$(2)) + $(Q)rm -f $$(HBIN$(1)_H_$(2))/rustdoc$(X_$(2)) + $(Q)rm -f $$(HBIN$(1)_H_$(2))/rusti$(X_$(2)) + $(Q)rm -f $$(HBIN$(1)_H_$(2))/rust$(X_$(2)) $(Q)rm -f $$(HLIB$(1)_H_$(2))/$(CFG_LIBFUZZER_$(2)) $(Q)rm -f $$(HLIB$(1)_H_$(2))/$(CFG_LIBRUSTPKG_$(2)) $(Q)rm -f $$(HLIB$(1)_H_$(2))/$(CFG_LIBRUSTDOC_$(2)) @@ -100,11 +100,13 @@ $(foreach host, $(CFG_HOST_TRIPLES), \ 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 $$(TBIN$(1)_T_$(2)_H_$(3))/rustpkg$(X) - $(Q)rm -f $$(TBIN$(1)_T_$(2)_H_$(3))/serializer$(X) - $(Q)rm -f $$(TBIN$(1)_T_$(2)_H_$(3))/rustdoc$(X) + $(Q)rm -f $$(TBIN$(1)_T_$(2)_H_$(3))/rustc$(X_$(2)) + $(Q)rm -f $$(TBIN$(1)_T_$(2)_H_$(3))/fuzzer$(X_$(2)) + $(Q)rm -f $$(TBIN$(1)_T_$(2)_H_$(3))/rustpkg$(X_$(2)) + $(Q)rm -f $$(TBIN$(1)_T_$(2)_H_$(3))/serializer$(X_$(2)) + $(Q)rm -f $$(TBIN$(1)_T_$(2)_H_$(3))/rustdoc$(X_$(2)) + $(Q)rm -f $$(TBIN$(1)_T_$(2)_H_$(3))/rusti$(X_$(2)) + $(Q)rm -f $$(TBIN$(1)_T_$(2)_H_$(3))/rust$(X_$(2)) $(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBFUZZER_$(2)) $(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUSTPKG_$(2)) $(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUSTDOC_$(2)) @@ -113,6 +115,8 @@ clean$(1)_T_$(2)_H_$(3): $(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_STDLIB_$(2)) $(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUSTC_$(2)) $(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBSYNTAX_$(2)) + $(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUSTI_$(2)) + $(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUST_$(2)) $(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(CORELIB_GLOB_$(2)) $(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(STDLIB_GLOB_$(2)) $(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(LIBRUSTC_GLOB_$(2)) @@ -120,6 +124,8 @@ clean$(1)_T_$(2)_H_$(3): $(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(LIBFUZZER_GLOB_$(2)) $(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(LIBRUSTPKG_GLOB_$(2)) $(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(LIBRUSTDOC_GLOB_$(2)) + $(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(LIBRUSTI_GLOB_$(2)) + $(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(LIBRUST_GLOB_$(2)) $(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_RUSTLLVM_$(2)) $(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/libstd.rlib $(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/libmorestack.a diff --git a/mk/docs.mk b/mk/docs.mk index db04fd8a92b..10d7c9b0301 100644 --- a/mk/docs.mk +++ b/mk/docs.mk @@ -171,7 +171,7 @@ ifeq ($(CFG_PANDOC),) else # The rustdoc executable -RUSTDOC = $(HBIN2_H_$(CFG_BUILD_TRIPLE))/rustdoc$(X) +RUSTDOC = $(HBIN2_H_$(CFG_BUILD_TRIPLE))/rustdoc$(X_$(CFG_BUILD_TRIPLE)) # The library documenting macro # $(1) - The output directory diff --git a/mk/host.mk b/mk/host.mk index 78ef16768f2..13a8a540117 100644 --- a/mk/host.mk +++ b/mk/host.mk @@ -21,49 +21,51 @@ define CP_HOST_STAGE_N # Host libraries and executables (stage$(2)/bin/rustc and its runtime needs) -$$(HBIN$(2)_H_$(4))/rustc$$(X): \ - $$(TBIN$(1)_T_$(4)_H_$(3))/rustc$$(X) \ - $$(HLIB$(2)_H_$(4))/$(CFG_RUNTIME_$(3)) \ - $$(HLIB$(2)_H_$(4))/$(CFG_RUSTLLVM_$(3)) \ - $$(HLIB$(2)_H_$(4))/$(CFG_LIBRUSTC_$(3)) \ +# 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)) \ $$(HCORELIB_DEFAULT$(2)_H_$(4)) \ $$(HSTDLIB_DEFAULT$(2)_H_$(4)) @$$(call E, cp: $$@) $$(Q)cp $$< $$@ -$$(HLIB$(2)_H_$(4))/$(CFG_LIBRUSTC_$(3)): \ - $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUSTC_$(3)) \ - $$(HLIB$(2)_H_$(4))/$(CFG_LIBSYNTAX_$(3)) \ - $$(HLIB$(2)_H_$(4))/$(CFG_RUNTIME_$(3)) \ - $$(HLIB$(2)_H_$(4))/$(CFG_RUSTLLVM_$(3)) \ - $$(HCORELIB_DEFAULT$(2)_H_$(3)) \ - $$(HSTDLIB_DEFAULT$(2)_H_$(3)) +$$(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)) \ + $$(HCORELIB_DEFAULT$(2)_H_$(4)) \ + $$(HSTDLIB_DEFAULT$(2)_H_$(4)) @$$(call E, cp: $$@) $$(Q)cp $$< $$@ - $$(Q)cp -R $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBRUSTC_GLOB_$(3)) \ - $(wildcard $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBRUSTC_DSYM_GLOB_$(3))) \ + $$(Q)cp -R $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBRUSTC_GLOB_$(4)) \ + $(wildcard $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBRUSTC_DSYM_GLOB_$(4))) \ $$(HLIB$(2)_H_$(4)) -$$(HLIB$(2)_H_$(4))/$(CFG_LIBSYNTAX_$(3)): \ - $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBSYNTAX_$(3)) \ - $$(HLIB$(2)_H_$(4))/$(CFG_RUNTIME_$(3)) \ - $$(HLIB$(2)_H_$(4))/$(CFG_RUSTLLVM_$(3)) \ - $$(HCORELIB_DEFAULT$(2)_H_$(3)) \ - $$(HSTDLIB_DEFAULT$(2)_H_$(3)) +$$(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)) \ + $$(HCORELIB_DEFAULT$(2)_H_$(4)) \ + $$(HSTDLIB_DEFAULT$(2)_H_$(4)) @$$(call E, cp: $$@) $$(Q)cp $$< $$@ - $$(Q)cp -R $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBSYNTAX_GLOB_$(3)) \ - $$(wildcard $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBSYNTAX_DSYM_GLOB_$(3))) \ + $$(Q)cp -R $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBSYNTAX_GLOB_$(4)) \ + $$(wildcard $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBSYNTAX_DSYM_GLOB_$(4))) \ $$(HLIB$(2)_H_$(4)) -$$(HLIB$(2)_H_$(4))/$(CFG_RUNTIME_$(3)): \ - $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_RUNTIME_$(3)) +$$(HLIB$(2)_H_$(4))/$(CFG_RUNTIME_$(4)): \ + $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_RUNTIME_$(4)) @$$(call E, cp: $$@) $$(Q)cp $$< $$@ -$$(HLIB$(2)_H_$(4))/$(CFG_CORELIB_$(3)): \ - $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_CORELIB_$(3)) \ - $$(HLIB$(2)_H_$(4))/$(CFG_RUNTIME_$(3)) +$$(HLIB$(2)_H_$(4))/$(CFG_CORELIB_$(4)): \ + $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_CORELIB_$(4)) \ + $$(HLIB$(2)_H_$(4))/$(CFG_RUNTIME_$(4)) @$$(call E, cp: $$@) $$(Q)cp $$< $$@ # Subtle: We do not let the shell expand $(CORELIB_DSYM_GLOB) directly rather @@ -73,30 +75,30 @@ $$(HLIB$(2)_H_$(4))/$(CFG_CORELIB_$(3)): \ # glob, and cp reports an error because libcore-*.dylib.dsym does not exist. # Make instead expands the glob to nothing, which gives us the correct behavior. # (Copy .dsym file if it exists, but do nothing otherwise) - $$(Q)cp -R $$(TLIB$(1)_T_$(4)_H_$(3))/$(CORELIB_GLOB_$(3)) \ - $$(wildcard $$(TLIB$(1)_T_$(4)_H_$(3))/$(CORELIB_DSYM_GLOB_$(3))) \ + $$(Q)cp -R $$(TLIB$(1)_T_$(4)_H_$(3))/$(CORELIB_GLOB_$(4)) \ + $$(wildcard $$(TLIB$(1)_T_$(4)_H_$(3))/$(CORELIB_DSYM_GLOB_$(4))) \ $$(HLIB$(2)_H_$(4)) -$$(HLIB$(2)_H_$(4))/$(CFG_STDLIB_$(3)): \ - $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_STDLIB_$(3)) \ - $$(HLIB$(2)_H_$(4))/$(CFG_CORELIB_$(3)) \ - $$(HLIB$(2)_H_$(4))/$(CFG_RUNTIME_$(3)) +$$(HLIB$(2)_H_$(4))/$(CFG_STDLIB_$(4)): \ + $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_STDLIB_$(4)) \ + $$(HLIB$(2)_H_$(4))/$(CFG_CORELIB_$(4)) \ + $$(HLIB$(2)_H_$(4))/$(CFG_RUNTIME_$(4)) @$$(call E, cp: $$@) $$(Q)cp $$< $$@ - $$(Q)cp -R $$(TLIB$(1)_T_$(4)_H_$(3))/$(STDLIB_GLOB_$(3)) \ - $$(wildcard $$(TLIB$(1)_T_$(4)_H_$(3))/$(STDLIB_DSYM_GLOB_$(3))) \ + $$(Q)cp -R $$(TLIB$(1)_T_$(4)_H_$(3))/$(STDLIB_GLOB_$(4)) \ + $$(wildcard $$(TLIB$(1)_T_$(4)_H_$(3))/$(STDLIB_DSYM_GLOB_$(4))) \ $$(HLIB$(2)_H_$(4)) $$(HLIB$(2)_H_$(4))/libcore.rlib: \ $$(TLIB$(1)_T_$(4)_H_$(3))/libcore.rlib \ - $$(HLIB$(2)_H_$(4))/$$(CFG_RUNTIME) + $$(HLIB$(2)_H_$(4))/$$(CFG_RUNTIME_$(4)) @$$(call E, cp: $$@) $$(Q)cp $$< $$@ $$(HLIB$(2)_H_$(4))/libstd.rlib: \ $$(TLIB$(1)_T_$(4)_H_$(3))/libstd.rlib \ $$(HLIB$(2)_H_$(4))/libcore.rlib \ - $$(HLIB$(2)_H_$(4))/$$(CFG_RUNTIME) + $$(HLIB$(2)_H_$(4))/$$(CFG_RUNTIME_$(4)) @$$(call E, cp: $$@) $$(Q)cp $$< $$@ @@ -104,12 +106,12 @@ $$(HLIB$(2)_H_$(4))/librustc.rlib: \ $$(TLIB$(1)_T_$(4)_H_$(3))/librustc.rlib \ $$(HLIB$(2)_H_$(4))/libcore.rlib \ $$(HLIB$(2)_H_$(4))/libstd.rlib \ - $$(HLIB$(2)_H_$(4))/$$(CFG_RUNTIME) + $$(HLIB$(2)_H_$(4))/$$(CFG_RUNTIME_$(4)) @$$(call E, cp: $$@) $$(Q)cp $$< $$@ -$$(HLIB$(2)_H_$(4))/$(CFG_RUSTLLVM_$(3)): \ - $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_RUSTLLVM_$(3)) +$$(HLIB$(2)_H_$(4))/$(CFG_RUSTLLVM_$(4)): \ + $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_RUSTLLVM_$(4)) @$$(call E, cp: $$@) $$(Q)cp $$< $$@ diff --git a/mk/install.mk b/mk/install.mk index 3045b99e496..24f311cd7d1 100644 --- a/mk/install.mk +++ b/mk/install.mk @@ -88,14 +88,14 @@ install-host: $(CSREQ$(ISTAGE)_T_$(CFG_BUILD_TRIPLE)_H_$(CFG_BUILD_TRIPLE)) $(Q)mkdir -p $(PREFIX_BIN) $(Q)mkdir -p $(PREFIX_LIB) $(Q)mkdir -p $(PREFIX_ROOT)/share/man/man1 - $(Q)$(call INSTALL,$(HB2),$(PHB),rustc$(X)) - $(Q)$(call INSTALL,$(HB2),$(PHB),rustpkg$(X)) - $(Q)$(call INSTALL,$(HB2),$(PHB),rustdoc$(X)) - $(Q)$(call INSTALL,$(HB2),$(PHB),rusti$(X)) - $(Q)$(call INSTALL,$(HB2),$(PHB),rust$(X)) + $(Q)$(call INSTALL,$(HB2),$(PHB),rustc$(X_$(CFG_BUILD_TRIPLE))) + $(Q)$(call INSTALL,$(HB2),$(PHB),rustpkg$(X_$(CFG_BUILD_TRIPLE))) + $(Q)$(call INSTALL,$(HB2),$(PHB),rustdoc$(X_$(CFG_BUILD_TRIPLE))) + $(Q)$(call INSTALL,$(HB2),$(PHB),rusti$(X_$(CFG_BUILD_TRIPLE))) + $(Q)$(call INSTALL,$(HB2),$(PHB),rust$(X_$(CFG_BUILD_TRIPLE))) $(Q)$(call INSTALL,$(HL),$(PHL),$(CFG_LIBRUSTC_$(CFG_BUILD_TRIPLE))) $(Q)$(call INSTALL,$(HL),$(PHL),$(CFG_LIBRUSTPKG_$(CFG_BUILD_TRIPLE))) - $(Q)$(call INSTALL,$(HL),$(PHL),$(CFG_LIBRUSTDOC_$(CFG_BUILD_TRIPLE)) + $(Q)$(call INSTALL,$(HL),$(PHL),$(CFG_LIBRUSTDOC_$(CFG_BUILD_TRIPLE))) $(Q)$(call INSTALL,$(HL),$(PHL),$(CFG_LIBRUSTI_$(CFG_BUILD_TRIPLE))) $(Q)$(call INSTALL,$(HL),$(PHL),$(CFG_LIBRUST_$(CFG_BUILD_TRIPLE))) $(Q)$(call INSTALL_LIB,$(HL),$(PHL),$(CORELIB_GLOB_$(CFG_BUILD_TRIPLE))) @@ -116,11 +116,11 @@ HOST_LIB_FROM_HL_GLOB = \ $(patsubst $(HL)/%,$(PHL)/%,$(wildcard $(HL)/$(1))) uninstall: - $(Q)rm -f $(PHB)/rustc$(X) - $(Q)rm -f $(PHB)/rustpkg$(X) - $(Q)rm -f $(PHB)/rusti$(X) - $(Q)rm -f $(PHB)/rust$(X) - $(Q)rm -f $(PHB)/rustdoc$(X) + $(Q)rm -f $(PHB)/rustc$(X_$(CFG_BUILD_TRIPLE)) + $(Q)rm -f $(PHB)/rustpkg$(X_$(CFG_BUILD_TRIPLE)) + $(Q)rm -f $(PHB)/rusti$(X_$(CFG_BUILD_TRIPLE)) + $(Q)rm -f $(PHB)/rust$(X_$(CFG_BUILD_TRIPLE)) + $(Q)rm -f $(PHB)/rustdoc$(X_$(CFG_BUILD_TRIPLE)) $(Q)rm -f $(PHL)/$(CFG_RUSTLLVM_$(CFG_BUILD_TRIPLE)) $(Q)rm -f $(PHL)/$(CFG_LIBRUSTPKG_$(CFG_BUILD_TRIPLE)) $(Q)rm -f $(PHL)/$(CFG_LIBRUSTC_$(CFG_BUILD_TRIPLE)) diff --git a/mk/perf.mk b/mk/perf.mk index 1997e0f4fe7..327f2ca31e0 100644 --- a/mk/perf.mk +++ b/mk/perf.mk @@ -10,16 +10,16 @@ ifdef CFG_PERF_TOOL -rustc-perf$(X): $(CFG_BUILD_TRIPLE)/stage2/bin/rustc$(X) +rustc-perf$(X): $(CFG_BUILD_TRIPLE)/stage2/bin/rustc$(X_$(CFG_BUILD_TRIPLE)) @$(call E, perf compile: $@) $(PERF_STAGE2_T_$(CFG_BUILD_TRIPLE)_H_$(CFG_BUILD_TRIPLE)) \ -o $@ $(COMPILER_CRATE) >rustc-perf.err 2>&1 $(Q)rm -f $(LIBRUSTC_GLOB) else -rustc-perf$(X): $(CFG_BUILD_TRIPLE)/stage2/bin/rustc$(X) +rustc-perf$(X): $(CFG_BUILD_TRIPLE)/stage2/bin/rustc$(X_$(CFG_BUILD_TRIPLE)) $(Q)touch $@ endif -perf: check-stage2-perf rustc-perf$(X) +perf: check-stage2-perf rustc-perf$(X_$(CFG_BUILD_TRIPLE)) $(Q)find $(CFG_BUILD_TRIPLE)/test/perf -name \*.err | xargs cat $(Q)cat rustc-perf.err diff --git a/mk/platform.mk b/mk/platform.mk index 3c2257d196a..2b5e4a0c5ae 100644 --- a/mk/platform.mk +++ b/mk/platform.mk @@ -48,7 +48,16 @@ CFG_GCCISH_PRE_LIB_FLAGS_x86_64-unknown-linux-gnu := -Wl,-whole-archive CFG_GCCISH_POST_LIB_FLAGS_x86_64-unknown-linux-gnu := -Wl,-no-whole-archive -Wl,-znoexecstack CFG_DEF_SUFFIX_x86_64-unknown-linux-gnu := .linux.def CFG_INSTALL_NAME_x86_64-unknown-linux-gnu = -CFG_GCCISH_CROSS_x86_64-unknown-linux-gnu = +CFG_LIBUV_LINK_FLAGS_x86_64-unknown-linux-gnu = +CFG_LLVM_BUILD_ENV_x86_64-unknown-linux-gnu="CXXFLAGS=-fno-omit-frame-pointer" +CFG_GCCISH_CROSS_PREFIX_x86_64-unknown-linux-gnu = +CFG_EXE_SUFFIX_x86_64-unknown-linux-gnu = +CFG_WINDOWSY_x86_64-unknown-linux-gnu := +CFG_LINUXY_x86_64-unknown-linux-gnu := 1 +CFG_PATH_MUNGE_x86_64-unknown-linux-gnu := true +CFG_LDPATH_x86_64-unknown-linux-gnu := +CFG_RUN_x86_64-unknown-linux-gnu=$(2) +CFG_RUN_TARG_x86_64-unknown-linux-gnu=$(call CFG_RUN_x86_64-unknown-linux-gnu,,$(2)) # x86_64-apple-darwin configuration CFG_LIB_NAME_x86_64-apple-darwin=lib$(1).dylib @@ -62,6 +71,14 @@ CFG_GCCISH_PRE_LIB_FLAGS_x86_64-apple-darwin := CFG_GCCISH_POST_LIB_FLAGS_x86_64-apple-darwin := CFG_DEF_SUFFIX_x86_64-apple-darwin := .darwin.def CFG_INSTALL_NAME_x86_64-apple-darwin = -Wl,-install_name,@rpath/$(1) +CFG_LIBUV_LINK_FLAGS_x86_64-apple-darwin = +CFG_EXE_SUFFIX_x86_64-apple-darwin := +CFG_WINDOWSY_x86_64-apple-darwin := +CFG_LINUXY_x86_64-apple-darwin := 1 +CFG_PATH_MUNGE_x86_64-apple-darwin := true +CFG_LDPATH_x86_64-apple-darwin := +CFG_RUN_x86_64-apple-darwin=$(2) +CFG_RUN_TARG_x86_64-apple-darwin=$(call CFG_RUN_x86_64-apple-darwin,,$(2)) # arm-unknown-android configuration CFG_LIB_NAME_arm-unknown-android=lib$(1).so @@ -75,7 +92,15 @@ CFG_GCCISH_PRE_LIB_FLAGS_arm-unknown-android := -Wl,-whole-archive CFG_GCCISH_POST_LIB_FLAGS_arm-unknown-android := -Wl,-no-whole-archive -Wl,-znoexecstack CFG_DEF_SUFFIX_arm-unknown-android := .android.def CFG_INSTALL_NAME_arm-unknown-android = -CFG_GCCISH_CROSS_arm-unknown-android = $(CFG_CROSS_PREFIX_arm) +CFG_LIBUV_LINK_FLAGS_arm-unknown-android = +CFG_GCCISH_CROSS_PREFIX_arm-unknown-android = $(CFG_ANDROID_CROSS_PATH)/bin/arm-linux-androideabi- +CFG_EXE_SUFFIX_arm-unknown-android := +CFG_WINDOWSY_arm-unknown-android := +CFG_LINUXY_arm-unknown-android := 1 +CFG_PATH_MUNGE_arm-unknown-android := true +CFG_LDPATH_arm-unknown-android := +CFG_RUN_arm-unknown-android= +CFG_RUN_TARG_arm-unknown-android= # i686-pc-mingw32 configuration CFG_LIB_NAME_i686-pc-mingw32=$(1).dll @@ -87,24 +112,46 @@ CFG_GCCISH_LINK_FLAGS_i686-pc-mingw32 := -shared -fPIC -g CFG_GCCISH_DEF_FLAG_i686-pc-mingw32 := CFG_GCCISH_PRE_LIB_FLAGS_i686-pc-mingw32 := CFG_GCCISH_POST_LIB_FLAGS_i686-pc-mingw32 := -CFG_DEF_SUFFIX_i686-pc-mingw32 := .def +CFG_DEF_SUFFIX_i686-pc-mingw32 := .mingw32.def CFG_INSTALL_NAME_i686-pc-mingw32 = -CFG_GCCISH_CROSS_i686-pc-mingw32 = +CFG_LIBUV_LINK_FLAGS_i686-pc-mingw32 := -lWs2_32 -lpsapi -liphlpapi +CFG_GCCISH_CROSS_PREFIX_i686-pc-mingw32 = +CFG_EXE_SUFFIX_i686-pc-mingw32 := .exe +CFG_WINDOWSY_i686-pc-mingw32 := 1 +CFG_LINUXY_i686-pc-mingw32 := +CFG_PATH_MUNGE_i686-pc-mingw32 := +CFG_LDPATH_i686-pc-mingw32 :=$(CFG_LDPATH_i686-pc-mingw32):$(PATH) +CFG_RUN_i686-pc-mingw32=PATH="$(CFG_LDPATH_i686-pc-mingw32):$(1)" $(2) +CFG_RUN_TARG_i686-pc-mingw32=$(call CFG_RUN_i686-pc-mingw32,$(HLIB$(1)_H_$(CFG_BUILD_TRIPLE)),$(2)) + +# i586-mingw32msvc configuration +CFG_LIB_NAME_i586-mingw32msvc=$(1).dll +CFG_LIB_GLOB_i586-mingw32msvc=$(1)-*.dll +CFG_LIB_DSYM_GLOB_i586-mingw32msvc=$(1)-*.dylib.dSYM +CFG_GCCISH_CFLAGS_i586-mingw32msvc := -Wall -Werror -g -march=586 -m32 +CFG_GCCISH_CXXFLAGS_i586-mingw32msvc := -fno-rtti +CFG_GCCISH_LINK_FLAGS_i586-mingw32msvc := -shared -g -m32 +CFG_GCCISH_DEF_FLAG_i586-mingw32msvc := +CFG_GCCISH_PRE_LIB_FLAGS_i586-mingw32msvc := +CFG_GCCISH_POST_LIB_FLAGS_i586-mingw32msvc := +CFG_DEF_SUFFIX_i586-mingw32msvc := .mingw32.def +CFG_INSTALL_NAME_i586-mingw32msvc = +CFG_LIBUV_LINK_FLAGS_i586-mingw32msvc := -lWs2_32 -lpsapi -liphlpapi +CFG_GCCISH_CROSS_PREFIX_i586-mingw32msvc = $(CFG_MIGW32_CROSS_PATH)/bin/i586-mingw32msvc- +CFG_EXE_SUFFIX_i586-mingw32msvc := .exe +CFG_WINDOWSY_i586-mingw32msvc := 1 +CFG_LINUXY_i586-mingw32msvc := +CFG_PATH_MUNGE_i586-mingw32msvc := $(strip perl -i.bak -p \ + -e 's@\\(\S)@/\1@go;' \ + -e 's@^/([a-zA-Z])/@\1:/@o;') +CFG_LDPATH_i586-mingw32msvc := +CFG_RUN_i586-mingw32msvc= +CFG_RUN_TARG_i586-mingw32msvc= # Hack: not sure how to test if a file exists in make other than this OS_SUPP = $(patsubst %,--suppressions=%,\ $(wildcard $(CFG_SRC_DIR)src/etc/$(CFG_OSTYPE).supp*)) -ifneq ($(findstring mingw,$(CFG_OSTYPE)),) - CFG_WINDOWSY := 1 -endif -ifneq ($(findstring linux,$(CFG_OSTYPE)),) - CFG_UNIXY := 1 -endif -ifneq ($(findstring darwin,$(CFG_OSTYPE)),) - CFG_UNIXY := 1 -endif - ifdef CFG_DISABLE_OPTIMIZE_CXX $(info cfg: disabling C++ optimization (CFG_DISABLE_OPTIMIZE_CXX)) CFG_GCCISH_CFLAGS += -O0 @@ -112,16 +159,18 @@ else CFG_GCCISH_CFLAGS += -O2 endif -CFG_TESTLIB=$(CFG_BUILD_DIR)/$(2)/$(strip \ - $(if $(findstring stage0,$(1)), \ - stage0/$(CFG_LIBDIR), \ - $(if $(findstring stage1,$(1)), \ - stage1/$(CFG_LIBDIR), \ - $(if $(findstring stage2,$(1)), \ - stage2/$(CFG_LIBDIR), \ - $(if $(findstring stage3,$(1)), \ - stage3/$(CFG_LIBDIR), \ - )))))/rustc/$(CFG_HOST_TRIPLE)/$(CFG_LIBDIR) +ifdef CFG_VALGRIND + CFG_VALGRIND += --error-exitcode=100 \ + --quiet \ + --suppressions=$(CFG_SRC_DIR)src/etc/x86.supp \ + $(OS_SUPP) + ifdef CFG_ENABLE_HELGRIND + CFG_VALGRIND += --tool=helgrind + else + CFG_VALGRIND += --tool=memcheck \ + --leak-check=full + endif +endif ifneq ($(findstring linux,$(CFG_OSTYPE)),) # -znoexecstack is here because librt is for some reason being created @@ -140,74 +189,6 @@ ifneq ($(findstring linux,$(CFG_OSTYPE)),) CFG_PERF_TOOL := /usr/bin/time --verbose endif endif - # Linux requires LLVM to be built like this to get backtraces into Rust code - CFG_LLVM_BUILD_ENV="CXXFLAGS=-fno-omit-frame-pointer" -endif - -ifdef CFG_UNIXY - CFG_INFO := $(info cfg: unix-y environment) - - CFG_PATH_MUNGE := true - CFG_EXE_SUFFIX := - CFG_LDPATH := - CFG_RUN=$(2) - CFG_RUN_TARG=$(call CFG_RUN,,$(2)) - CFG_RUN_TEST=$(call CFG_RUN,,$(CFG_VALGRIND) $(1)) - CFG_LIBUV_LINK_FLAGS= - - ifdef CFG_ENABLE_MINGW_CROSS - CFG_WINDOWSY := 1 - CFG_INFO := $(info cfg: mingw-cross) - CFG_GCCISH_CROSS := i586-mingw32msvc- - ifdef CFG_VALGRIND - CFG_VALGRIND += wine - endif - - CFG_GCCISH_CFLAGS := -march=i586 - CFG_GCCISH_PRE_LIB_FLAGS := - CFG_GCCISH_POST_LIB_FLAGS := - CFG_GCCISH_DEF_FLAG := - CFG_GCCISH_LINK_FLAGS := -shared - - ifeq ($(CFG_CPUTYPE), x86_64) - CFG_GCCISH_CFLAGS += -m32 - CFG_GCCISH_LINK_FLAGS += -m32 - endif - endif - ifdef CFG_VALGRIND - CFG_VALGRIND += --error-exitcode=100 \ - --quiet \ - --suppressions=$(CFG_SRC_DIR)src/etc/x86.supp \ - $(OS_SUPP) - ifdef CFG_ENABLE_HELGRIND - CFG_VALGRIND += --tool=helgrind - else - CFG_VALGRIND += --tool=memcheck \ - --leak-check=full - endif - endif -endif - -ifdef CFG_WINDOWSY - CFG_INFO := $(info cfg: windows-y environment) - - CFG_EXE_SUFFIX := .exe -ifdef MSYSTEM - CFG_LDPATH :=$(CFG_LDPATH):$$PATH - CFG_RUN=PATH="$(CFG_LDPATH):$(1)" $(2) -else - CFG_LDPATH := - CFG_RUN=$(2) -endif - CFG_RUN_TARG=$(call CFG_RUN,$(HLIB$(1)_H_$(CFG_HOST_TRIPLE)),$(2)) - CFG_RUN_TEST=$(call CFG_RUN,$(call CFG_TESTLIB,$(1),$(3)),$(1)) - CFG_LIBUV_LINK_FLAGS=-lWs2_32 -lpsapi -liphlpapi - - ifndef CFG_ENABLE_MINGW_CROSS - CFG_PATH_MUNGE := $(strip perl -i.bak -p \ - -e 's@\\(\S)@/\1@go;' \ - -e 's@^/([a-zA-Z])/@\1:/@o;') - endif endif CFG_INFO := $(info cfg: using $(CFG_C_COMPILER)) @@ -279,24 +260,24 @@ define CFG_MAKE_CC else - CFG_COMPILE_C_$(1) = $(CFG_GCCISH_CROSS_$(1))$$(CC) \ + CFG_COMPILE_C_$(1) = $(CFG_GCCISH_CROSS_PREFIX_$(1))$$(CC) \ $$(CFG_GCCISH_CFLAGS) \ $$(CFG_GCCISH_CFLAGS_$(1)) \ $$(CFG_DEPEND_FLAGS) \ -c -o $$(1) $$(2) - CFG_LINK_C_$(1) = $(CFG_GCCISH_CROSS_$(1))$$(CC) \ + CFG_LINK_C_$(1) = $(CFG_GCCISH_CROSS_PREFIX_$(1))$$(CC) \ $$(CFG_GCCISH_LINK_FLAGS) -o $$(1) \ $$(CFG_GCCISH_LINK_FLAGS_$(1))) \ $$(CFG_GCCISH_DEF_FLAG_$(1))$$(3) $$(2) \ $$(call CFG_INSTALL_NAME_$(1),$$(4)) - CFG_COMPILE_CXX_$(1) = $(CFG_GCCISH_CROSS_$(1))$$(CXX) \ + CFG_COMPILE_CXX_$(1) = $(CFG_GCCISH_CROSS_PREFIX_$(1))$$(CXX) \ $$(CFG_GCCISH_CFLAGS) \ $$(CFG_GCCISH_CXXFLAGS) \ $$(CFG_GCCISH_CFLAGS_$(1)) \ $$(CFG_GCCISH_CXXFLAGS_$(1)) \ $$(CFG_DEPEND_FLAGS) \ -c -o $$(1) $$(2) - CFG_LINK_CXX_$(1) = $(CFG_GCCISH_CROSS_$(1))$$(CXX) \ + CFG_LINK_CXX_$(1) = $(CFG_GCCISH_CROSS_PREFIX_$(1))$$(CXX) \ $$(CFG_GCCISH_LINK_FLAGS) -o $$(1) \ $$(CFG_GCCISH_LINK_FLAGS_$(1)) \ $$(CFG_GCCISH_DEF_FLAG_$(1))$$(3) $$(2) \ @@ -322,7 +303,7 @@ define CFG_MAKE_ASSEMBLER -o=$$(1) else - CFG_ASSEMBLE_$(1)=$(CFG_GCCISH_CROSS_$(1))$$(CPP) $$(CFG_DEPEND_FLAGS) $$(2) -c -o $$(1) + CFG_ASSEMBLE_$(1)=$(CFG_GCCISH_CROSS_PREFIX_$(1))$$(CPP) $$(CFG_DEPEND_FLAGS) $$(2) -c -o $$(1) endif diff --git a/mk/pp.mk b/mk/pp.mk index b2668f201af..c7f316bcfc7 100644 --- a/mk/pp.mk +++ b/mk/pp.mk @@ -29,7 +29,7 @@ endif reformat: $(SREQ1$(CFG_BUILD_TRIPLE)) @$(call E, reformat [stage1]: $@) for i in $(PP_INPUTS_FILTERED); \ - do $(call CFG_RUN_TARG,1,$(CFG_BUILD_TRIPLE)/stage1/rustc$(X)) \ + do $(call CFG_RUN_TARG_$(CFG_BUILD_TRIPLE),1,$(CFG_BUILD_TRIPLE)/stage1/rustc$(X_$(CFG_BUILD_TRIPLE))) \ --pretty normal $$i >$$i.tmp; \ if [ $$? -ne 0 ]; \ then echo failed to print $$i; rm $$i.tmp; \ diff --git a/mk/rt.mk b/mk/rt.mk index b7b70259719..9af3e0b07bc 100644 --- a/mk/rt.mk +++ b/mk/rt.mk @@ -83,16 +83,20 @@ RUNTIME_S_$(1) := rt/arch/$$(HOST_$(1))/_context.S \ rt/arch/$$(HOST_$(1))/ccall.S \ rt/arch/$$(HOST_$(1))/record_sp.S - -ifeq ($$(HOST_$(1)), arm) +ifeq ($$(CFG_WINDOWSY_$(1)), 1) + LIBUV_OSTYPE_$(1) := win LIBUV_LIB_$(1) := rt/$(1)/libuv/libuv.a -else ifeq ($$(CFG_WINDOWSY), 1) +else ifeq ($(CFG_OSTYPE_$(1)), apple-darwin) + LIBUV_OSTYPE_$(1) := mac LIBUV_LIB_$(1) := rt/$(1)/libuv/libuv.a -else ifeq ($(CFG_OSTYPE), apple-darwin) +else ifeq ($(CFG_OSTYPE_$(1)), unknown-freebsd) + LIBUV_OSTYPE_$(1) := unix/freebsd LIBUV_LIB_$(1) := rt/$(1)/libuv/libuv.a -else ifeq ($(CFG_OSTYPE), unknown-freebsd) +else ifeq ($(CFG_OSTYPE_$(1)), unknown-android) + LIBUV_OSTYPE_$(1) := unix/android LIBUV_LIB_$(1) := rt/$(1)/libuv/libuv.a else + LIBUV_OSTYPE_$(1) := unix/linux LIBUV_LIB_$(1) := rt/$(1)/libuv/libuv.a endif @@ -136,7 +140,7 @@ rt/$(1)/$(CFG_RUNTIME_$(1)): $$(RUNTIME_OBJS_$(1)) $$(MKFILE_DEPS) \ @$$(call E, link: $$@) $$(Q)$$(call CFG_LINK_CXX_$(1),$$@, $$(RUNTIME_OBJS_$(1)) \ $$(CFG_GCCISH_POST_LIB_FLAGS_$(1)) $$(RUNTIME_LIBS_$(1)) \ - $$(CFG_LIBUV_LINK_FLAGS),$$(RUNTIME_DEF_$(1)),$$(CFG_RUNTIME_$(1))) + $$(CFG_LIBUV_LINK_FLAGS_$(1)),$$(RUNTIME_DEF_$(1)),$$(CFG_RUNTIME_$(1))) # FIXME: For some reason libuv's makefiles can't figure out the # correct definition of CC on the mingw I'm using, so we are @@ -153,25 +157,24 @@ LIBUV_DEPS := $$(wildcard \ $$(S)src/libuv/*/*/*/*) endif -ifdef CFG_WINDOWSY +ifdef CFG_WINDOWSY_$(1) $$(LIBUV_LIB_$(1)): $$(LIBUV_DEPS) $$(Q)$$(MAKE) -C $$(S)src/libuv/ \ builddir_name="$$(CFG_BUILD_DIR)/rt/$(1)/libuv" \ OS=mingw \ V=$$(VERBOSE) -else -ifeq ($$(HOST_$(1)), arm) +else ifeq ($(CFG_OSTYPE_$(1)), unknown-android) $$(LIBUV_LIB_$(1)): $$(LIBUV_DEPS) $$(Q)$$(MAKE) -C $$(S)src/libuv/ \ CFLAGS="$$(LIBUV_FLAGS_$$(HOST_$(1))) $$(SNAP_DEFINES)" \ LDFLAGS="$$(LIBUV_FLAGS_$$(HOST_$(1)))" \ - CC="$$(CFG_GCCISH_CROSS_$(1))$$(CC)" \ - CXX="$$(CFG_GCCISH_CROSS_$(1))$$(CXX)" \ - AR="$$(CFG_CROSS_PREFIX_arm)$$(AR)" \ + CC="$$(CFG_GCCISH_CROSS_PREFIX_$(1))$$(CC)" \ + CXX="$$(CFG_GCCISH_CROSS_PREFIX_$(1))$$(CXX)" \ + AR="$$(CFG_GCCISH_CROSS_PREFIX_$(1))$$(AR)" \ BUILDTYPE=Release \ builddir_name="$$(CFG_BUILD_DIR)/rt/$(1)/libuv" \ host=android OS=linux \ - V=$$(VERBOSE) + V=$$(VERBOSE) else $$(LIBUV_LIB_$(1)): $$(LIBUV_DEPS) $$(Q)$$(MAKE) -C $$(S)src/libuv/ \ @@ -179,7 +182,6 @@ $$(LIBUV_LIB_$(1)): $$(LIBUV_DEPS) builddir_name="$$(CFG_BUILD_DIR)/rt/$(1)/libuv" \ V=$$(VERBOSE) endif -endif # These could go in rt.mk or rustllvm.mk, they're needed for both. @@ -197,23 +199,21 @@ endif $$(Q)sed 's/.$$$$/&;/' $$< >> $$@ $$(Q)echo "};" >> $$@ +%.darwin.def: %.def.in $$(MKFILE_DEPS) + @$$(call E, def: $$@) + $$(Q)sed 's/^./_&/' $$< > $$@ + %.android.def: %.def.in $$(MKFILE_DEPS) @$$(call E, def: $$@) $$(Q)echo "{" > $$@ $$(Q)sed 's/.$$$$/&;/' $$< >> $$@ $$(Q)echo "};" >> $$@ -%.darwin.def: %.def.in $$(MKFILE_DEPS) - @$$(call E, def: $$@) - $$(Q)sed 's/^./_&/' $$< > $$@ - -ifdef CFG_WINDOWSY -%.def: %.def.in $$(MKFILE_DEPS) +%.mingw32.def: %.def.in $$(MKFILE_DEPS) @$$(call E, def: $$@) $$(Q)echo LIBRARY $$* > $$@ $$(Q)echo EXPORTS >> $$@ $$(Q)sed 's/^./ &/' $$< >> $$@ -endif endef diff --git a/mk/rustllvm.mk b/mk/rustllvm.mk index 569efda41b3..f1ce4445c61 100644 --- a/mk/rustllvm.mk +++ b/mk/rustllvm.mk @@ -17,7 +17,7 @@ define DEF_RUSTLLVM_TARGETS # FIXME: Lately, on windows, llvm-config --includedir is not enough # to find the llvm includes (probably because we're not actually installing # llvm, but using it straight out of the build directory) -ifdef CFG_WINDOWSY +ifdef CFG_WINDOWSY_$(1) LLVM_EXTRA_INCDIRS_$(1)= -iquote $(S)src/llvm/include \ -iquote llvm/$(1)/include endif diff --git a/mk/stage0.mk b/mk/stage0.mk index 528bb0734eb..7b5cbef1d72 100644 --- a/mk/stage0.mk +++ b/mk/stage0.mk @@ -2,7 +2,7 @@ -$(HBIN0_H_$(CFG_BUILD_TRIPLE))/rustc$(X): \ +$(HBIN0_H_$(CFG_BUILD_TRIPLE))/rustc$(X_$(CFG_BUILD_TRIPLE)): \ $(S)src/snapshots.txt \ $(S)src/etc/get-snapshot.py $(MKFILE_DEPS) @$(call E, fetch: $@) @@ -22,23 +22,23 @@ endif # Host libs will be extracted by the above rule $(HLIB0_H_$(CFG_BUILD_TRIPLE))/$(CFG_RUNTIME_$(CFG_BUILD_TRIPLE)): \ - $(HBIN0_H_$(CFG_BUILD_TRIPLE))/rustc$(X) + $(HBIN0_H_$(CFG_BUILD_TRIPLE))/rustc$(X_$(CFG_BUILD_TRIPLE)) $(Q)touch $@ $(HLIB0_H_$(CFG_BUILD_TRIPLE))/$(CFG_CORELIB_$(CFG_BUILD_TRIPLE)): \ - $(HBIN0_H_$(CFG_BUILD_TRIPLE))/rustc$(X) + $(HBIN0_H_$(CFG_BUILD_TRIPLE))/rustc$(X_$(CFG_BUILD_TRIPLE)) $(Q)touch $@ $(HLIB0_H_$(CFG_BUILD_TRIPLE))/$(CFG_STDLIB_$(CFG_BUILD_TRIPLE)): \ - $(HBIN0_H_$(CFG_BUILD_TRIPLE))/rustc$(X) + $(HBIN0_H_$(CFG_BUILD_TRIPLE))/rustc$(X_$(CFG_BUILD_TRIPLE)) $(Q)touch $@ $(HLIB0_H_$(CFG_BUILD_TRIPLE))/$(CFG_LIBRUSTC_$(CFG_BUILD_TRIPLE)): \ - $(HBIN0_H_$(CFG_BUILD_TRIPLE))/rustc$(X) + $(HBIN0_H_$(CFG_BUILD_TRIPLE))/rustc$(X_$(CFG_BUILD_TRIPLE)) $(Q)touch $@ $(HLIB0_H_$(CFG_BUILD_TRIPLE))/$(CFG_RUSTLLVM_$(CFG_BUILD_TRIPLE)): \ - $(HBIN0_H_$(CFG_BUILD_TRIPLE))/rustc$(X) + $(HBIN0_H_$(CFG_BUILD_TRIPLE))/rustc$(X_$(CFG_BUILD_TRIPLE)) $(Q)touch $@ # For other targets, let the host build the target: @@ -48,33 +48,33 @@ define BOOTSTRAP_STAGE0 # $(2) stage to bootstrap from # $(3) target to bootstrap from -$$(HBIN0_H_$(1))/rustc$$(X): \ - $$(TBIN$(2)_T_$(1)_H_$(3))/rustc$$(X) +$$(HBIN0_H_$(1))/rustc$$(X_$(1)): \ + $$(TBIN$(2)_T_$(1)_H_$(3))/rustc$$(X_$(1)) @$$(call E, cp: $$@) $$(Q)cp $$< $$@ -$$(HLIB0_H_$(1))/$(CFG_RUNTIME_$(4)): \ - $$(TLIB$(2)_T_$(1)_H_$(3))/$(CFG_RUNTIME_$(4)) +$$(HLIB0_H_$(1))/$(CFG_RUNTIME_$(1)): \ + $$(TLIB$(2)_T_$(1)_H_$(3))/$(CFG_RUNTIME_$(1)) @$$(call E, cp: $$@) $$(Q)cp $$< $$@ -$$(HLIB0_H_$(1))/$(CFG_CORELIB_$(4)): \ - $$(TLIB$(2)_T_$(1)_H_$(3))/$(CFG_CORELIB_$(4)) +$$(HLIB0_H_$(1))/$(CFG_CORELIB_$(1)): \ + $$(TLIB$(2)_T_$(1)_H_$(3))/$(CFG_CORELIB_$(1)) @$$(call E, cp: $$@) - $$(Q)cp $$(TLIB$(2)_T_$(1)_H_$(3))/$(CORELIB_GLOB_$(4)) $$@ + $$(Q)cp $$(TLIB$(2)_T_$(1)_H_$(3))/$(CORELIB_GLOB_$(1)) $$@ -$$(HLIB0_H_$(1))/$(CFG_STDLIB_$(4)): \ - $$(TLIB$(2)_T_$(1)_H_$(3))/$(CFG_STDLIB_$(4)) +$$(HLIB0_H_$(1))/$(CFG_STDLIB_$(1)): \ + $$(TLIB$(2)_T_$(1)_H_$(3))/$(CFG_STDLIB_$(1)) @$$(call E, cp: $$@) - $$(Q)cp $$(TLIB$(2)_T_$(1)_H_$(3))/$(STDLIB_GLOB_$(4)) $$@ + $$(Q)cp $$(TLIB$(2)_T_$(1)_H_$(3))/$(STDLIB_GLOB_$(1)) $$@ -$$(HLIB0_H_$(1))/$(CFG_LIBRUSTC_$(4)): \ - $$(TLIB$(2)_T_$(1)_H_$(3))/$(CFG_LIBRUSTC_$(4)) +$$(HLIB0_H_$(1))/$(CFG_LIBRUSTC_$(1)): \ + $$(TLIB$(2)_T_$(1)_H_$(3))/$(CFG_LIBRUSTC_$(1)) @$$(call E, cp: $$@) - $$(Q)cp $$(TLIB$(2)_T_$(1)_H_$(3))/$(LIBRUSTC_GLOB_$(4)) $$@ + $$(Q)cp $$(TLIB$(2)_T_$(1)_H_$(3))/$(LIBRUSTC_GLOB_$(1)) $$@ -$$(HLIB0_H_$(1))/$(CFG_RUSTLLVM_$(4)): \ - $$(TLIB$(2)_T_$(1)_H_$(3))/$(CFG_RUSTLLVM_$(4)) +$$(HLIB0_H_$(1))/$(CFG_RUSTLLVM_$(1)): \ + $$(TLIB$(2)_T_$(1)_H_$(3))/$(CFG_RUSTLLVM_$(1)) @$$(call E, cp: $$@) $$(Q)cp $$< $$@ diff --git a/mk/target.mk b/mk/target.mk index 8401f8b9941..fba1a6e0ee5 100644 --- a/mk/target.mk +++ b/mk/target.mk @@ -63,7 +63,7 @@ $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUSTC_$(3)): \ @$$(call E, compile_and_link: $$@) $$(STAGE$(1)_T_$(2)_H_$(3)) -o $$@ $$< && touch $$@ -$$(TBIN$(1)_T_$(2)_H_$(3))/rustc$$(X): \ +$$(TBIN$(1)_T_$(2)_H_$(3))/rustc$$(X_$(3)): \ $$(DRIVER_CRATE) \ $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUSTC_$(3)) @$$(call E, compile_and_link: $$@) diff --git a/mk/tests.mk b/mk/tests.mk index b1dad343bf3..c1852f52724 100644 --- a/mk/tests.mk +++ b/mk/tests.mk @@ -50,13 +50,6 @@ ifdef VERBOSE CTEST_TESTARGS += --verbose endif -# Run the compiletest runner itself under valgrind -ifdef CTEST_VALGRIND - CFG_RUN_CTEST=$(call CFG_RUN_TEST,$(2),$(3)) -else - CFG_RUN_CTEST=$(call CFG_RUN,$(TLIB$(1)_T_$(3)_H_$(3)),$(2)) -endif - # If we're running perf then set this environment variable # to put the benchmarks into 'hard mode' ifeq ($(MAKECMDGOALS),perf) @@ -67,6 +60,39 @@ endif TEST_LOG_FILE=tmp/check-stage$(1)-T-$(2)-H-$(3)-$(4).log TEST_OK_FILE=tmp/check-stage$(1)-T-$(2)-H-$(3)-$(4).ok +define DEF_TARGET_COMMANDS + +ifdef CFG_UNIXY_$(1) + CFG_RUN_TEST_$(1)=$$(call CFG_RUN_$(1),,$$(CFG_VALGRIND) $$(1)) +endif + +ifdef CFG_WINDOWSY_$(1) + CFG_TESTLIB_$(1)=$$(CFG_BUILD_DIR)/$$(2)/$$(strip \ + $$(if $$(findstring stage0,$$(1)), \ + stage0/$$(CFG_LIBDIR), \ + $$(if $$(findstring stage1,$$(1)), \ + stage1/$$(CFG_LIBDIR), \ + $$(if $$(findstring stage2,$$(1)), \ + stage2/$$(CFG_LIBDIR), \ + $$(if $$(findstring stage3,$$(1)), \ + stage3/$$(CFG_LIBDIR), \ + )))))/rustc/$$(CFG_BUILD_TRIPLE)/$$(CFG_LIBDIR) + CFG_RUN_TEST_$(1)=$$(call CFG_RUN_$(1),$$(call CFG_TESTLIB_$(1),$$(1),$$(3)),$$(1)) +endif + +# Run the compiletest runner itself under valgrind +ifdef CTEST_VALGRIND +CFG_RUN_CTEST_$(1)=$$(call CFG_RUN_TEST_$$(CFG_BUILD_TRIPLE),$$(2),$$(3)) +else +CFG_RUN_CTEST_$(1)=$$(call CFG_RUN_$$(CFG_BUILD_TRIPLE),$$(TLIB$$(1)_T_$$(3)_H_$$(3)),$$(2)) +endif + +endef + +$(foreach target,$(CFG_TARGET_TRIPLES), \ + $(eval $(call DEF_TARGET_COMMANDS,$(target)))) + + ###################################################################### # Main test targets ###################################################################### @@ -218,50 +244,50 @@ $(foreach host,$(CFG_HOST_TRIPLES), \ define TEST_RUNNER -$(3)/test/coretest.stage$(1)-$(2)$$(X): \ +$(3)/test/coretest.stage$(1)-$(2)$$(X_$(2)): \ $$(CORELIB_CRATE) $$(CORELIB_INPUTS) \ $$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_STDLIB_$(2)) @$$(call E, compile_and_link: $$@) $$(STAGE$(1)_T_$(2)_H_$(3)) -o $$@ $$< --test -$(3)/test/stdtest.stage$(1)-$(2)$$(X): \ +$(3)/test/stdtest.stage$(1)-$(2)$$(X_$(2)): \ $$(STDLIB_CRATE) $$(STDLIB_INPUTS) \ $$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_STDLIB_$(2)) @$$(call E, compile_and_link: $$@) $$(STAGE$(1)_T_$(2)_H_$(3)) -o $$@ $$< --test -$(3)/test/syntaxtest.stage$(1)-$(2)$$(X): \ +$(3)/test/syntaxtest.stage$(1)-$(2)$$(X_$(2)): \ $$(LIBSYNTAX_CRATE) $$(LIBSYNTAX_INPUTS) \ $$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_STDLIB_$(2)) @$$(call E, compile_and_link: $$@) $$(STAGE$(1)_T_$(2)_H_$(3)) -o $$@ $$< --test -$(3)/test/rustctest.stage$(1)-$(2)$$(X): \ +$(3)/test/rustctest.stage$(1)-$(2)$$(X_$(2)): \ $$(COMPILER_CRATE) $$(COMPILER_INPUTS) \ $$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_RUSTLLVM_$(2)) \ $$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_LIBSYNTAX_$(2)) @$$(call E, compile_and_link: $$@) $$(STAGE$(1)_T_$(2)_H_$(3)) -o $$@ $$< --test -$(3)/test/rustpkgtest.stage$(1)-$(2)$$(X): \ +$(3)/test/rustpkgtest.stage$(1)-$(2)$$(X_$(2)): \ $$(RUSTPKG_LIB) $$(RUSTPKG_INPUTS) \ $$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_LIBRUSTC_$(2)) @$$(call E, compile_and_link: $$@) $$(STAGE$(1)_T_$(2)_H_$(3)) -o $$@ $$< --test -$(3)/test/rustitest.stage$(1)-$(2)$$(X): \ +$(3)/test/rustitest.stage$(1)-$(2)$$(X_$(2)): \ $$(RUSTI_LIB) $$(RUSTI_INPUTS) \ $$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_LIBRUSTC_$(2)) @$$(call E, compile_and_link: $$@) $$(STAGE$(1)_T_$(2)_H_$(3)) -o $$@ $$< --test -$(3)/test/rusttest.stage$(1)-$(2)$$(X): \ +$(3)/test/rusttest.stage$(1)-$(2)$$(X_$(2)): \ $$(RUST_LIB) $$(RUST_INPUTS) \ $$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_LIBRUSTC_$(2)) @$$(call E, compile_and_link: $$@) $$(STAGE$(1)_T_$(2)_H_$(3)) -o $$@ $$< --test -$(3)/test/rustdoctest.stage$(1)-$(2)$$(X): \ +$(3)/test/rustdoctest.stage$(1)-$(2)$$(X_$(2)): \ $$(RUSTDOC_LIB) $$(RUSTDOC_INPUTS) \ $$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_LIBRUSTC_$(2)) @$$(call E, compile_and_link: $$@) @@ -278,9 +304,9 @@ define DEF_TEST_CRATE_RULES check-stage$(1)-T-$(2)-H-$(3)-$(4)-exec: $$(call TEST_OK_FILE,$(1),$(2),$(3),$(4)) $$(call TEST_OK_FILE,$(1),$(2),$(3),$(4)): \ - $(3)/test/$(4)test.stage$(1)-$(2)$$(X) + $(3)/test/$(4)test.stage$(1)-$(2)$$(X_$(2)) @$$(call E, run: $$<) - $$(Q)$$(call CFG_RUN_TEST,$$<,$(2),$(3)) $$(TESTARGS) \ + $$(Q)$$(call CFG_RUN_TEST_$(2),$$<,$(2),$(3)) $$(TESTARGS) \ --logfile $$(call TEST_LOG_FILE,$(1),$(2),$(3),$(4)) \ && touch $$@ endef @@ -371,7 +397,7 @@ define DEF_CTEST_VARS # Prerequisites for compiletest tests TEST_SREQ$(1)_T_$(2)_H_$(3) = \ - $$(HBIN$(1)_H_$(3))/compiletest$$(X) \ + $$(HBIN$(1)_H_$(3))/compiletest$$(X_$(3)) \ $$(SREQ$(1)_T_$(2)_H_$(3)) # Rules for the cfail/rfail/rpass/bench/perf test runner @@ -379,7 +405,7 @@ TEST_SREQ$(1)_T_$(2)_H_$(3) = \ CTEST_COMMON_ARGS$(1)-T-$(2)-H-$(3) := \ --compile-lib-path $$(HLIB$(1)_H_$(3)) \ --run-lib-path $$(TLIB$(1)_T_$(2)_H_$(3)) \ - --rustc-path $$(HBIN$(1)_H_$(3))/rustc$$(X) \ + --rustc-path $$(HBIN$(1)_H_$(3))/rustc$$(X_$(3)) \ --aux-base $$(S)src/test/auxiliary/ \ --stage-id stage$(1)-$(2) \ --rustcflags "$$(CFG_RUSTC_FLAGS) --target=$(2)" \ @@ -417,7 +443,7 @@ $$(call TEST_OK_FILE,$(1),$(2),$(3),$(4)): \ $$(TEST_SREQ$(1)_T_$(2)_H_$(3)) \ $$(CTEST_DEPS_$(4)_$(1)-T-$(2)-H-$(3)) @$$(call E, run $(4): $$<) - $$(Q)$$(call CFG_RUN_CTEST,$(1),$$<,$(3)) \ + $$(Q)$$(call CFG_RUN_CTEST_$(2),$(1),$$<,$(3)) \ $$(CTEST_ARGS$(1)-T-$(2)-H-$(3)-$(4)) \ --logfile $$(call TEST_LOG_FILE,$(1),$(2),$(3),$(4)) \ && touch $$@ @@ -469,7 +495,7 @@ $$(call TEST_OK_FILE,$(1),$(2),$(3),$(4)): \ $$(TEST_SREQ$(1)_T_$(2)_H_$(3)) \ $$(PRETTY_DEPS_$(4)) @$$(call E, run pretty-rpass: $$<) - $$(Q)$$(call CFG_RUN_CTEST,$(1),$$<,$(3)) \ + $$(Q)$$(call CFG_RUN_CTEST_$(2),$(1),$$<,$(3)) \ $$(PRETTY_ARGS$(1)-T-$(2)-H-$(3)-$(4)) \ --logfile $$(call TEST_LOG_FILE,$(1),$(2),$(3),$(4)) \ && touch $$@ @@ -496,7 +522,7 @@ $$(call TEST_OK_FILE,$(1),$(2),$(3),doc-$(4)): \ $$(TEST_SREQ$(1)_T_$(2)_H_$(3)) \ doc-$(4)-extract$(3) @$$(call E, run doc-$(4): $$<) - $$(Q)$$(call CFG_RUN_CTEST,$(1),$$<,$(3)) \ + $$(Q)$$(call CFG_RUN_CTEST_$(2),$(1),$$<,$(3)) \ $$(DOC_TEST_ARGS$(1)-T-$(2)-H-$(3)-doc-$(4)) \ --logfile $$(call TEST_LOG_FILE,$(1),$(2),$(3),doc-$(4)) \ && touch $$@ @@ -575,7 +601,7 @@ $(foreach stage,$(STAGES), \ define DEF_CHECK_FOR_STAGE check-stage$(1): check-stage$(1)-H-$$(CFG_BUILD_TRIPLE) -check-stage$(1)-H-all: $$(foreach target,$$(CFG_HOST_TRIPLES), \ +check-stage$(1)-H-all: $$(foreach target,$$(CFG_TARGET_TRIPLES), \ check-stage$(1)-H-$$(target)) endef @@ -584,7 +610,7 @@ $(foreach stage,$(STAGES), \ define DEF_CHECK_FOR_STAGE_AND_GROUP check-stage$(1)-$(2): check-stage$(1)-H-$$(CFG_BUILD_TRIPLE)-$(2) -check-stage$(1)-H-all-$(2): $$(foreach target,$$(CFG_HOST_TRIPLES), \ +check-stage$(1)-H-all-$(2): $$(foreach target,$$(CFG_TARGET_TRIPLES), \ check-stage$(1)-H-$$(target)-$(2)) endef @@ -594,7 +620,7 @@ $(foreach stage,$(STAGES), \ define DEF_CHECK_FOR_STAGE_AND_HOSTS -check-stage$(1)-H-$(2): $$(foreach target,$$(CFG_HOST_TRIPLES), \ +check-stage$(1)-H-$(2): $$(foreach target,$$(CFG_TARGET_TRIPLES), \ check-stage$(1)-T-$$(target)-H-$(2)) endef @@ -603,7 +629,7 @@ $(foreach stage,$(STAGES), \ $(eval $(call DEF_CHECK_FOR_STAGE_AND_HOSTS,$(stage),$(host))))) define DEF_CHECK_FOR_STAGE_AND_HOSTS_AND_GROUP -check-stage$(1)-H-$(2)-$(3): $$(foreach target,$$(CFG_HOST_TRIPLES), \ +check-stage$(1)-H-$(2)-$(3): $$(foreach target,$$(CFG_TARGET_TRIPLES), \ check-stage$(1)-T-$$(target)-H-$(2)-$(3)) endef @@ -617,7 +643,7 @@ $(foreach stage,$(STAGES), \ ###################################################################### FT := run_pass_stage2 -FT_LIB := $(call CFG_LIB_NAME,$(FT)) +FT_LIB := $(call CFG_LIB_NAME_$(CFG_BUILD_TRIPLE),$(FT)) FT_DRIVER := $(FT)_driver GENERATED += tmp/$(FT).rc tmp/$(FT_DRIVER).rs @@ -639,7 +665,7 @@ $$(TLIB2_T_$(2)_H_$(3))/$$(FT_LIB): \ @$$(call E, compile_and_link: $$@) $$(STAGE2_T_$(2)_H_$(3)) --lib -o $$@ $$< -$(3)/test/$$(FT_DRIVER)-$(2)$$(X): \ +$(3)/test/$$(FT_DRIVER)-$(2)$$(X_$(2)): \ tmp/$$(FT_DRIVER).rs \ $$(TLIB2_T_$(2)_H_$(3))/$$(FT_LIB) \ $$(SREQ2_T_$(2)_H_$(3)) @@ -647,9 +673,9 @@ $(3)/test/$$(FT_DRIVER)-$(2)$$(X): \ $$(STAGE2_T_$(2)_H_$(3)) -o $$@ $$< $(3)/test/$$(FT_DRIVER)-$(2).out: \ - $(3)/test/$$(FT_DRIVER)-$(2)$$(X) \ + $(3)/test/$$(FT_DRIVER)-$(2)$$(X_$(2)) \ $$(SREQ2_T_$(2)_H_$(3)) - $$(Q)$$(call CFG_RUN_TEST,$$<,$(2),$(3)) \ + $$(Q)$$(call CFG_RUN_TEST_$(2),$$<,$(2),$(3)) \ --logfile tmp/$$(FT_DRIVER)-$(2).log check-fast-T-$(2)-H-$(3): \ diff --git a/mk/tools.mk b/mk/tools.mk index 4ed1a5db217..f2bc23633ae 100644 --- a/mk/tools.mk +++ b/mk/tools.mk @@ -38,86 +38,86 @@ RUST_INPUTS := $(wildcard $(S)src/librust/*.rs) # have tools that need to built for other targets. define TOOLS_STAGE_N_TARGET -$$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBFUZZER_$(3)): \ +$$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBFUZZER_$(4)): \ $$(FUZZER_LIB) $$(FUZZER_INPUTS) \ $$(TSREQ$(1)_T_$(4)_H_$(3)) \ - $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_CORELIB_$(3)) \ - $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_STDLIB_$(3)) \ - $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUSTC_$(3)) + $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_CORELIB_$(4)) \ + $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_STDLIB_$(4)) \ + $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUSTC_$(4)) @$$(call E, compile_and_link: $$@) $$(STAGE$(1)_T_$(4)_H_$(3)) -o $$@ $$< && touch $$@ -$$(TBIN$(1)_T_$(4)_H_$(3))/fuzzer$$(X): \ +$$(TBIN$(1)_T_$(4)_H_$(3))/fuzzer$$(X_$(4)): \ $$(DRIVER_CRATE) \ - $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBFUZZER_$(3)) + $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBFUZZER_$(4)) @$$(call E, compile_and_link: $$@) $$(STAGE$(1)_T_$(4)_H_$(3)) --cfg fuzzer -o $$@ $$< -$$(TBIN$(1)_T_$(4)_H_$(3))/compiletest$$(X): \ +$$(TBIN$(1)_T_$(4)_H_$(3))/compiletest$$(X_$(4)): \ $$(COMPILETEST_CRATE) $$(COMPILETEST_INPUTS) \ $$(TSREQ$(1)_T_$(4)_H_$(3)) \ - $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_CORELIB_$(3)) \ - $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_STDLIB_$(3)) + $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_CORELIB_$(4)) \ + $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_STDLIB_$(4)) @$$(call E, compile_and_link: $$@) $$(STAGE$(1)_T_$(4)_H_$(3)) -o $$@ $$< -$$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUSTPKG_$(3)): \ +$$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUSTPKG_$(4)): \ $$(RUSTPKG_LIB) $$(RUSTPKG_INPUTS) \ $$(TSREQ$(1)_T_$(4)_H_$(3)) \ - $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_CORELIB_$(3)) \ - $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_STDLIB_$(3)) \ - $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUSTC_$(3)) + $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_CORELIB_$(4)) \ + $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_STDLIB_$(4)) \ + $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUSTC_$(4)) @$$(call E, compile_and_link: $$@) $$(STAGE$(1)_T_$(4)_H_$(3)) -o $$@ $$< && touch $$@ -$$(TBIN$(1)_T_$(4)_H_$(3))/rustpkg$$(X): \ +$$(TBIN$(1)_T_$(4)_H_$(3))/rustpkg$$(X_$(4)): \ $$(DRIVER_CRATE) \ - $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUSTPKG_$(3)) + $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUSTPKG_$(4)) @$$(call E, compile_and_link: $$@) $$(STAGE$(1)_T_$(4)_H_$(3)) --cfg rustpkg -o $$@ $$< -$$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUSTDOC_$(3)): \ +$$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUSTDOC_$(4)): \ $$(RUSTDOC_LIB) $$(RUSTDOC_INPUTS) \ $$(TSREQ$(1)_T_$(4)_H_$(3)) \ - $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_CORELIB_$(3)) \ - $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_STDLIB_$(3)) \ - $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUSTC_$(3)) + $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_CORELIB_$(4)) \ + $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_STDLIB_$(4)) \ + $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUSTC_$(4)) @$$(call E, compile_and_link: $$@) $$(STAGE$(1)_T_$(4)_H_$(3)) -o $$@ $$< && touch $$@ -$$(TBIN$(1)_T_$(4)_H_$(3))/rustdoc$$(X): \ +$$(TBIN$(1)_T_$(4)_H_$(3))/rustdoc$$(X_$(4)): \ $$(DRIVER_CRATE) \ - $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUSTDOC_$(3)) + $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUSTDOC_$(4)) @$$(call E, compile_and_link: $$@) $$(STAGE$(1)_T_$(4)_H_$(3)) --cfg rustdoc -o $$@ $$< -$$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUSTI_$(3)): \ +$$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUSTI_$(4)): \ $$(RUSTI_LIB) $$(RUSTI_INPUTS) \ $$(TSREQ$(1)_T_$(4)_H_$(3)) \ - $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_CORELIB_$(3)) \ - $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_STDLIB_$(3)) \ - $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUSTC_$(3)) + $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_CORELIB_$(4)) \ + $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_STDLIB_$(4)) \ + $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUSTC_$(4)) @$$(call E, compile_and_link: $$@) $$(STAGE$(1)_T_$(4)_H_$(3)) -o $$@ $$< && touch $$@ -$$(TBIN$(1)_T_$(4)_H_$(3))/rusti$$(X): \ +$$(TBIN$(1)_T_$(4)_H_$(3))/rusti$$(X_$(4)): \ $$(DRIVER_CRATE) \ - $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUSTI_$(3)) + $$(TLIB$(1)_T_$(4)_H_$(4))/$(CFG_LIBRUSTI_$(4)) @$$(call E, compile_and_link: $$@) $$(STAGE$(1)_T_$(4)_H_$(3)) --cfg rusti -o $$@ $$< -$$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUST_$(3)): \ +$$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUST_$(4)): \ $$(RUST_LIB) $$(RUST_INPUTS) \ $$(TSREQ$(1)_T_$(4)_H_$(3)) \ - $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_CORELIB_$(3)) \ - $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_STDLIB_$(3)) \ - $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUSTC_$(3)) + $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_CORELIB_$(4)) \ + $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_STDLIB_$(4)) \ + $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUSTC_$(4)) @$$(call E, compile_and_link: $$@) $$(STAGE$(1)_T_$(4)_H_$(3)) -o $$@ $$< && touch $$@ -$$(TBIN$(1)_T_$(4)_H_$(3))/rust$$(X): \ +$$(TBIN$(1)_T_$(4)_H_$(3))/rust$$(X_$(4)): \ $$(DRIVER_CRATE) \ - $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUST_$(3)) + $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUST_$(4)) @$$(call E, compile_and_link: $$@) $$(STAGE$(1)_T_$(4)_H_$(3)) --cfg rust -o $$@ $$< @@ -129,94 +129,94 @@ define TOOLS_STAGE_N_HOST # Promote the stageN target to stageN+1 host # FIXME: Shouldn't need to depend on host/librustc.so once # rpath is working -$$(HLIB$(2)_H_$(4))/$(CFG_LIBFUZZER_$(3)): \ - $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBFUZZER_$(3)) \ - $$(HLIB$(2)_H_$(4))/$(CFG_LIBRUSTC_$(3)) \ +$$(HLIB$(2)_H_$(4))/$(CFG_LIBFUZZER_$(4)): \ + $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBFUZZER_$(4)) \ + $$(HLIB$(2)_H_$(4))/$(CFG_LIBRUSTC_$(4)) \ $$(HSREQ$(2)_H_$(4)) @$$(call E, cp: $$@) $$(Q)cp $$< $$@ - $$(Q)cp -R $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBFUZZER_GLOB_$(3)) \ - $$(wildcard $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBFUZZER_DSYM_GLOB_$(3))) \ + $$(Q)cp -R $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBFUZZER_GLOB_$(4)) \ + $$(wildcard $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBFUZZER_DSYM_GLOB_$(4))) \ $$(HLIB$(2)_H_$(4)) -$$(HBIN$(2)_H_$(4))/fuzzer$$(X): \ - $$(TBIN$(1)_T_$(4)_H_$(3))/fuzzer$$(X) \ - $$(HLIB$(2)_H_$(4))/$(CFG_LIBFUZZER_$(3)) \ +$$(HBIN$(2)_H_$(4))/fuzzer$$(X_$(4)): \ + $$(TBIN$(1)_T_$(4)_H_$(3))/fuzzer$$(X_$(4)) \ + $$(HLIB$(2)_H_$(4))/$(CFG_LIBFUZZER_$(4)) \ $$(HSREQ$(2)_H_$(4)) @$$(call E, cp: $$@) $$(Q)cp $$< $$@ -$$(HBIN$(2)_H_$(4))/compiletest$$(X): \ - $$(TBIN$(1)_T_$(4)_H_$(3))/compiletest$$(X) \ +$$(HBIN$(2)_H_$(4))/compiletest$$(X_$(4)): \ + $$(TBIN$(1)_T_$(4)_H_$(3))/compiletest$$(X_$(4)) \ $$(HSREQ$(2)_H_$(4)) @$$(call E, cp: $$@) $$(Q)cp $$< $$@ -$$(HLIB$(2)_H_$(4))/$(CFG_LIBRUSTPKG_$(3)): \ - $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUSTPKG_$(3)) \ - $$(HLIB$(2)_H_$(4))/$(CFG_LIBRUSTC_$(3)) \ +$$(HLIB$(2)_H_$(4))/$(CFG_LIBRUSTPKG_$(4)): \ + $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUSTPKG_$(4)) \ + $$(HLIB$(2)_H_$(4))/$(CFG_LIBRUSTC_$(4)) \ $$(HSREQ$(2)_H_$(4)) @$$(call E, cp: $$@) $$(Q)cp $$< $$@ - $$(Q)cp -R $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBRUSTPKG_GLOB_$(3)) \ - $$(wildcard $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBRUSTPKG_DSYM_GLOB_$(3))) \ + $$(Q)cp -R $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBRUSTPKG_GLOB_$(4)) \ + $$(wildcard $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBRUSTPKG_DSYM_GLOB_$(4))) \ $$(HLIB$(2)_H_$(4)) -$$(HBIN$(2)_H_$(4))/rustpkg$$(X): \ - $$(TBIN$(1)_T_$(4)_H_$(3))/rustpkg$$(X) \ - $$(HLIB$(2)_H_$(4))/$(CFG_LIBRUSTPKG_$(3)) \ +$$(HBIN$(2)_H_$(4))/rustpkg$$(X_$(4)): \ + $$(TBIN$(1)_T_$(4)_H_$(3))/rustpkg$$(X_$(4)) \ + $$(HLIB$(2)_H_$(4))/$(CFG_LIBRUSTPKG_$(4)) \ $$(HSREQ$(2)_H_$(4)) @$$(call E, cp: $$@) $$(Q)cp $$< $$@ -$$(HLIB$(2)_H_$(4))/$(CFG_LIBRUSTDOC_$(3)): \ - $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUSTDOC_$(3)) \ - $$(HLIB$(2)_H_$(4))/$(CFG_LIBRUSTC_$(3)) \ +$$(HLIB$(2)_H_$(4))/$(CFG_LIBRUSTDOC_$(4)): \ + $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUSTDOC_$(4)) \ + $$(HLIB$(2)_H_$(4))/$(CFG_LIBRUSTC_$(4)) \ $$(HSREQ$(2)_H_$(4)) @$$(call E, cp: $$@) $$(Q)cp $$< $$@ - $$(Q)cp -R $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBRUSTDOC_GLOB_$(3)) \ - $$(wildcard $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBRUSTDOC_DSYM_GLOB_$(3))) \ + $$(Q)cp -R $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBRUSTDOC_GLOB_$(4)) \ + $$(wildcard $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBRUSTDOC_DSYM_GLOB_$(4))) \ $$(HLIB$(2)_H_$(4)) -$$(HBIN$(2)_H_$(4))/rustdoc$$(X): \ - $$(TBIN$(1)_T_$(4)_H_$(3))/rustdoc$$(X) \ - $$(HLIB$(2)_H_$(4))/$(CFG_LIBRUSTDOC_$(3)) \ +$$(HBIN$(2)_H_$(4))/rustdoc$$(X_$(4)): \ + $$(TBIN$(1)_T_$(4)_H_$(3))/rustdoc$$(X_$(4)) \ + $$(HLIB$(2)_H_$(4))/$(CFG_LIBRUSTDOC_$(4)) \ $$(HSREQ$(2)_H_$(4)) @$$(call E, cp: $$@) $$(Q)cp $$< $$@ -$$(HLIB$(2)_H_$(4))/$(CFG_LIBRUSTI_$(3)): \ - $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUSTI_$(3)) \ - $$(HLIB$(2)_H_$(4))/$(CFG_LIBRUSTC_$(3)) \ +$$(HLIB$(2)_H_$(4))/$(CFG_LIBRUSTI_$(4)): \ + $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUSTI_$(4)) \ + $$(HLIB$(2)_H_$(4))/$(CFG_LIBRUSTC_$(4)) \ $$(HSREQ$(2)_H_$(4)) @$$(call E, cp: $$@) $$(Q)cp $$< $$@ - $$(Q)cp -R $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBRUSTI_GLOB_$(3)) \ - $$(wildcard $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBRUSTI_DSYM_GLOB_$(3))) \ + $$(Q)cp -R $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBRUSTI_GLOB_$(4)) \ + $$(wildcard $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBRUSTI_DSYM_GLOB_$(4))) \ $$(HLIB$(2)_H_$(4)) -$$(HBIN$(2)_H_$(4))/rusti$$(X): \ - $$(TBIN$(1)_T_$(4)_H_$(3))/rusti$$(X) \ - $$(HLIB$(2)_H_$(4))/$(CFG_LIBRUSTI_$(3)) \ +$$(HBIN$(2)_H_$(4))/rusti$$(X_$(4)): \ + $$(TBIN$(1)_T_$(4)_H_$(3))/rusti$$(X_$(4)) \ + $$(HLIB$(2)_H_$(4))/$(CFG_LIBRUSTI_$(4)) \ $$(HSREQ$(2)_H_$(4)) @$$(call E, cp: $$@) $$(Q)cp $$< $$@ -$$(HLIB$(2)_H_$(4))/$(CFG_LIBRUST_$(3)): \ - $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUST_$(3)) \ - $$(HLIB$(2)_H_$(4))/$(CFG_LIBRUSTC_$(3)) \ +$$(HLIB$(2)_H_$(4))/$(CFG_LIBRUST_$(4)): \ + $$(TLIB$(1)_T_$(4)_H_$(3))/$(CFG_LIBRUST_$(4)) \ + $$(HLIB$(2)_H_$(4))/$(CFG_LIBRUSTC_$(4)) \ $$(HSREQ$(2)_H_$(4)) @$$(call E, cp: $$@) $$(Q)cp $$< $$@ - $$(Q)cp -R $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBRUST_GLOB_$(3)) \ - $$(wildcard $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBRUST_DSYM_GLOB)_$(3)) \ + $$(Q)cp -R $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBRUST_GLOB_$(4)) \ + $$(wildcard $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBRUST_DSYM_GLOB)_$(4)) \ $$(HLIB$(2)_H_$(4)) -$$(HBIN$(2)_H_$(4))/rust$$(X): \ - $$(TBIN$(1)_T_$(4)_H_$(3))/rust$$(X) \ - $$(HLIB$(2)_H_$(4))/$(CFG_LIBRUST_$(3)) \ +$$(HBIN$(2)_H_$(4))/rust$$(X_$(4)): \ + $$(TBIN$(1)_T_$(4)_H_$(3))/rust$$(X_$(4)) \ + $$(HLIB$(2)_H_$(4))/$(CFG_LIBRUST_$(4)) \ $$(HSREQ$(2)_H_$(4)) @$$(call E, cp: $$@) $$(Q)cp $$< $$@