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 SVN
69 ---------------------------------
71 If you are building the software from SVN, 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
83 This will automatically go into the mcs/ tree and build the
86 This assumes that you have a working mono installation, and that
87 there's a C# compiler named 'mcs', and a corresponding IL
88 runtime called 'mono'. You can use two make variables
89 EXTERNAL_MCS and EXTERNAL_RUNTIME to override these. e.g., you
92 make EXTERNAL_MCS=/foo/bar/mcs EXTERNAL_RUNTIME=/somewhere/else/mono
94 If you don't have a working Mono installation
95 ---------------------------------------------
97 If you don't have a working Mono installation, an obvious choice
98 is to install the latest released packages of 'mono' for your
99 distribution and try from the beginning.
101 You can also try a slightly more risky approach that should work
104 This works by first getting the latest version of the 'monolite'
105 distribution, which contains just enough to run the 'mcs'
106 compiler. You do this with:
108 make get-monolite-latest
110 This will download and automatically gunzip and untar the
111 tarball, and place the files appropriately so that you can then
116 To ensure that you're using the 'monolite' distribution, you can
117 also try passing EXTERNAL_MCS=false on the make command-line.
119 Testing and Installation
120 ------------------------
122 You can run (part of) the mono and mcs testsuites with the command:
126 All tests should pass.
128 If you want more extensive tests, including those that test the
129 class libraries, you need to re-run 'configure' with the
130 '--enable-nunit-tests' flag, and try
134 Expect to find a few testsuite failures. As a sanity check, you
135 can compare the failures you got with
137 http://go-mono.com/tests/displayTestResults.php
139 You can now install mono with:
143 Failure to follow these steps may result in a broken installation.
148 Once you have installed the software, you can run a few programs:
164 See the man pages for mono(1), mint(1), monodis(1) and mcs(2)
171 Contains the web site contents.
174 Technical documents about the Mono runtime.
177 Configuration files installed as part of the Mono runtime.
180 The core of the Mono Runtime.
183 The object system and metadata reader.
186 The Just in Time Compiler.
189 CIL executable Disassembler
192 Common code for the JIT and the interpreter.
195 The I/O layer and system abstraction for
196 emulating the .NET IO model.
199 Common Intermediate Representation, XML
200 definition of the CIL bytecodes.
203 Interpreter for CLI executables.
206 Architecture specific portions.
210 Manual pages for the various Mono commands and programs.
214 Scripts used to invoke Mono and the corresponding program.
218 A directory that contains the Makefiles that link the
219 mono/ and mcs/ build systems.