* Makefile (SUBDIRS): Add 'rerrors'.
[mono.git] / README
diff --git a/README b/README
index 5a4932548603e790e287e3dcbf4b560ec123e9f3..6d257c99df310772741bdd2e00c2615f4aeab765 100644 (file)
--- a/README
+++ b/README
@@ -63,43 +63,84 @@ This is Mono.
                mv mcs-XXX mcs
                cd mono
                ./autogen.sh --prefix=/usr/local
-               make bootstrap 
+               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.sh --prefix=/usr/local
+               make get-monolite-latest
+
+       This will download and automatically gunzip and untar the
+       tarball, and place the files appropriately so that you can then
+       just run:
+
+               make
 
-       Then compile using the special target `fullbuild':
+       To ensure that you're using the 'monolite' distribution, you can
+       also try passing EXTERNAL_MCS=false on the make command-line.
 
-               make fullbuild
+       Testing and Installation
+        ------------------------
 
-       This step will compile and install at the same time.
+       You can run (part of) the mono and mcs testsuites with the command:
 
-       Failure to follow these steps will result in a broken installation. 
+               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
 =============
@@ -174,7 +215,5 @@ This is 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.