X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=man%2Fmkbundle.1;h=9fe5540734e760db6e417653c5c3f84e2f6adb37;hb=2b9d0c75e7041e9aa44cb46dbb7553a15bb73f6a;hp=2d6be690c0a305175abb98a94b0e6ba1ecfabf79;hpb=120c67541fb26ec63e67c111997a7b39f93e6c10;p=mono.git diff --git a/man/mkbundle.1 b/man/mkbundle.1 index 2d6be690c0a..9fe5540734e 100644 --- a/man/mkbundle.1 +++ b/man/mkbundle.1 @@ -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,23 +21,61 @@ 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 \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 -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" +Produce the stub file, do not compile the resulting stub. +.TP +.I "-o filename" +Places the output on `out'. If the flag -c is specified, this is the +C host program. If not, this contains the resulting executable. +.TP +.I "-oo filename" +Specifies the name to be used for the helper object file that contains +the bundle. +.TP .I "-L path" Adds the `path' do the search list for assemblies. The rules are the same as for the compiler -lib: or -L flags. +.TP "--config FILE" +Specifies that a machine.config file must be bundled as well. +Typically this is $prefix/etc/mono/1.0/machine.config or +$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 @@ -47,11 +85,57 @@ 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. .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 Visit: http://www.mono-project.com for details .SH SEE ALSO