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:
74 svn co svn+ssh://USER@mono-cvs.ximian.com/source/trunk/mono
75 svn co svn+ssh://USER@mono-cvs.ximian.com/source/trunk/mcs
77 Then, go into the mono directory, and configure:
80 ./autogen.sh --prefix=/usr/local
82 Depending on whether you have an existing Mono installation or
83 not, you can try the following:
85 i. If you have an existing Mono installation
86 -----------------------------------------
88 First verify that you have a working installation:
90 echo 'class X { static void Main () { System.Console.Write("OK");}}' > x.cs
100 If you get the output `OK' and no errors, and you have mono
101 version 0.31 or later, continue. Otherwise, you can try option
104 You are ready to start your CVS upgrade. Compile with
108 This will automatically go into the mcs/ tree and build the
109 binaries there, and copy them into the appropriate
110 sub-directories of mono/runtime/.
112 Now, go to step (iii) below.
114 ii. If you don't have a working Mono installation
115 ---------------------------------------------
117 If you don't have a working Mono installation, an obvious choice
118 is to install the latest released packages of 'mono' for your
119 distribution and go back to step (i).
121 You can also try a slightly more risky approach that should work
124 This works by first getting the latest version of the 'monolite'
125 distribution, which contains just enough to run the 'mcs'
126 compiler. You do this by
128 make get-monolite-latest
130 This should place a monolite-latest.tar.gz in the parent
131 directory of the 'mono' source tree. You can then run:
133 make monolite-bootstrap
135 This will automatically gunzip and untar the tarball, place the
136 files appropriately, and then complete the bootstrap.
138 iii. Testing and Installation
139 ------------------------
141 You can run the mono and mcs testsuites with the command:
143 make -k bootstrap-check
145 Expect to find several testsuite failures, especially in the
146 mcs/ tree. As a sanity check, you can compare the failures you
149 http://go-mono.com/tests/displayTestResults.php
151 You can now install it:
155 Failure to follow these steps will result in a broken installation.
157 iv. Other useful "bootstrap"-like facilities
158 ----------------------------------------
160 If you have a CVS snapshot that you keep updating periodically,
161 and/or do your development in, you may try using a couple of
162 specialty make targets that may be slightly faster than a
165 You can try a two-stage bootstrap with:
169 This assumes that you have already run a "make bootstrap" on the
172 If you want to avoid waiting even for that, you can try the
173 riskier one-stage build:
177 This should be attempted only if you're sure that the sources of
178 the mcs compiler itself and the sources of the libraries used by
179 it have not been changed.
184 Once you have installed the software, you can run a few programs:
200 See the man pages for mono(1), mint(1), monodis(1) and mcs(2)
207 Contains the web site contents.
210 Technical documents about the Mono runtime.
213 Configuration files installed as part of the Mono runtime.
216 The core of the Mono Runtime.
219 The object system and metadata reader.
222 The Just in Time Compiler.
225 CIL executable Disassembler
228 Common code for the JIT and the interpreter.
231 The I/O layer and system abstraction for
232 emulating the .NET IO model.
235 Common Intermediate Representation, XML
236 definition of the CIL bytecodes.
239 Interpreter for CLI executables.
242 Architecture specific portions.
246 Manual pages for the various Mono commands and programs.
250 Scripts used to invoke Mono and the corresponding program.
254 A directory holding a pre-compiled version of the Mono