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

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius Ungureanu <teromario@yahoo.com>2018-02-12 18:41:56 +0300
committerGitHub <noreply@github.com>2018-02-12 18:41:56 +0300
commit9e6801d95f6aa6e9cd9949092215b3ce350a59a6 (patch)
treeceb0569d625c697084c20757e61999a6f56daa3c /Makefile
parent68bc8c9841451030a499082a535c62593a5c8a25 (diff)
[AOT] Improve targets for AOT (#3831)
* [AOT] Make the targets use --assembly-loader=strict. This fixes exclusion path necessity and AOT's everything * [AOT] Make target relocatable. Passing APP=path/to/app will automatically AOT the .app * [AOT] Clean up rules and make a target to AOT everything needed for profiling. * Fixup * Filter azure-functions-cli rather than --assembly-loader=strict
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile40
1 files changed, 34 insertions, 6 deletions
diff --git a/Makefile b/Makefile
index ea142a44f6..7a23bad581 100644
--- a/Makefile
+++ b/Makefile
@@ -3,8 +3,24 @@ include main/monodevelop_version
EXTRA_DIST = configure code_of_conduct.md
SPACE :=
SPACE +=
-AOT_DIRECTORIES:=$(subst $(SPACE),:,$(shell find main/build/* -not -path "*azure-functions-cli*" -not -path "*.dSYM*" -not -path "main/build/tests*" -type d))
-MONO_AOT:=MONO_PATH=$(AOT_DIRECTORIES):/Library/Frameworks/Mono.framework/Versions/Current/lib/mono/msbuild/15.0/bin:$(MONO_PATH) mono64 --aot --debug --apply-bindings=main/build/bin/MonoDevelop.exe.config
+
+ifeq ($(origin APP), undefined)
+BIN_DIR=main/build
+else
+BIN_DIR="$(APP)/Contents/Resources/lib/monodevelop"
+endif
+
+AOT_DIRECTORIES:=$(subst $(SPACE),:,$(shell find $(BIN_DIR)/* -not -path "*azure-functions-cli*" -not -path "*.dSYM*" -not -path $(BIN_DIR)/tests* -type d))
+
+MONO_DIR=/Library/Frameworks/Mono.framework/Libraries/mono
+MSBUILD_PATH=$(MONO_DIR)/msbuild/15.0/bin
+
+# --assembly-loader=strict will not work for valuetuples here, even with binding redirects
+AOT_COMMAND=mono64 --aot=hybrid --debug
+MONO_AOT:=MONO_PATH="$(AOT_DIRECTORIES):$(MSBUILD_PATH):$(MONO_PATH)" $(AOT_COMMAND) --apply-bindings=$(BIN_DIR)/bin/MonoDevelop.exe.config
+
+MSBUILD_LIBRARIES=Microsoft.Build.dll Microsoft.Build.Framework.dll Microsoft.Build.Utilities.Core.dll
+MSBUILD_DLLS=$(patsubst %, $(MSBUILD_PATH)/%, $(MSBUILD_LIBRARIES))
all: update_submodules all-recursive
@@ -99,11 +115,23 @@ dist: update_submodules remove-stale-tarballs dist-recursive
@cd tarballs && tar -cjf monodevelop-$(PACKAGE_VERSION).tar.bz2 monodevelop-$(PACKAGE_VERSION)
@cd tarballs && rm -rf monodevelop-$(PACKAGE_VERSION)
+aot-all: aot aot-gac aot-copy
+
+aot-msbuild-with-copy: aot-msbuild
+ @for i in $(MSBUILD_DLLS); do cp -r "$$i" "$$i.dylib" "$$i.dylib.dSYM" $(BIN_DIR)/bin; done
+
aot:
- @for i in main/build/bin/*.dll; do ($(MONO_AOT) $$i &> /dev/null && echo AOT successful: $$i) || (echo AOT failed: $$i); done
- @for i in main/build/AddIns/*.dll; do ($(MONO_AOT) $$i &> /dev/null && echo AOT successful: $$i) || (echo AOT failed: $$i); done
- @for i in main/build/AddIns/*/*.dll; do ($(MONO_AOT) $$i &> /dev/null && echo AOT successful: $$i) || (echo AOT failed: $$i); done
- @for i in main/build/AddIns/*/*/*.dll; do ($(MONO_AOT) $$i &> /dev/null && echo AOT successful: $$i) || (echo AOT failed: $$i); done
+ @for i in $(BIN_DIR)/bin/*.dll; do ($(MONO_AOT) "$$i" &> /dev/null && echo AOT successful: $$i) || (echo AOT failed: $$i); done
+ @for i in $(BIN_DIR)/AddIns/*.dll; do ($(MONO_AOT) "$$i" &> /dev/null && echo AOT successful: $$i) || (echo AOT failed: $$i); done
+ @for i in $(BIN_DIR)/AddIns/*/*.dll; do ($(MONO_AOT) "$$i" &> /dev/null && echo AOT successful: $$i) || (echo AOT failed: $$i); done
+ @for i in $(BIN_DIR)/AddIns/*/*/*.dll; do ($(MONO_AOT) "$$i" &> /dev/null && echo AOT successful: $$i) || (echo AOT failed: $$i); done
+
+aot-gac:
+ @for i in $(MONO_DIR)/4.5/*.dll; do (sudo $(AOT_COMMAND) "$$i" &> /dev/null && echo AOT successful: $$i) || (echo AOT failed: $$i); done
+ @for i in $(MONO_DIR)/gac/*/*/*.dll; do (sudo $(AOT_COMMAND) "$$i" &> /dev/null && echo AOT successful: $$i) || (echo AOT failed: $$i); done
+
+aot-msbuild:
+ @for i in $(MSBUILD_DLLS); do (sudo $(AOT_COMMAND) "$$i" &> /dev/null && echo AOT successful: $$i) || (echo AOT failed: $$i); done
run:
cd main && $(MAKE) run