* inssel-s390.brg: Correct register assignment; Rework L[ADD|SUB]_OVF[_UN] for s390.
[mono.git] / README
blob098b033916e89f3e2bdcbb6604aa6000286d1b72
2 This is Mono.
4         1. Installation
5         2. Using Mono
6         3. Directory Roadmap
8 1. Compilation and Installation
9 ===============================
11    a. Build Requirements
12    ---------------------
14         To build Mono, you will need the following components:
16                 * pkg-config
18                   Available from: http://www.freedesktop.org/Software/pkgconfig
20                 * glib 2.4
22                   Available from: http://www.gtk.org/
24         On Itanium, you must obtain libunwind:
26                 http://www.hpl.hp.com/research/linux/libunwind/download.php4
28         Optional dependencies:
30                 * libgdiplus
32                   If you want to get support for System.Drawing, you will need to get
33                   Libgdiplus.
35     b. Building the Software
36     ------------------------
37         
38         If you obtained this package as an officially released tarball,
39         this is very simple, use configure and make:
41                 ./configure --prefix=/usr/local
42                 make
43                 make install
45         Mono supports a JIT engine on x86, SPARC, SPARCv9, S/390, AMD64 and PowerPC systems.
47         If you obtained this as a snapshot, you will need an existing
48         Mono installation.  To upgrade your installation, unpack both
49         mono and mcs:
51                 tar xzf mcs-XXXX.tar.gz
52                 tar xzf mono-XXXX.tar.gz
53                 mv mono-XXX mono
54                 mv mcs-XXX mcs
55                 cd mono
56                 ./autogen.sh --prefix=/usr/local
57                 make
59     c. Building the software from SVN
60     ---------------------------------
62         If you are building the software from SVN, make sure that you
63         have up-to-date mcs and mono sources:
65                 svn co svn+ssh://USER@mono-cvs.ximian.com/source/trunk/mono
66                 svn co svn+ssh://USER@mono-cvs.ximian.com/source/trunk/mcs
68         Then, go into the mono directory, and configure:
70                 cd mono
71                 ./autogen.sh --prefix=/usr/local
72                 make
74         This will automatically go into the mcs/ tree and build the
75         binaries there.
77         This assumes that you have a working mono installation, and that
78         there's a C# compiler named 'mcs', and a corresponding IL
79         runtime called 'mono'.  You can use two make variables
80         EXTERNAL_MCS and EXTERNAL_RUNTIME to override these.  e.g., you
81         can say
83           make EXTERNAL_MCS=/foo/bar/mcs EXTERNAL_RUNTIME=/somewhere/else/mono
84         
85         If you don't have a working Mono installation
86         ---------------------------------------------
88         If you don't have a working Mono installation, an obvious choice
89         is to install the latest released packages of 'mono' for your
90         distribution and try from the beginning.
92         You can also try a slightly more risky approach that should work
93         almost all the time.  
95         This works by first getting the latest version of the 'monolite'
96         distribution, which contains just enough to run the 'mcs'
97         compiler.  You do this with:
99                 make get-monolite-latest
101         This will download and automatically gunzip and untar the
102         tarball, and place the files appropriately so that you can then
103         just run:
105                 make
107         To ensure that you're using the 'monolite' distribution, you can
108         also try passing EXTERNAL_MCS=false on the make command-line.
110         Testing and Installation
111          ------------------------
113         You can run (part of) the mono and mcs testsuites with the command:
115                 make check
117         All tests should pass.  
119         If you want more extensive tests, including those that test the
120         class libraries, you need to re-run 'configure' with the
121         '--enable-nunit-tests' flag, and try
123                 make -k check
125         Expect to find a few testsuite failures.  As a sanity check, you
126         can compare the failures you got with
128                 http://go-mono.com/tests/displayTestResults.php
130         You can now install mono with:
132                 make install
134         Failure to follow these steps may result in a broken installation. 
136 2. Using Mono
137 =============
139         Once you have installed the software, you can run a few programs:
141         * runtime engine
143                 mono program.exe
145         * C# compiler
147                 mcs program.cs
149         * CIL Disassembler
151                 monodis program.exe
153         See the man pages for mono(1), mint(1), monodis(1) and mcs(2)
154         for further details.
156 3. Directory Roadmap
157 ====================
159         docs/
160                 Technical documents about the Mono runtime.
162         data/
163                 Configuration files installed as part of the Mono runtime.
165         mono/
166                 The core of the Mono Runtime.
168                 metadata/
169                         The object system and metadata reader.
171                 jit/
172                         The Just in Time Compiler.
174                 dis/
175                         CIL executable Disassembler
177                 cli/
178                         Common code for the JIT and the interpreter.
180                 io-layer/
181                         The I/O layer and system abstraction for 
182                         emulating the .NET IO model.
184                 cil/
185                         Common Intermediate Representation, XML
186                         definition of the CIL bytecodes.
188                 interp/
189                         Interpreter for CLI executables.
191                 arch/
192                         Architecture specific portions.
194         man/
196                 Manual pages for the various Mono commands and programs.
198         scripts/
200                 Scripts used to invoke Mono and the corresponding program.
202         runtime/
204                 A directory that contains the Makefiles that link the
205                 mono/ and mcs/ build systems.