Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am4
-rw-r--r--configure.in9
-rw-r--r--mcs/Makefile2
-rw-r--r--mcs/build/profiles/xammac.make32
-rw-r--r--mcs/class/Facades/Makefile2
-rw-r--r--mcs/class/Makefile7
-rw-r--r--mcs/class/System.ComponentModel.Composition.4.5/Makefile2
-rw-r--r--mcs/class/System.ComponentModel.DataAnnotations/Makefile2
-rw-r--r--mcs/class/System.ComponentModel.DataAnnotations/xammac_System.ComponentModel.DataAnnotations.dll.sources1
-rw-r--r--mcs/class/System.Core/Makefile4
-rw-r--r--mcs/class/System.Core/xammac_System.Core.dll.sources8
-rw-r--r--mcs/class/System.Data.Services.Client/xammac_System.Data.Services.Client.dll.sources1
-rw-r--r--mcs/class/System.Data/Makefile2
-rw-r--r--mcs/class/System.Data/xammac_System.Data.dll.sources1
-rw-r--r--mcs/class/System.Interactive.Async/Makefile2
-rw-r--r--mcs/class/System.Interactive.Providers/Makefile2
-rw-r--r--mcs/class/System.Interactive/Makefile2
-rw-r--r--mcs/class/System.Json.Microsoft/Makefile4
-rw-r--r--mcs/class/System.Reactive.Core/Makefile2
-rw-r--r--mcs/class/System.Reactive.Debugger/Makefile2
-rw-r--r--mcs/class/System.Reactive.Experimental/Makefile2
-rw-r--r--mcs/class/System.Reactive.Interfaces/Makefile2
-rw-r--r--mcs/class/System.Reactive.Linq/Makefile2
-rw-r--r--mcs/class/System.Reactive.Observable.Aliases/Makefile2
-rw-r--r--mcs/class/System.Reactive.PlatformServices/Makefile2
-rw-r--r--mcs/class/System.Reactive.Providers/Makefile2
-rw-r--r--mcs/class/System.Runtime.Serialization/xammac_System.Runtime.Serialization.dll.sources1
-rw-r--r--mcs/class/System.ServiceModel.Web/xammac_System.ServiceModel.Web.dll.sources1
-rw-r--r--mcs/class/System.ServiceModel/xammac_System.ServiceModel.dll.sources1
-rw-r--r--mcs/class/System.Transactions/Makefile2
-rw-r--r--mcs/class/System.Web.Services/Makefile2
-rw-r--r--mcs/class/System.Web.Services/xammac_System.Web.Services.dll.sources1
-rw-r--r--mcs/class/System.XML/xammac_System.Xml.dll.sources1
-rw-r--r--mcs/class/System/Makefile4
-rw-r--r--mcs/class/System/xammac_System.dll.sources2
-rw-r--r--runtime/Makefile.am8
36 files changed, 107 insertions, 19 deletions
diff --git a/Makefile.am b/Makefile.am
index a4a959d1c48..af638365a06 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -11,12 +11,16 @@ else
if ONLY_MONOTOUCH
SUBDIRS = $(MONOTOUCH_SUBDIRS) runtime
else
+if ONLY_XAMMAC
+SUBDIRS = $(libgc_dir) eglib/src mono runtime
+else
SUBDIRS = po $(libgc_dir) eglib mono $(ikvm_native_dir) support data runtime scripts man samples msvc $(docs_dir)
# Keep in sync with SUBDIRS
## 'tools' is not normally built
DIST_SUBDIRS = m4 po libgc eglib mono ikvm-native support data runtime scripts man samples tools msvc docs
endif
endif
+endif
all: update_submodules
diff --git a/configure.in b/configure.in
index 4a6af685476..ad5ac82cfae 100644
--- a/configure.in
+++ b/configure.in
@@ -3179,6 +3179,7 @@ AC_ARG_WITH(profile4, [ --with-profile4=yes,no If you want to install
AC_ARG_WITH(profile4_5,[ --with-profile4_5=yes,no If you want to install the 4.5 FX (defaults to yes)], [], [with_profile4_5=yes])
AC_ARG_WITH(monodroid, [ --with-monodroid=yes,no If you want to build the MonoDroid assemblies (defaults to no)], [], [with_monodroid=no])
AC_ARG_WITH(monotouch, [ --with-monotouch=yes,no,only If you want to build the MonoTouch assemblies (defaults to no)], [], [with_monotouch=no])
+AC_ARG_WITH(xammac, [ --with-xammac=yes,no,only If you want to build the Xamarin.Mac assemblies (defaults to no)], [], [with_xammac=no])
OPROFILE=no
AC_ARG_WITH(oprofile,[ --with-oprofile=no,<oprofile install dir> Enable oprofile support (defaults to no)],[
@@ -3254,6 +3255,7 @@ if test x$cross_compiling = xyes -o x$enable_mcs_build = xno; then
with_profile4_5=no
with_monodroid=no
with_monotouch=no
+ with_xammac=no
fi
if test x$DISABLE_MCS_DOCS = xyes; then
@@ -3277,8 +3279,9 @@ AM_CONDITIONAL(INSTALL_4_0, [test "x$with_profile4" = xyes])
AM_CONDITIONAL(INSTALL_4_5, [test "x$with_profile4_5" = xyes])
AM_CONDITIONAL(INSTALL_MONODROID, [test "x$with_monodroid" != "xno"])
AM_CONDITIONAL(INSTALL_MONOTOUCH, [test "x$with_monotouch" != "xno"])
-AM_CONDITIONAL(INSTALL_MOBILE, [test "x$with_mobile" = xyes])
+AM_CONDITIONAL(INSTALL_XAMMAC, [test "x$with_xammac" != "xno"])
AM_CONDITIONAL(ONLY_MONOTOUCH, [test "x$with_monotouch" = "xonly"])
+AM_CONDITIONAL(ONLY_XAMMAC, [test "x$with_xammac" = "xonly"])
AM_CONDITIONAL(MIPS_GCC, test ${TARGET}${ac_cv_prog_gcc} = MIPSyes)
AM_CONDITIONAL(MIPS_SGI, test ${TARGET}${ac_cv_prog_gcc} = MIPSno)
@@ -3671,6 +3674,9 @@ fi
if test -z "$INSTALL_MONOTOUCH_TRUE"; then :
default_profile=monotouch
fi
+ if test -z "$INSTALL_XAMMAC_TRUE"; then :
+ default_profile=xammac
+ fi
if test -z "$INSTALL_4_5_TRUE"; then :
default_profile=net_4_5
fi
@@ -3722,6 +3728,7 @@ echo "
.NET 4.5: $with_profile4_5
MonoDroid: $with_monodroid
MonoTouch: $with_monotouch
+ Xamarin.Mac: $with_xammac
JNI support: $jdk_headers_found
libgdiplus: $libgdiplus_msg
zlib: $zlib_msg
diff --git a/mcs/Makefile b/mcs/Makefile
index eae178de4a3..78af02bc44f 100644
--- a/mcs/Makefile
+++ b/mcs/Makefile
@@ -10,6 +10,7 @@ net_2_0_SUBDIRS := build class nunit24 ilasm tools tests errors docs
monodroid_SUBDIRS := build class
monotouch_SUBDIRS := build class
monotouch_runtime_SUBDIRS := build class
+xammac_SUBDIRS := build class
mobile_SUBDIRS := build class
net_3_5_SUBDIRS := build class tools/xbuild
net_4_0_SUBDIRS := build class
@@ -112,6 +113,7 @@ $(_boot_:%=profile-do--net_3_5--%): profile-do--net_3_5--%:
$(_boot_:%=profile-do--monodroid--%): profile-do--monodroid--%: profile-do--build--%
$(_boot_:%=profile-do--monotouch--%): profile-do--monotouch--%: profile-do--build--%
$(_boot_:%=profile-do--monotouch_runtime--%): profile-do--monotouch_runtime--%: profile-do--build--%
+$(_boot_:%=profile-do--xammac--%): profile-do--xammac--%: profile-do--build--%
$(_boot_:%=profile-do--mobile--%): profile-do--mobile--%: profile-do--build--%
$(_boot_:%=profile-do--net_2_0--%): profile-do--net_2_0--%: profile-do--build--%
$(_boot_:%=profile-do--build--%): profile-do--build--%: profile-do--basic--%
diff --git a/mcs/build/profiles/xammac.make b/mcs/build/profiles/xammac.make
new file mode 100644
index 00000000000..d463a0fe943
--- /dev/null
+++ b/mcs/build/profiles/xammac.make
@@ -0,0 +1,32 @@
+BOOTSTRAP_PROFILE = build
+
+BOOTSTRAP_MCS = MONO_PATH="$(topdir)/class/lib/$(BOOTSTRAP_PROFILE)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(INTERNAL_GMCS)
+MCS = MONO_PATH="$(topdir)/class/lib/$(BOOTSTRAP_PROFILE)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(INTERNAL_GMCS)
+
+# Use system resgen as we don't want local System.Windows.Forms dependency
+RESGEN = resgen2
+
+profile-check:
+ @:
+
+DEFAULT_REFERENCES = -r:mscorlib.dll
+
+PROFILE_MCS_FLAGS = \
+ -d:NET_1_1 \
+ -d:NET_2_0 \
+ -d:NET_2_1 \
+ -d:NET_3_5 \
+ -d:NET_4_0 \
+ -d:NET_4_5 \
+ -d:MOBILE \
+ -d:MOBILE_DYNAMIC \
+ -d:XAMMAC \
+ -nowarn:1699 \
+ -nostdlib \
+ -lib:$(topdir)/class/lib/$(PROFILE) \
+ $(DEFAULT_REFERENCES) \
+ $(PLATFORM_DEBUG_FLAGS)
+
+FRAMEWORK_VERSION = 2.1
+NO_TEST = yes
+NO_INSTALL = yes
diff --git a/mcs/class/Facades/Makefile b/mcs/class/Facades/Makefile
index e8e8363b5ff..d0e85464e45 100644
--- a/mcs/class/Facades/Makefile
+++ b/mcs/class/Facades/Makefile
@@ -17,6 +17,8 @@ net_4_5_SUBDIRS = $(monotouch_SUBDIRS) System.Reflection.Emit.ILGeneration Syste
monodroid_SUBDIRS = $(net_4_5_SUBDIRS)
+xammac_SUBDIRS = $(net_4_5_SUBDIRS)
+
SUBDIRS = $(net_4_5_SUBDIRS)
include $(MCS_BUILD_DIR)/rules.make
diff --git a/mcs/class/Makefile b/mcs/class/Makefile
index 09c8bf60436..1e806388e32 100644
--- a/mcs/class/Makefile
+++ b/mcs/class/Makefile
@@ -161,6 +161,12 @@ monodroid_dirs := \
Microsoft.CSharp \
System.Net.Http
+xammac_dirs := \
+ Mono.CompilerServices.SymbolWriter \
+ Mono.CSharp \
+ Microsoft.CSharp \
+ System.Net.Http
+
monotouch_runtime_dirs := \
corlib
@@ -245,6 +251,7 @@ monotouch_SUBDIRS := $(mobile_dirs) $(monotouch_dirs)
monotouch_runtime_SUBDIRS := $(monotouch_runtime_dirs)
mobile_static_SUBDIRS := $(mobile_dirs)
mobile_SUBDIRS := $(mobile_dirs)
+xammac_SUBDIRS := $(mobile_dirs) $(xammac_dirs)
net_3_5_SUBDIRS := $(xbuild_2_0_dirs)
net_4_0_SUBDIRS := $(common_dirs) $(net_2_0_dirs) $(net_4_0_dirs) $(net_4_0_only_dirs) $(xbuild_4_0_dirs)
net_4_5_SUBDIRS := $(common_dirs) $(net_2_0_dirs) $(net_4_0_dirs) $(net_4_5_dirs) $(xbuild_4_0_dirs) aot-compiler
diff --git a/mcs/class/System.ComponentModel.Composition.4.5/Makefile b/mcs/class/System.ComponentModel.Composition.4.5/Makefile
index 6c5d3683ba4..4fe0fee915e 100644
--- a/mcs/class/System.ComponentModel.Composition.4.5/Makefile
+++ b/mcs/class/System.ComponentModel.Composition.4.5/Makefile
@@ -12,7 +12,7 @@ CLEAN_FILES += $(STRING_MESSAGES)
EXTRA_DISTFILES = \
src/ComponentModel/Strings.resx
-VALID_PROFILE := $(filter net_4_0 net_4_5 monotouch monodroid mobile_static, $(PROFILE))
+VALID_PROFILE := $(filter net_4_0 net_4_5 monotouch monodroid xammac mobile_static, $(PROFILE))
ifndef VALID_PROFILE
LIBRARY_NAME = dummy-System.ComponentModel.Composition.dll
NO_INSTALL = yes
diff --git a/mcs/class/System.ComponentModel.DataAnnotations/Makefile b/mcs/class/System.ComponentModel.DataAnnotations/Makefile
index 9564b81d88b..713754ccdb3 100644
--- a/mcs/class/System.ComponentModel.DataAnnotations/Makefile
+++ b/mcs/class/System.ComponentModel.DataAnnotations/Makefile
@@ -18,7 +18,7 @@ endif
TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
# This is a .NET 3.5+ assembly
-VALID_PROFILE := $(filter net_2_0 net_4_0 net_4_5 monotouch monodroid mobile_static, $(PROFILE))
+VALID_PROFILE := $(filter net_2_0 net_4_0 net_4_5 monotouch monodroid xammac mobile_static, $(PROFILE))
ifndef VALID_PROFILE
LIBRARY_NAME = dummy-System.ComponentModel.DataAnnotations.dll
NO_INSTALL = yes
diff --git a/mcs/class/System.ComponentModel.DataAnnotations/xammac_System.ComponentModel.DataAnnotations.dll.sources b/mcs/class/System.ComponentModel.DataAnnotations/xammac_System.ComponentModel.DataAnnotations.dll.sources
new file mode 100644
index 00000000000..3de14f5e0a7
--- /dev/null
+++ b/mcs/class/System.ComponentModel.DataAnnotations/xammac_System.ComponentModel.DataAnnotations.dll.sources
@@ -0,0 +1 @@
+#include net_4_5_System.ComponentModel.DataAnnotations.dll.sources
diff --git a/mcs/class/System.Core/Makefile b/mcs/class/System.Core/Makefile
index 0b433a2b4a6..934c3f3cb60 100644
--- a/mcs/class/System.Core/Makefile
+++ b/mcs/class/System.Core/Makefile
@@ -17,6 +17,10 @@ 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
diff --git a/mcs/class/System.Core/xammac_System.Core.dll.sources b/mcs/class/System.Core/xammac_System.Core.dll.sources
new file mode 100644
index 00000000000..77548976961
--- /dev/null
+++ b/mcs/class/System.Core/xammac_System.Core.dll.sources
@@ -0,0 +1,8 @@
+#include mobile_System.Core.dll.sources
+
+#include dynamic_System.Core.dll.sources
+
+System.Security.Cryptography/AesCryptoServiceProvider.cs
+System.Security.Cryptography/AesManaged.cs
+System.Security.Cryptography/AesTransform.cs
+
diff --git a/mcs/class/System.Data.Services.Client/xammac_System.Data.Services.Client.dll.sources b/mcs/class/System.Data.Services.Client/xammac_System.Data.Services.Client.dll.sources
new file mode 100644
index 00000000000..37dc2990c8d
--- /dev/null
+++ b/mcs/class/System.Data.Services.Client/xammac_System.Data.Services.Client.dll.sources
@@ -0,0 +1 @@
+#include net_4_5_System.Data.Services.Client.dll.sources
diff --git a/mcs/class/System.Data/Makefile b/mcs/class/System.Data/Makefile
index 8255e6456d6..4a15ce7480d 100644
--- a/mcs/class/System.Data/Makefile
+++ b/mcs/class/System.Data/Makefile
@@ -31,7 +31,7 @@ LIB_MCS_FLAGS += \
-r:J2SE.Helpers.dll \
$(OTHER_LIB_MCS_FLAGS)
else
-MOBILE := $(filter monotouch monodroid mobile mobile_static, $(PROFILE))
+MOBILE := $(filter monotouch monodroid xammac mobile mobile_static, $(PROFILE))
ifdef MOBILE
LIB_MCS_FLAGS += \
-r:Mono.Data.Tds.dll \
diff --git a/mcs/class/System.Data/xammac_System.Data.dll.sources b/mcs/class/System.Data/xammac_System.Data.dll.sources
new file mode 100644
index 00000000000..bbc860b8cd7
--- /dev/null
+++ b/mcs/class/System.Data/xammac_System.Data.dll.sources
@@ -0,0 +1 @@
+#include mobile_System.Data.dll.sources
diff --git a/mcs/class/System.Interactive.Async/Makefile b/mcs/class/System.Interactive.Async/Makefile
index 4305b344dec..70740170701 100644
--- a/mcs/class/System.Interactive.Async/Makefile
+++ b/mcs/class/System.Interactive.Async/Makefile
@@ -21,7 +21,7 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
EXTRA_DISTFILES = more_build_args
-VALID_PROFILE := $(filter monotouch monodroid net_4_0 net_4_5, $(PROFILE))
+VALID_PROFILE := $(filter monotouch monodroid xammac net_4_0 net_4_5, $(PROFILE))
ifndef VALID_PROFILE
LIBRARY_NAME = dummy-System.System.Interactive.Async.dll
NO_SIGN_ASSEMBLY = yes
diff --git a/mcs/class/System.Interactive.Providers/Makefile b/mcs/class/System.Interactive.Providers/Makefile
index 68291088719..c74dccb7271 100644
--- a/mcs/class/System.Interactive.Providers/Makefile
+++ b/mcs/class/System.Interactive.Providers/Makefile
@@ -22,7 +22,7 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
EXTRA_DISTFILES = more_build_args
-VALID_PROFILE := $(filter monotouch monodroid net_4_0 net_4_5, $(PROFILE))
+VALID_PROFILE := $(filter monotouch monodroid xammac net_4_0 net_4_5, $(PROFILE))
ifndef VALID_PROFILE
LIBRARY_NAME = dummy-System.System.Interactive.Providers.dll
NO_SIGN_ASSEMBLY = yes
diff --git a/mcs/class/System.Interactive/Makefile b/mcs/class/System.Interactive/Makefile
index 2d6248e7bad..ec5cd5c01df 100644
--- a/mcs/class/System.Interactive/Makefile
+++ b/mcs/class/System.Interactive/Makefile
@@ -21,7 +21,7 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
EXTRA_DISTFILES = more_build_args
-VALID_PROFILE := $(filter monotouch monodroid net_4_0 net_4_5, $(PROFILE))
+VALID_PROFILE := $(filter monotouch monodroid xammac net_4_0 net_4_5, $(PROFILE))
ifndef VALID_PROFILE
LIBRARY_NAME = dummy-System.System.Interactive.dll
NO_SIGN_ASSEMBLY = yes
diff --git a/mcs/class/System.Json.Microsoft/Makefile b/mcs/class/System.Json.Microsoft/Makefile
index 5124d3f6e6c..eb4b37f3497 100644
--- a/mcs/class/System.Json.Microsoft/Makefile
+++ b/mcs/class/System.Json.Microsoft/Makefile
@@ -23,6 +23,10 @@ ifeq (monodroid, $(PROFILE))
LIB_MCS_FLAGS += -d:FEATURE_DYNAMIC
endif
+ifeq (xammac, $(PROFILE))
+LIB_MCS_FLAGS += -d:FEATURE_DYNAMIC
+endif
+
TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
include ../../build/library.make
diff --git a/mcs/class/System.Reactive.Core/Makefile b/mcs/class/System.Reactive.Core/Makefile
index d56ecc9c089..3f74f8bf98e 100644
--- a/mcs/class/System.Reactive.Core/Makefile
+++ b/mcs/class/System.Reactive.Core/Makefile
@@ -35,7 +35,7 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
EXTRA_DISTFILES = more_build_args $(RESX_RESOURCES:.resources=.resx) $(PREBUILT)
-VALID_PROFILE := $(filter monotouch monodroid net_4_0 net_4_5, $(PROFILE))
+VALID_PROFILE := $(filter monotouch monodroid xammac net_4_0 net_4_5, $(PROFILE))
ifndef VALID_PROFILE
LIBRARY_NAME = dummy-System.System.Reactive.Core.dll
NO_SIGN_ASSEMBLY = yes
diff --git a/mcs/class/System.Reactive.Debugger/Makefile b/mcs/class/System.Reactive.Debugger/Makefile
index 8c6dee9af40..c603f89a68a 100644
--- a/mcs/class/System.Reactive.Debugger/Makefile
+++ b/mcs/class/System.Reactive.Debugger/Makefile
@@ -24,7 +24,7 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
EXTRA_DISTFILES = more_build_args
-VALID_PROFILE := $(filter monotouch monodroid net_4_0 net_4_5, $(PROFILE))
+VALID_PROFILE := $(filter monotouch monodroid xammac net_4_0 net_4_5, $(PROFILE))
ifndef VALID_PROFILE
LIBRARY_NAME = dummy-System.System.Reactive.Debugger.dll
NO_SIGN_ASSEMBLY = yes
diff --git a/mcs/class/System.Reactive.Experimental/Makefile b/mcs/class/System.Reactive.Experimental/Makefile
index e7b128f3813..234a63b12d9 100644
--- a/mcs/class/System.Reactive.Experimental/Makefile
+++ b/mcs/class/System.Reactive.Experimental/Makefile
@@ -24,7 +24,7 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
EXTRA_DISTFILES = more_build_args
-VALID_PROFILE := $(filter monotouch monodroid net_4_0 net_4_5, $(PROFILE))
+VALID_PROFILE := $(filter monotouch monodroid xammac net_4_0 net_4_5, $(PROFILE))
ifndef VALID_PROFILE
LIBRARY_NAME = dummy-System.System.Reactive.Experimental.dll
NO_SIGN_ASSEMBLY = yes
diff --git a/mcs/class/System.Reactive.Interfaces/Makefile b/mcs/class/System.Reactive.Interfaces/Makefile
index 967a34327de..acee40d2960 100644
--- a/mcs/class/System.Reactive.Interfaces/Makefile
+++ b/mcs/class/System.Reactive.Interfaces/Makefile
@@ -21,7 +21,7 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
EXTRA_DISTFILES = more_build_args
-VALID_PROFILE := $(filter monotouch monodroid net_4_0 net_4_5, $(PROFILE))
+VALID_PROFILE := $(filter monotouch monodroid xammac net_4_0 net_4_5, $(PROFILE))
ifndef VALID_PROFILE
LIBRARY_NAME = dummy-System.System.Reactive.Interfaces.dll
NO_SIGN_ASSEMBLY = yes
diff --git a/mcs/class/System.Reactive.Linq/Makefile b/mcs/class/System.Reactive.Linq/Makefile
index 3afa5560431..18a3360dafe 100644
--- a/mcs/class/System.Reactive.Linq/Makefile
+++ b/mcs/class/System.Reactive.Linq/Makefile
@@ -36,7 +36,7 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
EXTRA_DISTFILES = more_build_args $(RESX_RESOURCES:.resources=.resx) $(PREBUILT)
-VALID_PROFILE := $(filter monotouch monodroid net_4_0 net_4_5, $(PROFILE))
+VALID_PROFILE := $(filter monotouch monodroid xammac net_4_0 net_4_5, $(PROFILE))
ifndef VALID_PROFILE
LIBRARY_NAME = dummy-System.System.Reactive.Linq.dll
NO_SIGN_ASSEMBLY = yes
diff --git a/mcs/class/System.Reactive.Observable.Aliases/Makefile b/mcs/class/System.Reactive.Observable.Aliases/Makefile
index 23a462f80a1..6a35d936f6b 100644
--- a/mcs/class/System.Reactive.Observable.Aliases/Makefile
+++ b/mcs/class/System.Reactive.Observable.Aliases/Makefile
@@ -35,7 +35,7 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
EXTRA_DISTFILES = more_build_args $(RESX_RESOURCES:.resources=.resx) $(PREBUILT)
-VALID_PROFILE := $(filter monodroid net_4_0 net_4_5, $(PROFILE))
+VALID_PROFILE := $(filter monodroid xammac net_4_0 net_4_5, $(PROFILE))
ifndef VALID_PROFILE
LIBRARY_NAME = dummy-System.System.Reactive.Observable.Aliases.dll
NO_SIGN_ASSEMBLY = yes
diff --git a/mcs/class/System.Reactive.PlatformServices/Makefile b/mcs/class/System.Reactive.PlatformServices/Makefile
index 80e88566ca6..187dd7702ff 100644
--- a/mcs/class/System.Reactive.PlatformServices/Makefile
+++ b/mcs/class/System.Reactive.PlatformServices/Makefile
@@ -42,7 +42,7 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS) -r:Mono.Reactive.Tests.dll
EXTRA_DISTFILES = more_build_args $(RESX_RESOURCES:.resources=.resx) $(PREBUILT)
-VALID_PROFILE := $(filter monotouch monodroid net_4_0 net_4_5, $(PROFILE))
+VALID_PROFILE := $(filter monotouch monodroid xammac net_4_0 net_4_5, $(PROFILE))
ifndef VALID_PROFILE
LIBRARY_NAME = dummy-System.System.Reactive.PlatformServices.dll
NO_SIGN_ASSEMBLY = yes
diff --git a/mcs/class/System.Reactive.Providers/Makefile b/mcs/class/System.Reactive.Providers/Makefile
index 06ec402a0df..bb695d90ee2 100644
--- a/mcs/class/System.Reactive.Providers/Makefile
+++ b/mcs/class/System.Reactive.Providers/Makefile
@@ -37,7 +37,7 @@ TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
EXTRA_DISTFILES = more_build_args $(RESX_RESOURCES:.resources=.resx) $(PREBUILT)
-VALID_PROFILE := $(filter monodroid net_4_0 net_4_5, $(PROFILE))
+VALID_PROFILE := $(filter monodroid xammac net_4_0 net_4_5, $(PROFILE))
ifndef VALID_PROFILE
LIBRARY_NAME = dummy-System.System.Reactive.Providers.dll
NO_SIGN_ASSEMBLY = yes
diff --git a/mcs/class/System.Runtime.Serialization/xammac_System.Runtime.Serialization.dll.sources b/mcs/class/System.Runtime.Serialization/xammac_System.Runtime.Serialization.dll.sources
new file mode 100644
index 00000000000..6caafd41198
--- /dev/null
+++ b/mcs/class/System.Runtime.Serialization/xammac_System.Runtime.Serialization.dll.sources
@@ -0,0 +1 @@
+#include mobile_System.Runtime.Serialization.dll.sources
diff --git a/mcs/class/System.ServiceModel.Web/xammac_System.ServiceModel.Web.dll.sources b/mcs/class/System.ServiceModel.Web/xammac_System.ServiceModel.Web.dll.sources
new file mode 100644
index 00000000000..cbea0fae7b4
--- /dev/null
+++ b/mcs/class/System.ServiceModel.Web/xammac_System.ServiceModel.Web.dll.sources
@@ -0,0 +1 @@
+#include mobile_System.ServiceModel.Web.dll.sources
diff --git a/mcs/class/System.ServiceModel/xammac_System.ServiceModel.dll.sources b/mcs/class/System.ServiceModel/xammac_System.ServiceModel.dll.sources
new file mode 100644
index 00000000000..22ece5ce8ce
--- /dev/null
+++ b/mcs/class/System.ServiceModel/xammac_System.ServiceModel.dll.sources
@@ -0,0 +1 @@
+#include mobile_System.ServiceModel.dll.sources
diff --git a/mcs/class/System.Transactions/Makefile b/mcs/class/System.Transactions/Makefile
index a89f1d4c83f..11d78be67c4 100644
--- a/mcs/class/System.Transactions/Makefile
+++ b/mcs/class/System.Transactions/Makefile
@@ -2,7 +2,7 @@ thisdir = class/System.Transactions
SUBDIRS =
include ../../build/rules.make
-MOBILE_PROFILE := $(filter monotouch monodroid mobile mobile_static, $(PROFILE))
+MOBILE_PROFILE := $(filter monotouch monodroid xammac mobile mobile_static, $(PROFILE))
LIBRARY = System.Transactions.dll
ifdef MOBILE_PROFILE
diff --git a/mcs/class/System.Web.Services/Makefile b/mcs/class/System.Web.Services/Makefile
index 9a4d1cfed1f..7b8d5ddacbd 100644
--- a/mcs/class/System.Web.Services/Makefile
+++ b/mcs/class/System.Web.Services/Makefile
@@ -3,7 +3,7 @@ SUBDIRS =
include ../../build/rules.make
LIBRARY = System.Web.Services.dll
-MOBILE := $(filter monotouch monodroid mobile mobile_static, $(PROFILE))
+MOBILE := $(filter monotouch monodroid xammac mobile mobile_static, $(PROFILE))
ifdef MOBILE
LIB_MCS_FLAGS = \
-nowarn:649 -nowarn:169 \
diff --git a/mcs/class/System.Web.Services/xammac_System.Web.Services.dll.sources b/mcs/class/System.Web.Services/xammac_System.Web.Services.dll.sources
new file mode 100644
index 00000000000..9e39dcc73b1
--- /dev/null
+++ b/mcs/class/System.Web.Services/xammac_System.Web.Services.dll.sources
@@ -0,0 +1 @@
+#include mobile_System.Web.Services.dll.sources
diff --git a/mcs/class/System.XML/xammac_System.Xml.dll.sources b/mcs/class/System.XML/xammac_System.Xml.dll.sources
new file mode 100644
index 00000000000..b6630930f75
--- /dev/null
+++ b/mcs/class/System.XML/xammac_System.Xml.dll.sources
@@ -0,0 +1 @@
+#include mobile_System.Xml.dll.sources
diff --git a/mcs/class/System/Makefile b/mcs/class/System/Makefile
index 3b25daa8977..dd2008edc0f 100644
--- a/mcs/class/System/Makefile
+++ b/mcs/class/System/Makefile
@@ -26,8 +26,8 @@ TEST_MCS_FLAGS = -r:System.Drawing.dll -r:Mono.Security.dll -r:System.Data -r:Sy
ifneq (1, $(FRAMEWORK_VERSION_MAJOR))
LIB_MCS_FLAGS = -nowarn:618 -d:CONFIGURATION_2_0 -unsafe $(RESOURCE_FILES:%=-resource:%)
TEST_MCS_FLAGS += -r:System.Configuration
-PROFILE_ANY_MOBILE := $(filter monotouch monodroid, $(PROFILE))
-NOT_SL := $(filter net_2_0 net_4_0 net_4_5 monotouch_runtime monodroid mobile, $(PROFILE))
+PROFILE_ANY_MOBILE := $(filter monotouch monodroid xammac, $(PROFILE))
+NOT_SL := $(filter net_2_0 net_4_0 net_4_5 monotouch_runtime monodroid mobile xammac, $(PROFILE))
endif
ifeq (2.1, $(FRAMEWORK_VERSION))
LIB_MCS_FLAGS += -d:INSIDE_SYSTEM
diff --git a/mcs/class/System/xammac_System.dll.sources b/mcs/class/System/xammac_System.dll.sources
new file mode 100644
index 00000000000..be5e81d6e53
--- /dev/null
+++ b/mcs/class/System/xammac_System.dll.sources
@@ -0,0 +1,2 @@
+#include mobile_System.dll.sources
+System.CodeDom.Compiler/IndentedTextWriter.cs
diff --git a/runtime/Makefile.am b/runtime/Makefile.am
index c7ec45b3978..9e8160baea9 100644
--- a/runtime/Makefile.am
+++ b/runtime/Makefile.am
@@ -28,6 +28,9 @@ SUPPORT_FILES = $(symlinks) mono-wrapper etc/mono/config
if ONLY_MONOTOUCH
build_profiles = monotouch
else
+if ONLY_XAMMAC
+build_profiles = xammac
+else
build_profiles =
if INSTALL_2_0
@@ -53,9 +56,14 @@ if INSTALL_MONOTOUCH
build_profiles += monotouch monotouch_runtime
endif
+if INSTALL_XAMMAC
+build_profiles += xammac
+endif
+
test_profiles = $(build_profiles)
endif
+endif
if BUILD_MCS