Zoltan Varga 48b026648b Bump emscripten to 2.0.9. (#20603) 5 tahun lalu
..
android 07e2ed7708 Add --sdk_root to sdkmanager 5 tahun lalu
builds 48b026648b Bump emscripten to 2.0.9. (#20603) 5 tahun lalu
desktop f46191114b [bcl] Add nunit exclude categories for monotouch/monodroid profiles (#14695) 6 tahun lalu
ios c55dee223f Fix iOS CI device test build 5 tahun lalu
wasm d367111612 Update readme (#20470) 5 tahun lalu
.gitignore a0d79a4886 [sdks] Add netcore option for iOS SDK 6 tahun lalu
Make.config.sample 2c783ab80b [wasm][README] WASM Dynamic Runtime doc (#19416) 5 tahun lalu
Makefile b0919d93f9 [sdks] Source drop from xamarin/mono-sdks (#5876) 8 tahun lalu
README.md fffad7e3a8 Remove the Legacy TLS Provider. (#17391) 6 tahun lalu
README.netcore.md f965e5d3e8 Fix formatting of README.netcore.md 6 tahun lalu
paths.mk c6ca0aa056 Build makefile to support Mac Catalyst (#20537) 5 tahun lalu
versions.mk 0e3d75d6d6 Fix iOS sdks build on Xcode 12 (#20573) 5 tahun lalu

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

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.