diff options
| -rw-r--r-- | Makefile | 14 | ||||
| -rw-r--r-- | README.md | 12 |
2 files changed, 22 insertions, 4 deletions
@@ -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 @@ -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* |
