1 MAKEFLAGS := $(MAKEFLAGS) --no-builtin-rules
5 RUNTIME_ARGS=--config tests-config --optimize=all --debug
6 TEST_RUNTIME_ARGS ?= $(RUNTIME_ARGS)
7 TEST_AOT_BUILD_FLAGS ?= $(AOT_BUILD_FLAGS)
8 TEST_AOT_RUN_FLAGS ?= $(AOT_RUN_FLAGS)
10 CLASS=$(mcs_topdir)/class/lib/$(DEFAULT_PROFILE)
12 with_mono_path = MONO_PATH=$(CLASS)
14 RUNTIME = $(with_mono_path) $(top_builddir)/runtime/mono-wrapper
15 TOOLS_RUNTIME = MONO_PATH=$(mcs_topdir)/class/lib/build $(top_builddir)/runtime/mono-wrapper --aot-path=$(mcs_topdir)/class/lib/build
18 PROFILE_MCS_FLAGS = -d:MOBILE,MOBILE_LEGACY,FULL_AOT_DESKTOP
22 PROFILE_MCS_FLAGS = -d:MOBILE,MOBILE_LEGACY
28 PLATFORM_PATH_SEPARATOR=;
30 PLATFORM_PATH_SEPARATOR=:
33 TEST_RUNNER = ../test-runner.exe
37 DEFAULT_WIN32_RUNTIME=$(shell cygpath -w -a $(top_builddir)/@mono_runtime@ | sed 's/\\/\\\\/g')
39 DEFAULT_WIN32_RUNTIME=$(top_builddir)/runtime/mono-wrapper)
41 TEST_RUNNER += --config tests-config --runtime "$(if $(MONO_EXECUTABLE),$(shell cygpath -w -a $(MONO_EXECUTABLE) | sed 's/\\/\\\\/g'),$(DEFAULT_WIN32_RUNTIME))"
43 TEST_RUNNER += --config tests-config --runtime "$(if $(MONO_EXECUTABLE),$(MONO_EXECUTABLE),$(top_builddir)/runtime/mono-wrapper)"
46 TEST_RUNNER += $(if $(V), --verbose,)
49 TEST_RUNNER += --runtime-args "$(TEST_AOT_RUN_FLAGS)"
53 TEST_RUNNER += --runtime-args "$(TEST_AOT_RUN_FLAGS)"
56 TEST_RUNNER += --runtime-args "$(TEST_RUNTIME_FLAGS)"
58 TEST_RUNNER += --mono-path "$(CLASS)"
63 GACUTIL= $(mcs_topdir)/class/lib/build/gacutil.exe
64 SN= $(mcs_topdir)/class/lib/build/sn.exe
66 MCS= $(TOOLS_RUNTIME) $(CSC) -noconfig -nologo -debug:portable -target:library $(PROFILE_MCS_FLAGS)
70 EXTRA_DIST= README $(SIGNING_KEY) $(GACTESTLIB_SRCS)
74 .PHONY: run-test test-local
77 samedir/LoadFromMain.cs \
78 samedir/LoadFileMain.cs \
79 separatedir/LoadFromMain.cs \
80 separatedir/LoadFileMain.cs \
81 mainanddep/LoadFromMain.cs \
82 mainanddep/LoadFileMain.cs
84 LIBRARIES_CS = src/Dep.cs \
87 EXTRA_DIST += $(TESTS_CS) $(LIBRARIES_CS)
89 TESTS_EXE = $(TESTS_CS:.cs=.exe)
91 TESTS_EXE_AOT = $(TESTS_EXE:.exe=.exe$(PLATFORM_AOT_SUFFIX))
96 separatedir/middle/Mid.dll \
97 separatedir/middle/Dep.dll \
98 mainanddep/middle/Mid.dll \
101 REFERENCED_ASMS_AOT = $(REFERENCED_ASMS:.dll=.dll$(PLATFORM_AOT_SUFFIX))
104 TESTS_EXE_DEPEND=$(TESTS_EXE_AOT)
105 REFERENCED_ASMS_DEPEND=$(REFERENCED_ASMS_AOT)
108 TESTS_EXE_DEPEND=$(TESTS_EXE_AOT)
109 REFERENCED_ASMS_DEPEND=$(REFERENCED_ASMS_AOT)
111 TESTS_EXE_DEPEND=$(TESTS_EXE)
112 REFERENCED_ASMS_DEPEND=$(REFERENCED_ASMS)
118 # these don't work with full AOT
121 mainanddep/LoadFromMain.exe \
122 mainanddep/LoadFileMain.exe \
123 separatedir/LoadFileMain.exe
128 $(MAKE) run-assembly-load-reference-tests
131 test-local: compile-samedir compile-separatedir compile-mainanddep
133 compile-samedir: samedir/LoadFromMain.exe samedir/LoadFileMain.exe samedir/Dep.dll samedir/Mid.dll
135 samedir/%.dll: src/%.dll
139 compile-separatedir: separatedir/LoadFromMain.exe separatedir/LoadFileMain.exe separatedir/middle/Dep.dll separatedir/middle/Mid.dll
141 separatedir/middle/%.dll: src/%.dll
145 compile-mainanddep: mainanddep/LoadFromMain.exe mainanddep/LoadFileMain.exe mainanddep/Dep.dll mainanddep/middle/Mid.dll
147 mainanddep/Dep.dll: src/Dep.dll
151 mainanddep/middle/Mid.dll: src/Mid.dll
155 src/Dep.dll: src/Dep.cs
157 $(MCS) -out:$@ $< -target:library
159 src/Mid.dll: src/Mid.cs src/Dep.dll
160 $(MCS) -out:$@ $< -r:src/Dep.dll -target:library
162 %/LoadFromMain.exe: %/LoadFromMain.cs
164 $(MCS) -out:$@ $< -target:exe
166 %/LoadFileMain.exe: %/LoadFileMain.cs
168 $(MCS) -out:$@ $< -target:exe
170 %/LoadFromMain.exe$(PLATFORM_AOT_SUFFIX): %/LoadFromMain.exe
171 $(RUNTIME) $(TEST_AOT_BUILD_FLAGS) $<
173 %/LoadFileMain.exe$(PLATFORM_AOT_SUFFIX): %/LoadFileMain.exe
174 $(RUNTIME) $(TEST_AOT_BUILD_FLAGS) $<
176 %.dll$(PLATFORM_AOT_SUFFIX): %.dll
177 $(RUNTIME) $(TEST_AOT_BUILD_FLAGS) $<
179 run-assembly-load-reference-tests: $(TESTS_EXE_DEPEND) $(REFERENCED_ASMS_DEPEND)
180 $(TOOLS_RUNTIME) $(TEST_RUNNER) --testsuite-name $@ --disabled "$(DISABLED_TESTS)" $(TESTS_EXE)