3 include ..
/..
/build
/rules.make
4 export __SECURITY_BOOTSTRAP_DB
=$(topdir
)/class
/corlib
6 # corlib is crazy to build so we skip build/library.make and do stuff
9 # Here, we define a bunch of variables.
11 corlib_flags
= /unsafe
/nostdlib
12 LOCAL_MCS_FLAGS
= /nowarn
:649 /nowarn
:169 -d
:INSIDE_CORLIB
15 LIBRARY_NAME
= mscorlib.dll
16 LIB_MCS_FLAGS
= $(corlib_flags
)
17 LIBRARY_USE_INTERMEDIATE_FILE
= yes
19 # disable, until people fix their code...
20 #corlib_flags = /unsafe /nostdlib /d:INSIDE_CORLIB
22 LIBRARY_INSTALL_DIR
= $(prefix)/lib
/mono
/$(FRAMEWORK_VERSION
)
24 CLEAN_FILES
= $(cmplib
) $(reslib
) $(plattestlib
) $(plattestlib
).sources \
25 $(cmp_response
) $(cmp_makefrag
) \
26 $(res_response
) $(res_makefrag
) \
27 $(cmppdb
) $(respdb
) $(plattestpdb
)
29 # If building on a non mono-native platform, default
30 # to running the unit tests on its corlib, to see if
31 # our tests are complaint with their (hopefully bug-free)
32 # corlib. If on a mono-native platform, test our actual
35 # You can access either one on demand with either 'make
36 # run-monotest' or 'make run-plattest'.
38 plattestlib
= corlib_plattest.dll
39 plattestpdb
= $(patsubst %.dll
,%.pdb
,$(plattestlib
))
40 reslib
= $(topdir
)/class
/lib
/$(PROFILE
)/corlib_res.dll
41 cmplib
= $(topdir
)/class
/lib
/$(PROFILE
)/corlib_cmp.dll
43 $(plattestlib
).sources
: corlib_test.dll.sources
$(plattestlib
).excludes
44 sort corlib_test.dll.sources
$(plattestlib
).excludes | uniq
-u
>$@
46 TEST_MCS_FLAGS
= /debug
+ /debug
:full
/nowarn
:0618 /nowarn
:0672 /unsafe
48 ifndef PLATFORM_MONO_NATIVE
49 test_lib
= $(plattestlib
)
50 test_against
= $(PLATFORM_CORLIB
)
51 HAVE_CS_TESTS
= $(plattestlib
).sources
53 ## for now, compiling the testsuite with CSC causes CS0583. So compile with internal MCS
54 TEST_COMPILE
= $(INTERNAL_MCS
) $(USE_MCS_FLAGS
)
57 run-test-ondotnet-local
: run-plattest-ondotnet
59 ifdef PLATFORM_MONO_NATIVE
60 run-monotest
: run-test
64 $(MAKE
) test_lib
=corlib_test.dll test_against
=$(reslib
) run-test
67 $(MAKE
) test_lib
=$(plattestlib
) test_against
='$(PLATFORM_CORLIB)' run-test
70 run-plattest-ondotnet
: $(plattestlib
)
71 $(TEST_HARNESS
) /exclude
=NotDotNet
$(plattestlib
)
74 corlib.dll.win32-excludes corlib_cmp.dll.excludes corlib_res.dll.excludes \
75 $(plattestlib
).excludes \
78 ifeq (net_2_0
, $(PROFILE
))
79 # Net 2.0 corlib is built with in-tree 'gmcs'
80 gmcs
= $(topdir
)/gmcs
/gmcs.exe
82 LIBRARY_COMPILE
= MONO_PATH
="../lib/net_2_0_bootstrap$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(RUNTIME
) $(gmcs
) $(USE_MCS_FLAGS
) /define:NET_1_1
/define:NET_2_0
84 LIBRARY_COMPILE
= $(BOOT_COMPILE
)
87 include ..
/..
/build
/library.make
91 cmppdb
= $(patsubst %.dll
,%.pdb
,$(cmplib
))
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 $(cmplib
): $(cmp_makefrag
) $(cmp_response
)
97 $(BOOT_COMPILE
) $(LIBRARY_FLAGS
) $(cmp_flags
) /target
:library
/out
:$@ @
$(cmp_response
)
99 $(cmp_response
): $(sourcefile
) corlib_cmp.dll.excludes
100 @echo Creating
$@ ...
101 @
sort $(sourcefile
) corlib_cmp.dll.excludes | uniq
-u |
$(PLATFORM_CHANGE_SEPARATOR_CMD
) >$@
103 $(cmp_makefrag
): $(cmp_response
)
104 @echo Creating
$@ ...
105 @sed
's,^,$(cmplib): ,' $< >$@
107 # Since we make corlib_cmp on demand, there isn't a real need
108 # to have full dep tracking for it. Also, the generation of this
109 # file is busted on Win32 ('sort' seems to mess up line endings),
110 # leading to a broken build.
112 # -include $(cmp_makefrag)
116 respdb
= $(patsubst %.dll
,%.pdb
,$(reslib
))
117 res_response
= $(depsdir
)/$(PROFILE
)_corlib_res.dll.response
118 res_makefrag
= $(depsdir
)/$(PROFILE
)_corlib_res.dll.makefrag
119 res_flags
= /r
:$(PLATFORM_CORLIB
) $(corlib_flags
)
121 $(reslib
): $(res_makefrag
) $(res_response
)
122 $(BOOT_COMPILE
) $(LIBRARY_FLAGS
) $(res_flags
) /target
:library
/out
:$@ @
$(res_response
)
124 $(res_response
): $(sourcefile
) corlib_res.dll.excludes
125 @echo Creating
$@ ...
126 @
sort $(sourcefile
) corlib_res.dll.excludes | uniq
-u |
$(PLATFORM_CHANGE_SEPARATOR_CMD
) >$@
128 # warning: embedded tab in the 'echo touch' line
129 $(res_makefrag
): $(res_response
)
130 @echo Creating
$@ ...
131 @sed
's,^,$(reslib): ,' $< >$@
133 -include $(res_makefrag
)