Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitmodules4
m---------external/llvm0
-rw-r--r--llvm/Makefile.am2
-rw-r--r--llvm/SUBMODULES.json10
-rw-r--r--llvm/build.mk42
-rw-r--r--sdks/builds/llvm.mk37
6 files changed, 23 insertions, 72 deletions
diff --git a/.gitmodules b/.gitmodules
index 4e968d7a066..2a1d0e3521f 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -58,3 +58,7 @@
[submodule "external/api-snapshot"]
path = external/api-snapshot
url = git://github.com/mono/api-snapshot.git
+[submodule "external/llvm"]
+ path = external/llvm
+ url = git://github.com/mono/llvm.git
+ branch = release_60
diff --git a/external/llvm b/external/llvm
new file mode 160000
+Subproject 117a508c0ca65b754008e94e3eb97e77edfef04
diff --git a/llvm/Makefile.am b/llvm/Makefile.am
index 09c0c4bec0d..d97b311ad7a 100644
--- a/llvm/Makefile.am
+++ b/llvm/Makefile.am
@@ -1,5 +1,5 @@
-EXTRA_DIST=SUBMODULES.json build.mk build_llvm_config.sh
+EXTRA_DIST=build.mk build_llvm_config.sh
if ENABLE_LLVM
diff --git a/llvm/SUBMODULES.json b/llvm/SUBMODULES.json
deleted file mode 100644
index fe3046ebcce..00000000000
--- a/llvm/SUBMODULES.json
+++ /dev/null
@@ -1,10 +0,0 @@
-[
- {
- "name": "llvm",
- "url": "git://github.com/mono/llvm.git",
- "rev": "117a508c0ca65b754008e94e3eb97e77edfef04b",
- "remote-branch": "origin/release_60",
- "branch": "release_60",
- "directory": "llvm"
- }
-]
diff --git a/llvm/build.mk b/llvm/build.mk
index 16ad795ab9f..9b4607a65b5 100644
--- a/llvm/build.mk
+++ b/llvm/build.mk
@@ -1,53 +1,23 @@
-#
-# Conditional submodule for llvm
-#
-# make reset-llvm will checkout a version of llvm which is suitable for this version of mono
-# into $top_srcdir/llvm/llvm.
-#
-# Input variables
-# - LLVM_TARGET: if set to wasm32 will trigger a 32bits build that enable the experimental WebAssembly backend
-#
-
top_srcdir ?= $(abspath $(CURDIR)/..)
-LLVM_PATH ?= $(abspath $(top_srcdir)/external/llvm)
LLVM_BUILD ?= $(abspath $(top_srcdir)/llvm/build)
LLVM_PREFIX ?= $(abspath $(top_srcdir)/llvm/usr)
-# FIXME: URL should be http://xamjenkinsartifact.blob.core.windows.net/build-package-osx-llvm-$(NEEDED_LLVM_BRANCH)/llvm-osx64-$(NEEDED_LLVM_VERSION).tar.gz
-LLVM_DOWNLOAD_LOCATION = "http://xamjenkinsartifact.blob.core.windows.net/build-package-osx-llvm-release60/llvm-osx64-$(NEEDED_LLVM_VERSION).tar.gz"
+# LLVM_BRANCH := $(shell git -C "$(top_srcdir)/external/llvm" rev-parse --abbrev-ref HEAD)
+LLVM_VERSION := $(shell git -C "$(top_srcdir)/external/llvm" rev-parse HEAD)
+
+# FIXME: URL should be http://xamjenkinsartifact.blob.core.windows.net/build-package-osx-llvm-$(LLVM_BRANCH)/llvm-osx64-$(LLVM_VERSION).tar.gz
+LLVM_DOWNLOAD_LOCATION = "http://xamjenkinsartifact.blob.core.windows.net/build-package-osx-llvm-release60/llvm-osx64-$(LLVM_VERSION).tar.gz"
CMAKE := $(or $(CMAKE),$(shell which cmake))
NINJA := $(shell which ninja)
-SUBMODULES_CONFIG_FILE = $(top_srcdir)/llvm/SUBMODULES.json
-include $(top_srcdir)/scripts/submodules/versions.mk
-
-$(eval $(call ValidateVersionTemplate,llvm,LLVM))
-
-# Bump the given submodule to the revision given by the REV make variable
-# If COMMIT is 1, commit the change
-bump-llvm: __bump-version-llvm
-
-# Bump the given submodule to the branch given by the BRANCH/REMOTE_BRANCH make variables
-# If COMMIT is 1, commit the change
-bump-branch-llvm: __bump-branch-llvm
-
-# Bump the given submodule to its current GIT version
-# If COMMIT is 1, commit the change
-bump-current-llvm: __bump-current-version-llvm
-
$(LLVM_BUILD) $(LLVM_PREFIX):
mkdir -p $@
-$(LLVM_PATH):
- $(MAKE) -f build.mk reset-llvm
-
-$(LLVM_PATH)/CMakeLists.txt: | $(LLVM_PATH)
-
EXTRA_LLVM_ARGS = $(if $(filter $(LLVM_TARGET),wasm32), -DLLVM_BUILD_32_BITS=On -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD="WebAssembly",)
-$(LLVM_BUILD)/$(if $(NINJA),build.ninja,Makefile): $(LLVM_PATH)/CMakeLists.txt | $(LLVM_BUILD)
+$(LLVM_BUILD)/$(if $(NINJA),build.ninja,Makefile): $(top_srcdir)/external/llvm/CMakeLists.txt | $(LLVM_BUILD) $(LLVM_PREFIX)
cd $(LLVM_BUILD) && $(CMAKE) \
$(if $(NINJA),-G Ninja) \
-DCMAKE_INSTALL_PREFIX="$(LLVM_PREFIX)" \
diff --git a/sdks/builds/llvm.mk b/sdks/builds/llvm.mk
index d88c7e39975..77b499c86d0 100644
--- a/sdks/builds/llvm.mk
+++ b/sdks/builds/llvm.mk
@@ -1,13 +1,4 @@
-LLVM_SRC?=$(TOP)/sdks/builds/toolchains/llvm
-
-$(TOP)/sdks/builds/toolchains/llvm:
- mkdir -p $(dir $@)
- $(MAKE) -C $(TOP)/llvm -f build.mk $@/CMakeLists.txt \
- LLVM_PATH="$@"
-
-$(LLVM_SRC)/CMakeLists.txt: | $(LLVM_SRC)
-
LLVM36_SRC?=$(TOP)/sdks/builds/toolchains/llvm36
$(TOP)/sdks/builds/toolchains/llvm36:
@@ -21,9 +12,9 @@ $(LLVM36_SRC)/configure: | $(LLVM36_SRC)
# Parameters
# $(1): version
# $(2): target
-# $(3): configure script
+# $(3): src
define LLVMProvisionTemplate
-_$(1)-$(2)_HASH = $$(shell git -C $$(dir $(3)) rev-parse HEAD)
+_$(1)-$(2)_HASH = $$(shell git -C $(3) rev-parse HEAD)
_$(1)-$(2)_PACKAGE = $(1)-$(2)-$$(_$(1)-$(2)_HASH)-$$(UNAME).tar.gz
_$(1)-$(2)_URL = "http://xamjenkinsartifact.blob.core.windows.net/mono-sdks/$$(_$(1)-$(2)_PACKAGE)"
@@ -32,11 +23,11 @@ $$(TOP)/sdks/out/$(1)-$(2)/.stamp-download:
touch $$@
.PHONY: download-$(1)-$(2)
-download-$(1)-$(2): $(3) | setup-$(1)-$(2)
+download-$(1)-$(2): | $(3) setup-$(1)-$(2)
-$$(MAKE) $$(TOP)/sdks/out/$(1)-$(2)/.stamp-download
.PHONY: provision-$(1)-$(2)
-provision-$(1)-$(2): $(3) | download-$(1)-$(2)
+provision-$(1)-$(2): | $(3) download-$(1)-$(2)
$$(if $$(wildcard $$(TOP)/sdks/out/$(1)-$(2)/.stamp-download),,$$(MAKE) package-$(1)-$(2))
.PHONY: archive-$(1)-$(2)
@@ -44,12 +35,12 @@ archive-$(1)-$(2): package-$(1)-$(2)
tar -cvzf $$(TOP)/$$(_$(1)-$(2)_PACKAGE) -C $$(TOP)/sdks/out/$(1)-$(2) .
endef
-$(eval $(call LLVMProvisionTemplate,llvm,llvm32,$(LLVM_SRC)/CMakeLists.txt))
-$(eval $(call LLVMProvisionTemplate,llvm,llvm64,$(LLVM_SRC)/CMakeLists.txt))
-$(eval $(call LLVMProvisionTemplate,llvm,llvmwin32,$(LLVM_SRC)/CMakeLists.txt))
-$(eval $(call LLVMProvisionTemplate,llvm,llvmwin64,$(LLVM_SRC)/CMakeLists.txt))
+$(eval $(call LLVMProvisionTemplate,llvm,llvm32,$(TOP)/external/llvm))
+$(eval $(call LLVMProvisionTemplate,llvm,llvm64,$(TOP)/external/llvm))
+$(eval $(call LLVMProvisionTemplate,llvm,llvmwin32,$(TOP)/external/llvm))
+$(eval $(call LLVMProvisionTemplate,llvm,llvmwin64,$(TOP)/external/llvm))
ifeq ($(UNAME),Darwin)
-$(eval $(call LLVMProvisionTemplate,llvm36,llvm32,$(LLVM36_SRC)/configure))
+$(eval $(call LLVMProvisionTemplate,llvm36,llvm32,$(LLVM36_SRC)))
endif
##
@@ -65,9 +56,8 @@ setup-llvm-$(1):
mkdir -p $$(TOP)/sdks/out/llvm-$(1)
.PHONY: package-llvm-$(1)
-package-llvm-$(1): setup-llvm-$(1) $$(LLVM_SRC)/CMakeLists.txt
+package-llvm-$(1): setup-llvm-$(1)
$$(MAKE) -C $$(TOP)/llvm -f build.mk install-llvm \
- LLVM_PATH="$$(LLVM_SRC)" \
LLVM_BUILD="$$(TOP)/sdks/builds/llvm-$(1)" \
LLVM_PREFIX="$$(TOP)/sdks/out/llvm-$(1)" \
LLVM_CMAKE_ARGS="$$(_llvm-$(1)_CMAKE_ARGS)"
@@ -75,7 +65,6 @@ package-llvm-$(1): setup-llvm-$(1) $$(LLVM_SRC)/CMakeLists.txt
.PHONY: clean-llvm-$(1)
clean-llvm-$(1)::
$$(MAKE) -C $$(TOP)/llvm -f build.mk clean-llvm \
- LLVM_PATH="$$(LLVM_SRC)" \
LLVM_BUILD="$$(TOP)/sdks/builds/llvm-$(1)" \
LLVM_PREFIX="$$(TOP)/sdks/out/llvm-$(1)"
@@ -154,7 +143,7 @@ _llvm-$(1)_CMAKE=$$(MXE_PREFIX)/bin/$(2)-w64-mingw32$$(if $$(filter $$(UNAME),Da
# -DLLVM_ENABLE_THREADS=0 is needed because mxe doesn't define std::mutex etc.
# -DLLVM_BUILD_EXECUTION_ENGINE=Off is needed because it depends on threads
_llvm-$(1)_CMAKE_ARGS = \
- -DCROSS_TOOLCHAIN_FLAGS_NATIVE=-DCMAKE_TOOLCHAIN_FILE=$(LLVM_SRC)/cmake/modules/NATIVE.cmake \
+ -DCROSS_TOOLCHAIN_FLAGS_NATIVE=-DCMAKE_TOOLCHAIN_FILE=$$(TOP)/external/llvm/cmake/modules/NATIVE.cmake \
-DLLVM_ENABLE_THREADS=Off \
-DLLVM_BUILD_EXECUTION_ENGINE=Off \
$$(llvm-$(1)_CMAKE_ARGS)
@@ -164,10 +153,9 @@ setup-llvm-$(1):
mkdir -p $$(TOP)/sdks/out/llvm-$(1)
.PHONY: package-llvm-$(1)
-package-llvm-$(1): setup-llvm-$(1) $$(LLVM_SRC)/CMakeLists.txt
+package-llvm-$(1): setup-llvm-$(1)
$$(MAKE) -C $$(TOP)/llvm -f build.mk install-llvm \
CMAKE=$$(_llvm-$(1)_CMAKE) \
- LLVM_PATH="$$(LLVM_SRC)" \
LLVM_BUILD="$$(TOP)/sdks/builds/llvm-$(1)" \
LLVM_PREFIX="$$(TOP)/sdks/out/llvm-$(1)" \
LLVM_CMAKE_ARGS="$$(_llvm-$(1)_CMAKE_ARGS)"
@@ -176,7 +164,6 @@ package-llvm-$(1): setup-llvm-$(1) $$(LLVM_SRC)/CMakeLists.txt
clean-llvm-$(1)::
$$(MAKE) -C $$(TOP)/llvm -f build.mk clean-llvm \
CMAKE=$$(_llvm-$(1)_CMAKE) \
- LLVM_PATH="$$(LLVM_SRC)" \
LLVM_BUILD="$$(TOP)/sdks/builds/llvm-$(1)" \
LLVM_PREFIX="$$(TOP)/sdks/out/llvm-$(1)"