**** Merged from MCS ****
[mono.git] / README
1
2 This is Mono.
3
4 1. Installation
5 2. Using Mono
6 3. Directory Roadmap
7
8 1. Compilation and Installation
9 ===============================
10
11    a. Build Requirements
12    ---------------------
13
14         To build Mono, you will need the following components:
15
16                 * pkg-config
17
18                   Available from: http://www.freedesktop.org/Software/pkgconfig
19
20                 * glib 2.0
21
22                   Available from: http://www.gtk.org/
23
24         Optional dependencies:
25
26                 * ICU library
27
28                   http://oss.software.ibm.com/icu/index.html
29
30                   You will need this one to get complete support for the international
31                   features of the .NET Framework.
32
33                 * Cairo and libgdiplus
34
35                   If you want to get support for System.Drawing, you will need to get
36                   both Libgdiplus and Cairo.
37
38     b. Building the Software
39     ------------------------
40         
41         If you obtained this package as an officially released tarball,
42         this is very simple, use configure and make:
43
44                 ./configure --prefix=/usr/local
45                 make
46                 make install
47
48         Mono supports a JIT engine on x86, SPARC and PowerPC systems.
49         The various commands that ship with Mono default to the JIT engine
50         on x86 and SPARC, to turn it on for PPC systems, use the --with-jit=yes 
51         command line option to configure.
52
53         MacOS X Users: you will need to download the latest Boehm GC
54         Alpha release for garbage collection to work properly.
55
56         If you obtained this as a snapshot, you will need an existing
57         Mono installation.  To upgrade your installation, unpack both
58         mono and mcs:
59
60                 tar xzf mcs-XXXX.tar.gz
61                 tar xzf mono-XXXX.tar.gz
62                 mv mono-XXX mono
63                 mv mcs-XXX mcs
64                 cd mono
65                 ./autogen.sh --prefix=/usr/local
66                 make bootstrap 
67
68     c. Upgrade from CVS
69     -------------------
70
71         If you are upgrading from CVS you will need an existing Mono installation.
72         First verify that you have a working installation:
73
74                 echo 'class X { static void Main () { System.Console.Write("OK");}}' > x.cs
75
76         Compile:
77
78                 mcs x.cs
79
80         And run:
81
82                 mono x.exe
83
84         If you get the output `OK' and no errors, you are ready to start your CVS upgrade.
85
86         First, make sure that you have up-to-date mcs and mono sources:
87
88                 cvs co mono mcs
89
90         Then, go into the mono directory, and configure:
91
92                 cd mono
93                 ./autogen.sh --prefix=/usr/local
94
95         Then compile using the special target `bootstrap':
96
97                 make bootstrap
98         
99         You can now install it:
100
101                 make install
102
103         This step will compile and install at the same time.
104
105         Failure to follow these steps will result in a broken installation. 
106
107
108 2. Using Mono
109 =============
110
111         Once you have installed the software, you can run a few programs:
112
113         * runtime engine
114
115                 mono program.exe
116           or
117                 mint program.exe
118
119         * C# compiler
120
121                 mcs program.cs
122
123         * CIL Disassembler
124
125                 monodis program.exe
126
127         See the man pages for mono(1), mint(1), monodis(1) and mcs(2)
128         for further details.
129
130 3. Directory Roadmap
131 ====================
132
133         doc/
134                 Contains the web site contents.
135
136         docs/
137                 Technical documents about the Mono runtime.
138
139         data/
140                 Configuration files installed as part of the Mono runtime.
141
142         mono/
143                 The core of the Mono Runtime.
144
145                 metadata/
146                         The object system and metadata reader.
147
148                 jit/
149                         The Just in Time Compiler.
150
151                 dis/
152                         CIL executable Disassembler
153
154                 cli/
155                         Common code for the JIT and the interpreter.
156
157                 io-layer/
158                         The I/O layer and system abstraction for 
159                         emulating the .NET IO model.
160
161                 cil/
162                         Common Intermediate Representation, XML
163                         definition of the CIL bytecodes.
164
165                 interp/
166                         Interpreter for CLI executables.
167
168                 arch/
169                         Architecture specific portions.
170
171         man/
172
173                 Manual pages for the various Mono commands and programs.
174
175         scripts/
176
177                 Scripts used to invoke Mono and the corresponding program.
178
179         runtime/
180
181                 A directory holding a pre-compiled version of the Mono
182                 runtime.
183
184