| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- .\"
- .\" mkbundle manual page.
- .\" (C) 2004 Ximian, Inc.
- .\" Author:
- .\" Miguel de Icaza ([email protected])
- .\"
- .de Sp \" Vertical space (when we can't use .PP)
- .if t .sp .5v
- .if n .sp
- ..
- .TH mkbundle "mkbundle 1.0"
- .SH NAME
- mkbundle, mkbundle2 \- Creates a bundled executable.
- .SH SYNOPSIS
- .PP
- .B mkbundle [options] assembly1 [assembly2 ...]
- .SH DESCRIPTION
- \fImkbundle\fP generates an executable program that will contain
- static copies of the assemblies listed on the command line. By
- 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 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: \fImkbundle\fP will only include the assemblies that
- were specified on the command line to reduce the size of the resulting
- image created.
- .TP
- .I "--deps"
- This option will bundle all of the referenced assemblies for the
- assemblies listed on the command line option. This is useful to
- distribute a self-contained image.
- .TP
- .I "--keeptemp"
- 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 [email protected]
- .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
- .BR mcs(1), mono(1), mono-config(5).
|