| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256 |
- This is Mono.
- 1. Installation
- 2. Using Mono
- 3. Directory Roadmap
- 1. Compilation and Installation
- ===============================
- a. Build Requirements
- ---------------------
- To build Mono, you will need the following components:
- * pkg-config
- Available from: http://www.freedesktop.org/Software/pkgconfig
- * glib 2.0
- 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
- If you want to get support for System.Drawing, you will need to get
- both Libgdiplus and Cairo.
- b. Building the Software
- ------------------------
-
- If you obtained this package as an officially released tarball,
- this is very simple, use configure and make:
- ./configure --prefix=/usr/local
- 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
- 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
- Depending on whether you have an existing Mono installation or
- not, you can try the following:
- i. If you have an existing Mono installation
- -----------------------------------------
- First verify that you have a working installation:
- echo 'class X { static void Main () { System.Console.Write("OK");}}' > x.cs
- Compile:
- mcs x.cs
- And run:
- mono x.exe
- 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.
- You are ready to start your CVS upgrade. Compile with
- make bootstrap
- This will automatically go into the mcs/ tree and build the
- binaries there, and copy them into the appropriate
- sub-directories of mono/runtime/.
- 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).
- You can also try a slightly more risky approach that should work
- almost all the time.
- 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
- 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
- =============
- Once you have installed the software, you can run a few programs:
- * runtime engine
- mono program.exe
- or
- mint program.exe
- * C# compiler
- mcs program.cs
- * CIL Disassembler
- monodis program.exe
- See the man pages for mono(1), mint(1), monodis(1) and mcs(2)
- for further details.
- 3. Directory Roadmap
- ====================
- doc/
- Contains the web site contents.
- docs/
- Technical documents about the Mono runtime.
- data/
- Configuration files installed as part of the Mono runtime.
- mono/
- The core of the Mono Runtime.
- metadata/
- The object system and metadata reader.
- jit/
- The Just in Time Compiler.
- dis/
- CIL executable Disassembler
- cli/
- Common code for the JIT and the interpreter.
- io-layer/
- The I/O layer and system abstraction for
- emulating the .NET IO model.
- cil/
- Common Intermediate Representation, XML
- definition of the CIL bytecodes.
- interp/
- Interpreter for CLI executables.
- arch/
- Architecture specific portions.
- man/
- Manual pages for the various Mono commands and programs.
- scripts/
- Scripts used to invoke Mono and the corresponding program.
- runtime/
- A directory holding a pre-compiled version of the Mono
- runtime.
|