浏览代码

Added pattern function so we can match whatever llvm versions we want

Right now we match every version that is 13 something for arm64 on macOS
And for x86 we allow any above 11 and including 11
Platin21 3 年之前
父节点
当前提交
9c1e1a63a2
共有 1 个文件被更改,包括 23 次插入15 次删除
  1. 23 15
      Makefile

+ 23 - 15
Makefile

@@ -8,25 +8,33 @@ CC=clang
 OS=$(shell uname)
 
 ifeq ($(OS), Darwin)
+    
     ARCH=$(shell uname -m)
-    LLVM_CONFIG=llvm-config
+    LLVM_CONFIG=
 
+    # allow for arm only llvm's with version 13
     ifeq ($(ARCH), arm64)
-        ifneq ($(shell llvm-config --version | grep "^13\."),)
-            LLVM_CONFIG=llvm-config
-        else
-            $(error "Requirement: llvm-config must be version llvm 13 for arm64")
-        endif
+        LLVM_VERSIONS = "13.%.%"
     else
-        ifneq ($(shell llvm-config --version | grep "^11\."),)
-            LLVM_CONFIG=llvm-config
-        else ifneq ($(shell llvm-config --version | grep "^12\."),)
-            LLVM_CONFIG=llvm-config
-        else ifneq ($(shell llvm-config --version | grep "^13\."),)
-            LLVM_CONFIG=llvm-config
-        else
-            $(error "Requirement: llvm-config must be version llvm 11 or 12 or 13 for amd64/x86")
-        endif
+    # allow for x86 / amd64 all llvm versions begining from 11
+        LLVM_VERSIONS = "13.%.%" "12.0.1" "11.1.0" "11.0.1" "11.0.0"
+    endif
+
+    LLVM_VERSION_PATTERN_SEPERATOR = )|(
+    LLVM_VERSION_PATTERNS_ESCAPED_DOT = $(subst .,\.,$(LLVM_VERSIONS))
+    LLVM_VERSION_PATTERNS_REPLACE_PERCENT = $(subst %,.,$(LLVM_VERSION_PATTERNS_ESCAPED_DOT))
+    LLVM_VERSION_PATTERN_REMOVE_ELEMENTS = $(subst " ",$(LLVM_VERSION_PATTERN_SEPERATOR),$(LLVM_VERSION_PATTERNS_REPLACE_PERCENT))
+    LLMV_VERSION_PATTERN_REMOVE_SINGLE_STR = $(subst ",,$(LLVM_VERSION_PATTERN_REMOVE_ELEMENTS))
+    LLVM_VERSION_PATTERN = "^(($(LLMV_VERSION_PATTERN_REMOVE_SINGLE_STR)))"
+
+    ifneq ($(shell llvm-config --version | grep -E $(LLVM_VERSION_PATTERN)),)
+        LLVM_CONFIG=llvm-config
+    else
+        ifeq ($(ARCH), arm64)
+            $(error "Requirement: llvm-config must be base version 13 for arm64")
+        else 
+            $(error "Requirement: llvm-config must be base version greater than 11 for amd64/x86")
+        endif 
     endif 
 
     LDFLAGS:=$(LDFLAGS) -liconv