Fix typo
[mono.git] / man / mono-config.5
index 1229a104b21cb6debc2083272f85d4b8b3ae204c..48a099e474bda26ea9051de9b2a3ee50115f88b3 100644 (file)
@@ -14,7 +14,8 @@ installation prefix /etc/mono/config file, the ~/.mono/config or from
 the file pointed by the MONO_CONFIG environment variable.
 .PP
 For each assembly loaded a config file with the name:
-/path/to/the/assembly.exe.config is loaded, too.
+/path/to/the/assembly.exe.config is loaded as well as the
+~/.mono/assemblies/ASSEMBLY/ASSEMBLY.EXT.config file. 
 .PP
 This file controls the behavior of the runtime.
 .PP
@@ -23,6 +24,10 @@ contained inside a
 .B<configuration> 
 section (It actually uses GMarkup
 to parse the file).
+.PP
+This page describes the Unix-specific and Mono-specific extensions to
+the configuration file;   For complete details, see the
+http://www.mono-project.com/Config web page.
 .SH <dllmap> directive
 You use the dllmap directive to map shared libraries referenced by
 P/Invoke in your assemblies to a different shared library.
@@ -59,6 +64,31 @@ of the P/Invoke method.
 .I target
 This is the name of the function to lookup instead of the name specified in the 
 P/Invoke method.
+.SH Mapping based on operating system and cpu
+Both the
+.B dllmap
+and the
+.B dllentry
+elements allow the following two attributes which make it easy to use a single
+configuration file and support multiple operating systems and architectures with
+different mapping requirements:
+.TP
+.I os
+This is the name of the operating system for which the mapping should be applied.
+Allowed values are: linux, osx, solaris, freebsd, openbsd, netbsd, windows, aix, hpux.
+.TP
+.I cpu
+This is the name of the architecture for which the mapping should be applied.
+Allowed values are: x86, x86-64, sparc, ppc, s390, s390x, arm, mips, alpha, hppa, ia64.
+.PP
+The attribute value for both attributes can be a comma-separated list of the allowed
+values. Additionally, the first character may be a
+.I '!'
+to reverse the meaning. An attribute value of "!windows,osx", for example, would mean
+that the entry is considered on all operating systems, except on Windows and OS X.
+No spaces are allowed in any part of the value.
+.PP
+Note that later entries will override the entries defined earlier in the file.
 .SH EXAMPLES
 The following example maps references to the `cygwin1.dll' shared
 library to the `libc.so.6' file.  
@@ -76,11 +106,15 @@ This one maps the following C# method:
 to
 .B differentfunction
 in
-.B libdifferent.so.
+.B libdifferent.so
+, but to the same function in the library
+.B libanother.so
+when running under the Solaris and FreeBSD operating systems.
 .nf
 <configuration>
        <dllmap dll="libc">
                <dllentry dll="libdifferent.so" name="somefunction" target="differentfunction" />
+               <dllentry os="solaris,freebsd" dll="libanother.so" name="somefunction" target="differentfunction" />
        </dllmap>
 </configuration>
 .fi