X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=README;h=d9e5dbc678b17d1270351c8a46a0fe1410549726;hb=bbbd4ad0bcd0a91bb0422ea1cf5afb91adfb92c8;hp=140c7ca4ca6f3da13a6928d05ec34867bc08ae91;hpb=955289a36e9cf3fa3135f745451d043db4589861;p=mono.git diff --git a/README b/README index 140c7ca4ca6..d9e5dbc678b 100644 --- a/README +++ b/README @@ -1,53 +1,213 @@ This is Mono. -A directory roadmap: + 1. Installation + 2. Using Mono + 3. Directory Roadmap - doc/ - Contains documentation and the web site contents. +1. Compilation and Installation +=============================== - mono/ - The core of the executable. + a. Build Requirements + --------------------- - metadata/ - The library to deal with executables and libraries for - .NET + To build Mono, you will need the following components: - dis/ - CIL executable Disassembler + * pkg-config - cli/ - Common code for the JIT and the interpreter. + Available from: http://www.freedesktop.org/Software/pkgconfig - cil/ - Common Intermediate Representation, XML - definition of the CIL bytecodes. + * glib 2.4 - interp/ - Interpreter for CLI executables. + Available from: http://www.gtk.org/ + + On Itanium, you must obtain libunwind: + + http://www.hpl.hp.com/research/linux/libunwind/download.php4 + + On Solaris, make sure that you used GNU tar to unpack this package, as + Solaris tar will not unpack this correctly, and you will get strange errors. + + On Solaris, make sure that you use the GNU toolchain to build the software. + + Optional dependencies: + + * libgdiplus + + If you want to get support for System.Drawing, you will need to get + Libgdiplus. + + 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, SPARCv9, S/390, AMD64, ARM + 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 + mv mono-XXX mono + mv mcs-XXX mcs + cd mono + ./autogen.sh --prefix=/usr/local + make + + c. Building the software from SVN + --------------------------------- + + If you are building the software from SVN, make sure that you + have up-to-date mcs and mono sources: + + svn co svn+ssh://USER@mono-cvs.ximian.com/source/trunk/mono + svn co svn+ssh://USER@mono-cvs.ximian.com/source/trunk/mcs + + Then, go into the mono directory, and configure: + + cd mono + ./autogen.sh --prefix=/usr/local + make + + This will automatically go into the mcs/ tree and build the + binaries there. + + 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 + + make EXTERNAL_MCS=/foo/bar/mcs EXTERNAL_RUNTIME=/somewhere/else/mono + + 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 running autogen.sh; make; make install in the + mono module directory. + + You can also try a slightly more risky approach: this may not work, + so start from the released tarball as detailed above. + + 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: + + make get-monolite-latest -* Using Mono + This will download and automatically gunzip and untar the + tarball, and place the files appropriately so that you can then + just run: + + 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. + + 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 + + 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 +============= Once you have installed the software, you can run a few programs: + * runtime engine + + mono program.exe + + * C# compiler + + mcs program.cs + + * CIL Disassembler + monodis program.exe - That will dump the bytecodes for program.exe. Monodis support - a number of options that dumps various metadata tables - (chapter 23 of the Partition III). + See the man pages for mono(1), mint(1), monodis(1) and mcs(2) + for further details. - You can try the interpreter like this: +3. Directory Roadmap +==================== - mono-int program.exe + 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. + mini/ + 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 (obsolete). + 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 that contains the Makefiles that link the + mono/ and mcs/ build systems.