[mono-symbolicate] Created SeqPointInfo.cs
[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.dll \
11         /r:System.Core.dll \
12         /r:System.dll
13
14 EXTRA_DISTFILES="mono-symbolicate-native.dll"
15
16 include ../../build/executable.make
17
18 LIB_PATH = $(topdir)/class/lib/$(PROFILE)
19
20 MONO = MONO_PATH="$(LIB_PATH)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(RUNTIME) -O=-inline
21
22 OUT_DIR = Test/out
23 TEST_CS = Test/StackTraceDumper.cs
24 TEST_EXE = $(OUT_DIR)/StackTraceDumper.exe
25 RELEASE_FILE = $(OUT_DIR)/release.out
26 SYMBOLICATE_FILE = $(OUT_DIR)/symbolicate.out
27 SYMBOLICATE_EXPECTED_FILE = Test/symbolicate.expected
28
29 CHECK_DIFF = @\
30         MONO_DEBUG=gen-compact-seq-points $(MONO) $(TEST_EXE) > $(RELEASE_FILE); \
31         $(MONO) $(LIB_PATH)/$(PROGRAM) $(TEST_EXE) $(RELEASE_FILE) | sed "s/).*Test\//) in /" > $(SYMBOLICATE_FILE); \
32         DIFF=$$(diff $(SYMBOLICATE_FILE) $(SYMBOLICATE_EXPECTED_FILE)); \
33         if [ ! -z "$$DIFF" ]; then \
34                 echo "Symbolicate tests failed."; \
35                 echo "If $(SYMBOLICATE_FILE) is correct copy it to $(SYMBOLICATE_EXPECTED_FILE)."; \
36                 echo "Otherwise runtime sequence points need to be fixed."; \
37                 echo "$$DIFF"; \
38                 exit 1; \
39         fi
40
41 BUILD_TEST_EXE = @\
42         rm -rf $(OUT_DIR); \
43         mkdir -p $(OUT_DIR); \
44         $(MCS) -debug $(TEST_CS) -out:$(TEST_EXE)
45
46 check: test-local
47
48 AOT_SUPPORTED = $(shell $(MONO) --aot 2>&1 | grep -q "AOT compilation is not supported" && echo 0 || echo 1)
49
50 test-local: all
51         $(BUILD_TEST_EXE)
52         @echo "Checking $(PROGRAM) without AOT"
53         $(CHECK_DIFF)
54 ifeq ($(AOT_SUPPORTED), 1)
55         @echo "Checking $(PROGRAM) with AOT"
56         @MONO_DEBUG=gen-compact-seq-points $(MONO) --aot $(TEST_EXE) > /dev/null
57         $(CHECK_DIFF)
58         @echo "Checking $(PROGRAM) with AOT (using .msym)"
59         $(BUILD_TEST_EXE)
60         @MONO_DEBUG=gen-compact-seq-points $(MONO) --aot=gen-seq-points-file $(TEST_EXE) > /dev/null
61         $(CHECK_DIFF)
62 endif
63
64 all: mono-symbolicate-native.dll
65
66 mono-symbolicate-native.dll:
67         cp ../../../mono/mini/mono-sgen mono-symbolicate-native.dll
68
69 clean:
70         rm -rf mono-symbolicate-native.dll
71