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:
authorMarek Safar <marek.safar@gmail.com>2014-12-05 14:01:12 +0300
committerMarek Safar <marek.safar@gmail.com>2014-12-05 14:01:50 +0300
commitb993596e591c792ec72c261204748269a6431069 (patch)
tree062072f46f98763ae430193a76d335212e62f168
parent0c99796db64d8a874d9d9c6bdae9bbe4de2bf0cd (diff)
Restore 4.0 profile as metadata only profile
-rw-r--r--mcs/Makefile4
-rw-r--r--mcs/build/Makefile1
-rw-r--r--mcs/build/common/Consts.cs.in6
-rw-r--r--mcs/build/profiles/net_4_0.make22
-rw-r--r--mcs/class/Makefile1
-rw-r--r--runtime/Makefile.am6
6 files changed, 37 insertions, 3 deletions
diff --git a/mcs/Makefile b/mcs/Makefile
index 176338c3005..5fa5f10862d 100644
--- a/mcs/Makefile
+++ b/mcs/Makefile
@@ -12,6 +12,7 @@ monotouch_runtime_SUBDIRS := build class
xammac_SUBDIRS := build class
mobile_SUBDIRS := build class
mobile_static_SUBDIRS := build class
+net_4_0_SUBDIRS := build class
net_4_5_SUBDIRS := build mcs class nunit24 ilasm tools tests errors docs
xbuild_12_SUBDIRS := build class tools/xbuild
xbuild_14_SUBDIRS := build class tools/xbuild
@@ -85,7 +86,7 @@ dir-check:
# fun specialty targets
-PROFILES = net_4_5 xbuild_12 xbuild_14
+PROFILES = net_4_5 net_4_0 xbuild_12 xbuild_14
.PHONY: all-profiles $(STD_TARGETS:=-profiles)
all-profiles $(STD_TARGETS:=-profiles): %-profiles: profiles-do--%
@@ -107,6 +108,7 @@ _boot_ = all clean install
$(_boot_:%=profile-do--xbuild_14--%): profile-do--xbuild_14--%: profile-do--net_4_5--%
$(_boot_:%=profile-do--xbuild_12--%): profile-do--xbuild_12--%: profile-do--net_4_5--%
$(_boot_:%=profile-do--net_4_5--%): profile-do--net_4_5--%: profile-do--build--%
+$(_boot_:%=profile-do--net_4_0--%): profile-do--net_4_0--%: profile-do--build--%
$(_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--%
diff --git a/mcs/build/Makefile b/mcs/build/Makefile
index 17c9ba1bb60..8ca1e7c7fa2 100644
--- a/mcs/build/Makefile
+++ b/mcs/build/Makefile
@@ -18,6 +18,7 @@ PLATFORMS = darwin linux win32
PROFILES = \
basic \
build \
+ net_4_0 \
net_4_5 \
xbuild_12 \
xbuild_14
diff --git a/mcs/build/common/Consts.cs.in b/mcs/build/common/Consts.cs.in
index 467b4d156c6..b17eeabc703 100644
--- a/mcs/build/common/Consts.cs.in
+++ b/mcs/build/common/Consts.cs.in
@@ -52,7 +52,11 @@ static class Consts
public const string VsVersion = "0.0.0.0"; // Useless ?
public const string VsFileVersion = "11.0.0.0"; // TODO:
#elif NET_4_0
- #error Profile NET_4_0 is not supported.
+ public const string FxVersion = "4.0.0.0";
+ public const string FxFileVersion = "4.0.30319.1";
+
+ public const string VsVersion = "0.0.0.0"; // Useless ?
+ public const string VsFileVersion = "10.0.0.0"; // TODO:
#elif NET_3_5
#error Profile NET_3_5 is not supported.
#elif NET_3_0
diff --git a/mcs/build/profiles/net_4_0.make b/mcs/build/profiles/net_4_0.make
new file mode 100644
index 00000000000..11f82a05af2
--- /dev/null
+++ b/mcs/build/profiles/net_4_0.make
@@ -0,0 +1,22 @@
+# -*- makefile -*-
+
+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)
+
+# nuttzing!
+
+profile-check:
+ @:
+
+DEFAULT_REFERENCES = -r:mscorlib.dll
+PROFILE_MCS_FLAGS = -d:NET_1_1 -d:NET_2_0 -d:NET_3_0 -d:NET_3_5 -d:NET_4_0 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699,1635 -warn:1 -nostdlib -lib:$(topdir)/class/lib/$(PROFILE) $(DEFAULT_REFERENCES) --metadata-only
+
+FRAMEWORK_VERSION = 4.0
+XBUILD_VERSION = 4.0
+
+LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)
+
+# Ignore tests on net_4_0 as the 4.0 IL code is never used for running (just for metadata), so it doesn't make sense to execute tests there
+NO_TEST = yes \ No newline at end of file
diff --git a/mcs/class/Makefile b/mcs/class/Makefile
index d0dae889d38..cb71bb3c36c 100644
--- a/mcs/class/Makefile
+++ b/mcs/class/Makefile
@@ -233,6 +233,7 @@ monotouch_runtime_SUBDIRS := $(monotouch_runtime_dirs)
mobile_static_SUBDIRS := $(mobile_static_dirs)
mobile_SUBDIRS := $(mobile_dynamic_dirs)
xammac_SUBDIRS := $(xammac_dirs)
+net_4_0_SUBDIRS := $(net_2_0_dirs) $(net_4_0_dirs) $(xbuild_4_0_dirs)
net_4_5_SUBDIRS := $(net_2_0_dirs) $(net_4_0_dirs) $(net_4_5_dirs) $(xbuild_4_0_dirs) aot-compiler
xbuild_12_SUBDIRS := $(xbuild_4_0_dirs)
xbuild_14_SUBDIRS := $(xbuild_4_0_dirs)
diff --git a/runtime/Makefile.am b/runtime/Makefile.am
index c7a08f7b8a5..45740ef16b3 100644
--- a/runtime/Makefile.am
+++ b/runtime/Makefile.am
@@ -34,7 +34,7 @@ else
build_profiles =
if INSTALL_4_5
-build_profiles += net_4_5 xbuild_12 xbuild_14
+build_profiles += net_4_0 net_4_5 xbuild_12 xbuild_14
al_profile = net_4_5
endif
@@ -110,9 +110,13 @@ endif
# Compile all assemblies with the verifier turned on. Code must be valid but not verifiable.
# TODO it would be nice to split assemblies without unsafe code to use the verifier with verifiable mode.
+# Skip net 4.0 assemblies because they contain metadata only
mcs-compileall: mono-wrapper etc/mono/config
save_MONO_PATH=$$MONO_PATH; mcs_topdir=`cd $(mcs_topdir) && $(cur_dir_cmd)`; ok=:; \
for profile in $(test_profiles); do \
+ if [ "net_4_0" = "$$profile" ]; then \
+ continue; \
+ fi; \
if [ "xbuild_12" = "$$profile" ]; then \
MONO_PATH="$$mcs_topdir/class/lib/$$profile$(PLATFORM_PATH_SEPARATOR)$$mcs_topdir/class/lib/net_4_5$(PLATFORM_PATH_SEPARATOR)$$save_MONO_PATH"; \
elif [ "xbuild_14" = "$$profile" ]; then \