X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fclass%2Fcorlib%2FMakefile;h=8a5e6c65661edf84bf7acbe2f03ee8f6c742adfa;hb=e86bdbb9a5657bb7601157c39afaf237ffe1f65f;hp=f1c218057cd35316cd8b3771df6ac84009df2305;hpb=7f449e7aff8f374d13db7023c7b326dde01b763d;p=mono.git diff --git a/mcs/class/corlib/Makefile b/mcs/class/corlib/Makefile index f1c218057cd..8a5e6c65661 100644 --- a/mcs/class/corlib/Makefile +++ b/mcs/class/corlib/Makefile @@ -3,126 +3,59 @@ SUBDIRS = include ../../build/rules.make export __SECURITY_BOOTSTRAP_DB=$(topdir)/class/corlib -# corlib is crazy to build so we skip build/library.make and do stuff -# ourselves. -# -# Here, we define a bunch of variables. - -corlib_flags = /unsafe /nostdlib -LOCAL_MCS_FLAGS = /nowarn:649 /nowarn:169 -d:INSIDE_CORLIB - LIBRARY = corlib.dll LIBRARY_NAME = mscorlib.dll -LIB_MCS_FLAGS = $(corlib_flags) - -# disable, until people fix their code... -#corlib_flags = /unsafe /nostdlib /d:INSIDE_CORLIB - -ifeq (net_2_0, $(PROFILE)) -LIBRARY_INSTALL_DIR = $(prefix)/lib/mono/2.0 -else -LIBRARY_INSTALL_DIR = $(prefix)/lib -endif - -CLEAN_FILES = $(cmplib) $(reslib) $(plattestlib) $(plattestlib).sources \ - $(net20bootstrap_makefrag) \ - $(cmp_response) $(cmp_makefrag) \ - $(res_response) $(res_makefrag) \ - $(cmppdb) $(respdb) $(plattestpdb) - -# If building on a non mono-native platform, default -# to running the unit tests on its corlib, to see if -# our tests are complaint with their (hopefully bug-free) -# corlib. If on a mono-native platform, test our actual -# corlib. -# -# You can access either one on demand with either 'make -# run-monotest' or 'make run-plattest'. - -plattestlib = corlib_plattest.dll -plattestpdb = $(patsubst %.dll,%.pdb,$(plattestlib)) -reslib = $(topdir)/class/lib/$(PROFILE)/corlib_res.dll -cmplib = $(topdir)/class/lib/$(PROFILE)/corlib_cmp.dll - -$(plattestlib).sources: corlib_test.dll.sources $(plattestlib).excludes - sort corlib_test.dll.sources $(plattestlib).excludes | uniq -u >$@ - -TEST_MCS_FLAGS = /debug+ /debug:full /nowarn:0618 /nowarn:0672 /unsafe - -ifndef PLATFORM_MONO_NATIVE -test_lib = $(plattestlib) -test_against = $(PLATFORM_CORLIB) -HAVE_CS_TESTS = $(plattestlib).sources - -## for now, compiling the testsuite with CSC causes CS0583. So compile with internal MCS -TEST_COMPILE = $(INTERNAL_MCS) $(USE_MCS_FLAGS) -endif - -run-test-ondotnet-local: run-plattest-ondotnet - -ifdef PLATFORM_MONO_NATIVE -run-monotest: run-test -else -run-monotest: - $(MAKE) $(reslib) - $(MAKE) test_lib=corlib_test.dll test_against=$(reslib) run-test - -run-plattest: - $(MAKE) test_lib=$(plattestlib) test_against='$(PLATFORM_CORLIB)' run-test -endif - -run-plattest-ondotnet: $(plattestlib) - $(TEST_HARNESS) $(plattestlib) - -EXTRA_DISTFILES = \ - corlib.dll.win32-excludes corlib_cmp.dll.excludes corlib_res.dll.excludes \ - $(plattestlib).excludes \ - Test/ms_run_test.sh +LIB_MCS_FLAGS = $(corlib_flags) $(RESOURCE_FILES:%=-resource:%) +LIBRARY_USE_INTERMEDIATE_FILE = yes -ifeq (net_2_0, $(PROFILE)) -# Net 2.0 corlib is built with in-tree 'gmcs' -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 -else LIBRARY_COMPILE = $(BOOT_COMPILE) +LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION) + +RESOURCE_FILES = \ + resources/collation.core.bin \ + resources/collation.tailoring.bin \ + resources/collation.cjkCHS.bin \ + resources/collation.cjkCHT.bin \ + resources/collation.cjkJA.bin \ + resources/collation.cjkKO.bin \ + resources/collation.cjkKOlv2.bin + +corlib_flags = -unsafe -nostdlib +LOCAL_MCS_FLAGS = -nowarn:169,612,618,649 -d:INSIDE_CORLIB + +ifneq ($(FRAMEWORK_VERSION),1.0) +LOCAL_MCS_FLAGS += -nowarn:414 endif -include ../../build/library.make - -gmcs = $(topdir)/gmcs/gmcs.exe -net20bootstraplib = $(topdir)/class/lib/net_2_0_bootstrap/mscorlib.dll - -ifeq (net_2_0, $(PROFILE)) -$(the_lib): $(gmcs) -endif - -# The in-tree 'gmcs' needs at least a stripped-down version of the net 2.0 corlib.dll. We build that first. -# make sure that $(gmcs) is up-to-date -FORCE: -$(gmcs): $(net20bootstraplib) FORCE - cd $(topdir)/gmcs && $(MAKE) - -#net_2_0_bootstrap - -net20bootstrap_makefrag = $(depsdir)/net_2_0_bootstrap_corlib.dll.makefrag - -$(net20bootstraplib): $(net20bootstrap_makefrag) $(response) - $(BOOTSTRAP_MCS) $(LOCAL_MCS_FLAGS) /define:NET_1_1 /define:BOOTSTRAP_NET_2_0 $(corlib_flags) /target:library /out:$(net20bootstraplib) @$(response) - -$(net20bootstrap_makefrag): $(response) - @echo Creating $@ ... - @sed 's,^,$(net20bootstraplib): ,' $< >$@ - --include $(net20bootstrap_makefrag) +TEST_MCS_FLAGS = -debug+ -debug:full -nowarn:168,219,618,672 -unsafe +EXTRA_DISTFILES = \ + corlib.dll.win32-excludes \ + Test/ms_run_test.sh \ + Test/resources/MyResources.resources \ + Test/resources/MyResources.de.resources \ + Test/resources/Empty.resources \ + Test/resources/AFile.txt \ + Test/resources/StreamTest.resources \ + Test/resources/StreamTest.ja.resources \ + Test/resources/bug81759.resources \ + $(RESOURCE_FILES) + +include $(topdir)/build/library.make + +ifdef FIXME_CORLIB_CMP # corlib_cmp - -cmppdb = $(patsubst %.dll,%.pdb,$(cmplib)) +cmplib = $(topdir)/class/lib/$(PROFILE)/corlib_cmp.dll +cmppdb = $(cmplib:.dll=.pdb) cmp_response = $(depsdir)/$(PROFILE)_corlib_cmp.dll.response cmp_makefrag = $(depsdir)/$(PROFILE)_corlib_cmp.dll.makefrag -cmp_flags = /r:$(PLATFORM_CORLIB) $(corlib_flags) +cmp_flags = -r:$(PLATFORM_CORLIB) $(corlib_flags) + +EXTRA_DISTFILES += corlib_cmp.dll.excludes +CLEAN_FILES += $(cmplib) $(cmp_response) $(cmp_makefrag) $(cmppdb) $(cmplib): $(cmp_makefrag) $(cmp_response) - $(BOOT_COMPILE) $(LIBRARY_FLAGS) $(cmp_flags) /target:library /out:$@ @$(cmp_response) + $(BOOT_COMPILE) $(LIBRARY_FLAGS) $(cmp_flags) -target:library -out:$@ @$(cmp_response) $(cmp_response): $(sourcefile) corlib_cmp.dll.excludes @echo Creating $@ ... @@ -139,23 +72,5 @@ $(cmp_makefrag): $(cmp_response) # # -include $(cmp_makefrag) -# corlib_res - -respdb = $(patsubst %.dll,%.pdb,$(reslib)) -res_response = $(depsdir)/$(PROFILE)_corlib_res.dll.response -res_makefrag = $(depsdir)/$(PROFILE)_corlib_res.dll.makefrag -res_flags = /r:$(PLATFORM_CORLIB) $(corlib_flags) - -$(reslib): $(res_makefrag) $(res_response) - $(BOOT_COMPILE) $(LIBRARY_FLAGS) $(res_flags) /target:library /out:$@ @$(res_response) - -$(res_response): $(sourcefile) corlib_res.dll.excludes - @echo Creating $@ ... - @sort $(sourcefile) corlib_res.dll.excludes | uniq -u | $(PLATFORM_CHANGE_SEPARATOR_CMD) >$@ - -# warning: embedded tab in the 'echo touch' line -$(res_makefrag): $(res_response) - @echo Creating $@ ... - @sed 's,^,$(reslib): ,' $< >$@ - --include $(res_makefrag) +$(cmp_response) $(cmp_makefrag): Makefile $(depsdir)/.stamp +endif