summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile14
-rw-r--r--README.md12
2 files changed, 22 insertions, 4 deletions
diff --git a/Makefile b/Makefile
index 85748bc4..adb4862c 100644
--- a/Makefile
+++ b/Makefile
@@ -104,10 +104,16 @@ endif
# Setup compilation commands
ifneq ($(LLVM),)
-CC = clang
-AR = llvm-ar
-LD = ld.lld
-OBJCOPY = llvm-objcopy
+ifneq ($(filter %/,$(LLVM)),)
+LLVM_PREFIX := $(LLVM)
+else ifneq ($(filter -%,$(LLVM)),)
+LLVM_SUFFIX := $(LLVM)
+endif
+
+CC = $(LLVM_PREFIX)clang$(LLVM_SUFFIX)
+AR = $(LLVM_PREFIX)llvm-ar$(LLVM_SUFFIX)
+LD = $(LLVM_PREFIX)ld.lld$(LLVM_SUFFIX)
+OBJCOPY = $(LLVM_PREFIX)llvm-objcopy$(LLVM_SUFFIX)
else
ifdef CROSS_COMPILE
CC = $(CROSS_COMPILE)gcc
diff --git a/README.md b/README.md
index 2795cc1a..fd40be0b 100644
--- a/README.md
+++ b/README.md
@@ -252,6 +252,18 @@ option with:
make LLVM=1
```
+To build with a specific version of LLVM, a path to a directory containing the
+LLVM tools can be provided:
+```
+make LLVM=/path/to/llvm/
+```
+
+If you have versioned llvm tools you would like to use, such as `clang-17`, the LLVM variable can
+be set as:
+```
+make LLVM=-17
+```
+
When using Clang, *CROSS_COMPILE* often does not need to be defined unless
using GNU binutils with prefixed binary names. *PLATFORM_RISCV_XLEN* will be
used to infer a default triple to pass to Clang, so if *PLATFORM_RISCV_XLEN*