This is Mono.
-A directory roadmap:
+1. Installation
+2. Using Mono
+3. Directory Roadmap
+
+1. Compilation and Installation
+===============================
+
+ a. Build Requirements
+ ---------------------
+
+ To build Mono, you will need the following components:
+
+ * pkg-config
+
+ Available from: http://www.freedesktop.org/Software/pkgconfig
+
+ * glib 2.0
+
+ Available from: http://www.gtk.org/
+
+ Optional dependencies:
+
+ * ICU library
+
+ http://oss.software.ibm.com/icu/index.html
+
+ You will need this one to get complete support for the international
+ features of the .NET Framework.
+
+ * Cairo and libgdiplus
+
+ If you want to get support for System.Drawing, you will need to get
+ both Libgdiplus and Cairo.
+
+ b. Building the Software
+ ------------------------
+
+ If you obtained this package as an officially released tarball,
+ this is very simple, use configure and make:
+
+ ./configure --prefix=/usr/local
+ make
+ make install
+
+ Mono supports a JIT engine on x86, SPARC and PowerPC systems.
+ The various commands that ship with Mono default to the JIT engine
+ on x86 and SPARC, to turn it on for PPC systems, use the --with-jit=yes
+ command line option to configure.
+
+ MacOS X Users: you will need to download the latest Boehm GC
+ Alpha release for garbage collection to work properly.
+
+ If you obtained this as a snapshot, you will need an existing
+ Mono installation. To upgrade your installation, unpack both
+ mono and mcs:
+
+ tar xzf mcs-XXXX.tar.gz
+ tar xzf mono-XXXX.tar.gz
+ cd mono-XXXX
+ ./autogen.sh --prefix=/usr/local
+ make fullbuild
+
+ c. Upgrade from CVS
+ -------------------
+
+ If you are upgrading from CVS you will need an existing Mono installation.
+ First verify that you have a working installation:
+
+ echo 'class X { static void Main () { System.Console.Write("OK");}}' > x.cs
+
+ Compile:
+
+ mcs x.cs
+
+ And run:
+
+ mono x.exe
+
+ If you get the output `OK' and no errors, you are ready to start your CVS upgrade.
+
+ First, make sure that you have up-to-date mcs and mono sources:
+
+ cvs co mono mcs
+
+ Then, go into the mono directory, and configure:
+
+ cd mono
+ ./autogen.sh --prefix=/usr/local
+
+ Then compile using the special target `fullbuild':
+
+ make fullbuild
+
+ This step will compile and install at the same time.
+
+ Failure to follow these steps will result in a broken installation.
+
+
+2. Using Mono
+=============
+
+ Once you have installed the software, you can run a few programs:
+
+ * runtime engine
+
+ mono program.exe
+ or
+ mint program.exe
+
+ * C# compiler
+
+ mcs program.cs
+
+ * CIL Disassembler
+
+ monodis program.exe
+
+ See the man pages for mono(1), mint(1), monodis(1) and mcs(2)
+ for further details.
+
+3. Directory Roadmap
+====================
doc/
- Contains documentation and the web site contents.
+ Contains the web site contents.
+
+ docs/
+ Technical documents about the Mono runtime.
+
+ data/
+ Configuration files installed as part of the Mono runtime.
mono/
- The core of the executable.
+ The core of the Mono Runtime.
metadata/
- The library to deal with executables and libraries for
- .NET
+ The object system and metadata reader.
+
+ jit/
+ The Just in Time Compiler.
dis/
CIL executable Disassembler
cli/
Common code for the JIT and the interpreter.
+ io-layer/
+ The I/O layer and system abstraction for
+ emulating the .NET IO model.
+
cil/
Common Intermediate Representation, XML
definition of the CIL bytecodes.
interp/
Interpreter for CLI executables.
-* Using Mono
-
- Once you have installed the software, you can run a few programs:
-
- monodis program.exe
-
- That will dump the bytecodes for program.exe. Monodis support
- a number of options that dumps various metadata tables
- (chapter 23 of the Partition III).
-
- You can try the interpreter like this:
-
- mono-int program.exe
-
-
-
+ arch/
+ Architecture specific portions.
+ man/
+ Manual pages for the various Mono commands and programs.
+ scripts/
+ Scripts used to invoke Mono and the corresponding program.
+ runtime/
+ A directory holding a pre-compiled version of the Mono
+ runtime.