..
.TH mcs 1 "6 January 2001"
.SH NAME
-mcs, gmcs, smcs \- Mono C# Compiler (1.0, 2.0, Moonlight)
+mcs \- Mono C# Compiler
.SH SYNOPSIS
.B mcs
[option] [source-files]
.PP
The
.I mcs
-compiler is used to compile against the 1.x profile and implements
-C# 1.0 and parts of C# 2.0 and C# 3.0 specification which do not depend
-on generics.
-.PP
-The
-.I gmcs
-compiler is used to compile against the 2.0 profile and implements
-the complete C# 3.0 specification.
-.PP
-The
-.I smcs
-compiler is used to compile against the Silverlight/Moonlight profile.
-This profile is designed to be used for creating Silverlight/Moonlight
-applications that will run on a web browser. The API exposed by this
-profile is a small subset of the 3.5 API (even if it is commonly
-referred as the 2.1 API, this API is a small subset of 2.0 with a few
-extensions).
+compiler is used to compile against the latest Mono Base Class Library
+version and fully implements C# 1.0, 2.0, 3.0 and 4.0 specifications.
.PP
See the section on packages for more information.
.PP
(a superset of ISO-1 and ISO-2).
.TP
.I "future"
-Enables features from upcoming versions of the language. As of
-May 2009 this includes support for C# 4 as released in Visual Studio 2010 beta 1.
+Enables unstable features from upcoming versions of the language.
.PP
-Notice that this flag only controls the language features available to
-the programmer, it does not control the kind of assemblies produced.
-Programs compiled with mcs will reference the 1.1 APIs, Programs
-compiled with gmcs reference the 2.0 APIs.
+Notice that this flag only restricts the language features available to
+the programmer. A version of produced assemblies can be controled using
+.I SDK
+option.
.ne
.RE
.TP
.TP
.I \-pkg:silver
References the assemblies for creating Moonlight/Silverlight
-applications. This is automatically used when using the
-.I smcs
-compiler, but it is here when developers want to use it with the
-.I gmcs
-compiler.
+applications.
.TP
.I \-pkg:silverdesktop
Use this option to create Moonlight/Silverlight applications that
.fi
.TP
.I \-sdk:VERSION
-Used to specify the version of Base Class Library assemblies. The possible
-values are: 2 (default), 4. The version number means which .NET version
-should the produced assembly be compatible with.
+Used to specify the version of Base Class Library assemblies used for
+compilation. Following predefined values are valid: 2, 4 (default) as
+well as any custom value. The predefined version number means which
+.NET version should the produced assembly be compatible with. When
+custom value is specified mcs will try to find Base Class Libraries
+in the mono installed location PREFIX/lib/mono/<value>.
.TP
.I \-\-shell
Starts up the compiler in interactive mode, providing a C# shell for
not found in any of those places in the directories specified as
arguments to the -lib: command argument.
.PP
-Depending on the invocation for the C# compiler (mcs, gmcs, or smcs)
-you will get a default set of libraries and versions of those
-libraries that are referenced.
-.PP
The compiler uses the library path to locate libraries, and is able to
reference libraries from a particular package if that directory is
used. To simplify the use of packages, the C# compiler includes the
Alternative licensing for the compiler is available from Novell.
.PP
.SH SEE ALSO
-csharp(1), mdb(1), mono(1), mopen(1), mint(1), pkg-config(1),sn(1)
+csharp(1), mdb(1), mono(1), mopen(1), pkg-config(1), sn(1)
.PP
.SH BUGS
To report bugs in the compiler, you must file them on our bug tracking