Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/man
diff options
context:
space:
mode:
authorMiguel de Icaza <miguel@gnome.org>2016-05-14 07:32:14 +0300
committerMiguel de Icaza <miguel@gnome.org>2016-05-14 07:32:14 +0300
commit2e3c90564aac3d44fac395041d728d1bf836d444 (patch)
treef651f3c8a94707bbae736e0e06a071145aa4712d /man
parentcc3f4c60379c3839dd4259e171bb4539d21f2157 (diff)
mkbundle commands for cross compilation. (#2970)
* Start of packager for mkbundle * [mkbundle] Add fingerprint and directory at end of package * [mkbundle] Update embedding file format, add support for --options, support for --runtime, chmod +x * [driver] Add a way to parse arbitrary command line options * [mkbundle] Align the assemblies on a page boundary, do not release directory buffer * Work-around odd compiler error by using memcpy * Update makefile * Fix the windows build * [Windows] Export the new mono_parse_options_from API * Implement the various cross-compiler target fetching commands * Clean
Diffstat (limited to 'man')
-rw-r--r--man/mkbundle.171
1 files changed, 56 insertions, 15 deletions
diff --git a/man/mkbundle.1 b/man/mkbundle.1
index ed704b89d6a..246bcfc2abd 100644
--- a/man/mkbundle.1
+++ b/man/mkbundle.1
@@ -21,9 +21,34 @@ 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.
+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.
+.PP
+For example, to create a bundle for hello world, use the following
+command:
+.nf
+ $ mkbundle -o hello --simple hello.exe
+.fi
+.PP
+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:
+.nf
+ $ 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-x86 hello.exe -o hello-debian
+.fi
+.PP
+The above will bundle your native library into hello-debian for
+PowerPC running on ARM64.
+.SH OLD EMBEDDING
.PP
For example, to create a bundle for hello world, use the following
command:
@@ -57,6 +82,12 @@ are available to the embedded runtime.
.I "-c"
Produce the stub file, do not compile the resulting stub.
.TP
+.I "--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.
+.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.
@@ -74,20 +105,31 @@ 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 "--fetch-target target"
+Downloads a precompiled runtime for the specified target from the Mono
+distribution site.
+.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 "--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 "--lists-targets"
+Lists all of the available local cross compilation targets available
+as precompiled binaries on the Mono distribution server.
+.TP
+.I "--local-targets"
+Lists all of the available local cross compilation targets.
+.TP
.I "--machine-config FILE"
Uses the given FILE as the machine.config file for the generated
application.
@@ -102,13 +144,10 @@ When passed, DIR will be set for the MONO_CFG_DIR environment variable
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
+.I "--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.
.TP
.I "-z"
Compresses the assemblies before embedding. This results in smaller
@@ -133,6 +172,8 @@ Mono runtime, separated by spaces. See the mono(1) manual page or run mono --hel
.SH FILES
This program will load referenced assemblies from the Mono assembly
cache.
+.PP
+Targets are loaded from ~/.mono/targets/TARGETNAME/mono
.SH BUGS
The option "--static" is not supported under Windows.
Moreover, a full cygwin environment containing at least "gcc" and "as"