diff options
author | Miguel de Icaza <miguel@gnome.org> | 2016-05-14 07:32:14 +0300 |
---|---|---|
committer | Miguel de Icaza <miguel@gnome.org> | 2016-05-14 07:32:14 +0300 |
commit | 2e3c90564aac3d44fac395041d728d1bf836d444 (patch) | |
tree | f651f3c8a94707bbae736e0e06a071145aa4712d /man | |
parent | cc3f4c60379c3839dd4259e171bb4539d21f2157 (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.1 | 71 |
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" |