..
.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
attribute.
.TP
.I \-debug, \-debug+
-Generate debugging information. To obtain stack traces with debugging
+Generate debugging information. To obtain stack traces with debugging
information, you need to invoke the mono runtime with the `--debug'
-flag. This debugging information is stored inside the assembly as a
-resource.
+flag. The debugging information is stored in a MDB file located in
+same output folder as produced assembly.
.TP
.I \-debug-
Do not generate debugging information.
This flag is ignored by Mono's C# compiler and is present only to
allow MCS to be used as a CSC replacement for msbuild/xbuild.
.TP
+.I \-fullpaths
+Any source code error or warning issued by the compiler includes file
+name only by default. This option causes compiler to issue absolute file
+path instead.
+.TP
.I \-keyfile:KEYFILE
Strongname (sign) the output assembly using the key pair present in
the specified strong name key file (snk). A full key pair is required
.TP
.I "Default"
Instruct compiler to use the latest version. Equivalent is to omit the
-switch (this currently defaults to the C# 3.0 language specification).
+switch (this currently defaults to the C# 4.0 language specification).
.TP
.I "ISO-1"
Restrict compiler to use only first ISO standardized features.
Restrict the compiler to use only the features available in C# 3.0
(a superset of ISO-1 and ISO-2).
.TP
+.I "4"
+Restrict the compiler to use only the features available in C# 4.0
+specification.
+.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
list WARNLIST>
.TP
.I -optimize, -optimize+, -optimize-
-Controls whether to perform optimizations on the code. -optimize and
+Controls compiler code generation optimizations on the code. Using -optimize or
-optimize+ will turn on optimizations, -optimize- will turn it off.
-The default in mcs is to optimize+.
+The default in mcs is to optimize-. The option can be mixed with -debug
+but for the best debugging experience it is recommended leave the options off.
.TP
.I -out:FNAME, -o FNAME
Names the output file to be generated.
.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
.ne
.RE
.TP
-.I \-platform
-This flag is ignored by Mono's C# compiler and is present only to
-allow MCS to be used as a CSC replacement for msbuild/xbuild.
+.I \-platform:ARCH
+Used to specify the target platform. The possible values are: anycpu,
+anycpu32bitpreferred, arm, x86, x64 or itanium. The default option is
+anycpu.
.TP
.I -resource:RESOURCE[,ID]
Embeds to the given resource file. The optional ID can be used to
$ mcs -recurse:'*.cs'
.fi
.TP
+.I \-sdk:VERSION
+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
statements and expressions. A shortcut is to use the
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
.SH LICENSE
The Mono Compiler Suite is released under the terms of the GNU GPL or
the MIT X11. Please read the accompanying `COPYING' file for details.
-Alternative licensing for the compiler is available from Novell.
+Alternative licensing for the compiler is available from Xamarin.
.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
The Mono Mailing lists are listed at http://www.mono-project.com/Mailing_Lists
.SH MORE INFORMATION
The Mono C# compiler was developed by Novell, Inc
-(http://www.novell.com, http) and is based on the
+(http://www.novell.com) and Xamarin Inc (http://www.xamarin.com) is based on the
ECMA C# language standard available here:
http://www.ecma.ch/ecma1/STAND/ecma-334.htm
.PP