Skip to content

Commit c7975f3

Browse files
hilapp: Makefile now snoops latest llvm-config-NN, if no other method
works. Chain is now - use LLVM_VERSION if set - use 'llvm-config' if found in PATH - use 'clang --version' if along PATH - use latest 'llvm-config-NN' if found in PATH
1 parent 8e8d532 commit c7975f3

1 file changed

Lines changed: 30 additions & 13 deletions

File tree

hilapp/Makefile

Lines changed: 30 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,13 @@
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

4347
ifdef LLVM_VERSION
4448

@@ -59,27 +63,40 @@ else
5963
# llvm-config not found, next step...
6064
$(info "llvm-config" not found along PATH, trying version from clang.. )
6165
VERSION_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))
6366
ifneq (, $(shell which llvm-config-$(VERSION_FROM_CLANG)))
6467
LLVM_PATH := $(shell llvm-config-$(VERSION_FROM_CLANG) --prefix)
65-
68+
$(info clang version $(VERSION_FROM_CLANG))
6669
else
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)
7275
else
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+
7490
endif
7591
endif
76-
endif
7792

7893
# get the llvm version number if not set before
7994
LLVM_VERSION = $(shell $(LLVM_PATH)/bin/llvm-config --version | cut -d. -f1)
8095

8196
endif
8297

98+
## Now LLVM_VERSION is set
99+
83100
LLVM_BIN_PATH := $(LLVM_PATH)/bin
84101

85102
$(info --------------------------------------------------------------)

0 commit comments

Comments
 (0)