3 include ../../build/rules.make
7 # Because System.dll and Syste.Xml.dll have cyclic dependency we need two-pass build.
8 # 1st pass - build System.dll without System.Xml.dll reference
9 # 2nd pass - build System.dll with System.Xml.dll reference
11 LIB_MCS_FLAGS = /r:$(corlib) $(EXTRA_FLAGS)
12 TEST_MCS_FLAGS = /nowarn:1595 /nowarn:0618
14 CYCLIC_DEP = System.Xml.dll
17 System.Text.RegularExpressions/notes.txt \
18 System.ComponentModel.Design/Changelog \
21 A_SYSTEM = ../lib/$(PROFILE)/System.dll
22 A_SYSTEMXML = ../lib/$(PROFILE)/System.Xml.dll
25 include ../../build/library.make
27 @if test ! -f $(A_SYSTEMXML) ; then exit 0; fi
28 @ if test $(A_SYSTEM) -ot $(A_SYSTEMXML) ; then \
30 $(MAKE) SECOND_PASS=yes EXTRA_FLAGS='/define:XML_DEP /r:$(CYCLIC_DEP)' || exit 1; \
34 # 1. Build temporary System.dll without depending on System.Xml.dll
35 # 2. Since mcs.exe depends on System.dll, use BOOT_COMPILE to compile System.dll
37 @if test ! -f ../lib/$(PROFILE)/$(CYCLIC_DEP) ; then \
38 echo "Creating temporary $(LIBRARY) without $(CYCLIC_DEP) reference." ; \
40 $(MAKE) SECOND_PASS=yes CSCOMPILE='$(BOOT_COMPILE)' || exit 1 ; \
41 rm -f '$(depsdir)/$(PROFILE)_$(LIBRARY).stamp'; \
43 $(MAKE) SECOND_PASS=yes EXTRA_FLAGS='/define:XML_DEP /r:$(CYCLIC_DEP)' || exit 1; \
46 ## TODO: how to do this without duplication
49 @$(MAKE) SECOND_PASS=yes EXTRA_FLAGS='/r:$(CYCLIC_DEP)' install-local || exit 1; \
52 @$(MAKE) SECOND_PASS=yes EXTRA_FLAGS='/r:$(CYCLIC_DEP)' test-local || exit 1; \
55 @$(MAKE) SECOND_PASS=yes EXTRA_FLAGS='/r:$(CYCLIC_DEP)' run-test-local || exit 1; \
58 @$(MAKE) SECOND_PASS=yes EXTRA_FLAGS='/r:$(CYCLIC_DEP)' clean-local || exit 1; \