[build] Update monolite package to support cil-stringreplacer (#7847)
[mono-project.git] / sdks / README.md
blob16621e5b379bd34f289d643fe122eb50325d6b56
1 This project provides build scripts and sample apps for Mono targeting its supported platforms. Supported are Android, iOS and WebAssembly.
3 # Build instructions
5 ## Setup
7 Copy `Make.config.sample` to `Make.config` and edit the new file to disable building the target you're not interested in.
8 Unless you have a very particular need, the BCL build should be left enabled as it's needed by all test runners.
10 ## Targets
12 To build Mono for Android, iOS or WebAssembly, the build scripts can be found in `sdks/builds/`. There are 5 predefined targets that can be invoked:
14  - toolchain: setup the toolchain so we can cross-compile the runtime for the appropriate platform
15  - configure: configure the build of Mono
16  - build: build Mono
17  - package: provide a package of the built Mono, the result can be found in `sdks/builds/out/`
18  - clean: clean the Mono build directory
20 The `make` targets are as follow:
22 ```
23 # Android
24 make -C builds {toolchain,configure,build,package,clean}-android-{armeabi,armeabi-v7a,arm64-v8a,x86,x86_64}
26 # iOS
27 make -C builds {toolchain,configure,build,package,clean}-ios-{target{32,64},sim{32,64},cross{32,64}}
29 # WebAssembly
30 make -C builds {toolchain,configure,build,package,clean}-wasm-interp
31 ```
33 # Testing instructions
35 ## WebAssembly
37 First, ensure you built&packaged bcl and wasm-inter in the `builds` directory:
39 ```
40 make build-wasm-interp package-wasm-interp
41 make build-bcl package-bcl
42 ````
44 Go to the `wasm` directory for building and testing WebAssembly. Right now the following targets are available:
46 - build: Build the test runner and test suites
47 - run-mini: Run mini test suite
48 - run-corlib: Run corlib test suite
49 - run-system: Run System test suite
50 - run-system-core: Run System.Core test suite
53 For bcl or runtime changes, you must manually run the corresponding build/package steps in `builds`.
54 For test suite changes, it's enough to just rerun the local target.
56 # Dependencies
58 | Project     | Dependencies        |
59 | ----------- | ------------------- |
60 | Android     | Android SDK and NDK |
61 | iOS         | Xcode               |
62 | WebAssembly |                     |
64 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](https://github.com/mono/mono).