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 On Itanium, you must obtain libunwind:
26 http://www.hpl.hp.com/research/linux/libunwind/download.php4
28 Optional dependencies:
32 If you want to get support for System.Drawing, you will need to get
35 b. Building the Software
36 ------------------------
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
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
51 tar xzf mcs-XXXX.tar.gz
52 tar xzf mono-XXXX.tar.gz
56 ./autogen.sh --prefix=/usr/local
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:
71 ./autogen.sh --prefix=/usr/local
74 This will automatically go into the mcs/ tree and build the
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
83 make EXTERNAL_MCS=/foo/bar/mcs EXTERNAL_RUNTIME=/somewhere/else/mono
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
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
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:
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
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:
134 Failure to follow these steps may result in a broken installation.
139 Once you have installed the software, you can run a few programs:
155 See the man pages for mono(1), mint(1), monodis(1) and mcs(2)
162 Contains the web site contents.
165 Technical documents about the Mono runtime.
168 Configuration files installed as part of the Mono runtime.
171 The core of the Mono Runtime.
174 The object system and metadata reader.
177 The Just in Time Compiler.
180 CIL executable Disassembler
183 Common code for the JIT and the interpreter.
186 The I/O layer and system abstraction for
187 emulating the .NET IO model.
190 Common Intermediate Representation, XML
191 definition of the CIL bytecodes.
194 Interpreter for CLI executables.
197 Architecture specific portions.
201 Manual pages for the various Mono commands and programs.
205 Scripts used to invoke Mono and the corresponding program.
209 A directory that contains the Makefiles that link the
210 mono/ and mcs/ build systems.