2014-08-13 10:39:27 +01:00
|
|
|
thisdir = tools/linker
|
|
|
|
SUBDIRS =
|
|
|
|
include ../../build/rules.make
|
|
|
|
|
|
|
|
PROGRAM = monolinker.exe
|
|
|
|
|
2016-08-03 10:59:49 +00:00
|
|
|
LIB_REFS = System System.Core System.Xml Mono.Cecil
|
2014-08-13 10:39:27 +01:00
|
|
|
|
2018-04-24 09:31:23 +00:00
|
|
|
TEST_CASES := \
|
2017-11-28 19:36:51 +00:00
|
|
|
mscorlib/test-array.cs \
|
2018-04-24 09:31:23 +00:00
|
|
|
mscorlib/test-remoting.cs \
|
|
|
|
System/test-security.cs
|
2017-08-21 15:34:15 +00:00
|
|
|
|
|
|
|
ifndef AOT_FRIENDLY_PROFILE
|
|
|
|
TEST_CASES += \
|
|
|
|
mscorlib/test-reflection.cs
|
|
|
|
endif
|
|
|
|
|
|
|
|
TESTS_COMPILER = $(MCS) -nologo -noconfig -debug:portable -r:$(topdir)/class/lib/$(PROFILE_DIRECTORY)/mscorlib.dll
|
|
|
|
|
|
|
|
check: compile-tests
|
|
|
|
$(MAKE) run-tests
|
|
|
|
|
|
|
|
compile-tests: $(TEST_CASES)
|
|
|
|
|
|
|
|
mscorlib/test-%.cs:
|
|
|
|
$(TESTS_COMPILER) Tests/$@ /out:Tests/$(@:.cs=.exe)
|
|
|
|
|
2018-04-24 09:31:23 +00:00
|
|
|
System/test-%.cs:
|
|
|
|
$(TESTS_COMPILER) -r:$(topdir)/class/lib/$(PROFILE_DIRECTORY)/System.dll Tests/$@ /out:Tests/$(@:.cs=.exe)
|
|
|
|
|
2017-08-21 15:34:15 +00:00
|
|
|
run-tests: $(TEST_CASES:.cs=.exe)
|
|
|
|
|
|
|
|
LINKER_OUTPUT := illink-output-$(PROFILE_DIRECTORY)
|
|
|
|
PROFILE_PATH = $(topdir)/class/lib/$(PROFILE_DIRECTORY)
|
|
|
|
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)
|
|
|
|
TEST_EXEC = MONO_PATH=$(LINKER_OUTPUT) $(RUNTIME) $(RUNTIME_FLAGS) --debug -O=-aot
|
|
|
|
|
|
|
|
.NOTPARALLEL:
|
|
|
|
|
2018-04-24 09:31:23 +00:00
|
|
|
System/test-%.exe mscorlib/test-%.exe:
|
2017-08-21 15:34:15 +00:00
|
|
|
@rm -rf $(LINKER_OUTPUT)
|
|
|
|
@mkdir $(LINKER_OUTPUT)
|
|
|
|
@echo Testing $@
|
|
|
|
$(LINKER) -a Tests/$@
|
|
|
|
$(TEST_EXEC) $(LINKER_OUTPUT)/$(@F)
|
|
|
|
@rm -rf $(LINKER_OUTPUT)
|
2014-08-13 10:39:27 +01:00
|
|
|
|
|
|
|
include ../../build/executable.make
|