[corlib] rename NotWorkingInterpreter and InterpreterNotWorking categories (#6225)
[mono-project.git] / sdks / wasm / Makefile
blobbfbbe737eb6f4fd87889b29395b36583c5ef353c
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
10 BCL_ASSEMBLIES= \
11 mscorlib.dll \
12 System.dll \
13 System.Core.dll
15 DEPS_ASSEMBLIES= \
16 nunitlite.dll
18 MINI_TEST_FILES= \
19 TestDriver.cs \
20 aot-tests.cs \
21 arrays.cs \
22 basic-calls.cs \
23 basic-float.cs \
24 basic-long.cs \
25 basic-math.cs \
26 basic.cs \
27 exceptions.cs \
28 generics.cs \
29 gshared.cs \
30 objects.cs \
31 builtin-types.cs \
32 devirtualization.cs \
33 mixed.cs \
34 gc-test.cs
36 APP_SOURCES = \
37 main.cs \
38 incrementalrunner.cs
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))
46 .stamp-depot-tools:
47 git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git depot_tools
48 touch $@
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
54 touch $@
56 .PHONY: toolchain
57 toolchain: .stamp-v8
59 driver.o: driver.c
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
65 build-native: mono.js
67 managed/:
68 mkdir -p $@
70 $(patsubst %,managed/%,$(BCL_ASSEMBLIES)): managed/%: $(WASM_BCL_DIR)/% | managed/
71 cp $< $@
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
76 cp $< $@
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
88 run: toolchain build
89 $(D8) --expose_wasm test.js
91 clean:
93 package: