This project provides build scripts and sample apps for Mono targeting its supported platforms. Supported are Android, iOS and WebAssembly.
-
automake 1.16.1
if you have already built before using a previous version of automake you may need to clean the repo.
git clean -xffd
The previous should be sufficient but if that does not work then try hard resetting
git reset --hard && git clean -xffd && git submodule foreach --recursive git reset --hard && git submodule foreach --recursive git clean -xffd && git submodule update --init --recursive
-
-
Getting Ninja
You can download the Ninja binary or find it in your system's package manager
-
Copy Make.config.sample
to Make.config
and edit the new file to disable building the target you're not interested in.
Unless you have a very particular need, the BCL build should be left enabled as it's needed by all test runners.
To build Mono for Android, iOS or WebAssembly, the build scripts can be found in sdks/builds/
.
For Android, you need to copy sdks/Make.config.sample
to sdks/Make.config
and set
ENABLE_ANDROID = 1
The make
targets are as follow:
# Android
make -C sdks/builds provision-android && make -C sdks/android accept-android-license
make -C sdks/builds provision-mxe
make -C sdks/builds archive-android NINJA= IGNORE_PROVISION_ANDROID=1 IGNORE_PROVISION_MXE=1
# iOS
make -C sdks/builds archive-ios NINJA=
# WebAssembly
make -C sdks/builds provision-wasm
make -C sdks/builds archive-wasm NINJA=
# Mac
make -C sdks/builds archive-mac [upcoming]
Go to the wasm
directory for building and testing WebAssembly. For more information view the WebAssembly readme
Project | Dependencies |
---|---|
Android | Android SDK and NDK |
iOS | Xcode |
WebAssembly |
See sdks/versions.mk
for specific version numbers, and sdks/paths.mk
for where they should be installed. These dependencies will not be installed as part of the build process, and will be expected to be present; an error will be triggered if it's not the case. If you need an additional version, please do contact us or submit a pull-request against mono/mono.