[sgen] Clear the card table in the finishing pause
[mono.git] / mcs / tools / mono-symbolicate / Makefile
1 thisdir = tools/mono-symbolicate
2 SUBDIRS =
3 include ../../build/rules.make
4
5 PROGRAM = mono-symbolicate.exe
6
7 LOCAL_MCS_FLAGS = \
8         /r:Mono.Cecil.dll       \
9         /r:Mono.CompilerServices.SymbolWriter.dll \
10         /r:System.Xml
11
12 include ../../build/executable.make
13
14 LIB_PATH = $(topdir)/class/lib/$(PROFILE)
15
16 MONO = MONO_PATH="$(LIB_PATH)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(RUNTIME) -O=-inline
17
18 OUT_DIR = Test/out
19 TEST_CS = Test/StackTraceDumper.cs
20 TEST_EXE = $(OUT_DIR)/StackTraceDumper.exe
21 RELEASE_FILE = $(OUT_DIR)/release.out
22 SYMBOLICATE_FILE = $(OUT_DIR)/symbolicate.out
23 SYMBOLICATE_EXPECTED_FILE = Test/symbolicate.expected
24
25 CHECK_DIFF = @\
26         MONO_DEBUG=gen-compact-seq-points $(MONO) $(TEST_EXE) > $(RELEASE_FILE); \
27         $(MONO) $(LIB_PATH)/$(PROGRAM) $(TEST_EXE) $(RELEASE_FILE) | sed "s/).*Test\//) in /" > $(SYMBOLICATE_FILE); \
28         DIFF=$$(diff $(SYMBOLICATE_FILE) $(SYMBOLICATE_EXPECTED_FILE)); \
29         if [ ! -z "$$DIFF" ]; then \
30                 echo "Symbolicate tests failed."; \
31                 echo "If $(SYMBOLICATE_FILE) is correct copy it to $(SYMBOLICATE_EXPECTED_FILE)."; \
32                 echo "Otherwise runtime sequence points need to be fixed."; \
33                 echo "$$DIFF"; \
34                 exit 1; \
35         fi
36
37 BUILD_TEST_EXE = @\
38         rm -rf $(OUT_DIR); \
39         mkdir -p $(OUT_DIR); \
40         $(MCS) -debug $(TEST_CS) -out:$(TEST_EXE)
41
42 check: test-local
43
44 AOT_SUPPORTED = $(shell $(MONO) --aot 2>&1 | grep -q "AOT compilation is not supported" && echo 0 || echo 1)
45
46 test-local: all
47         $(BUILD_TEST_EXE)
48         @echo "Checking $(PROGRAM) without AOT"
49         $(CHECK_DIFF)
50 ifeq ($(AOT_SUPPORTED), 1)
51         @echo "Checking $(PROGRAM) with AOT"
52         @MONO_DEBUG=gen-compact-seq-points $(MONO) --aot $(TEST_EXE) > /dev/null
53         $(CHECK_DIFF)
54         @echo "Checking $(PROGRAM) with AOT (using .msym)"
55         $(BUILD_TEST_EXE)
56         @MONO_DEBUG=gen-compact-seq-points $(MONO) --aot=gen-seq-points-file $(TEST_EXE) > /dev/null
57         $(CHECK_DIFF)
58 endif