Man Linux: Main Page and Category List

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.

       Use mkbundle when you want the startup runtime to load the 1.0 profile,
       and use mkbundle2 when you want the startup runtime  to  load  the  2.0
       profile.

       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.

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

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

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

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

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

       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.

       If you want to use this for commercial licenses, you must obtain a
              proprietary license for Mono from mono@novell.com

       -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
              -mno-cygwin" 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.

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)