Fix culevel execution path
[mono.git] / man / mcs.1
index 59f80fa5765b8db69e97b46c4ff8ef48f7ff008d..9e08b0c34ef18c60171370cbeea6312ebd0e841b 100644 (file)
--- a/man/mcs.1
+++ b/man/mcs.1
@@ -18,12 +18,13 @@ prepending the @ symbol to the response file name.
 The 
 .I mcs
 compiler is used to compile against the 1.x profile and implements
-C# 1.0 and 2.0 with the exception of generics and nullable types.
+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# 2.0 specification including generics.
+the complete C# 3.0 specification.
 .PP
 The
 .I smcs
@@ -32,8 +33,7 @@ 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), in addition this profile by default runs with
--langversion:linq which turns on the C# 3.0 language by default.
+extensions).
 .PP
 See the section on packages for more information.
 .PP
@@ -108,7 +108,7 @@ SYMBOL.  This can be tested in the source code by the pre-processor,
 or can be used by methods that have been tagged with the Conditional
 attribute. 
 .TP
-.I \-debug, \-debug+, \-g
+.I \-debug, \-debug+
 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
@@ -136,14 +136,23 @@ precedence over the attributes.
 Extracts the C#/XML documentation from the source code and stores in in
 the given FILE.
 .TP
-.I \-\-expect-error X L
-The compiler will expect the code to generate an error 
-named `X' in line `L'.  This is only used by the test suite.
-.TP 
+.I \-errorreport
+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 \-\-fatal 
 This is used for debugging the compiler.  This makes the error emission
 generate an exception that can be caught by a debugger.
 .TP
+.I \-filealign
+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
@@ -169,7 +178,7 @@ The possible values are:
 .TP
 .I "Default"
 Instruct compiler to use the latest version. Equivalent is to omit the
-switch (this currently defaults to the C# 2.0 language specification).
+switch (this currently defaults to the C# 3.0 language specification).
 .TP
 .I "ISO-1"
 Restrict compiler to use only first ISO standardized features.
@@ -181,10 +190,13 @@ Restrict compiler to use only the second ISO standardized features.
 This allows the use of generics, static classes, iterators and
 anonymous methods for example.
 .TP
-.I "linq"
-This enables the C# 3.0 support.   Only a few features of C# 3.0 have
-been implemented in the Mono C# compiler, so not everything is
-available. 
+.I "3"
+Restrict the compiler to use only the features available in C# 3.0
+(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.
 .PP
 Notice that this flag only controls the language features available to
 the programmer, it does not control the kind of assemblies produced.
@@ -278,6 +290,11 @@ For more details see the PACKAGE section in this document
 .ne
 .RE
 .TP
+.I \-platform:ARCH
+Used to specify the target platform. The possible values are: anycpu,
+x86, x64 or itanium. As of June 2009, the Mono runtime only have support
+to emit anycpu and x86 assemblies.
+.TP
 .I -resource:RESOURCE[,ID]
 Embeds to the given resource file.  The optional ID can be used to
 give a different name to the resource.  If not specified, the resource
@@ -339,6 +356,11 @@ shell will perform globbing, so you might want to use it like this:
                $ mcs -recurse:'*.cs' 
 .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.
+.TP
 .I \-\-shell
 Starts up the compiler in interactive mode, providing a C# shell for
 statements and expressions.   A shortcut is to use the
@@ -364,18 +386,22 @@ Enables compilation of unsafe code.
 .I \-v 
 Debugging. Turns on verbose yacc parsing.
 .TP
-.I \-v2
-Turns on C# 2.0 language features.
-.TP
 .I \-\-version
 Shows the compiler version.
 .TP
 .I \-warnaserror, \-warnaserror+
-Treat warnings as errors.
+All compilers warnings will be reported as errors.
+.TP
+.I \-warnaserror:W1,[Wn], -warnaserror+:W1,[Wn]
+Treats one or more compiler warnings as errors.
+.TP
+.I \-warnaserror-:W1,[Wn]
+Sets one or more compiler warnings to be always threated as warnings.
+Becomes useful when used together with -warnaserror.
 .TP
 .I \-warn:LEVEL
 Sets the warning level.  0 is the lowest warning level, and 4 is the
-highest.  The default is 2.
+highest.  The default is 4.
 .TP
 .I \-win32res:FILE
 Specifies a Win32 resource file (.res) to be bundled into the
@@ -389,7 +415,14 @@ assembly.
 Use this to stop option parsing, and allow option-looking parameters
 to be passed on the command line.
 .PP
-.SH PACKAGES
+.SH PACKAGES AND LIBRARIES
+When referencing an assembly, if the name of the assembly is a path,
+the compiler will try to load the assembly specified in the path.   If
+it does not, then the compiler will try loading the assembly from the
+current directory, the compiler base directory and if the assembly is
+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.