codeowners update
[mono.git] / mcs / tools / linker / Makefile
1 thisdir = tools/linker
2 SUBDIRS =
3 include ../../build/rules.make
4
5 PROGRAM = monolinker.exe
6
7 LIB_REFS = System System.Core System.Xml Mono.Cecil
8
9 TEST_CASES = \
10         mscorlib/test-array.cs
11
12 ifndef AOT_FRIENDLY_PROFILE
13 TEST_CASES += \
14         mscorlib/test-reflection.cs
15 endif
16
17 TESTS_COMPILER = $(MCS) -nologo -noconfig -debug:portable -r:$(topdir)/class/lib/$(PROFILE_DIRECTORY)/mscorlib.dll
18
19 check: compile-tests
20         $(MAKE) run-tests
21
22 compile-tests: $(TEST_CASES)
23
24 mscorlib/test-%.cs:
25         $(TESTS_COMPILER) Tests/$@ /out:Tests/$(@:.cs=.exe)
26
27 run-tests: $(TEST_CASES:.cs=.exe)
28
29 LINKER_OUTPUT := illink-output-$(PROFILE_DIRECTORY)
30 PROFILE_PATH = $(topdir)/class/lib/$(PROFILE_DIRECTORY)
31 LINKER = MONO_PATH=$(topdir)/class/lib/$(BUILD_TOOLS_PROFILE) $(RUNTIME) $(RUNTIME_FLAGS) $(topdir)/class/lib/$(BUILD_TOOLS_PROFILE)/monolinker.exe -c link -out $(LINKER_OUTPUT) -b true -d $(PROFILE_PATH)
32 TEST_EXEC = MONO_PATH=$(LINKER_OUTPUT) $(RUNTIME) $(RUNTIME_FLAGS) --debug -O=-aot
33
34 .NOTPARALLEL:
35
36 mscorlib/test-%.exe:
37         @rm -rf $(LINKER_OUTPUT)
38         @mkdir $(LINKER_OUTPUT)
39         @echo Testing $@
40         $(LINKER) -a Tests/$@
41         $(TEST_EXEC) $(LINKER_OUTPUT)/$(@F)
42         @rm -rf $(LINKER_OUTPUT)
43
44 include ../../build/executable.make