From 0e0638362015665411d1454a1a7292de9fe97fed Mon Sep 17 00:00:00 2001 From: Platin21 Date: Sat, 22 Jan 2022 17:34:43 +0100 Subject: [PATCH 1/4] Changed make file so that it allows for multiple LLVM versions instead of a single one on Darwin --- Makefile | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/Makefile b/Makefile index a7aecbb2d..6acecccc4 100644 --- a/Makefile +++ b/Makefile @@ -11,19 +11,23 @@ ifeq ($(OS), Darwin) ARCH=$(shell uname -m) LLVM_CONFIG=llvm-config - # LLVM Version Setting - LLVM_VERSION_PATTERN="^11\." - LLVM_VERSION="11" ifeq ($(ARCH), arm64) - LLVM_VERSION="13" - LLVM_VERSION_PATTERN="^13" - endif - - ifneq ($(shell llvm-config --version | grep $(LLVM_VERSION_PATTERN)),) - LLVM_CONFIG=llvm-config + ifneq ($(shell llvm-config --version | grep "^13\."),) + LLVM_CONFIG=llvm-config + else + $(error "Requirement: llvm-config must be version llvm 13 for arm64") + endif else - $(error "Requirement: llvm-config must be version $(LLVM_VERSION)") - endif + 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 + endif LDFLAGS:=$(LDFLAGS) -liconv CFLAGS:=$(CFLAGS) $(shell $(LLVM_CONFIG) --cxxflags --ldflags) From 9c1e1a63a2f2e9a176b8029e742cb07617d06ad2 Mon Sep 17 00:00:00 2001 From: Platin21 Date: Sat, 22 Jan 2022 20:29:57 +0100 Subject: [PATCH 2/4] 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 --- Makefile | 38 +++++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/Makefile b/Makefile index 6acecccc4..e6198a954 100644 --- a/Makefile +++ b/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 From 9bc5b84c4de848a49ead8142b9f261eb053c63fa Mon Sep 17 00:00:00 2001 From: Platin21 Date: Sat, 22 Jan 2022 20:40:04 +0100 Subject: [PATCH 3/4] Removes maybe unsupported versions --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index e6198a954..86762af6c 100644 --- a/Makefile +++ b/Makefile @@ -17,7 +17,7 @@ ifeq ($(OS), Darwin) LLVM_VERSIONS = "13.%.%" else # 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" + LLVM_VERSIONS = "13.%.%" "12.0.1" "11.1.0" endif LLVM_VERSION_PATTERN_SEPERATOR = )|( From 8516e2e7e35ee68e7dab9b03f54be7e906bdb251 Mon Sep 17 00:00:00 2001 From: Platin21 Date: Sat, 22 Jan 2022 20:50:05 +0100 Subject: [PATCH 4/4] Changed match to be arbitrary width (cant do exact match as we never know how much subversion's llvm does) --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 86762af6c..d3d3c6a2d 100644 --- a/Makefile +++ b/Makefile @@ -22,7 +22,7 @@ ifeq ($(OS), Darwin) 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_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)))"