1
+
1
2
LLVM_SRC? =$(TOP ) /sdks/builds/toolchains/llvm
2
3
3
4
$(TOP ) /sdks/builds/toolchains/llvm :
@@ -16,84 +17,49 @@ $(TOP)/sdks/builds/toolchains/llvm36:
16
17
17
18
$(LLVM36_SRC ) /configure : | $(LLVM36_SRC )
18
19
19
- .stamp-llvm-download :
20
- ifeq ($(UNAME ) ,Darwin)
21
- ifeq ($(DISABLE_DOWNLOAD_LLVM ) ,)
22
- mkdir -p $(TOP)/sdks/builds/toolchains/llvm-download
23
- -$(MAKE) -C $(TOP)/llvm -f build.mk download-llvm \
24
- LLVM_PREFIX="$(TOP)/sdks/builds/toolchains/llvm-download/usr"
25
- touch $@
26
- endif
27
- endif
28
-
29
- .stamp-llvm36-download :
30
- ifeq ($(UNAME ) ,Darwin)
31
- ifeq ($(DISABLE_DOWNLOAD_LLVM ) ,)
32
- mkdir -p $(TOP)/sdks/builds/toolchains/llvm36-download
33
- -wget --no-verbose -O - http://xamjenkinsartifact.blob.core.windows.net/$(LLVM36_JENKINS_LANE)/llvm-osx64-$(LLVM36_HASH).tar.gz | tar -xC $(TOP)/sdks/builds/toolchains/llvm36-download -f -
34
- touch $@
35
- endif
36
- endif
37
-
38
20
# #
39
21
# Parameters
40
22
# $(1): version
41
23
# $(2): target
42
- # $(3): bitness
43
- # $(4): configure script
24
+ # $(3): configure script
44
25
define LLVMProvisionTemplate
45
- ifeq ($(UNAME ) ,Darwin)
46
- .stamp-$(1 ) -$(2 ) -unpack :
47
- cp -r $$(TOP ) /sdks/builds/toolchains/$(1 ) -download/usr$(3 ) /* $$(TOP ) /sdks/out/$(1 ) -$(2 )
26
+ ifeq ($$(UNAME ) ,Darwin)
27
+ _$(1)-$(2)_HASH = $$(shell git -C $$(dir $(3 ) ) rev-parse HEAD)
28
+ _$(1)-$(2)_PACKAGE = $(1 ) -$(2 ) -$$(_$(1 ) -$(2 ) _HASH ) .tar.gz
29
+ _$(1)-$(2)_URL = "http://xamjenkinsartifact.blob.core.windows.net/mono-sdks/$$(_$(1 ) -$(2 ) _PACKAGE ) "
30
+
31
+ $$(TOP ) /sdks/out/$(1 ) -$(2 ) /.stamp-download :
32
+ curl --location --silent --show-error $$(_$(1 ) -$(2 ) _URL ) | tar -xvzf - -C $$(TOP ) /sdks/out/$(1 ) -$(2 )
48
33
touch $$@
49
34
50
- .PHONY : unpack-$(1 ) -$(2 )
51
- unpack-$(1 ) -$(2 ) : .stamp-$(1 ) -$(2 ) -unpack
35
+ .PHONY : download-$(1 ) -$(2 )
36
+ download-$(1 ) -$(2 ) : | setup-$(1 ) -$(2 )
37
+ -$$(MAKE ) $$(TOP ) /sdks/out/$(1 ) -$(2 ) /.stamp-download
52
38
53
- .PHONY : provision -$(1 ) -$(2 )
54
- provision -$(1 ) -$(2 ) : .stamp -$(1 ) -download | setup- $( 1 ) - $( 2 ) $( 4 )
55
- $$( MAKE ) $$( if $$(wildcard $$( TOP ) /sdks/builds/toolchains/ $( 1 ) -download/usr $( 3 ) ) ,unpack,package) - $( 1 ) -$(2 )
39
+ .PHONY : pack -$(1 ) -$(2 )
40
+ pack -$(1 ) -$(2 ) : package -$(1 ) -$( 2 )
41
+ tar -cvzf $$(TOP ) /sdks/out/ $$( _ $( 1 ) -$( 2 ) _PACKAGE ) -C $$( TOP ) /sdks/out/ $( 1 ) -$(2 ) .
56
42
57
- .PHONY : clean -$(1 ) -$(2 )
58
- clean -$(1 ) -$(2 ) ::
59
- rm -rf .stamp- $( 1 ) -download .stamp- $( 1 ) - $( 2 ) -unpack $$(TOP ) /sdks/builds/toolchains/ $(1 ) -download $$(TOP ) /sdks/out/ $(1 ) -$(2 )
43
+ .PHONY : provision -$(1 ) -$(2 )
44
+ provision -$(1 ) -$(2 ) : $( 3 ) | download- $( 1 ) - $( 2 )
45
+ $$( if $$( wildcard $$(TOP ) /sdks/out/ $(1 ) -$( 2 ) /.stamp- download) ,, $$(MAKE ) pack- $(1 ) -$(2 ) )
60
46
else
61
47
.PHONY : provision-$(1 ) -$(2 )
62
48
provision-$(1 ) -$(2 ) : package-$(1 ) -$(2 )
63
49
endif
64
-
65
- .PHONY: provision
66
- provision: provision-$(1 ) -$(2 )
67
50
endef
68
51
69
- $(eval $(call LLVMProvisionTemplate,llvm,llvm32,32,$(LLVM_SRC)/CMakeLists.txt))
70
- $(eval $(call LLVMProvisionTemplate,llvm,llvm64,64,$(LLVM_SRC)/CMakeLists.txt))
71
- $(eval $(call LLVMProvisionTemplate,llvm36,llvm32,32,$(LLVM36_SRC)/configure))
72
-
73
- # #
74
- # Parameters
75
- # $(1): version
76
- # $(2): target
77
- # $(3): bitness
78
- # $(4): configure script
79
- define LLVMMXEProvisionTemplate
80
- .PHONY: provision-$(1 ) -$(2 )
81
- provision-$(1 ) -$(2 ) : | package-$(1 ) -$(2 ) $(4 )
82
-
83
- .PHONY: provision
84
- provision: provision-$(1 ) -$(2 )
85
- endef
86
-
87
- $(eval $(call LLVMMXEProvisionTemplate,llvm,llvmwin32,32,$(LLVM_SRC)/CMakeLists.txt))
88
- $(eval $(call LLVMMXEProvisionTemplate,llvm,llvmwin64,64,$(LLVM_SRC)/CMakeLists.txt))
52
+ $(eval $(call LLVMProvisionTemplate,llvm,llvm32,$(LLVM_SRC)/CMakeLists.txt))
53
+ $(eval $(call LLVMProvisionTemplate,llvm,llvm64,$(LLVM_SRC)/CMakeLists.txt))
54
+ $(eval $(call LLVMProvisionTemplate,llvm,llvmwin32,$(LLVM_SRC)/CMakeLists.txt))
55
+ $(eval $(call LLVMProvisionTemplate,llvm,llvmwin64,$(LLVM_SRC)/CMakeLists.txt))
56
+ ifeq ($(UNAME ) ,Darwin)
57
+ $(eval $(call LLVMProvisionTemplate,llvm36,llvm32,$(LLVM36_SRC)/configure))
58
+ endif
89
59
90
60
# #
91
61
# Parameters
92
62
# $(1): target
93
- # $(2): arch
94
- # $(3): src dir
95
- # $(4): download stamp
96
- # $(5): llvm version (llvm/llvm36)
97
63
define LLVMTemplate
98
64
99
65
_llvm-$(1 ) _CMAKE_ARGS = \
@@ -121,8 +87,8 @@ clean-llvm-$(1)::
121
87
endef
122
88
123
89
llvm-llvm32_CMAKE_ARGS=-DLLVM_BUILD_32_BITS =On
124
- $(eval $(call LLVMTemplate,llvm32,i386 ))
125
- $(eval $(call LLVMTemplate,llvm64,x86_64 ))
90
+ $(eval $(call LLVMTemplate,llvm32))
91
+ $(eval $(call LLVMTemplate,llvm64))
126
92
127
93
# #
128
94
# Parameters
@@ -177,7 +143,9 @@ clean-llvm36-$(1)::
177
143
178
144
endef
179
145
146
+ ifeq ($(UNAME ) ,Darwin)
180
147
$(eval $(call LLVM36Template,llvm32,i386))
148
+ endif
181
149
182
150
# #
183
151
# Parameters
0 commit comments