2525# directories of LLVM, Clang in tools/clang/, etc.
2626# LLVM_SRC_PATH := /usr/lib/llvm-8
2727
28- # If it is a system distribution (linux), then llvm-config should be installed:
29- # if LLVM_VERSION not given, try first llvm-config and
30- # then llvm-config-$(LLVM_DEFAULT_VERSION)
28+ # If it is a system distribution (linux), then llvm-config should be installed.
29+ # the chain of reasoning the executable is
30+ # - use LLVM_VERSION if set
31+ # - use 'llvm-config' if found in PATH
32+ # - use 'clang --version' if along PATH
33+ # - use latest 'llvm-config-NN' if found in PATH
34+
3135
3236
3337# First, let's find out what distro we have
@@ -37,8 +41,8 @@ $(info --------------------------------------------------------------)
3741$(info We are on $(DISTRO) distribution)
3842$(info --------------------------------------------------------------)
3943
40- # keep 14 as default for now
41- LLVM_DEFAULT_VERSION := 18
44+ # # Then, find out the llvm version, either from LLVM_VERSION variable or
45+ # # snooping llvm-config-NN, which must be along PATH
4246
4347ifdef LLVM_VERSION
4448
5963# llvm-config not found, next step...
6064$(info "llvm-config" not found along PATH, trying version from clang.. )
6165VERSION_FROM_CLANG := $(shell clang --version | head -1 | awk 'BEGIN{FS="version * "} {print $$2}' | awk 'BEGIN{FS="."} {print $$1}' )
62- $(info clang version $(VERSION_FROM_CLANG))
6366ifneq (, $(shell which llvm-config-$(VERSION_FROM_CLANG ) ) )
6467LLVM_PATH := $(shell llvm-config-$(VERSION_FROM_CLANG ) --prefix)
65-
68+ $(info clang version $(VERSION_FROM_CLANG))
6669else
67- $(info "clang" failed, trying llvm-config-$(LLVM_DEFAULT_VERSION) )
6870
69- ifeq (, $(shell which llvm-config-$(LLVM_DEFAULT_VERSION ) ) )
70- $(info llvm-config or llvm-config-$(LLVM_DEFAULT_VERSION) not found along PATH! )
71- $(error Use "make [..] LLVM_VERSION=<N>" )
71+ $(info "clang" failed, trying to glob llvm-config-NN )
72+ LLVM_CONFIG := $(shell ls /* /llvm-config-* | sort | tail -1)
73+ ifeq (, $(shell which $(LLVM_CONFIG ) ) )
74+ $(error No llvm-config-NN found along PATH)
7275else
73- LLVM_PATH := $(shell llvm-config-$(LLVM_DEFAULT_VERSION ) --prefix)
76+ LLVM_PATH := $(shell $(LLVM_CONFIG ) --prefix)
77+ $(info using $(LLVM_CONFIG))
78+ endif
79+
80+ # else
81+ # $(info "clang" failed, trying llvm-config-$(LLVM_DEFAULT_VERSION) )
82+
83+ # ifeq (, $(shell which llvm-config-$(LLVM_DEFAULT_VERSION)))
84+ # $(info llvm-config or llvm-config-$(LLVM_DEFAULT_VERSION) not found along PATH! )
85+ # $(error Use "make [..] LLVM_VERSION=<N>" )
86+ # else
87+ # LLVM_PATH := $(shell llvm-config-$(LLVM_DEFAULT_VERSION) --prefix)
88+ # endif
89+
7490endif
7591endif
76- endif
7792
7893# get the llvm version number if not set before
7994LLVM_VERSION = $(shell $(LLVM_PATH ) /bin/llvm-config --version | cut -d. -f1)
8095
8196endif
8297
98+ # # Now LLVM_VERSION is set
99+
83100LLVM_BIN_PATH := $(LLVM_PATH ) /bin
84101
85102$(info --------------------------------------------------------------)
0 commit comments