The following are the configuration options that someone
building Mono might want to use:
+ --with-sgen=yes,no
+
+ Generational GC support: Used to enable or disable the
+ compilation of a Mono runtime with the SGen garbage collector.
+
+ On platforms that support it, after building Mono, you
+ will have both a mono binary and a mono-sgen binary.
+ Mono uses Boehm, while mono-sgen uses the Simple
+ Generational GC.
--with-gc=[boehm, included, sgen, none]
- Selects the garbage collector engine to use, the
- default is the "included" value.
+ Selects the default Boehm garbage collector engine to
+ use, the default is the "included" value.
included:
This is the default value, and its
Boehm GC, but we do not recommend that people
use this, as it disables a few features.
- sgen:
- The under-development Generational GC for
- Mono, do not use this in production.
-
none:
Disables the inclusion of a garbage
collector.
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
This defaults to `yes'.
- --with-preview=yes,no
+ --with-profile4=yes,no
+
+ Whether you want to build the 4.x profile libraries
+ and runtime.
- 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
(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
Disables support for the Ahead of Time
compilation.
+ attach:
+ Support for the Mono.Management assembly and the
+ VMAttach API (allowing code to be injected into
+ a target VM)
+
com:
Disables COM 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
disabling this will drop support for any
libraries using DllImport.
+ 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.
assemblies (AssemblyBuilderAccess.Save) in
System.Reflection.Emit.
+ shadow_copy:
+ Disables support for AppDomain's shadow copies
+ (you can disable this if you do not plan on
+ using appdomains).
+
simd:
Disables support for the Mono.SIMD intrinsics
library.
framework, and the various SSA-based
optimizations.
+ --enable-llvm
+ --enable-loadedllvm
+
+ 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,
+
+ The --enable-loadedllvm variant will make the llvm backend
+ into a runtime-loadable module instead of linking it directly
+ into the main mono binary.
+
--enable-big-arrays
This enables the use arrays whose indexes are larger
There are a number of runtime options to control this
also, see the man page.
+ --enable-nacl
+
+ This configures the Mono compiler to generate code
+ suitable to be used by Google's Native Client:
+
+ http://code.google.com/p/nativeclient/
+
+ Currently this is used with Mono's AOT engine as
+ Native Client does not support JIT engines yet.
2. Using Mono
=============
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
+ same prefix than this module gets.
+
+