8 1. Compilation and Installation
9 ===============================
14 To build Mono, you will need the following components:
18 Available from: http://www.freedesktop.org/Software/pkgconfig
22 Available from: http://www.gtk.org/
24 Optional dependencies:
28 http://oss.software.ibm.com/icu/index.html
30 You will need this one to get complete support for the international
31 features of the .NET Framework.
33 * Cairo and libgdiplus
35 If you want to get support for System.Drawing, you will need to get
36 both Libgdiplus and Cairo.
38 b. Building the Software
39 ------------------------
41 If you obtained this package as an officially released tarball,
42 this is very simple, use configure and make:
44 ./configure --prefix=/usr/local
48 Mono supports a JIT engine on x86, SPARC and PowerPC systems.
49 The various commands that ship with Mono default to the JIT engine
50 on x86 and SPARC, to turn it on for PPC systems, use the --with-jit=yes
51 command line option to configure.
53 MacOS X Users: you will need to download the latest Boehm GC
54 Alpha release for garbage collection to work properly.
56 If you obtained this as a snapshot, you will need an existing
57 Mono installation. To upgrade your installation, unpack both
60 tar xzf mcs-XXXX.tar.gz
61 tar xzf mono-XXXX.tar.gz
65 ./autogen.sh --prefix=/usr/local
68 c. Building the software from CVS
69 ---------------------------------
71 If you are building the software from CVS, make sure that you
72 have up-to-date mcs and mono sources:
76 Then, go into the mono directory, and configure:
79 ./autogen.sh --prefix=/usr/local
81 Depending on whether you have an existing Mono installation or
82 not, you can try the following:
84 i. If you have an existing Mono installation
85 -----------------------------------------
87 First verify that you have a working installation:
89 echo 'class X { static void Main () { System.Console.Write("OK");}}' > x.cs
99 If you get the output `OK' and no errors, and you have mono
100 version 0.31 or later, continue. Otherwise, you can try option
103 You are ready to start your CVS upgrade. Compile with
107 This will automatically go into the mcs/ tree and build the
108 binaries there, and copy them into the appropriate
109 sub-directories of mono/runtime/.
111 Now, go to step (iii) below.
113 ii. If you don't have a working Mono installation
114 ---------------------------------------------
116 If you don't have a working Mono installation, an obvious choice
117 is to install the latest released packages of 'mono' for your
118 distribution and go back to step (i).
120 You can also try a slightly more risky approach that should work
123 This works by first getting the latest version of the 'monolite'
124 distribution, which contains just enough to run the 'mcs'
125 compiler. You do this by
127 make get-monolite-latest
129 This should place a monolite-latest.tar.gz in the parent
130 directory of the 'mono' source tree. You can then run:
132 make monolite-bootstrap
134 This will automatically gunzip and untar the tarball, place the
135 files appropriately, and then complete the bootstrap.
137 iii. Testing and Installation
138 ------------------------
140 You can run the mono and mcs testsuites with the command:
142 make -k bootstrap-check
144 Expect to find several testsuite failures, especially in the
145 mcs/ tree. As a sanity check, you can compare the failures you
148 http://go-mono.com/tests/displayTestResults.php
150 You can now install it:
154 Failure to follow these steps will result in a broken installation.
156 iv. Other useful "bootstrap"-like facilities
157 ----------------------------------------
159 If you have a CVS snapshot that you keep updating periodically,
160 and/or do your development in, you may try using a couple of
161 specialty make targets that may be slightly faster than a
164 You can try a two-stage bootstrap with:
168 This assumes that you have already run a "make bootstrap" on the
171 If you want to avoid waiting even for that, you can try the
172 riskier one-stage build:
176 This should be attempted only if you're sure that the sources of
177 the mcs compiler itself and the sources of the libraries used by
178 it have not been changed.
183 Once you have installed the software, you can run a few programs:
199 See the man pages for mono(1), mint(1), monodis(1) and mcs(2)
206 Contains the web site contents.
209 Technical documents about the Mono runtime.
212 Configuration files installed as part of the Mono runtime.
215 The core of the Mono Runtime.
218 The object system and metadata reader.
221 The Just in Time Compiler.
224 CIL executable Disassembler
227 Common code for the JIT and the interpreter.
230 The I/O layer and system abstraction for
231 emulating the .NET IO model.
234 Common Intermediate Representation, XML
235 definition of the CIL bytecodes.
238 Interpreter for CLI executables.
241 Architecture specific portions.
245 Manual pages for the various Mono commands and programs.
249 Scripts used to invoke Mono and the corresponding program.
253 A directory holding a pre-compiled version of the Mono