Re-enable 'compiler-tests' target
[mono.git] / README
diff --git a/README b/README
index 97be727a25662fd325bc4887f36e10636a3a5908..9115a43498372bbca7ab879e8f117f623c57388c 100644 (file)
--- a/README
+++ b/README
@@ -52,8 +52,8 @@ This is Mono.
                make
                make install
 
-       Mono supports a JIT engine on x86, SPARC, SPARCv9, S/390, AMD64, ARM
-       and PowerPC systems.
+       Mono supports a JIT engine on x86, SPARC, SPARCv9, S/390,
+       S/390x, 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
@@ -67,6 +67,14 @@ This is Mono.
                ./autogen.sh --prefix=/usr/local
                make
 
+       The Mono build system is silent for most compilation commands.
+       To enable a more verbose compile (for example, to pinpoint
+       problems in your makefiles or your system) pass the V=1 flag to make, like this:
+
+                make V=1
+
+
+
     c. Building the software from SVN
     ---------------------------------
 
@@ -133,7 +141,7 @@ This is Mono.
        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:
 
@@ -224,7 +232,7 @@ This is Mono.
                systems do not support this feature, or you might want
                to override the auto-detection.
 
-       --with-static-mono=yes,no
+       --with-static_mono=yes,no
 
                This controls whether `mono' should link against a
                static library (libmono.a) or a shared library
@@ -251,6 +259,17 @@ This is Mono.
 
                This value is set to `no' by default.
 
+       --enable-small-config=yes,no
+
+               Enable some tweaks to reduce memory usage and disk footprint at
+               the expense of some capabilities. Typically this means that the
+               number of threads that can be created is limited (256), that the
+               maxmimum heap size is also reduced (256 MB) and other such limitations
+               that still make mono useful, but more suitable to embedded devices
+               (like mobile phones).
+
+               This value is set to `no' by default.
+
        --with-ikvm-native=yes,no
 
                Controls whether the IKVM JNI interface library is
@@ -259,10 +278,12 @@ This is Mono.
 
                This defaults to `yes'.
 
-       --with-preview=yes,no
+       --with-profile2=yes,no
+
+               Whether you want to build the 2.x libraries (support
+               for Generics and the 2.0/3.5 APIS).
 
-               Whether you want to build libraries that are still not
-               completed (The 2.0 APIs).   It defaults to `yes'.
+               It defaults to `yes'.
 
        --with-moonlight=yes,no
 
@@ -271,12 +292,10 @@ This is Mono.
                (1.1 and 2.0 APIs).
 
                This will produce the `smcs' compiler which will reference
-               the Silvelright modified assemblies (mscorlib.dll,
+               the Silverlight modified assemblies (mscorlib.dll,
                System.dll, System.Code.dll and System.Xml.Core.dll) and turn
                on the LINQ extensions for the compiler.
 
-               This option defaults to `no' and it is considered pre-alpha.
-
        --with-libgdiplus=installed,sibling,<path>
 
                This is used to configure where should Mono look for
@@ -316,42 +335,124 @@ This is Mono.
                        Disables support for the Ahead of Time
                        compilation.
 
-               profiler:
-                       Disables support for the default profiler.
+               attach:
+                       Support for the Mono.Management assembly and the
+                       VMAttach API (allowing code to be injected into
+                       a target VM)
+
+               com:
+                       Disables COM support.
+
+               debug:
+                       Drop debugging support.
 
                decimal:
                        Disables support for System.Decimal.
 
+               full_messages:
+                       By default Mono comes with a full table
+                       of messages for error codes.   This feature
+                       turns off uncommon error messages and reduces
+                       the runtime size.
+
+               generics:
+                       Generics support.  Disabling this will not
+                       allow Mono to run any 2.0 libraries or
+                       code that contains generics.
+
+               jit:
+                       Removes the JIT engine from the build, this reduces
+                       the executable size, and requires that all code
+                       executed by the virtual machine be compiled with
+                       Full AOT before execution.
+
+               large_code:
+                       Disables support for large assemblies.
+
+               logging:
+                       Disables support for debug logging.
+
                pinvoke:
                        Support for Platform Invocation services,
                        disabling this will drop support for any
                        libraries using DllImport.
 
-               debug:
-                       Drop debugging support.
+               portability:
+                       Removes support for MONO_IOMAP, the environment
+                       variables for simplifying porting applications that 
+                       are case-insensitive and that mix the Unix and Windows path separators.
+
+               profiler:
+                       Disables support for the default profiler.
 
                reflection_emit:
                        Drop System.Reflection.Emit support
 
-               large_code:
-                       Disables support for large assemblies.
+               reflection_emit_save:
+                       Drop support for saving dynamically created
+                       assemblies (AssemblyBuilderAccess.Save) in
+                       System.Reflection.Emit.
 
-               logging:
-                       Disables support for debug logging.
+               shadow_copy:
+                       Disables support for AppDomain's shadow copies
+                       (you can disable this if you do not plan on 
+                       using appdomains).
 
-               com:
-                       Disables COM support.
+               simd:
+                       Disables support for the Mono.SIMD intrinsics
+                       library.
 
                ssa:
                        Disables compilation for the SSA optimization
                        framework, and the various SSA-based
                        optimizations.
 
-               generics:
-                       Generics support.  Disabling this will not
-                       allow Mono to run any 2.0 libraries or
-                       code that contains generics.
-               
+       --enable-llvm
+
+               This enables the use of LLVM as a code generation engine
+               for Mono.  The LLVM code generator and optimizer will be 
+               used instead of Mono's built-in code generator for both
+               Just in Time and Ahead of Time compilations.
+
+               See the http://www.mono-project.com/Mono_LLVM for the 
+               full details and up-to-date information on this feature.
+
+               You will need to have an LLVM built that Mono can link
+               against
+
+       --enable-big-arrays
+
+               This enables the use arrays whose indexes are larger
+               than Int32.MaxValue.   
+
+               By default Mono has the same limitation as .NET on
+               Win32 and Win64 and limits array indexes to 32-bit
+               values (even on 64-bit systems).
+
+               In certain scenarios where large arrays are required,
+               you can pass this flag and Mono will be built to
+               support 64-bit arrays.
+
+               This is not the default as it breaks the C embedding
+               ABI that we have exposed through the Mono development
+               cycle.
+
+       --enable-parallel-mark
+
+               Use this option to enable the garbage collector to use
+               multiple CPUs to do its work.  This helps performance
+               on multi-CPU machines as the work is divided across CPUS.
+
+               This option is not currently the default as we have
+               not done much testing with Mono.
+
+       --enable-dtrace
+
+               On Solaris and MacOS X builds a version of the Mono
+               runtime that contains DTrace probes and can
+               participate in the system profiling using DTrace.
+
+
        --disable-dev-random
 
                Mono uses /dev/random to obtain good random data for
@@ -425,6 +526,11 @@ This is Mono.
 
                Manual pages for the various Mono commands and programs.
 
+       samples/
+
+               Some simple sample programs on uses of the Mono
+               runtime as an embedded library.   
+
        scripts/
 
                Scripts used to invoke Mono and the corresponding program.
@@ -434,3 +540,10 @@ This is Mono.
                A directory that contains the Makefiles that link the
                mono/ and mcs/ build systems.
 
+       ../olive/
+
+               If the directory ../olive is present (as an
+               independent checkout) from the Mono module, that
+               directory is automatically configured to share the
+               same prefix than this module gets.
+