You will need this one to get complete support for the international
features of the .NET Framework.
- * Cairo
+ * Cairo and libgdiplus
If you want to get support for System.Drawing, you will need to get
- this package.
+ both Libgdiplus and Cairo.
b. Building the Software
------------------------
make
make install
+ Mono supports a JIT engine on x86, SPARC and PowerPC systems.
+ The various commands that ship with Mono default to the JIT engine
+ on x86 and SPARC, to turn it on for PPC systems, use the --with-jit=yes
+ command line option to configure.
+
+ MacOS X Users: you will need to download the latest Boehm GC
+ Alpha release for garbage collection to work properly.
+
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 bootstrap
+
+ c. Building the software from CVS
+ ---------------------------------
+
+ If you are building the software from CVS, make sure that you
+ have up-to-date mcs and mono sources:
+
+ cvs co mono mcs
+
+ Then, go into the mono directory, and configure:
+
+ cd mono
./autogen.sh --prefix=/usr/local
- make fullbuild
- c. Upgrade from CVS
- -------------------
+ Depending on whether you have an existing Mono installation or
+ not, you can try the following:
+
+ i. If you have an existing Mono installation
+ -----------------------------------------
- If you are upgrading from CVS you will need an existing Mono installation.
First verify that you have a working installation:
- echo 'class X { static void Main () { System.Console.Write("OK");}'}' > x.cs
+ echo 'class X { static void Main () { System.Console.Write("OK");}}' > x.cs
Compile:
mono x.exe
- If you get the output `OK' and no errors, you are ready to start your CVS upgrade.
+ If you get the output `OK' and no errors, and you have mono
+ version 0.31 or later, continue. Otherwise, you can try option
+ (ii) below.
- First, make sure that you have up-to-date mcs and mono sources:
+ You are ready to start your CVS upgrade. Compile with
- cvs co mono mcs
+ make bootstrap
- Then, go into the mono directory, and configure:
+ This will automatically go into the mcs/ tree and build the
+ binaries there, and copy them into the appropriate
+ sub-directories of mono/runtime/.
- cd mono
- ./autogen --prefix=/usr/local
+ Now, go to step (iii) below.
+
+ ii. If you don't have a working Mono installation
+ ---------------------------------------------
+
+ 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 go back to step (i).
- Then compile using the special target `fullbuild':
+ You can also try a slightly more risky approach that should work
+ almost all the time.
- make fullbuild
+ This works by first getting the latest version of the 'monolite'
+ distribution, which contains just enough to run the 'mcs'
+ compiler. You do this by
- This step will compile and install at the same time.
+ make get-monolite-latest
+
+ This should place a monolite-latest.tar.gz in the parent
+ directory of the 'mono' source tree. You can then run:
+
+ make monolite-bootstrap
+
+ This will automatically gunzip and untar the tarball, place the
+ files appropriately, and then complete the bootstrap.
+
+ iii. Testing and Installation
+ ------------------------
+
+ You can run the mono and mcs testsuites with the command:
+
+ make -k bootstrap-check
+
+ Expect to find several testsuite failures, especially in the
+ mcs/ tree. As a sanity check, you can compare the failures you
+ got with
+
+ http://go-mono.com/tests/displayTestResults.php
+
+ You can now install it:
+
+ make install
Failure to follow these steps will result in a broken installation.
+ iv. Other useful "bootstrap"-like facilities
+ ----------------------------------------
+
+ If you have a CVS snapshot that you keep updating periodically,
+ and/or do your development in, you may try using a couple of
+ specialty make targets that may be slightly faster than a
+ "make bootstrap".
+
+ You can try a two-stage bootstrap with:
+
+ make faststrap
+
+ This assumes that you have already run a "make bootstrap" on the
+ tree before.
+
+ If you want to avoid waiting even for that, you can try the
+ riskier one-stage build:
+
+ make fasterstrap
+
+ This should be attempted only if you're sure that the sources of
+ the mcs compiler itself and the sources of the libraries used by
+ it have not been changed.
2. Using Mono
=============