1 TOP
=$(realpath
$(CURDIR
)/..
/..
)
2 include $(TOP
)/sdks
/paths.mk
4 EMCC
=source
$(TOP
)/sdks
/builds
/toolchains
/emsdk
/emsdk_env.sh
&& emcc
5 D8
=$(TOP
)/sdks
/wasm
/v8
/out.gn
/x64.release
/d8
6 WASM_BCL_DIR
=$(TOP
)/sdks
/out
/bcl
/wasm
7 MANAGED_DEPLOY_DIR
=$(TOP
)/sdks
/wasm
/managed
8 MINI_PATH
=$(TOP
)/mono
/mini
40 MINI_TEST_SOURCES
= $(patsubst %,$(MINI_PATH
)/%,$(MINI_TEST_FILES
))
42 TEST_DEPS
= $(patsubst %,managed
/%,$(BCL_ASSEMBLIES
)) managed
/nunitlite.dll
43 TEST_MCS_DEPS
= $(patsubst %,-r
:%, $(TEST_DEPS
))
47 git clone https
://chromium.googlesource.com
/chromium
/tools
/depot_tools.git depot_tools
50 .stamp-v8
: .stamp-depot-tools
51 PATH
=$(TOP
)/sdks
/wasm
/depot_tools
:$$PATH fetch v8
52 cd v8
&& tools
/dev
/v8gen.py x64.release
53 cd v8
&& $(TOP
)/sdks
/wasm
/depot_tools
/ninja
-C out.gn
/x64.release
60 $(EMCC
) -g
-Os
-s WASM
=1 -s ALLOW_MEMORY_GROWTH
=1 -s BINARYEN
=1 -s
"BINARYEN_TRAP_MODE='clamp'" -s TOTAL_MEMORY
=134217728 -s ALIASING_FUNCTION_POINTERS
=0 driver.c
-c
-o driver.o
62 mono.js
: driver.o library_mono.js
$(TOP
)/sdks
/out
/wasm-interp
/lib
/libmonosgen-2.0.a
63 $(EMCC
) -g4
-Os
-s WASM
=1 -s ALLOW_MEMORY_GROWTH
=1 -s BINARYEN
=1 -s
"BINARYEN_TRAP_MODE='clamp'" -s TOTAL_MEMORY
=134217728 -s ALIASING_FUNCTION_POINTERS
=0 -s ASSERTIONS
=2 --js-library library_mono.js driver.o
$(TOP
)/sdks
/out
/wasm-interp
/lib
/libmonosgen-2.0.a
-o mono.js
70 $(patsubst %,managed
/%,$(BCL_ASSEMBLIES
)): managed
/%: $(WASM_BCL_DIR
)/% | managed
/
73 #FIXME change BCL sdk build to include nunitlite.dll in out/bcl/wasm/
74 managed
/nunitlite.dll
: $(TOP
)/mcs
/class
/lib
/wasm
/nunitlite.dll | managed
/
75 cd
$(TOP
)/mcs
/tools
/nunit-lite
&& make PROFILE
=wasm
78 managed
/main.exe
: $(TEST_DEPS
) $(APP_SOURCES
) | managed
/
79 mcs
/nostdlib
/unsafe
-out
:$@
$(TEST_MCS_DEPS
) $(APP_SOURCES
)
81 managed
/mini_tests.dll
: $(TEST_DEPS
) $(MINI_TEST_SOURCES
) mini-test-runner.cs | managed
/
82 mcs
/nostdlib
/unsafe
-target
:library
-out
:$@
-define:__MOBILE__
,ARCH_32
$(TEST_MCS_DEPS
) $(MINI_TEST_SOURCES
) mini-test-runner.cs
84 build-managed
: managed
/nunitlite.dll managed
/mini_tests.dll managed
/main.exe
86 build
: build-native build-managed
89 $(D8
) --expose_wasm
test.js