Respect call convention modopts in native wrappers. (#14017)
[mono-project.git] / llvm / build.mk
blob2c73a7de6e96369dfd8e3d5c8b2bd6e8a1f3b9e6
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 EXTRA_LLVM_ARGS = $(if $(filter $(LLVM_TARGET),wasm32), -DLLVM_BUILD_32_BITS=On -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD="WebAssembly",)
17 # -DLLVM_ENABLE_LIBXML2=Off is needed because xml2 is not used and it breaks 32-bit builds on 64-bit Linux hosts
18 $(LLVM_BUILD)/$(if $(NINJA),build.ninja,Makefile): $(abs_top_srcdir)/external/llvm/CMakeLists.txt
19 mkdir -p $(LLVM_BUILD) $(LLVM_PREFIX)
20 cd $(LLVM_BUILD) && $(CMAKE) \
21 $(if $(NINJA),-G Ninja) \
22 -DCMAKE_INSTALL_PREFIX="$(LLVM_PREFIX)" \
23 -DCMAKE_BUILD_TYPE=Release \
24 -DLLVM_BUILD_TESTS=Off \
25 -DLLVM_INCLUDE_TESTS=Off \
26 -DLLVM_BUILD_EXAMPLES=Off \
27 -DLLVM_INCLUDE_EXAMPLES=Off \
28 -DLLVM_TOOLS_TO_BUILD="opt;llc;llvm-config;llvm-dis" \
29 -DLLVM_TARGETS_TO_BUILD="X86;ARM;AArch64" \
30 $(EXTRA_LLVM_ARGS) \
31 -DLLVM_ENABLE_ASSERTIONS=$(if $(INTERNAL_LLVM_ASSERTS),On,Off) \
32 -DLLVM_ENABLE_LIBXML2=Off \
33 -DHAVE_FUTIMENS=0 \
34 $(LLVM_CMAKE_ARGS) \
35 $(dir $<)
37 .PHONY: configure-llvm
38 configure-llvm: $(LLVM_BUILD)/$(if $(NINJA),build.ninja,Makefile)
40 # The DESTDIR fix is to prevent the build from trying to install this out-of-build-tree
41 # as the DESTDIR hasn't been created when we're building mono
43 .PHONY: build-llvm
44 build-llvm: configure-llvm
45 DESTDIR="" $(if $(NINJA),$(NINJA),$(MAKE)) -C $(LLVM_BUILD)
47 .PHONY: install-llvm
48 install-llvm: build-llvm
49 DESTDIR="" $(if $(NINJA),$(NINJA),$(MAKE)) -C $(LLVM_BUILD) install
51 .PHONY: download-llvm
52 download-llvm:
53 (wget --no-verbose -O - $(LLVM_DOWNLOAD_LOCATION) || curl -L $(LLVM_DOWNLOAD_LOCATION)) | tar -xzf - -C $(dir $(LLVM_PREFIX))
55 .PHONY: clean-llvm
56 clean-llvm:
57 $(RM) -r $(LLVM_BUILD) $(LLVM_PREFIX)