Merge pull request #901 from Blewzman/FixAggregateExceptionGetBaseException
[mono.git] / mcs / class / System.Core / Makefile
index ca19f4f52199c65dfc69e3710547b980384e7b9c..34e428674aab6e8a53750f61f0a3e015c400b068 100644 (file)
@@ -4,40 +4,57 @@ include ../../build/rules.make
 
 LIBRARY = System.Core.dll
 
-LIB_MCS_FLAGS = -d:INSIDE_SYSCORE -d:LIBC /r:$(corlib) /r:System
+LIB_MCS_FLAGS = -d:INSIDE_SYSCORE -d:LIBC /r:System.dll -unsafe
+
+INTERPRETER_DEP := Mono.Dynamic.Interpreter.dll
+INTERPRETER_DEP_FILE := $(wildcard ../lib/$(PROFILE)/$(INTERPRETER_DEP))
 
 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
+ifeq (monodroid, $(PROFILE))
+LIB_MCS_FLAGS += -d:FEATURE_CORE_DLR,FEATURE_REFEMIT,ANDROID
+endif
+
+ifeq (xammac, $(PROFILE))
+LIB_MCS_FLAGS += -d:FEATURE_CORE_DLR,FEATURE_REFEMIT
+endif
+
+ifeq (monotouch, $(PROFILE))
+LIBRARY_USE_INTERMEDIATE_FILE = yes
+
+CYCLIC_DEPS := $(INTERPRETER_DEP)
+CYCLIC_DEP_FILES := $(INTERPRETER_DEP_FILE)
+LIB_MCS_FLAGS += -d:FEATURE_CORE_DLR
+
+ifdef CYCLIC_DEP_FILES
+LIB_MCS_FLAGS += -d:MONO_INTERPRETER -r:$(INTERPRETER_DEP)
+else
+NO_SIGN_ASSEMBLY = yes
+NO_INSTALL = yes
 endif
 
-FULL_PROFILE := $(filter net_2_0 net_4_0 moonlight_raw monotouch, $(PROFILE))
-ifdef FULL_PROFILE
-LIBRARY_COMPILE = $(BOOT_COMPILE)
+endif
+
+ifeq (4, $(FRAMEWORK_VERSION_MAJOR))
+LIB_MCS_FLAGS += -d:FEATURE_CORE_DLR,FEATURE_REFEMIT,FEATURE_PDBEMIT
 endif
 
 ifneq (basic, $(PROFILE))
-CLR_PROFILE := $(filter 2.0 4.0, $(FRAMEWORK_VERSION))
+CLR_PROFILE := $(filter 2.0 4.0 4.5, $(FRAMEWORK_VERSION))
 endif
 
 ifdef CLR_PROFILE
-LIB_MCS_FLAGS += -r:../lib/$(PROFILE)/Mono.Posix -unsafe
+LIB_MCS_FLAGS += -r:Mono.Posix.dll
 endif
 
 TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
 
-# 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
 
+ifdef CYCLIC_DEP_FILES
+TEST_HARNESS_EXCLUDES += -exclude:NotWorkingInterpreter
+$(build_lib): $(INTERPRETER_DEP_FILE)
+endif
+