2007-10-22 Atsushi Enomoto <atsushi@ximian.com>
[mono.git] / mcs / class / System / Makefile
index 2031f9e0b2bd2cf08fb837ca9e6da7292e3b9c62..d616070efcf9cca6b6a27de30b08029f8de2bdee 100644 (file)
@@ -6,6 +6,17 @@ export __SECURITY_BOOTSTRAP_DB=$(topdir)/class/lib/$(PROFILE)
 LIBRARY = System.dll
 LIBRARY_USE_INTERMEDIATE_FILE = yes
 
+ifneq (net_2_1, $(PROFILE))
+RESOURCE_FILES = \
+       resources/Asterisk.wav  \
+       resources/Beep.wav      \
+       resources/Exclamation.wav       \
+       resources/Hand.wav      \
+       resources/Question.wav
+else
+RESOURCE_FILES =
+endif
+
 # 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
@@ -23,15 +34,17 @@ XML_DEP_FILE := $(wildcard ../lib/$(PROFILE)/$(XML_DEP))
 CYCLIC_DEPS := $(XML_DEP)
 CYCLIC_DEP_FILES := $(XML_DEP_FILE)
 
-ifeq (2.0, $(FRAMEWORK_VERSION))
+ifeq (2, $(FRAMEWORK_VERSION_MAJOR))
 # 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))
+PREBUILT_DEP := System.dll
+PREBUILT_DEP_FILE := $(wildcard ../lib/$(PROFILE)/$(PREBUILT_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 -unsafe
+LIB_MCS_FLAGS = -nowarn:618 -d:CONFIGURATION_2_0 -unsafe $(RESOURCE_FILES:%=-resource:%)
 TEST_MCS_FLAGS += -r:System.Configuration
 endif
 
@@ -39,6 +52,11 @@ EXTRA_DISTFILES = \
        System.Text.RegularExpressions/notes.txt        \
        System.ComponentModel.Design/Changelog          \
        Test/test-config-file                           \
+       Test/System.Security.Cryptography.X509Certificates/pkits/ChangeLog      \
+       Test/System.Security.Cryptography.X509Certificates/pkits/Makefile       \
+       Test/System.Security.Cryptography.X509Certificates/pkits/README         \
+       Test/System.Security.Cryptography.X509Certificates/pkits/x509build.cs   \
+       $(RESOURCE_FILES)                               \
        $(TEST_RESOURCES)
 
 lib_file := $(wildcard ../lib/$(PROFILE)/System.dll)
@@ -54,25 +72,15 @@ ifdef USE_BOOT_COMPILE
 LIBRARY_COMPILE = $(BOOT_COMPILE)
 endif
 
-ifneq ($(CYCLIC_DEPS:%=../lib/$(PROFILE)/%), $(CYCLIC_DEP_FILES))
+MISSING_DEPS := $(filter-out $(notdir $(CYCLIC_DEP_FILES)), $(CYCLIC_DEPS))
+ifdef MISSING_DEPS
+ifneq (net_2_1, $(PROFILE))
 NO_SIGN_ASSEMBLY = yes
 NO_INSTALL = yes
 all-local: echo-warning
 .PHONY: echo-warning
-
-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
 echo-warning:
-       @echo "** Warning: System.dll built without parts that depend on Mono.Security.dll"
-endif
+       @echo "** Warning: System.dll built without parts that depend on: $(MISSING_DEPS)"
 endif
 endif
 
@@ -89,13 +97,26 @@ $(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
+LIB_MCS_FLAGS += -define:CONFIGURATION_DEP -r:$(CONFIGURATION_DEP)
 $(the_lib): $(CONFIGURATION_DEP_FILE)
 endif
 
+ifdef PREBUILT_DEP_FILE
+LIB_MCS_FLAGS += -r:PrebuiltSystem=$(topdir)/class/lib/$(PROFILE)/System.dll
+endif
+
 $(test_lib): $(test_lib).config $(TEST_RESOURCES)
 
 $(test_lib).config: Test/test-config-file
        cp $< $@
 
 CLEAN_FILES = $(test_lib).config
+
+# run the PKITS tests only if the data was installed/activated, otherwise ignore them
+ifeq (net_2_0, $(PROFILE))
+pkits_files := $(wildcard Test/System.Security.Cryptography.X509Certificates/pkits/hint)
+ifndef pkits_files
+TEST_HARNESS_EXCLUDES = /exclude:NotWorking,ValueAdd,CAS,InetAccess,PKITS
+TEST_HARNESS_EXCLUDES_ONDOTNET = /exclude:NotDotNet,CAS,PKITS
+endif
+endif