2007-08-20 Marek Habersack <mhabersack@novell.com>
[mono.git] / man / mcs.1
index 082035d26d57676412b58e2f843e128eab79ccaa..9a4ff592d10c3c271e4e71bf36764ba5e53c358e 100644 (file)
--- a/man/mcs.1
+++ b/man/mcs.1
@@ -1,6 +1,6 @@
 .TH mcs 1 "6 January 2001"
 .SH NAME 
-mcs, gmcs \- Mono C# Compiler (1.0 and 2.0)
+mcs, gmcs, smcs \- Mono C# Compiler (1.0, 2.0, Moonlight)
 .SH SYNOPSIS
 .B mcs 
 [option] [source-files]
@@ -14,11 +14,23 @@ 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.  The
+C# 1.0 and 2.0 with the exception of generics and nullable types.
+.PP
+The
 .I gmcs
-compiler is used to compile against the 2.x profile and implements
+compiler is used to compile against the 2.0 profile and implements
 the complete C# 2.0 specification including generics.
 .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 2.0 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.
+.PP
 The Mono C# compiler accepts the same command line options that the
 Microsoft C# compiler does.  Those options can start with a slash or a
 dash (/checked is the same as -checked).  Additionally some GNU-like
@@ -65,8 +77,8 @@ the math operations unchecked (this is the default).
 .I -codepage:ID
 Specifies the code page used to process the input files from the
 point it is specified on.  By default files will be processed in the
-Latin-1 code page.  The compiler will also automatically detect
-Unicode files that have an embedded byte mark at the beginning.   
+environment-dependent native code page.  The compiler will also automatically
+detect Unicode files that have an embedded byte mark at the beginning.   
 .Sp
 Other popular encodings are 28591 (Latin1), 1252 (iso-8859-1) and 65001 (UTF-8).
 .Sp
@@ -204,9 +216,11 @@ compile the code.
 .Sp
 This is typically used with third party components, like this:
 .nf
+
                $ mcs -pkg:gtk-sharp demo.cs
 .fi
-.TP
+.RS
+.ne 8
 .TP
 .I \-pkg:dotnet
 This will instruct the compiler to reference the System.* libraries
@@ -214,9 +228,32 @@ available on a typical dotnet framework installation, notice that this
 does not include all of the Mono libraries, only the System.* ones.  This
 is a convenient shortcut for those porting code.
 .TP
-.TP
 .I \-pkg:olive
-Use this to reference the "Olive" libraries (the 3.0 and 3.5 extended libraries).
+Use this to reference the "Olive" libraries (the 3.0 and 3.5 extended
+libraries).
+.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.
+.TP
+.I \-pkg:silverdesktop
+Use this option to create Moonlight/Silverlight applications that
+target the desktop.   This option allows developers to consume the
+Silverlight APIs with the full 2.0 profile API available to them,
+unlike 
+.I smcs 
+it gives full access to all the APIs that are part of Mono.  The only
+downside is that applications created with silverdesktop will not run
+on the browser.   Typically these applications will be launched
+with the 
+.I mopen
+command line tool.
+.ne
+.RE
 .TP
 .I -resource:RESOURCE[,ID]
 Embeds to the given resource file.  The optional ID can be used to
@@ -313,17 +350,15 @@ Note that the effect of defining TRACE and DEBUG is a global setting,
 even if they are only defined in a single file.
 .PP
 .SH DEBUGGING SUPPORT
-When use the "--debug" or "-g" flag, MCS will create an assembler file
-FILE-debug.s containing debugging information where FILE is the name of
-the generated assembly. You need to run this file through the assembler
-to get a object file FILE-debug.o.  See mono's "--dwarf-plus" argument
-for details on how to use this file.
+When using the "-debug" flag, MCS will generate a file with the
+extension .mdb that contains the debugging information for the
+generated assembly.  This file is consumed by the Mono debugger (mdb).
 .SH NOTES
 During compilation the MCS compiler defines the __MonoCS__ symbol,
 this can be used by pre-processor instructions to compile Mono C#
 compiler specific code.   Please note that this symbol is only to test
 for the compiler, and is not useful to distinguish compilation or
-deployment platforms.
+deployment platforms.  
 .SH AUTHORS
 The Mono C# Compiler was written by Miguel de Icaza, Ravi Pratap,
 Martin Baulig, Marek Safar and Raja Harinath.  The development was
@@ -335,7 +370,7 @@ Please read the accompanying `COPYING' file for details.  Alternative
 licensing for the compiler is available from Novell.
 .PP
 .SH SEE ALSO
-mono(1), mint(1), sn(1)
+mdb(1), mono(1), mopen(1), mint(1), sn(1)
 .PP
 .SH BUGS
 To report bugs in the compiler, you must file them on our bug tracking