Fix the MonoTouch build on trunk
[mono.git] / mcs / class / System.Core / Makefile
index e113d7668316774b6ab1b44909ca98fc62d4a647..dde17448c70e8821d27c7d88eed1ee4f31093681 100644 (file)
@@ -4,21 +4,39 @@ include ../../build/rules.make
 
 LIBRARY = System.Core.dll
 
-LIB_MCS_FLAGS = -unsafe -d:LIBC /r:$(corlib) /r:System
+LIB_MCS_FLAGS = -d:LIBC /r:$(corlib) /r:System
 
-ifeq (2.0, $(FRAMEWORK_VERSION))
+ifneq (2.1, $(FRAMEWORK_VERSION))
 LIB_MCS_FLAGS += -d:NET_3_5 -nowarn:1720
 endif
 
+ifeq (4.0, $(FRAMEWORK_VERSION))
+LIB_MCS_FLAGS += -d:CODEPLEX_40
+endif
+
+FULL_PROFILE := $(filter net_2_0 net_4_0 net_2_1_raw monotouch, $(PROFILE))
+ifdef FULL_PROFILE
+LIBRARY_COMPILE = $(BOOT_COMPILE)
+endif
+
+ifneq (basic, $(PROFILE))
+CLR_PROFILE := $(filter 2.0 4.0, $(FRAMEWORK_VERSION))
+endif
+
+ifdef CLR_PROFILE
+LIB_MCS_FLAGS += -r:../lib/$(PROFILE)/Mono.Posix -unsafe
+endif
+
 TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
 
-# This is a .NET > 2.0 only assembly
-VALID_PROFILE := $(filter net_2_0_bootstrap net_2_0 net_2_1_raw, $(PROFILE))
+# This is a .NET 2.0+ only assembly
+VALID_PROFILE := $(filter 2.0 2.1 4.0, $(FRAMEWORK_VERSION))
 ifndef VALID_PROFILE
 LIBRARY_NAME = dummy-System.Core.dll
 NO_INSTALL = yes
 NO_SIGN_ASSEMBLY = yes
 NO_TEST = yes
+NO_BUILD = yes
 endif
 
 include ../../build/library.make