3 include ..
/..
/build
/rules.make
4 export __SECURITY_BOOTSTRAP_DB
=$(topdir
)/class
/corlib
7 LIBRARY_NAME
= mscorlib.dll
9 LIB_MCS_FLAGS
= $(REFERENCE_SOURCES_FLAGS
) $(RESOURCE_FILES
:%=-resource
:%)
11 #LIBRARY_USE_INTERMEDIATE_FILE = yes
13 ifeq (2, $(FRAMEWORK_VERSION_MAJOR
))
14 LIB_MCS_FLAGS
+= --runtime
:v4
16 ifeq (4, $(FRAMEWORK_VERSION_MAJOR
))
17 LIB_MCS_FLAGS
+= --runtime
:v4
19 $(error Unknown framework version
)
23 RESOURCE_STRINGS
= ..
/..
/..
/external
/referencesource
/mscorlib
/mscorlib.txt
25 LIBRARY_COMPILE
= $(BOOT_COMPILE
)
26 LIBRARY_INSTALL_DIR
= $(mono_libdir
)/mono
/$(FRAMEWORK_VERSION
)
29 resources
/charinfo.nlp \
30 resources
/collation.core.bin \
31 resources
/collation.tailoring.bin \
32 resources
/collation.cjkCHS.bin \
33 resources
/collation.cjkCHT.bin \
34 resources
/collation.cjkJA.bin \
35 resources
/collation.cjkKO.bin \
36 resources
/collation.cjkKOlv2.bin
38 REFERENCE_SOURCES_FLAGS
= -d
:FEATURE_PAL
,GENERICS_WORK
,FEATURE_LIST_PREDICATES
,FEATURE_SERIALIZATION
,FEATURE_ASCII
,FEATURE_LATIN1
,FEATURE_UTF7
,FEATURE_UTF32
,MONO_HYBRID_ENCODING_SUPPORT
,FEATURE_ASYNC_IO
,NEW_EXPERIMENTAL_ASYNC_IO
,FEATURE_UTF32
,FEATURE_EXCEPTIONDISPATCHINFO
,FEATURE_CORRUPTING_EXCEPTIONS
,FEATURE_EXCEPTION_NOTIFICATIONS
,FEATURE_STRONGNAME_MIGRATION
,FEATURE_USE_LCID
,FEATURE_FUSION
,FEATURE_CRYPTO
,FEATURE_X509_SECURESTRINGS
,FEATURE_SYNCHRONIZATIONCONTEXT
,FEATURE_SYNCHRONIZATIONCONTEXT_WAIT
41 REFERENCE_SOURCES_FLAGS
+= -d
:FEATURE_REMOTING
,MONO_COM
,FEATURE_COMINTEROP
,FEATURE_ROLE_BASED_SECURITY
44 ifndef NO_THREAD_ABORT
45 REFERENCE_SOURCES_FLAGS
+= -d
:MONO_FEATURE_THREAD_ABORT
46 TEST_MCS_FLAGS
+= -d
:MONO_FEATURE_THREAD_ABORT
49 ifndef NO_THREAD_SUSPEND_RESUME
50 REFERENCE_SOURCES_FLAGS
+= -d
:MONO_FEATURE_THREAD_SUSPEND_RESUME
51 TEST_MCS_FLAGS
+= -d
:MONO_FEATURE_THREAD_SUSPEND_RESUME
54 WARNING_ABOUT_DISABLED_WARNING
=1635
55 LOCAL_MCS_FLAGS
= -unsafe
-nostdlib
-nowarn
:612,618,$(WARNING_ABOUT_DISABLED_WARNING
) -d
:INSIDE_CORLIB
,MONO_CULTURE_DATA
-d
:LIBC
$(REFERENCE_SOURCES_FLAGS
)
58 # System.IO/DirectoryInfoTest.cs needs Mono.Posix
59 TEST_MCS_FLAGS
+= -debug
-nowarn
:168,219,618,672 -unsafe
-r
:Mono.Posix.dll
-r
:System.Core.dll \
60 -define:MONO_DATACONVERTER_STATIC_METHODS
$(TEST_RESX_RESOURCES
:%=-resource
:%)
63 Test
/resources
/MyResources.resources \
64 Test
/resources
/MyResources.de.resources \
65 Test
/resources
/Empty.resources \
66 Test
/resources
/AFile.txt \
67 Test
/resources
/StreamTest.resources \
68 Test
/resources
/StreamTest.ja.resources \
69 Test
/resources
/bug81759.resources \
70 Test
/resources
/415628.bin \
71 Test
/resources
/Fergie.GED \
72 Test
/resources
/culture-
*.cs \
74 $(TEST_RESOURCES
:.resources
=.resx
)
76 TEST_RESX_RESOURCES
= \
77 Test
/resources
/Resources.resources
79 TEST_RESX_RESOURCES_SATELITE
= \
80 Test
/resources
/Resources.es-ES.resources \
81 Test
/resources
/Resources.nn-NO.resources \
83 CLEAN_FILES
+= $(TEST_RESX_RESOURCES
)
85 include $(topdir
)/build
/library.make
87 ifdef FIXME_CORLIB_CMP
89 corlib_flags
= -unsafe
-nostdlib
90 cmplib
= $(topdir
)/class
/lib
/$(PROFILE
)/corlib_cmp.dll
91 cmppdb
= $(cmplib
:.dll
=.pdb
)
92 cmp_response
= $(depsdir
)/$(PROFILE
)_corlib_cmp.dll.response
93 cmp_makefrag
= $(depsdir
)/$(PROFILE
)_corlib_cmp.dll.makefrag
94 cmp_flags
= -r
:$(PLATFORM_CORLIB
) $(corlib_flags
)
96 EXTRA_DISTFILES
+= corlib_cmp.dll.excludes
97 CLEAN_FILES
+= $(cmplib
) $(cmp_response
) $(cmp_makefrag
) $(cmppdb
)
99 $(cmplib
): $(cmp_makefrag
) $(cmp_response
)
100 $(BOOT_COMPILE
) $(LIBRARY_FLAGS
) $(cmp_flags
) -target
:library
-out
:$@ @
$(cmp_response
)
102 $(cmp_response
): $(sourcefile
) corlib_cmp.dll.excludes
103 @echo Creating
$@ ...
104 @
sort $(sourcefile
) corlib_cmp.dll.excludes | uniq
-u |
$(PLATFORM_CHANGE_SEPARATOR_CMD
) >$@
106 $(cmp_makefrag
): $(cmp_response
)
107 @echo Creating
$@ ...
108 @sed
's,^,$(cmplib): ,' $< >$@
110 # Since we make corlib_cmp on demand, there isn't a real need
111 # to have full dep tracking for it. Also, the generation of this
112 # file is busted on Win32 ('sort' seems to mess up line endings),
113 # leading to a broken build.
115 # -include $(cmp_makefrag)
117 $(cmp_response
) $(cmp_makefrag
): Makefile
$(depsdir
)/.stamp
120 $(TEST_RESX_RESOURCES
) $(TEST_RESX_RESOURCES_SATELITE
): %.resources
: %.resx
121 $(RESGEN
) $< || cp
$@.prebuilt
$@
123 TEST_RESOURCES
= $(TEST_RESX_RESOURCES
) $(TEST_RESX_RESOURCES_SATELITE
)
125 satellite_assembly1
= es-ES
/$(patsubst %.dll
,%.resources.dll
,$(test_lib
))
126 satellite_assembly2
= nn-NO
/$(patsubst %.dll
,%.resources.dll
,$(test_lib
))
128 $(test_lib
): $(TEST_RESOURCES
) $(satellite_assembly1
) $(satellite_assembly2
)
130 $(satellite_assembly1
): Test
/resources
/culture-es-ES.cs Test
/resources
/Resources.es-ES.resources
132 $(CSCOMPILE
) -target
:library
-r
:$(corlib
) Test
/resources
/culture-es-ES.cs
-resource
:Test
/resources
/Resources.es-ES.resources
-out
:$@
134 $(satellite_assembly2
): Test
/resources
/culture-nn-NO.cs Test
/resources
/Resources.nn-NO.resources
136 $(CSCOMPILE
) -target
:library
-r
:$(corlib
) Test
/resources
/culture-nn-NO.cs
-resource
:Test
/resources
/Resources.nn-NO.resources
-out
:$@
138 vtsdir
= Test
/System.Runtime.Serialization.Formatters.Binary
/VersionTolerantSerialization
140 $(vtsdir
)/$(PROFILE
)_TestLib
/1.0/Address.dll \
141 $(vtsdir
)/$(PROFILE
)_TestLib
/2.0/Address.dll \
142 $(vtsdir
)/$(PROFILE
)_TestLib
/3.0/Address.dll \
143 $(vtsdir
)/$(PROFILE
)_TestLib
/4.0/Address.dll \
144 $(vtsdir
)/$(PROFILE
)_TestLib
/5.0/Address.dll \
145 $(vtsdir
)/$(PROFILE
)_TestLib
/6.0/Address.dll
147 test-vts
: $(vtslibs
) $(vtsdir
)/$(PROFILE
)_TestLib
/BinarySerializationOverVersions.exe
149 $(vtsdir
)/$(PROFILE
)_TestLib
/%/Address.dll
: $(vtsdir
)/VersionTolerantSerializationTestLib
/%/Address.cs
151 $(CSCOMPILE
) -target
:library
-r
:$(corlib
) -warn
:0 -out
:$@
$^
153 $(vtsdir
)/$(PROFILE
)_TestLib
/BinarySerializationOverVersions.exe
: $(vtsdir
)/BinarySerializationOverVersions.cs
$(vtsdir
)/$(PROFILE
)_TestLib
/1.0/Address.dll
$(test_nunit_dep
)
154 $(CSCOMPILE
) $(test_nunit_ref
) -warn
:0 -r
:$(corlib
) \
155 -r
:$(vtsdir
)/$(PROFILE
)_TestLib
/1.0/Address.dll \
156 $(vtsdir
)/BinarySerializationOverVersions.cs
-out
:$@
157 @cp
$(vtsdir
)/$(PROFILE
)_TestLib
/1.0/Address.dll
$(vtsdir
)/$(PROFILE
)_TestLib
159 # Need to define TEST_MONO_PATH to an absolute dir since the test is ran from a subdir
160 TEST_MONO_PATH
=$(PWD
)/..
/lib
/$(PROFILE
)
162 run-test-vts
: test-vts
163 @echo Running vts tests...
164 PATH
="$(TEST_RUNTIME_WRAPPERS_PATH):$(PATH)" $(TEST_RUNTIME
) $(RUNTIME_FLAGS
) $(TEST_HARNESS
) -noshadow \
165 $(vtsdir
)/$(PROFILE
)_TestLib
/BinarySerializationOverVersions.exe
168 run-test
: run-test-vts
172 $(vtsdir
)/VersionTolerantSerializationTestLib
/1.0/Address.cs \
173 $(vtsdir
)/VersionTolerantSerializationTestLib
/2.0/Address.cs \
174 $(vtsdir
)/VersionTolerantSerializationTestLib
/3.0/Address.cs \
175 $(vtsdir
)/VersionTolerantSerializationTestLib
/4.0/Address.cs \
176 $(vtsdir
)/VersionTolerantSerializationTestLib
/5.0/Address.cs \
177 $(vtsdir
)/VersionTolerantSerializationTestLib
/6.0/Address.cs \
178 $(vtsdir
)/BinarySerializationOverVersions.cs
181 # Android TimeZoneInfo testing....
187 # Remove some code that is protected so we don't have to include all the corlib files.
188 tzi.exe
:System
/AndroidPlatform.cs
$(wildcard System
/TimeZone
*.cs
) ..
/..
/build
/common
/Consts.cs ..
/..
/build
/common
/Locale.cs ..
/Mono.Options
/Mono.Options
/Options.cs
189 trap
"rm -f $(TMP_FILE1) $(TMP_FILE2)" EXIT INT QUIT TERM
&& \
190 sed
's/Environment\.GetResourceString/string.Format/g' ..
/..
/..
/external
/referencesource
/mscorlib
/system
/timezoneinfo.cs
> $(TMP_FILE1
) && \
191 sed
's/StringBuilder\.DefaultCapacity/100/g' ..
/..
/..
/external
/referencesource
/mscorlib
/system
/text
/stringbuildercache.cs
> $(TMP_FILE2
) && \
192 $(MCS
) /debug
+ /out
:$@
-unsafe
-nowarn
:612,618 -d
:INSIDE_CORLIB
,MONO_CULTURE_DATA
-d
:LIBC
$(REFERENCE_SOURCES_FLAGS
) "/d:SELF_TEST;NET_1_1;NET_2_0;NET_2_1;NET_3_5;NET_4_0;NET_4_5;MONO;DISABLE_CAS_USE;MOBILE;MOBILE_DYNAMIC;MONODROID;ANDROID" $^
$(TMP_FILE1
) $(TMP_FILE2
)
195 mkdir
-p android
/tzdb
/usr
/share
/zoneinfo
196 mkdir
-p android
/tzdb
/misc
/zoneinfo
/zoneinfo
197 android_root
=`adb shell echo '$$ANDROID_ROOT' | tr -d "\r"` ; \
198 android_data
=`adb shell echo '$$ANDROID_DATA' | tr -d "\r"` ; \
199 adb
$(ADB_TARGET
) pull
$$android_root/usr
/share
/zoneinfo android
/tzdb
/usr
/share
/zoneinfo || true
; \
200 adb
$(ADB_TARGET
) pull
$$android_data/misc
/zoneinfo
/tzdata android
/tzdb
/misc
/zoneinfo || true
202 android-dump-tzdata
: tzi.exe android-pull-tzdb
204 __XA_OVERRIDE_TIMEZONE_ID__
=America
/New_York ANDROID_ROOT
="`pwd`/android/tzdb" ANDROID_DATA
="`pwd`/android/tzdb" $(TEST_RUNTIME
) tzi.exe
-o android
/tzdata