X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fclass%2FSystem%2FMakefile;h=be94478c7294566a91a86036e65e78c0c9671c51;hb=86dbcb76b44a1c082fffdc07f909e8649206e596;hp=622b72ad380cda4642f8d34a7dbe830656e86825;hpb=d4257ef3dc3d8adf23b2744130952b26303f5d33;p=mono.git diff --git a/mcs/class/System/Makefile b/mcs/class/System/Makefile index 622b72ad380..be94478c729 100644 --- a/mcs/class/System/Makefile +++ b/mcs/class/System/Makefile @@ -1,37 +1,100 @@ thisdir = class/System -SUBDIRS = +SUBDIRS = include ../../build/rules.make +export __SECURITY_BOOTSTRAP_DB=$(topdir)/class/lib/$(PROFILE) LIBRARY = System.dll +LIBRARY_USE_INTERMEDIATE_FILE = yes -# Because System.dll and Syste.Xml.dll have cyclic dependency we need two-pass build. -# 1st pass - build System.dll without System.Xml.dll reference -# 2nd pass - build System.dll with System.Xml.dll reference +# Because System.dll, Mono.Security.dll System.Xml.dll have a cyclic dependency, we need a two-pass build. +# 1st pass - build System.dll without System.Xml.dll or Mono.Security.dll or System.Configuration.dll references +# 2nd pass - build System.dll with System.Xml.dll and Mono.Security.dll or System.Configuration.dll references -LIB_MCS_FLAGS = /r:$(corlib) -TEST_MCS_FLAGS = /nowarn:1595 /nowarn:0618 +TEST_RESOURCES = \ + Test/System/test-uri-props.txt \ + Test/System/test-uri-props-manual.txt \ + Test/System/test-uri-relative-props.txt -CYCLIC_DEP := System.Xml.dll -CYCLIC_DEP_FILE := $(wildcard ../lib/$(PROFILE)/$(CYCLIC_DEP)) +TEST_MCS_FLAGS = -r:System.Drawing.dll -r:Mono.Security.dll -nowarn:1595 -nowarn:0618 -nowarn:219 -nowarn:67 -nowarn:169 -nowarn:612 \ + $(foreach f, $(TEST_RESOURCES), -resource:$(f),$(notdir $(f))) + +XML_DEP := System.Xml.dll +XML_DEP_FILE := $(wildcard ../lib/$(PROFILE)/$(XML_DEP)) +CYCLIC_DEPS := $(XML_DEP) +CYCLIC_DEP_FILES := $(XML_DEP_FILE) + +ifeq (2.0, $(FRAMEWORK_VERSION)) +# Happens on net_2_0_bootstrap and net_2_0 profiles +SECURITY_DEP := Mono.Security.dll +SECURITY_DEP_FILE := $(wildcard ../lib/$(PROFILE)/$(SECURITY_DEP)) +CONFIGURATION_DEP := System.Configuration.dll +CONFIGURATION_DEP_FILE := $(wildcard ../lib/$(PROFILE)/$(CONFIGURATION_DEP)) +CYCLIC_DEPS += $(SECURITY_DEP) $(CONFIGURATION_DEP) +CYCLIC_DEP_FILES += $(SECURITY_DEP_FILE) $(CONFIGURATION_DEP_FILE) +LIB_MCS_FLAGS = -nowarn:618 -d:CONFIGURATION_2_0 +endif EXTRA_DISTFILES = \ System.Text.RegularExpressions/notes.txt \ System.ComponentModel.Design/Changelog \ - Test/test-config-file + Test/test-config-file \ + $(TEST_RESOURCES) + +lib_file := $(wildcard ../lib/$(PROFILE)/System.dll) +ifndef lib_file +USE_BOOT_COMPILE = yes +endif + +ifeq (net_2_0, $(PROFILE)) +BOOTSTRAP_MCS = MONO_PATH="$(topdir)/class/lib/net_2_0$(PLATFORM_PATH_SEPARATOR)$(topdir)/class/lib/net_2_0_bootstrap$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(INTERNAL_GMCS) +endif ifdef USE_BOOT_COMPILE LIBRARY_COMPILE = $(BOOT_COMPILE) endif -include ../../build/library.make +ifneq ($(CYCLIC_DEPS:%=../lib/$(PROFILE)/%), $(CYCLIC_DEP_FILES)) +NO_SIGN_ASSEMBLY = yes +NO_INSTALL = yes +all-local: echo-warning +.PHONY: echo-warning -ifdef CYCLIC_DEP_FILE -LIB_MCS_FLAGS += /define:XML_DEP /r:$(CYCLIC_DEP) -$(the_lib): $(CYCLIC_DEP_FILE) +ifeq (, $(strip $(CYCLIC_DEP_FILES))) +echo-warning: + @echo "** Warning: System.dll built without parts that depend on: $(CYCLIC_DEPS)" +else # defined CYCLIC_DEP_FILES +ifdef SECURITY_DEP_FILE +echo-warning: + @echo "** Warning: built System.dll with 'Mono.Security.dll'-dependent parts" + @echo "** Warning: ... without 'System.Xml.dll' present: it may not be usable" + @echo "** Warning: ... without 'System.Configuration.dll' present: it may not be usable" else -# First pass: Build temporary System.dll without depending on System.Xml.dll -$(the_lib): echo-warning -.PHONY: echo-warning echo-warning: - @echo "** Building temporary System.dll without parts that depend on System.Xml" + @echo "** Warning: System.dll built without parts that depend on Mono.Security.dll" +endif endif +endif + +include ../../build/library.make + +ifdef XML_DEP_FILE +LIB_MCS_FLAGS += /define:XML_DEP /r:$(XML_DEP) +$(the_lib): $(XML_DEP_FILE) +endif + +ifdef SECURITY_DEP_FILE +LIB_MCS_FLAGS += /define:SECURITY_DEP -r:Mono.Security.dll +$(the_lib): $(SECURITY_DEP_FILE) +endif + +ifdef CONFIGURATION_DEP_FILE +LIB_MCS_FLAGS += /define:CONFIGURATION_DEP /r:$(CONFIGURATION_DEP) /r:PrebuiltSystem=$(topdir)/class/lib/$(PROFILE)/System.dll +$(the_lib): $(CONFIGURATION_DEP_FILE) +endif + +$(test_lib): $(test_lib).config $(TEST_RESOURCES) + +$(test_lib).config: Test/test-config-file + cp $< $@ + +CLEAN_FILES = $(test_lib).config