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>2011-02-01 15:52:50 +0300
committerMarek Safar <marek.safar@gmail.com>2011-02-01 15:53:22 +0300
commit5e5b296eaec3af4a024f405e4a517bb287dbe990 (patch)
tree439093d0e390415a66982ba8f05b0f7206a3d7c5
parentef49ad4708b604b529e2f869e4b2934a45fe7fa1 (diff)
Make mcs.exe .net4 application
-rw-r--r--mcs/Makefile19
-rw-r--r--mcs/build/Makefile1
-rw-r--r--mcs/build/library.make4
-rw-r--r--mcs/build/profiles/build.make21
-rw-r--r--mcs/build/profiles/monodroid.make2
-rw-r--r--mcs/build/profiles/monotouch.make2
-rw-r--r--mcs/build/profiles/moonlight_raw.make2
-rw-r--r--mcs/build/profiles/net_2_0.make2
-rw-r--r--mcs/build/profiles/net_3_5.make2
-rw-r--r--mcs/build/profiles/net_4_0.make2
-rw-r--r--mcs/build/rules.make14
-rw-r--r--mcs/class/Makefile10
-rw-r--r--mcs/class/System.Core/build_System.Core.dll.sources1
-rw-r--r--mcs/class/aot-compiler/Makefile13
-rw-r--r--mcs/errors/Makefile4
-rw-r--r--mcs/mcs/Makefile11
-rw-r--r--mcs/tests/Makefile4
-rw-r--r--mcs/tools/Makefile14
-rw-r--r--mcs/tools/security/Makefile2
-rw-r--r--scripts/Makefile.am5
-rw-r--r--scripts/dmcs.in2
-rw-r--r--scripts/gmcs.in2
-rw-r--r--scripts/mcs.in2
23 files changed, 89 insertions, 52 deletions
diff --git a/mcs/Makefile b/mcs/Makefile
index b951d16f267..370052aaa96 100644
--- a/mcs/Makefile
+++ b/mcs/Makefile
@@ -2,14 +2,14 @@ thisdir := .
SUBDIRS := build jay mcs class nunit24 ilasm tools tests errors docs
-basic_SUBDIRS := build jay mcs class tools
+basic_SUBDIRS := build jay mcs class
+build_SUBDIRS := build class mcs class/aot-compiler tools
net_2_0_SUBDIRS := build class nunit24 ilasm tools tests errors
-moonlight_raw_SUBDIRS := build class tools
-moonlight_SUBDIRS := tools
+moonlight_raw_SUBDIRS := build class
monodroid_SUBDIRS := build class
monotouch_SUBDIRS := build class
net_3_5_SUBDIRS := build class tools/xbuild
-net_4_0_SUBDIRS := build class nunit24 ilasm tools tests errors docs
+net_4_0_SUBDIRS := build mcs class nunit24 ilasm tools tests errors docs
# List of test subdirs that should pass 100%
centum_tests := \
@@ -100,13 +100,14 @@ profiles-do--run-test:
# Orchestrate the bootstrap here.
_boot_ = all clean install
-$(_boot_:%=profile-do--net_4_0--%): profile-do--net_4_0--%: profile-do--basic--%
+$(_boot_:%=profile-do--net_4_0--%): profile-do--net_4_0--%: profile-do--build--%
$(_boot_:%=profile-do--net_3_5--%): profile-do--net_3_5--%: profile-do--net_2_0--%
$(_boot_:%=profile-do--moonlight--%): profile-do--moonlight--%: profile-do--moonlight_raw--%
-$(_boot_:%=profile-do--monodroid--%): profile-do--monodroid--%: profile-do--basic--%
-$(_boot_:%=profile-do--monotouch--%): profile-do--monotouch--%: profile-do--basic--%
-$(_boot_:%=profile-do--moonlight_raw--%): profile-do--moonlight_raw--%: profile-do--basic--%
-$(_boot_:%=profile-do--net_2_0--%): profile-do--net_2_0--%: profile-do--basic--%
+$(_boot_:%=profile-do--monodroid--%): profile-do--monodroid--%: profile-do--build--%
+$(_boot_:%=profile-do--monotouch--%): profile-do--monotouch--%: profile-do--build--%
+$(_boot_:%=profile-do--moonlight_raw--%): profile-do--moonlight_raw--%: 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--%
testcorlib:
@cd class/corlib && $(MAKE) test run-test
diff --git a/mcs/build/Makefile b/mcs/build/Makefile
index f90c8b89626..414bb81c9f4 100644
--- a/mcs/build/Makefile
+++ b/mcs/build/Makefile
@@ -17,6 +17,7 @@ common/Consts.cs: common/Consts.cs.in $(wildcard config.make)
PLATFORMS = darwin linux win32
PROFILES = \
basic \
+ build \
net_2_0 \
moonlight_raw \
moonlight \
diff --git a/mcs/build/library.make b/mcs/build/library.make
index 614ac01c002..4b14c263916 100644
--- a/mcs/build/library.make
+++ b/mcs/build/library.make
@@ -66,8 +66,8 @@ library_CLEAN_FILES += $(build_lib) $(build_lib).so $(build_lib).mdb $(build_lib
ifdef NO_SIGN_ASSEMBLY
SN = :
else
-sn = $(topdir)/class/lib/basic/sn.exe
-SN = $(Q) MONO_PATH="$(topdir)/class/lib/basic$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(RUNTIME) $(RUNTIME_FLAGS) $(sn)
+sn = $(topdir)/class/lib/$(BUILD_TOOLS_PROFILE)/sn.exe
+SN = $(Q) MONO_PATH="$(topdir)/class/lib/$(BUILD_TOOLS_PROFILE)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(RUNTIME) $(RUNTIME_FLAGS) $(sn)
SNFLAGS = -q
endif
diff --git a/mcs/build/profiles/build.make b/mcs/build/profiles/build.make
new file mode 100644
index 00000000000..15ad8591233
--- /dev/null
+++ b/mcs/build/profiles/build.make
@@ -0,0 +1,21 @@
+# -*- makefile -*-
+
+BOOTSTRAP_PROFILE = basic
+BUILD_TOOLS_PROFILE = basic
+
+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 -nowarn:1699 -nostdlib -lib:$(topdir)/class/lib/$(PROFILE) $(DEFAULT_REFERENCES)
+
+NO_SIGN_ASSEMBLY = yes
+NO_TEST = yes
+NO_INSTALL = yes
+
+FRAMEWORK_VERSION = 4.0
diff --git a/mcs/build/profiles/monodroid.make b/mcs/build/profiles/monodroid.make
index 533af51b685..439e1e15fcb 100644
--- a/mcs/build/profiles/monodroid.make
+++ b/mcs/build/profiles/monodroid.make
@@ -1,6 +1,6 @@
#! -*- makefile -*-
-BOOTSTRAP_PROFILE = basic
+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)
diff --git a/mcs/build/profiles/monotouch.make b/mcs/build/profiles/monotouch.make
index 31dce07bace..c3f5151394a 100644
--- a/mcs/build/profiles/monotouch.make
+++ b/mcs/build/profiles/monotouch.make
@@ -1,6 +1,6 @@
#! -*- makefile -*-
-BOOTSTRAP_PROFILE = basic
+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)
diff --git a/mcs/build/profiles/moonlight_raw.make b/mcs/build/profiles/moonlight_raw.make
index 1c530545ec5..e808a94490b 100644
--- a/mcs/build/profiles/moonlight_raw.make
+++ b/mcs/build/profiles/moonlight_raw.make
@@ -1,6 +1,6 @@
#! -*- makefile -*-
-BOOTSTRAP_PROFILE = basic
+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)
diff --git a/mcs/build/profiles/net_2_0.make b/mcs/build/profiles/net_2_0.make
index 0f79ea0f764..adea3e8376a 100644
--- a/mcs/build/profiles/net_2_0.make
+++ b/mcs/build/profiles/net_2_0.make
@@ -1,6 +1,6 @@
# -*- makefile -*-
-BOOTSTRAP_PROFILE = basic
+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)
diff --git a/mcs/build/profiles/net_3_5.make b/mcs/build/profiles/net_3_5.make
index 6bd8a93423c..90a4abee2bb 100644
--- a/mcs/build/profiles/net_3_5.make
+++ b/mcs/build/profiles/net_3_5.make
@@ -1,6 +1,6 @@
# -*- makefile -*-
-BOOTSTRAP_PROFILE = basic
+BOOTSTRAP_PROFILE = build
MCS = MONO_PATH="$(topdir)/class/lib/$(BOOTSTRAP_PROFILE)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(INTERNAL_GMCS)
diff --git a/mcs/build/profiles/net_4_0.make b/mcs/build/profiles/net_4_0.make
index 4574b47a090..4cf51db14a4 100644
--- a/mcs/build/profiles/net_4_0.make
+++ b/mcs/build/profiles/net_4_0.make
@@ -1,6 +1,6 @@
# -*- makefile -*-
-BOOTSTRAP_PROFILE = basic
+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)
diff --git a/mcs/build/rules.make b/mcs/build/rules.make
index 5d2d6ee29d5..1c358677974 100644
--- a/mcs/build/rules.make
+++ b/mcs/build/rules.make
@@ -24,6 +24,10 @@ Q=$(if $(V),,@)
# echo -e "\\t" does not work on some systems, so use 5 spaces
Q_MCS=$(if $(V),,@echo "MCS [$(PROFILE)] $(notdir $(@))";)
+ifndef BUILD_TOOLS_PROFILE
+BUILD_TOOLS_PROFILE = build
+endif
+
USE_MCS_FLAGS = /codepage:$(CODEPAGE) $(LOCAL_MCS_FLAGS) $(PLATFORM_MCS_FLAGS) $(PROFILE_MCS_FLAGS) $(MCS_FLAGS)
USE_MBAS_FLAGS = /codepage:$(CODEPAGE) $(LOCAL_MBAS_FLAGS) $(PLATFORM_MBAS_FLAGS) $(PROFILE_MBAS_FLAGS) $(MBAS_FLAGS)
USE_CFLAGS = $(LOCAL_CFLAGS) $(CFLAGS)
@@ -37,14 +41,10 @@ INSTALL_BIN = $(INSTALL) -c -m 755
INSTALL_LIB = $(INSTALL_BIN)
MKINSTALLDIRS = $(SHELL) $(topdir)/mkinstalldirs
INTERNAL_MBAS = $(RUNTIME) $(RUNTIME_FLAGS) $(topdir)/mbas/mbas.exe
-INTERNAL_GMCS = $(RUNTIME) $(RUNTIME_FLAGS) $(topdir)/class/lib/basic/mcs.exe
+INTERNAL_GMCS = $(RUNTIME) $(RUNTIME_FLAGS) $(topdir)/class/lib/$(BUILD_TOOLS_PROFILE)/mcs.exe
INTERNAL_ILASM = $(RUNTIME) $(RUNTIME_FLAGS) $(topdir)/class/lib/$(PROFILE)/ilasm.exe
corlib = mscorlib.dll
-ifndef BUILD_TOOLS_PROFILE
-BUILD_TOOLS_PROFILE = basic
-endif
-
INTERNAL_RESGEN = $(RUNTIME) $(RUNTIME_FLAGS) $(topdir)/class/lib/$(BUILD_TOOLS_PROFILE)/resgen.exe
depsdir = $(topdir)/build/deps
@@ -117,8 +117,8 @@ endif
ifdef NO_INSTALL
GACUTIL = :
else
-gacutil = $(topdir)/class/lib/basic/gacutil.exe
-GACUTIL = MONO_PATH="$(topdir)/class/lib/basic$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(RUNTIME) $(RUNTIME_FLAGS) $(gacutil)
+gacutil = $(topdir)/class/lib/$(BUILD_TOOLS_PROFILE)/gacutil.exe
+GACUTIL = MONO_PATH="$(topdir)/class/lib/$(BUILD_TOOLS_PROFILE)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(RUNTIME) $(RUNTIME_FLAGS) $(gacutil)
endif
STD_TARGETS = test run-test run-test-ondotnet clean install uninstall doc-update
diff --git a/mcs/class/Makefile b/mcs/class/Makefile
index e058188a709..95f54b148e4 100644
--- a/mcs/class/Makefile
+++ b/mcs/class/Makefile
@@ -2,7 +2,15 @@ thisdir = class
# Note that Mono.Security and System.Security aren't listed.
# We may have to add those if 'mcs' starts using them.
-basic_SUBDIRS := corlib System System.XML System Mono.Security Mono.CompilerServices.SymbolWriter System.Core aot-compiler
+basic_SUBDIRS := corlib System System.XML System Mono.Security System.Core
+
+build_SUBDIRS := \
+ corlib \
+ System \
+ System.XML \
+ System Mono.Security \
+ Mono.Posix \
+ System.Core
net_1_1_java_SUBDIRS = \
System.Xml \
diff --git a/mcs/class/System.Core/build_System.Core.dll.sources b/mcs/class/System.Core/build_System.Core.dll.sources
new file mode 100644
index 00000000000..7406bccf12b
--- /dev/null
+++ b/mcs/class/System.Core/build_System.Core.dll.sources
@@ -0,0 +1 @@
+#include net_4_0_System.Core.dll.sources
diff --git a/mcs/class/aot-compiler/Makefile b/mcs/class/aot-compiler/Makefile
index 944455866d3..0febe398d84 100644
--- a/mcs/class/aot-compiler/Makefile
+++ b/mcs/class/aot-compiler/Makefile
@@ -10,9 +10,9 @@ include ../../build/rules.make
the_libdir = $(topdir)/class/lib/$(PROFILE)/
-# mcs is in the basic profile, but the aot image should be compiled against the current
+# mcs.exe is only in the build profile, but the aot image should be compiled against the current
# profile
-mcs_exe = $(topdir)/class/lib/basic/mcs.exe
+mcs_exe = $(topdir)/class/lib/build/mcs.exe
mcs_aot_image = $(the_libdir)/mcs.exe$(PLATFORM_AOT_SUFFIX)
mscorlib_dll = $(the_libdir)/mscorlib.dll
@@ -36,12 +36,13 @@ ifdef ENABLE_AOT
clean-local:
-rm -f $(mscorlib_aot_image) $(mcs_aot_image) $(PROFILE)_aot.log
-ifeq ($(PROFILE),basic)
+# AOT build profile mcs to speed up build
+ifeq ($(PROFILE),build)
all-local: $(mscorlib_aot_image) $(mcs_aot_image)
install-local:
endif
-ifeq ($(PROFILE),net_2_0)
+ifeq ($(PROFILE),net_4_0)
all-local: $(mscorlib_aot_image) $(mcs_aot_image)
install-local:
$(MKINSTALLDIRS) $(DESTDIR)$(LIBRARY_INSTALL_DIR)
@@ -49,8 +50,8 @@ install-local:
$(INSTALL_LIB) $(mcs_aot_image) $(DESTDIR)$(PROGRAM_INSTALL_DIR)
endif
-# No mcs in net 4.0
-ifeq ($(PROFILE),net_4_0)
+# No mcs in net 2.0
+ifeq ($(PROFILE),net_2_0)
all-local: $(mscorlib_aot_image)
install-local:
$(MKINSTALLDIRS) $(DESTDIR)$(LIBRARY_INSTALL_DIR)
diff --git a/mcs/errors/Makefile b/mcs/errors/Makefile
index 8fd3c8e6f75..2e8e14a803f 100644
--- a/mcs/errors/Makefile
+++ b/mcs/errors/Makefile
@@ -41,7 +41,7 @@ TEST_SUPPORT_FILES = \
# mention all targets
all-local $(STD_TARGETS:=-local):
-VALID_PROFILE := $(filter net_2_0 moonlight net_4_0, $(PROFILE))
+VALID_PROFILE := $(filter net_4_0, $(PROFILE))
ifdef VALID_PROFILE
qcheck: run-mcs-tests
@@ -67,7 +67,7 @@ TESTER_OPTIONS = -compiler-options:"-v -d:NET_4_0 -sdk:4"
TEST_SUPPORT_FILES += DCS0266-lib.dll
endif
-COMPILER = $(topdir)/class/lib/basic/mcs.exe
+COMPILER = $(topdir)/class/lib/$(BUILD_TOOLS_PROFILE)/mcs.exe
TESTER = MONO_RUNTIME='$(RUNTIME)' $(TEST_RUNTIME) $(RUNTIME_FLAGS) $(LOCAL_RUNTIME_FLAGS) $(topdir)/class/lib/$(PROFILE)/compiler-tester.exe
run-mcs-tests: $(TEST_SUPPORT_FILES)
diff --git a/mcs/mcs/Makefile b/mcs/mcs/Makefile
index 88c7abe3fe7..2d5a18b740e 100644
--- a/mcs/mcs/Makefile
+++ b/mcs/mcs/Makefile
@@ -12,9 +12,16 @@ EXTRA_DISTFILES = \
TODO \
ikvm.cs
-LOCAL_MCS_FLAGS += -d:STATIC
-PROGRAM_INSTALL_DIR = $(mono_libdir)/mono/2.0
+ifeq (basic, $(PROFILE))
PROGRAM = $(topdir)/class/lib/basic/mcs.exe
+else
+PROGRAM = $(topdir)/class/lib/build/mcs.exe
+LOCAL_MCS_FLAGS += -lib:$(topdir)/class/lib/build
+endif
+
+LOCAL_MCS_FLAGS += -d:STATIC
+
+PROGRAM_INSTALL_DIR = $(mono_libdir)/mono/4.0
PROGRAM_COMPILE = $(BOOT_COMPILE)
diff --git a/mcs/tests/Makefile b/mcs/tests/Makefile
index a6bbd77c032..14dba76c097 100644
--- a/mcs/tests/Makefile
+++ b/mcs/tests/Makefile
@@ -19,7 +19,7 @@ USE_MCS_FLAGS :=
# mention all targets
all-local $(STD_TARGETS:=-local):
-VALID_PROFILE := $(filter net_2_0 moonlight net_4_0, $(PROFILE))
+VALID_PROFILE := $(filter net_4_0, $(PROFILE))
ifdef VALID_PROFILE
# casts
bootstrap-cast.exe: gen-cast-test.cs
@@ -52,7 +52,7 @@ DEFINES = -compiler-options:"-d:NET_4_0 -sdk:4"
endif
LOCAL_RUNTIME_FLAGS = --verify-all
-COMPILER = $(topdir)/class/lib/basic/mcs.exe
+COMPILER = $(topdir)/class/lib/$(BUILD_TOOLS_PROFILE)/mcs.exe
TESTER = MONO_RUNTIME='$(RUNTIME)' $(TEST_RUNTIME) $(RUNTIME_FLAGS) $(LOCAL_RUNTIME_FLAGS) $(topdir)/class/lib/$(PROFILE)/compiler-tester.exe
TEST_ILS := $(wildcard *-lib.il)
diff --git a/mcs/tools/Makefile b/mcs/tools/Makefile
index 0d8e482c720..024f6e2d686 100644
--- a/mcs/tools/Makefile
+++ b/mcs/tools/Makefile
@@ -2,7 +2,6 @@ thisdir = tools
per_profile_dirs = \
al \
- compiler-tester \
linker \
tuner \
csharp \
@@ -19,6 +18,7 @@ per_profile_dirs = \
net_4_0_dirs := \
$(per_profile_dirs) \
corcompare \
+ compiler-tester \
mono-xmltool \
mono-shlib-cop \
sgen \
@@ -46,19 +46,13 @@ net_4_0_dirs := \
net_2_0_dirs := \
$(per_profile_dirs) \
monodoc \
- mdoc \
- compiler-tester
-
-moonlight_dirs := \
- compiler-tester
+ mdoc
-basic_SUBDIRS = gacutil resgen security culevel
+build_SUBDIRS = gacutil resgen security culevel
net_2_0_SUBDIRS := $(basic_SUBDIRS) $(net_2_0_dirs)
-moonlight_raw_SUBDIRS := $(moonlight_dirs)
-moonlight_SUBDIRS := $(moonlight_dirs)
net_4_0_SUBDIRS := $(net_4_0_dirs) $(basic_SUBDIRS)
-SUBDIRS = $(basic_SUBDIRS) $(net_2_0_SUBDIRS) $(moonlight_SUBDIRS)
+SUBDIRS = $(basic_SUBDIRS) $(net_2_0_SUBDIRS)
DIST_SUBDIRS = $(SUBDIRS) $(net_4_0_dirs)
include ../build/rules.make
diff --git a/mcs/tools/security/Makefile b/mcs/tools/security/Makefile
index 3bc39635b44..9a3ed28fa71 100644
--- a/mcs/tools/security/Makefile
+++ b/mcs/tools/security/Makefile
@@ -22,7 +22,7 @@ PROGRAM_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)
DISTFILES = README TESTS $(SECURITY_SOURCES)
-ifeq (basic, $(PROFILE))
+ifeq (build, $(PROFILE))
all-local: $(topdir)/class/lib/$(PROFILE)/sn.exe
else
all-local: $(SECURITY_TARGETS)
diff --git a/scripts/Makefile.am b/scripts/Makefile.am
index 618bb4599bc..1c8969917a6 100644
--- a/scripts/Makefile.am
+++ b/scripts/Makefile.am
@@ -148,6 +148,7 @@ EXTRA_DIST = \
mono-find-requires.in \
peverify.in \
mcs.in \
+ gmcs.in \
dmcs.in \
mono-test-install \
mono-heapviz \
@@ -202,8 +203,8 @@ mcs: mcs.in Makefile
$(REWRITE_COMMON) $(srcdir)/mcs.in > $@.tmp
mv -f $@.tmp $@
-gmcs: mcs.in Makefile
- $(REWRITE_COMMON) $(srcdir)/mcs.in > $@.tmp
+gmcs: gmcs.in Makefile
+ $(REWRITE_COMMON) $(srcdir)/gmcs.in > $@.tmp
mv -f $@.tmp $@
dmcs: dmcs.in Makefile
diff --git a/scripts/dmcs.in b/scripts/dmcs.in
index 9660c902341..c29558f4f31 100644
--- a/scripts/dmcs.in
+++ b/scripts/dmcs.in
@@ -1,2 +1,2 @@
#!/bin/sh
-exec @bindir@/mono $MONO_OPTIONS @mono_instdir@/2.0/mcs.exe -sdk:4 "$@"
+exec @bindir@/mono $MONO_OPTIONS @mono_instdir@/4.0/mcs.exe -sdk:4 "$@"
diff --git a/scripts/gmcs.in b/scripts/gmcs.in
new file mode 100644
index 00000000000..0afd30d5d30
--- /dev/null
+++ b/scripts/gmcs.in
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec @bindir@/mono $MONO_OPTIONS @mono_instdir@/4.0/mcs.exe -sdk:2 "$@"
diff --git a/scripts/mcs.in b/scripts/mcs.in
index a48c529b904..0afd30d5d30 100644
--- a/scripts/mcs.in
+++ b/scripts/mcs.in
@@ -1,2 +1,2 @@
#!/bin/sh
-exec @bindir@/mono $MONO_OPTIONS @mono_instdir@/2.0/mcs.exe -sdk:2 "$@"
+exec @bindir@/mono $MONO_OPTIONS @mono_instdir@/4.0/mcs.exe -sdk:2 "$@"