[xbuild] Make Engine.DefaultToolsVersion 2.0 .
[mono.git] / man / mkbundle.1
index 381e41dfc8828279b3f47dd11744f7a09016c2ce..82bfe1326290d136dd77b2fa6910b9d7f93bfdfa 100644 (file)
@@ -10,7 +10,7 @@
 ..
 .TH mkbundle "mkbundle 1.0"
 .SH NAME
-mkbundle \- Creates a bundled executable.
+mkbundle, mkbundle2 \- Creates a bundled executable.
 .SH SYNOPSIS
 .PP
 .B mkbundle [options] assembly1 [assembly2 ...]
@@ -21,25 +21,37 @@ default only the assemblies specified in the command line will be
 included in the bundle.  To automatically include all of the
 dependencies referenced, use the "--deps" command line option.
 .PP
+Use \fImkbundle\FP when you want the startup runtime to load the 1.0
+profile, and use \fImkbundle2\fP when you want the startup runtime to load
+the 2.0 profile.
+.PP
 For example, to create a bundle for hello world, use the following
 command:
 .nf
        $ mkbundle -o hello hello.exe
 .fi
 .PP
-The above will pull hello.exe native program called "hello".  Notice
+The above will pull hello.exe into a native program called "hello".  Notice
 that the produced image still contains the CIL image and no
 precompilation is done.
 .PP
-In addition, it is possible to control whether mkbundle should compile
-the resulting executable or not.  This is useful if you want to link
-additional libraries or control the generated output in more detail.
-For example, this could be used to link some libraries statically:
+In addition, it is possible to control whether \fImkbundle\fP should compile
+the resulting executable or not with the -c option.  This is useful if
+you want to link additional libraries or control the generated output
+in more detail. For example, this could be used to link some libraries
+statically:
 .nf
-       $ mkbundle -o host.c -oo bundles.o --deps hello.exe
+       $ mkbundle -c -o host.c -oo bundles.o --deps hello.exe
 
        $ cc host.c bundles.o /usr/lib/libmono.a -lc -lrt
 .fi
+.PP
+You may also use \fImkbundle\fP to generate a bundle you can use when
+embedding the Mono runtime in a native application.  In that case, use
+both the -c and --nomain options.  The resulting host.c file will
+not have a main() function.  Call mono_mkbundle_init() before
+initializing the JIT in your code so that the bundled assemblies
+are available to the embedded runtime.
 .SH OPTIONS
 .TP
 .I "-c"
@@ -63,7 +75,7 @@ $prefix/etc/mono/2.0/machine.config depending on the profile that you
 are using (1.0 or 2.0)
 .TP
 .I  "--nodeps"
-This is the default: mkbundle will only include the assemblies that
+This is the default: \fImkbundle\fP will only include the assemblies that
 were specified on the command line to reduce the size of the resulting
 image created.
 .TP
@@ -73,11 +85,59 @@ assemblies listed on the command line option.  This is useful to
 distribute a self-contained image.
 .TP
 .I "--keeptemp"
-By default mkbundle will delete the temporary files that it uses to
+By default \fImkbundle\fP will delete the temporary files that it uses to
 produce the bundle.  This option keeps the file around.
+.TP
+.I "--machine-config FILE"
+Uses the given FILE as the machine.config file for the generated
+application.   
+.TP
+.I "--nomain"
+With the -c option, generate the host stub without a main() function.
+.TP
+.I "--config-dir DIR"
+When passed, DIR will be set for the MONO_CFG_DIR environment variable
+.TP
+.I "--static"
+By default \fImkbundle\fP dynamically links to mono and glib.  This option
+causes it to statically link instead.
+.TP
+.B Important:
+Since the Mono runtime is licensed under the LGPL, even if you use
+static you should transfer the component pieces of the mkbundle to
+your users so they are able to upgrade the Mono runtime on their own.
+.TP
+If you want to use this for commercial licenses, you must obtain a
+proprietary license for Mono from mono@novell.com
+.TP
+.I "-z"
+Compresses the assemblies before embedding. This results in smaller
+executable files, but increases startup time and requires zlib to be
+installed on the target system.
+.SH WINDOWS
+On Windows systems, it it necessary to have  Unix-like toolchain to be
+installed for \fImkbundle\fP to work.  You can use cygwin's and install gcc,
+gcc-mingw and as packages. 
+.SH ENVIRONMENT VARIABLES
+.TP
+.I "AS"
+Assembler command. The default is "as".
+.TP
+.I "CC"
+C compiler command. The default is "cc" under Linux and "gcc -mno-cygwin"
+under Windows.
+.TP
+.I "MONO_BUNDLED_OPTIONS"
+Options to be passed to the bundled
+Mono runtime, separated by spaces. See the mono(1) manual page or run mono --help.
 .SH FILES
 This program will load referenced assemblies from the Mono assembly
 cache. 
+.SH BUGS
+The option "--static" is not supported under Windows.
+Moreover, a full cygwin environment containing at least "gcc" and "as"
+is required for the build process. The generated executable does not
+depend on cygwin.
 .SH MAILING LISTS
 Visit http://lists.ximian.com/mailman/listinfo/mono-devel-list for details.
 .SH WEB SITE