Provided by: mono-devel_4.6.2.7+dfsg-1ubuntu1_all bug

NAME

       mkbundle, mkbundle2 - Creates a bundled executable.

SYNOPSIS

       mkbundle [options] assembly1 [assembly2 ...]

DESCRIPTION

       mkbundle 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.

       There are two modes of operation, the default one uses the C compiler to create  a  bundle
       and requires a complete C and Mono SDK to produced executables.   The simple mode (enabled
       when using the "--simple") command line option does not require this, and also allows  for
       cross compilation.

       For example, to create a bundle for hello world, use the following command:
            $ mkbundle -o hello --simple hello.exe

       The  simple  version  allows  for  cross-compiling,  this  requires  a  Mono runtime to be
       installed in the ~/.mono/targets/TARGET/mono to be available.   You can use the  "--local-
       targets"  to list all available targets, and the "--cross" argument to specify the target,
       like this:
            $ mkbundle --local-targets
            Available targets:
                 default   - Current System Mono
                 4.4.0-macosx-x86
                 4.4.0-debian-8-arm64
            $ mkbundle --cross 4.4.0-debian-8-powerpc hello.exe -o hello-debian

       The above will bundle your native library into hello-debian for a Debian 8 system  running
       on a PowerPC machine.

OLD EMBEDDING

       For example, to create a bundle for hello world, use the following command:
            $ mkbundle -o hello hello.exe

       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.

       In addition, it is possible to control  whether  mkbundle  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:
            $ mkbundle -c -o host.c -oo bundles.o --deps hello.exe

            $ cc host.c bundles.o /usr/lib/libmono.a -lc -lrt

       You may also use mkbundle 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.

OPTIONS

       -c     Produce the stub file, do not compile the resulting stub.

       --cross target
              Creates  a  bundle  for  the  specified  target  platform.    The  target must be a
              directory in ~/.mono/targets/ that  contains  a  "mono"  binary.    You  can  fetch
              various targets using the --fetch-target command line option.

       -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.

       -oo filename
              Specifies the name to be used for the helper object file that contains the bundle.

       -L path
              Adds the `path' do the search list for assemblies.  The rules are the same  as  for
              the compiler -lib: or -L flags.

       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)

       --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.

       --fetch-target target
              Downloads a precompiled runtime for the specified target from the Mono distribution
              site.

       --nodeps
              This  is the default: mkbundle will only include the assemblies that were specified
              on the command line to reduce the size of the resulting image created.

       --keeptemp
              By default mkbundle will delete the temporary files that it  uses  to  produce  the
              bundle.  This option keeps the file around.

       --lists-targets
              Lists all of the available local cross compilation targets available as precompiled
              binaries on the Mono distribution server.

       --local-targets
              Lists all of the available local cross compilation targets.

       --machine-config FILE
              Uses the given FILE as the machine.config file for the generated application.

       --nomain
              With the -c option, generate the host stub without a main() function.

       --config-dir DIR
              When passed, DIR will be set for the MONO_CFG_DIR environment variable

       --static
              By default mkbundle dynamically links to mono and glib.  This option causes  it  to
              statically link instead.

       --target-server SERVER
              By  default the mkbundle tool will download from a Mono server the target runtimes,
              you can specify a different server to provide cross-compiled runtimes.

       -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.

WINDOWS

       On Windows systems, it it necessary to have   Unix-like  toolchain  to  be  installed  for
       mkbundle to work.  You can use cygwin's and install gcc, gcc-mingw and as packages.

ENVIRONMENT VARIABLES

       AS     Assembler command. The default is "as".

       CC     C compiler command. The default is "cc" under Linux and "gcc" under Windows.

       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.

FILES

       This program will load referenced assemblies from the Mono assembly cache.

       Targets are loaded from ~/.mono/targets/TARGETNAME/mono

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.

MAILING LISTS

       Visit http://lists.ximian.com/mailman/listinfo/mono-devel-list for details.

WEB SITE

       Visit: http://www.mono-project.com for details

SEE ALSO

       mcs(1),mono(1),mono-config(5).

                                                                           mkbundle(mkbundle 1.0)