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 On Solaris, make sure that you used GNU tar to unpack this package, as
29 Solaris tar will not unpack this correctly, and you will get strange errors.
31 On Solaris, make sure that you use the GNU toolchain to build the software.
33 Optional dependencies:
37 If you want to get support for System.Drawing, you will need to get
40 b. Building the Software
41 ------------------------
43 If you obtained this package as an officially released tarball,
44 this is very simple, use configure and make:
46 ./configure --prefix=/usr/local
50 Mono supports a JIT engine on x86, SPARC, SPARCv9, S/390, AMD64, ARM
53 If you obtained this as a snapshot, you will need an existing
54 Mono installation. To upgrade your installation, unpack both
57 tar xzf mcs-XXXX.tar.gz
58 tar xzf mono-XXXX.tar.gz
62 ./autogen.sh --prefix=/usr/local
65 c. Building the software from SVN
66 ---------------------------------
68 If you are building the software from SVN, make sure that you
69 have up-to-date mcs and mono sources:
71 svn co svn+ssh://USER@mono-cvs.ximian.com/source/trunk/mono
72 svn co svn+ssh://USER@mono-cvs.ximian.com/source/trunk/mcs
74 Then, go into the mono directory, and configure:
77 ./autogen.sh --prefix=/usr/local
80 This will automatically go into the mcs/ tree and build the
83 This assumes that you have a working mono installation, and that
84 there's a C# compiler named 'mcs', and a corresponding IL
85 runtime called 'mono'. You can use two make variables
86 EXTERNAL_MCS and EXTERNAL_RUNTIME to override these. e.g., you
89 make EXTERNAL_MCS=/foo/bar/mcs EXTERNAL_RUNTIME=/somewhere/else/mono
91 If you don't have a working Mono installation
92 ---------------------------------------------
94 If you don't have a working Mono installation, an obvious choice
95 is to install the latest released packages of 'mono' for your
96 distribution and running autogen.sh; make; make install in the
97 mono module directory.
99 You can also try a slightly more risky approach: this may not work,
100 so start from the released tarball as detailed above.
102 This works by first getting the latest version of the 'monolite'
103 distribution, which contains just enough to run the 'mcs'
104 compiler. You do this with:
106 make get-monolite-latest
108 This will download and automatically gunzip and untar the
109 tarball, and place the files appropriately so that you can then
114 To ensure that you're using the 'monolite' distribution, you can
115 also try passing EXTERNAL_MCS=false on the make command-line.
117 Testing and Installation
118 ------------------------
120 You can run (part of) the mono and mcs testsuites with the command:
124 All tests should pass.
126 If you want more extensive tests, including those that test the
127 class libraries, you need to re-run 'configure' with the
128 '--enable-nunit-tests' flag, and try
132 Expect to find a few testsuite failures. As a sanity check, you
133 can compare the failures you got with
135 http://go-mono.com/tests/displayTestResults.php
137 You can now install mono with:
141 Failure to follow these steps may result in a broken installation.
146 Once you have installed the software, you can run a few programs:
160 See the man pages for mono(1), mint(1), monodis(1) and mcs(2)
167 Technical documents about the Mono runtime.
170 Configuration files installed as part of the Mono runtime.
173 The core of the Mono Runtime.
176 The object system and metadata reader.
179 The Just in Time Compiler.
182 CIL executable Disassembler
185 Common code for the JIT and the interpreter.
188 The I/O layer and system abstraction for
189 emulating the .NET IO model.
192 Common Intermediate Representation, XML
193 definition of the CIL bytecodes.
196 Interpreter for CLI executables (obsolete).
199 Architecture specific portions.
203 Manual pages for the various Mono commands and programs.
207 Scripts used to invoke Mono and the corresponding program.
211 A directory that contains the Makefiles that link the
212 mono/ and mcs/ build systems.