…
|
||
---|---|---|
.. | ||
android | ||
builds | ||
desktop | ||
ios | ||
wasm | ||
.gitignore | ||
Make.config.sample | ||
Makefile | ||
README.md | ||
README.netcore.md | ||
paths.mk | ||
versions.mk |
README.md
This project provides build scripts and sample apps for Mono targeting its supported platforms. Supported are Android, iOS and WebAssembly.
Build instructions
Dependencies
-
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
-
Setup
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.
Building for XA/XI/XM and WebAssembly
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]
WebAssembly
Go to the wasm
directory for building and testing WebAssembly. For more information view the WebAssembly readme
Dependencies
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.