Available from: http://www.freedesktop.org/Software/pkgconfig
- * glib 2.0
+ * glib 2.4
Available from: http://www.gtk.org/
Optional dependencies:
- * ICU library
-
- http://oss.software.ibm.com/icu/index.html
-
- You will need this one to get complete support for the international
- features of the .NET Framework.
-
- * Cairo and libgdiplus
+ * libgdiplus
If you want to get support for System.Drawing, you will need to get
- both Libgdiplus and Cairo.
+ Libgdiplus.
b. Building the Software
------------------------
make
make install
+ Mono supports a JIT engine on x86, SPARC, S/390, AMD64 and PowerPC systems.
+
If you obtained this as a snapshot, you will need an existing
Mono installation. To upgrade your installation, unpack both
mono and mcs:
tar xzf mcs-XXXX.tar.gz
tar xzf mono-XXXX.tar.gz
- cd mono-XXXX
+ mv mono-XXX mono
+ mv mcs-XXX mcs
+ cd mono
./autogen.sh --prefix=/usr/local
- make fullbuild
+ make
- c. Upgrade from CVS
- -------------------
+ c. Building the software from SVN
+ ---------------------------------
- If you are upgrading from CVS you will need an existing Mono installation.
- First verify that you have a working installation:
+ If you are building the software from SVN, make sure that you
+ have up-to-date mcs and mono sources:
- echo 'class X { static void Main () { System.Console.Write("OK");}}' > x.cs
+ svn co svn+ssh://USER@mono-cvs.ximian.com/source/trunk/mono
+ svn co svn+ssh://USER@mono-cvs.ximian.com/source/trunk/mcs
- Compile:
+ Then, go into the mono directory, and configure:
- mcs x.cs
+ cd mono
+ ./autogen.sh --prefix=/usr/local
+ make
- And run:
+ This will automatically go into the mcs/ tree and build the
+ binaries there.
- mono x.exe
+ This assumes that you have a working mono installation, and that
+ there's a C# compiler named 'mcs', and a corresponding IL
+ runtime called 'mono'. You can use two make variables
+ EXTERNAL_MCS and EXTERNAL_RUNTIME to override these. e.g., you
+ can say
- If you get the output `OK' and no errors, you are ready to start your CVS upgrade.
+ make EXTERNAL_MCS=/foo/bar/mcs EXTERNAL_RUNTIME=/somewhere/else/mono
+
+ If you don't have a working Mono installation
+ ---------------------------------------------
- First, make sure that you have up-to-date mcs and mono sources:
+ If you don't have a working Mono installation, an obvious choice
+ is to install the latest released packages of 'mono' for your
+ distribution and try from the beginning.
- cvs co mono mcs
+ You can also try a slightly more risky approach that should work
+ almost all the time.
- Then, go into the mono directory, and configure:
+ This works by first getting the latest version of the 'monolite'
+ distribution, which contains just enough to run the 'mcs'
+ compiler. You do this with:
- cd mono
- ./autogen --prefix=/usr/local
+ make get-monolite-latest
- Then compile using the special target `fullbuild':
+ This will download and automatically gunzip and untar the
+ tarball, and place the files appropriately so that you can then
+ just run:
- make fullbuild
+ make
+
+ To ensure that you're using the 'monolite' distribution, you can
+ also try passing EXTERNAL_MCS=false on the make command-line.
+
+ Testing and Installation
+ ------------------------
+
+ You can run (part of) the mono and mcs testsuites with the command:
+
+ make check
+
+ All tests should pass.
- This step will compile and install at the same time.
+ If you want more extensive tests, including those that test the
+ class libraries, you need to re-run 'configure' with the
+ '--enable-nunit-tests' flag, and try
- Failure to follow these steps will result in a broken installation.
+ make -k check
+ Expect to find a few testsuite failures. As a sanity check, you
+ can compare the failures you got with
+
+ http://go-mono.com/tests/displayTestResults.php
+
+ You can now install mono with:
+
+ make install
+
+ Failure to follow these steps may result in a broken installation.
2. Using Mono
=============
runtime/
- A directory holding a pre-compiled version of the Mono
- runtime.
-
+ A directory that contains the Makefiles that link the
+ mono/ and mcs/ build systems.