--- /dev/null
+.TH mbas 1 "21 February 2006"
+.SH NAME
+mbas \- Mono Basic Compiler.
+.SH SYNOPSIS
+.B mbas
+[option] [source-files]
+.SH DESCRIPTION
+.PP
+.I MonoBASIC (mbas)
+is a CIL compiler for the VisualBasic.NET language, an
+extended version of Visual Basic.
+.PP
+Applications developed on Windows with vbc can execute on Mono and applications
+compiled with 'mbas' can be executed on .NET runtime.
+.PP
+The Mono Basic compiler accepts the same options as
+the Microsoft VB.NET compiler. Those options can start with a slash or a
+dash (/checked is the same as -checked). Additionally to this, the
+GNU-like options are supported, those begin with "--". All
+-specific flags which are not available in the Microsoft VB.NET
+compiler are available only with the GNU-style options.
+.PP
+Visual Basic.NET source files must end with a ".vb" extension. Compilation of
+VB.NET source code requires all the files that make up a library, module or
+executable to be provided on the command line. There is no support
+for partial compilation. To achieve the benefits of partial
+compilation, you should compile programs into their own assemblies,
+and later reference them with the "-r" flag.
+.PP
+The Mono Basic compiler generates images (.exe files) that contain
+CIL byte code that can be executed by any system that implements a Common
+Language Infrastructure virtual machine such as the Microsoft .NET
+runtime engine on Windows or the Mono runtime engine on Unix systems.
+Executables are not bound to a specific CPU or operating system.
+.PP
+The Mono Basic compiler by default only references three assemblies:
+mscorlib.dll, System.dll and System.Xml.dll. If you want to
+reference extra libraries you must manually specify them using the
+-pkg: command line option or the -r: command line option.
+Alternatively if you want to get all of the System libraries, you can
+use the -pkg:dotnet command line option.
+.PP
+.SH OPTIONS
+.TP
+.I \-\-about
+Displays information about the Mono Basic compiler
+.TP
+.I \-\-addmodule:MODULE1[,MODULE2]
+Includes the specified modules in the resulting assembly.
+.TP
+.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.
+.TP
+Other popular encodings are 28591 (Latin1), 1252 (iso-8859-1) and 65001 (UTF-8).
+.TP
+Mono Basic supports a couple of shorthands: "utf8" can be used to specify utf-8 instead
+of using the cryptic 65001 and "reset" restores the automatic handling of
+code pages. These shorthands are not available on the Microsoft compiler.
+.TP
+.I \-define:SYMLIST, -d:SYMLIST
+Defines the symbol listed by the semi-colon separeted list SYMLIST
+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-args:arguments
+Debugger arguments.
+.TP
+.I \-debug:AMOUNT
+Specify the amount of debugging information to emit. Possible values for
+AMOUNT are "full" and "pdbonly".
+.TP
+.I \-~, \-debugoptions
+Show debugging info while processing options.
+.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 \-imports:import-list
+Declare global Imports for listed namespaces.
+.TP
+.I \-ignorewarn:XXXX
+Ignores warning number XXXX.
+.TP
+.I -lib:PATHLIST, -libpath:PATHLIST
+Each path specified in the comma-separated list will direct the
+compiler to look for libraries in that specified path.
+.TP
+.I \-L PATH
+Directs the compiler to look for libraries in the specified path.
+Multiple paths can be provided by using the option multiple times.
+.TP
+.I \-main:CLASS
+Tells the compiler which CLASS or MODULE contains the entry point. Useful when
+you are compiling several classes with a Main method.
+.TP
+.I \-nologo
+Suppress printing copyright information on startup.
+.TP
+.I \-nostdlib, -nostdlib+
+Use this flag if you want to compile the core library. This makes the
+compiler load its internal types from the assembly being compiled.
+.TP
+.I \-noconfig, \-noconfig+
+Disables the default compiler configuration to be loaded. The
+compiler by default has references to the system assemblies.
+.TP
+.I \-nowarn
+Makes the compiler ignore warnings.
+.TP
+.I \-optioncompare:binary, \-optioncompare:text
+Select between binary and text string comparisons. The default is binary
+string comparisons.
+.TP
+.I \-optionexplicit[+|-]
+Require explicit declaration of variables
+.TP
+.I \-optionstrict[+|-]
+Enforce strict language semantics
+.TP
+.I \-out:FNAME, -o FNAME
+Names the output file to be generated.
+.TP
+.I \-\-parse
+Used for benchmarking. The compiler will only parse its input files.
+Currently ignored.
+.TP
+.I \-pkg:package1[,packageN]
+The compiler will invoke pkg-config --libs on the set of packages
+specified on the command line to obtain libraries and directories to
+compile the code.
+.PP
+This is typically used with third party components, like this:
+.nf
+ $ mbas -pkg:gtk-sharp demo.vb
+.fi
+.TP
+.TP
+.I \-pkg:dotnet
+This will instruct the compiler to reference the System.* libraries
+available on a typical dotnet framework installation, notice that this
+does not include all of the Mono libraies, only the System.* ones. This
+is a convenient shortcut for those porting code.
+.TP
+.I -q -quiet
+Commands the compiler to show only error messages for syntax-related errors
+and warnings.
+.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
+name will be the file name.
+.TP
+.I -linkresource:RESOURCE[,ID]
+Links to the specified RESOURCE. The optional ID can be used to give
+a name to the linked resource.
+.TP
+.I -r:ASSEMBLY1[,ASSEMBLY2], \-r ASSEMBLY1[,ASSEMBLY2]
+Reference the named assemblies. Use this to use classes from the named
+assembly in your program. The assembly will be loaded from either the
+system directory where all the assemblies live, or from the path
+explicitly given with the -L option.
+.PP
+You can also use a semicolon to separate the assemblies instead of a
+comma.
+.TP
+.I \-removeintchecks[+|-]
+Remove integer checks. Default off.
+.TP
+.I \-rootnamespace:namespace
+Specifies the root namespace for all type declarations
+.TP
+.I \-\-stacktrace
+Generates a stack trace at the time the error is reported, useful for
+debugging the compiler.
+.TP
+.I \-target:KIND, \-t:KIND
+Used to specify the desired target. The possible values are: exe
+(plain executable), winexe (Windows.Forms executable), library
+(component libraries) and module (partial library).
+.TP
+.I \-\-timestamp
+Another debugging flag. Used to display the times at various points
+in the compilation process.
+.TP
+.I \-tokenize
+Only tokenizes source files. Currently ignored.
+.TP
+.I \-unsafe, -unsafe+
+Enables compilation of unsafe code.
+.TP
+.I \-utf8output[+|-]
+Emit compiler output in UTF8 character encoding. Currently ignored.
+.TP
+.I \-v
+Debugging. Turns on verbose yacc parsing.
+.TP
+.I -. -verbosegetoptions
+Show verbose parsing of options
+.TP
+.I \-\-version
+Shows the compiler version.
+.TP
+.I \-warnaserror, \-warnaserror+
+Treat warnings as errors.
+.TP
+.I \-wlevel:LEVEL
+Sets the warning level. 0 is the lowest warning level, and 4 is the
+highest. The default is 2.
+.TP
+.I \-\-
+Use this to stop option parsing, and allow option-looking parameters
+to be passed on the command line.
+.SH STABILITY
+As of early 2006, the Mono Basic compiler is still considered alpha software.
+Several language constructions that are accepted by the Microsoft Visual
+Basic.NET compiler are refused by the Mono Basic compiler. Occassional
+crashes also still occur.
+.PP
+.SH AUTHORS
+The Mono Basic compiler was written by Rafael "Monoman" Teixeira.
+.PP
+.SH LICENSE
+The Mono Basic compiler is released under the terms of the GNU GPL.
+Please read the accompanying `COPYING' file for details. Alternative
+licenses are available from Ximian.
+.PP
+.SH SEE ALSO
+mcs(1), mono(1), mint(1), sn(1)
+.PP
+.SH BUGS
+To report bugs in the compiler, you can use `bug-buddy', or you can
+file bug reports in our bug tracking system:
+http://bugzilla.ximian.com.
+.SH MAILING LIST
+The Mono Basic Mailing List is available at: mono-vb-list-request@ximian.com