/MonoKickstart

Kick start executable for running stand-alone distributed Mono applications

Primary LanguageCOtherNOASSERTION

This is MonoKickstart, a standalone Mono "kick" application to run C# programs
on GNU/Linux and macOS without depending on a system installation of Mono.

License
-------
kick.c is released under the zlib license. See LICENSE for details.

binreloc is released under the WTFPL license. See binreloc.LICENSE for details.

About MonoKickstart
-------------------
Originally developed by Edward Rudd for Bastion, MonoKickstart is a reworking of
the stock generated kickstart code from Mono to easily run C# applications on
*nix platforms. macOS support was added in 2013 for FNA titles.

About the precompiled/ Folder
-----------------------------
We have provided a precompiled MonoKickstart application for you to use in your
programs. Included are kick binaries and libmono binaries for macOS and Linux.
We have also provided the subset of the C# BCL needed by FNA; if you need any
other DLLs, you can find them in a standard binary release of Mono.

To use the precompiled MonoKickstart, simply rename the kick.bin.* binaries to
the name of your .exe assembly (for instance, MyGame.bin.x86 starts MyGame.exe).

If you wish to use additional shared libraries (for instance, libSDL2), simply
add the library to the architecture's lib folder:

macOS: osx/
Linux: lib64/

Be sure to run `./fixDylibs.sh` on macOS if you add new libraries!

About MONO_FORCE_COMPAT
-----------------------
Recent versions of .NET broke compatibility with previous versions, in ways that
are non-trivial for applications to fix. To work around the issue, we have
integrated a patch from the OpenBSD community to allow for replicating old .NET
behavior by simply setting MONO_FORCE_COMPAT to a non-null value:

https://github.com/openbsd/ports/commit/7670058636c4985f47fa8da6dceaa9e7fec4f933

Thanks to the OpenBSD community for the fix!