summaryrefslogtreecommitdiff
path: root/mk/llvm.mk
diff options
context:
space:
mode:
authorRichard Diamond <wichard@vitalitystudios.com>2015-08-21 23:43:56 -0500
committerRichard Diamond <wichard@vitalitystudios.com>2015-12-13 15:05:43 -0600
commit7bd69f2248ce2635f3fc05f08d8a7944eed0016a (patch)
treeec6802421b3754c37226742c734fe365dc25076a /mk/llvm.mk
parent83eda080373285d3cbe4ca0ee280e4844c6422a3 (diff)
Better support for `--llvm-root`.
This handles cases when the LLVM used isn't configured will the 'usual' targets. Also, cases where LLVM is shared are also handled (ie with `LD_LIBRARY_PATH` etc).
Diffstat (limited to 'mk/llvm.mk')
-rw-r--r--mk/llvm.mk14
1 files changed, 11 insertions, 3 deletions
diff --git a/mk/llvm.mk b/mk/llvm.mk
index b2a90f583f7..6d5e9169367 100644
--- a/mk/llvm.mk
+++ b/mk/llvm.mk
@@ -80,10 +80,16 @@ endif
# LLVM linkage:
+# Note: Filter with llvm-config so that optional targets which aren't present
+# don't cause errors (ie PNaCl's target is only present within PNaCl's LLVM
+# fork).
LLVM_LINKAGE_PATH_$(1):=$$(abspath $$(RT_OUTPUT_DIR_$(1))/llvmdeps.rs)
$$(LLVM_LINKAGE_PATH_$(1)): $(S)src/etc/mklldeps.py $$(LLVM_CONFIG_$(1))
- $(Q)$(CFG_PYTHON) "$$<" "$$@" "$$(LLVM_COMPONENTS)" "$$(CFG_ENABLE_LLVM_STATIC_STDCPP)" \
- $$(LLVM_CONFIG_$(1)) "$(CFG_STDCPP_NAME)"
+ $(Q)$(CFG_PYTHON) "$$<" "$$@" "$$(filter $$(shell \
+ $$(LLVM_CONFIG_$(1)) --components), \
+ $(LLVM_OPTIONAL_COMPONENTS)) $(LLVM_REQUIRED_COMPONENTS)" \
+ "$$(CFG_ENABLE_LLVM_STATIC_STDCPP)" $$(LLVM_CONFIG_$(1)) \
+ "$(CFG_STDCPP_NAME)" "$$(CFG_USING_LIBCPP)"
endef
$(foreach host,$(CFG_HOST), \
@@ -94,7 +100,9 @@ $(foreach host,$(CFG_HOST), \
# This can't be done in target.mk because it's included before this file.
define LLVM_LINKAGE_DEPS
-$$(TLIB$(1)_T_$(2)_H_$(3))/stamp.rustc_llvm: $$(LLVM_LINKAGE_PATH_$(2))
+$$(TLIB$(1)_T_$(2)_H_$(3))/stamp.rustc_llvm: $$(LLVM_LINKAGE_PATH_$(3))
+RUSTFLAGS$(1)_rustc_llvm_T_$(3) += $$(shell echo $$(LLVM_ALL_COMPONENTS_$(3)) | tr '-' '_' |\
+ sed -e 's/^ //;s/\([^ ]*\)/\-\-cfg have_component_\1/g')
endef
$(foreach source,$(CFG_HOST), \