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. This will automatically
132 gunzip and untar the tarball, place the files appropriately,
138 iii. Testing and Installation
139 ------------------------
141 You can run the mono and mcs testsuites with the command:
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.
160 Once you have installed the software, you can run a few programs:
176 See the man pages for mono(1), mint(1), monodis(1) and mcs(2)
183 Contains the web site contents.
186 Technical documents about the Mono runtime.
189 Configuration files installed as part of the Mono runtime.
192 The core of the Mono Runtime.
195 The object system and metadata reader.
198 The Just in Time Compiler.
201 CIL executable Disassembler
204 Common code for the JIT and the interpreter.
207 The I/O layer and system abstraction for
208 emulating the .NET IO model.
211 Common Intermediate Representation, XML
212 definition of the CIL bytecodes.
215 Interpreter for CLI executables.
218 Architecture specific portions.
222 Manual pages for the various Mono commands and programs.
226 Scripts used to invoke Mono and the corresponding program.
230 A directory holding a pre-compiled version of the Mono