a575963da9
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
149 lines
5.0 KiB
Groff
149 lines
5.0 KiB
Groff
.\"
|
|
.\" mkbundle manual page.
|
|
.\" (C) 2004 Ximian, Inc.
|
|
.\" Author:
|
|
.\" Miguel de Icaza (miguel@gnu.org)
|
|
.\"
|
|
.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 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"
|
|
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
|
|
Visit: http://www.mono-project.com for details
|
|
.SH SEE ALSO
|
|
.BR mcs(1), mono(1), mono-config(5).
|
|
|
|
|