diff options
author | Marius Ungureanu <teromario@yahoo.com> | 2018-02-12 18:41:56 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-02-12 18:41:56 +0300 |
commit | 9e6801d95f6aa6e9cd9949092215b3ce350a59a6 (patch) | |
tree | ceb0569d625c697084c20757e61999a6f56daa3c /Makefile | |
parent | 68bc8c9841451030a499082a535c62593a5c8a25 (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-- | Makefile | 40 |
1 files changed, 34 insertions, 6 deletions
@@ -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 |