1 abs_top_srcdir ?
= $(abspath
$(CURDIR
)/..
)
3 LLVM_BUILD ?
= $(abspath
$(abs_top_srcdir
)/llvm
/build
)
4 LLVM_PREFIX ?
= $(abspath
$(abs_top_srcdir
)/llvm
/usr
)
6 # LLVM_BRANCH := $(shell git -C "$(abs_top_srcdir)/external/llvm" rev-parse --abbrev-ref HEAD)
7 LLVM_VERSION
:= $(shell git
-C
"$(abs_top_srcdir)/external/llvm" rev-parse HEAD
)
9 # FIXME: URL should be http://xamjenkinsartifact.blob.core.windows.net/build-package-osx-llvm-$(LLVM_BRANCH)/llvm-osx64-$(LLVM_VERSION).tar.gz
10 LLVM_DOWNLOAD_LOCATION
= "http://xamjenkinsartifact.blob.core.windows.net/build-package-osx-llvm-release60/llvm-osx64-$(LLVM_VERSION).tar.gz"
12 CMAKE
:= $(or
$(CMAKE
),$(shell which cmake
))
13 NINJA
:= $(shell which ninja
)
15 $(LLVM_BUILD
) $(LLVM_PREFIX
):
18 EXTRA_LLVM_ARGS
= $(if
$(filter $(LLVM_TARGET
),wasm32
), -DLLVM_BUILD_32_BITS
=On
-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD
="WebAssembly",)
20 # -DLLVM_ENABLE_LIBXML2=Off is needed because xml2 is not used and it breaks 32-bit builds on 64-bit Linux hosts
21 $(LLVM_BUILD
)/$(if
$(NINJA
),build.ninja
,Makefile
): $(abs_top_srcdir
)/external
/llvm
/CMakeLists.txt |
$(LLVM_BUILD
) $(LLVM_PREFIX
)
22 cd
$(LLVM_BUILD
) && $(CMAKE
) \
23 $(if
$(NINJA
),-G Ninja
) \
24 -DCMAKE_INSTALL_PREFIX
="$(LLVM_PREFIX)" \
25 -DCMAKE_BUILD_TYPE
=Release \
26 -DLLVM_BUILD_TESTS
=Off \
27 -DLLVM_INCLUDE_TESTS
=Off \
28 -DLLVM_BUILD_EXAMPLES
=Off \
29 -DLLVM_INCLUDE_EXAMPLES
=Off \
30 -DLLVM_TOOLS_TO_BUILD
="opt;llc;llvm-config;llvm-dis" \
31 -DLLVM_TARGETS_TO_BUILD
="X86;ARM;AArch64" \
33 -DLLVM_ENABLE_ASSERTIONS
=$(if
$(INTERNAL_LLVM_ASSERTS
),On
,Off
) \
34 -DLLVM_ENABLE_LIBXML2
=Off \
37 $(abs_top_srcdir
)/external
/llvm
39 .PHONY
: configure-llvm
40 configure-llvm
: $(LLVM_BUILD
)/$(if
$(NINJA
),build.ninja
,Makefile
)
42 # The DESTDIR fix is to prevent the build from trying to install this out-of-build-tree
43 # as the DESTDIR hasn't been created when we're building mono
46 build-llvm
: configure-llvm
47 DESTDIR
="" $(if
$(NINJA
),$(NINJA
),$(MAKE
)) -C
$(LLVM_BUILD
)
50 install-llvm
: build-llvm |
$(LLVM_PREFIX
)
51 DESTDIR
="" $(if
$(NINJA
),$(NINJA
),$(MAKE
)) -C
$(LLVM_BUILD
) install
55 (wget
--no-verbose
-O
- $(LLVM_DOWNLOAD_LOCATION
) || curl
-L
$(LLVM_DOWNLOAD_LOCATION
)) |
tar -xzf
- -C
$(dir $(LLVM_PREFIX
))
59 $(RM
) -r
$(LLVM_BUILD
) $(LLVM_PREFIX
)