Welcome to mirror list, hosted at ThFree Co, Russian Federation.

README.md « sdks - github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 16621e5b379bd34f289d643fe122eb50325d6b56 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
This project provides build scripts and sample apps for Mono targeting its supported platforms. Supported are Android, iOS and WebAssembly.

# Build instructions

## 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.

## Targets

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:

 - toolchain: setup the toolchain so we can cross-compile the runtime for the appropriate platform
 - configure: configure the build of Mono
 - build: build Mono
 - package: provide a package of the built Mono, the result can be found in `sdks/builds/out/`
 - clean: clean the Mono build directory

The `make` targets are as follow:

```
# Android
make -C builds {toolchain,configure,build,package,clean}-android-{armeabi,armeabi-v7a,arm64-v8a,x86,x86_64}

# iOS
make -C builds {toolchain,configure,build,package,clean}-ios-{target{32,64},sim{32,64},cross{32,64}}

# WebAssembly
make -C builds {toolchain,configure,build,package,clean}-wasm-interp
```

# Testing instructions

## WebAssembly

First, ensure you built&packaged bcl and wasm-inter in the `builds` directory:

```
make build-wasm-interp package-wasm-interp
make build-bcl package-bcl
````

Go to the `wasm` directory for building and testing WebAssembly. Right now the following targets are available:

- build: Build the test runner and test suites
- run-mini: Run mini test suite
- run-corlib: Run corlib test suite
- run-system: Run System test suite
- run-system-core: Run System.Core test suite


For bcl or runtime changes, you must manually run the corresponding build/package steps in `builds`.
For test suite changes, it's enough to just rerun the local target.

# 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](https://github.com/mono/mono).