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_WARN_AS_ERROR
= yes
12 #LIBRARY_USE_INTERMEDIATE_FILE = yes
14 ifeq (2, $(FRAMEWORK_VERSION_MAJOR
))
15 LIB_MCS_FLAGS
+= -runtimemetadataversion
:v4.0
.30319
17 ifeq (4, $(FRAMEWORK_VERSION_MAJOR
))
18 LIB_MCS_FLAGS
+= -runtimemetadataversion
:v4.0
.30319
20 $(error Unknown framework version
)
24 ifeq ($(PROFILE
),build
)
25 CSC_RUNTIME_FLAGS
=--profile
=aot
:output
=$(topdir
)/class
/lib
/$(PROFILE_DIRECTORY
)/csc.
$(LIBRARY
).aotprofile
28 RESX_RESOURCE_STRING
= \
29 ..
/..
/..
/external
/corert
/src
/System.Private.CoreLib
/src
/Resources
/Strings.resx \
30 ..
/..
/..
/external
/corefx
/src
/System.Collections.Concurrent
/src
/Resources
/Strings.resx \
31 ..
/..
/..
/external
/corefx
/src
/System.Memory
/src
/Resources
/Strings.resx \
32 ..
/..
/..
/external
/corefx
/src
/System.Runtime.InteropServices.RuntimeInformation
/src
/Resources
/Strings.resx \
33 ..
/..
/..
/external
/corefx
/src
/System.Threading.Tasks.Parallel
/src
/Resources
/Strings.resx \
35 LIBRARY_COMPILE
= $(BOOT_COMPILE
)
36 LIBRARY_INSTALL_DIR
= $(mono_libdir
)/mono
/$(FRAMEWORK_VERSION
)
38 ifneq ($(PROFILE
),basic
)
39 RESOURCE_STRINGS
= ..
/referencesource
/mscorlib
/mscorlib.txt
42 MODULE_DEPS
= $(IL_REPLACE
)
46 resources
/charinfo.nlp \
47 resources
/collation.core.bin \
48 resources
/collation.tailoring.bin \
49 resources
/collation.cjkCHS.bin \
50 resources
/collation.cjkCHT.bin \
51 resources
/collation.cjkJA.bin \
52 resources
/collation.cjkKO.bin \
53 resources
/collation.cjkKOlv2.bin \
54 LinkerDescriptor
/mscorlib.xml
56 REFERENCE_SOURCES_FLAGS
= -d
:FEATURE_PAL
,GENERICS_WORK
,FEATURE_LIST_PREDICATES
,FEATURE_SERIALIZATION
,FEATURE_ENCODINGNLS
,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
,HAS_CORLIB_CONTRACTS
59 REFERENCE_SOURCES_FLAGS
+= -d
:FEATURE_MACL
62 ifndef AOT_FRIENDLY_PROFILE
63 REFERENCE_SOURCES_FLAGS
+= -d
:FEATURE_REMOTING
,MONO_COM
,FEATURE_COMINTEROP
,FEATURE_ROLE_BASED_SECURITY
66 ifndef NO_THREAD_ABORT
67 REFERENCE_SOURCES_FLAGS
+= -d
:MONO_FEATURE_THREAD_ABORT
68 TEST_MCS_FLAGS
+= -d
:MONO_FEATURE_THREAD_ABORT
71 ifndef NO_THREAD_SUSPEND_RESUME
72 REFERENCE_SOURCES_FLAGS
+= -d
:MONO_FEATURE_THREAD_SUSPEND_RESUME
73 TEST_MCS_FLAGS
+= -d
:MONO_FEATURE_THREAD_SUSPEND_RESUME
76 ifndef NO_MULTIPLE_APPDOMAINS
77 REFERENCE_SOURCES_FLAGS
+= -d
:MONO_FEATURE_MULTIPLE_APPDOMAINS
78 TEST_MCS_FLAGS
+= -d
:MONO_FEATURE_MULTIPLE_APPDOMAINS
82 LIB_MCS_FLAGS
+= -d
:MONO_FEATURE_CONSOLE
85 ifdef MONO_FEATURE_APPLETLS
86 LIB_MCS_FLAGS
+= -d
:MONO_FEATURE_APPLETLS
90 LIB_MCS_FLAGS
+= -d
:ONLY_APPLETLS
93 ifdef MONO_FEATURE_APPLE_X509
94 LIB_MCS_FLAGS
+= -d
:MONO_FEATURE_APPLE_X509
97 COREFX_FLAGS
:= -d
:FEATURE_PORTABLE_SPAN
99 WARNING_ABOUT_DISABLED_WARNING
=1635
100 LOCAL_MCS_FLAGS
= -unsafe
-nostdlib
-nowarn
:612,618,3001,3002,3003,$(WARNING_ABOUT_DISABLED_WARNING
) -d
:INSIDE_CORLIB
,MONO_CULTURE_DATA
-d
:LIBC
$(REFERENCE_SOURCES_FLAGS
) $(COREFX_FLAGS
)
103 TEST_LIB_REFS
= System.Core System
105 XTEST_LIB_REFS
= System System.Core Facades
/System.Threading.Tasks Facades
/System.Runtime.InteropServices.RuntimeInformation System.Numerics.Vectors System.Runtime.CompilerServices.Unsafe
106 XTEST_LIB_FLAGS
= -d
:netcoreapp
-publicsign
-keyfile
:..
/mono.snk
108 ifndef AOT_FRIENDLY_PROFILE
109 ifneq ($(PROFILE
),testing_aot_hybrid
)
110 TEST_LIB_REFS
+= Mono.Posix
114 # System.IO/DirectoryInfoTest.cs needs Mono.Posix
115 TEST_MCS_FLAGS
+= -debug
-nowarn
:168,219,618,672 -unsafe \
116 -define:MONO_DATACONVERTER_STATIC_METHODS
$(TEST_RESX_RESOURCES
:%=-resource
:%) -resource
:LinkerDescriptor
/mscorlib_test.xml
,$(test_lib
:.dll
=.xml
)
119 CC_PROFILE
:= $(filter monotouch
% xammac
, $(PROFILE
))
123 CommonCrypto
/MD5CryptoServiceProvider.g.cs \
124 CommonCrypto
/SHA256Managed.g.cs \
125 CommonCrypto
/RC2CryptoServiceProvider.g.cs \
126 CommonCrypto
/SHA384Managed.g.cs \
127 CommonCrypto
/DESCryptoServiceProvider.g.cs \
128 CommonCrypto
/SHA1CryptoServiceProvider.g.cs \
129 CommonCrypto
/SHA512Managed.g.cs \
130 CommonCrypto
/MD2Managed.g.cs \
131 CommonCrypto
/SHA1Managed.g.cs \
132 CommonCrypto
/TripleDESCryptoServiceProvider.g.cs \
133 CommonCrypto
/MD4Managed.g.cs
136 $(MAKE
) -C CommonCrypto
141 Test
/resources
/MyResources.resources \
142 Test
/resources
/MyResources.de.resources \
143 Test
/resources
/Empty.resources \
144 Test
/resources
/AFile.txt \
145 Test
/resources
/StreamTest.resources \
146 Test
/resources
/StreamTest.ja.resources \
147 Test
/resources
/bug81759.resources \
148 Test
/resources
/415628.bin \
149 Test
/resources
/Fergie.GED \
150 Test
/resources
/culture-
*.cs \
152 $(TEST_RESOURCES
:.resources
=.resx
) \
153 LinkerDescriptor
/mscorlib_test.xml
155 TEST_RESX_RESOURCES
= \
156 Test
/resources
/Resources.resources
158 TEST_RESX_RESOURCES_SATELITE
= \
159 Test
/resources
/Resources.es-ES.resources \
160 Test
/resources
/Resources.nn-NO.resources \
162 CLEAN_FILES
+= $(TEST_RESX_RESOURCES
) $(IL_REPLACE
)
164 include $(topdir
)/build
/library.make
166 $(TEST_RESX_RESOURCES
) $(TEST_RESX_RESOURCES_SATELITE
): %.resources
: %.resx
167 $(RESGEN
) $< || cp
$@.prebuilt
$@
169 TEST_RESOURCES
= $(TEST_RESX_RESOURCES
) $(TEST_RESX_RESOURCES_SATELITE
)
171 satellite_assembly1
= es-ES
/$(patsubst %.dll
,%.resources.dll
,$(test_lib
))
172 satellite_assembly2
= nn-NO
/$(patsubst %.dll
,%.resources.dll
,$(test_lib
))
174 $(test_lib_output
): $(TEST_RESOURCES
) $(satellite_assembly1
) $(satellite_assembly2
) $(test_lib_dir
)
176 $(satellite_assembly1
): Test
/resources
/culture-es-ES.cs Test
/resources
/Resources.es-ES.resources
178 $(CSCOMPILE
) -target
:library
-r
:$(topdir
)/class
/lib
/$(PROFILE
)/mscorlib.dll Test
/resources
/culture-es-ES.cs
-resource
:Test
/resources
/Resources.es-ES.resources
-out
:$@
180 $(satellite_assembly2
): Test
/resources
/culture-nn-NO.cs Test
/resources
/Resources.nn-NO.resources
182 $(CSCOMPILE
) -target
:library
-r
:$(topdir
)/class
/lib
/$(PROFILE
)/mscorlib.dll Test
/resources
/culture-nn-NO.cs
-resource
:Test
/resources
/Resources.nn-NO.resources
-out
:$@
184 vtsdir
= Test
/System.Runtime.Serialization.Formatters.Binary
/VersionTolerantSerialization
186 $(vtsdir
)/$(PROFILE
)_TestLib
/1.0/Address.dll \
187 $(vtsdir
)/$(PROFILE
)_TestLib
/2.0/Address.dll \
188 $(vtsdir
)/$(PROFILE
)_TestLib
/3.0/Address.dll \
189 $(vtsdir
)/$(PROFILE
)_TestLib
/4.0/Address.dll \
190 $(vtsdir
)/$(PROFILE
)_TestLib
/5.0/Address.dll \
191 $(vtsdir
)/$(PROFILE
)_TestLib
/6.0/Address.dll
193 test-vts
: $(vtslibs
) $(vtsdir
)/$(PROFILE
)_TestLib
/BinarySerializationOverVersions.exe
195 $(vtsdir
)/$(PROFILE
)_TestLib
/%/Address.dll
: $(vtsdir
)/VersionTolerantSerializationTestLib
/%/Address.cs
197 $(CSCOMPILE
) -target
:library
-warn
:0 -r
:$(topdir
)/class
/lib
/$(PROFILE
)/mscorlib.dll
-out
:$@
$^
199 $(vtsdir
)/$(PROFILE
)_TestLib
/BinarySerializationOverVersions.exe
: $(vtsdir
)/BinarySerializationOverVersions.cs
$(vtsdir
)/$(PROFILE
)_TestLib
/1.0/Address.dll
$(test_nunit_dep
)
200 $(CSCOMPILE
) $(test_nunit_ref
) -warn
:0 \
201 -r
:$(vtsdir
)/$(PROFILE
)_TestLib
/1.0/Address.dll \
202 -r
:$(topdir
)/class
/lib
/$(PROFILE
)/mscorlib.dll \
203 -r
:$(topdir
)/class
/lib
/$(PROFILE
)/System.dll \
204 $(vtsdir
)/BinarySerializationOverVersions.cs
-out
:$@
205 @cp
$(vtsdir
)/$(PROFILE
)_TestLib
/1.0/Address.dll
$(vtsdir
)/$(PROFILE
)_TestLib
207 # Need to define TEST_MONO_PATH to an absolute dir since the test is ran from a subdir
208 TEST_MONO_PATH
=$(PWD
)/..
/lib
/$(PROFILE
)
210 run-test-vts
: test-vts
211 @echo Running vts tests...
212 PATH
="$(TEST_RUNTIME_WRAPPERS_PATH):$(PATH)" $(TEST_RUNTIME
) $(TEST_RUNTIME_FLAGS
) $(TEST_HARNESS
) $(NOSHADOW_FLAG
) \
213 $(vtsdir
)/$(PROFILE
)_TestLib
/BinarySerializationOverVersions.exe
221 run-test
: run-test-vts
228 $(vtsdir
)/VersionTolerantSerializationTestLib
/1.0/Address.cs \
229 $(vtsdir
)/VersionTolerantSerializationTestLib
/2.0/Address.cs \
230 $(vtsdir
)/VersionTolerantSerializationTestLib
/3.0/Address.cs \
231 $(vtsdir
)/VersionTolerantSerializationTestLib
/4.0/Address.cs \
232 $(vtsdir
)/VersionTolerantSerializationTestLib
/5.0/Address.cs \
233 $(vtsdir
)/VersionTolerantSerializationTestLib
/6.0/Address.cs \
234 $(vtsdir
)/BinarySerializationOverVersions.cs \
235 System.Runtime.CompilerServices
/Unsafe.il \
240 # Android TimeZoneInfo testing....
246 # Remove some code that is protected so we don't have to include all the corlib files.
247 tzi.exe
:System
/AndroidPlatform.cs
$(wildcard System
/TimeZone
*.cs
) ..
/..
/build
/common
/Consts.cs ..
/..
/build
/common
/Locale.cs ..
/Mono.Options
/Mono.Options
/Options.cs
248 trap
"rm -f $(TMP_FILE1) $(TMP_FILE2)" EXIT INT QUIT TERM
&& \
249 sed
's/Environment\.GetResourceString/string.Format/g' ..
/referencesource
/mscorlib
/system
/timezoneinfo.cs
> $(TMP_FILE1
) && \
250 sed
's/StringBuilder\.DefaultCapacity/100/g' ..
/referencesource
/mscorlib
/system
/text
/stringbuildercache.cs
> $(TMP_FILE2
) && \
251 $(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;MOBILE;NET_3_5;NET_4_0;NET_4_5;MONO;DISABLE_CAS_USE;MOBILE;MOBILE_DYNAMIC;MONODROID;ANDROID" $^
$(TMP_FILE1
) $(TMP_FILE2
)
254 mkdir
-p android
/tzdb
/usr
/share
/zoneinfo
255 mkdir
-p android
/tzdb
/misc
/zoneinfo
/zoneinfo
256 android_root
=`adb shell echo '$$ANDROID_ROOT' | tr -d "\r"` ; \
257 android_data
=`adb shell echo '$$ANDROID_DATA' | tr -d "\r"` ; \
258 adb
$(ADB_TARGET
) pull
$$android_root/usr
/share
/zoneinfo android
/tzdb
/usr
/share
/zoneinfo || true
; \
259 adb
$(ADB_TARGET
) pull
$$android_data/misc
/zoneinfo
/tzdata android
/tzdb
/misc
/zoneinfo || true
261 android-dump-tzdata
: tzi.exe android-pull-tzdb
263 __XA_OVERRIDE_TIMEZONE_ID__
=America
/New_York ANDROID_ROOT
="`pwd`/android/tzdb" ANDROID_DATA
="`pwd`/android/tzdb" $(TEST_RUNTIME
) tzi.exe
-o android
/tzdata