Skip to content

Commit 4f2f984

Browse files
committed
external: Rework clang to support multiple versions
1 parent cc2de23 commit 4f2f984

1 file changed

Lines changed: 23 additions & 11 deletions

File tree

external/clang/Makefile

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,42 @@
11
help:
22
@echo "clang"
33
@echo "Available targets:"
4-
@echo " download # download and unpack clang"
4+
@echo " download # download and unpack default clang version"
5+
@echo " download-all # download and unpack all clang versions"
56
@echo ""
7+
@echo "Download additional versions with:"
8+
@echo " $ make llvm-<version>"
69

7-
VERSION := 14.0.0
10+
define TEMPLATE =
11+
llvm-$(1):
12+
rm -f llvm-$(1).tar.xz
13+
wget --no-verbose -O llvm-$(1).tar.xz https://github.com/llvm/llvm-project/releases/download/llvmorg-$(1)/clang+llvm-$(1)-powerpc64le-linux-rhel-8.4.tar.xz
14+
tar -xf llvm-$(1).tar.xz
15+
touch $$@
16+
rm -rf llvm-$(1).tar.xz llvm-$(1)
17+
mv clang+llvm-* llvm-$(1)
818

9-
clang.tar.xz:
10-
wget --no-verbose -O $@.tmp https://github.com/llvm/llvm-project/releases/download/llvmorg-$(VERSION)/clang+llvm-$(VERSION)-powerpc64le-linux-rhel-7.9.tar.xz
11-
mv $@.tmp $@
19+
CLEAN_DIRS += llvm-$(1)
20+
ALL_TARGETS += llvm-$(1)
21+
endef
1222

13-
install/bin/clang: clang.tar.xz
14-
rm -rf install
15-
tar -xf clang.tar.xz
16-
mv clang+llvm-* install
23+
$(eval $(call TEMPLATE,14.0.6))
24+
$(eval $(call TEMPLATE,15.0.7))
25+
$(eval $(call TEMPLATE,16.0.0-rc2))
1726

18-
download: install/bin/clang
27+
# Only download clang-15 by default
28+
download: llvm-15.0.7
1929

2030
prepare: download
2131

32+
download-all: $(ALL_TARGETS)
33+
2234
build:
2335

2436
clean:
2537
@:
2638

2739
distclean: clean
28-
rm -rf install clang.tar.xz
40+
rm -rf $(CLEAN_DIRS) *.tar.xz
2941

3042
.PHONY: download prepare build clean distclean help

0 commit comments

Comments
 (0)