summaryrefslogtreecommitdiff
path: root/packages/mono/README
blob: b80b5bbbe6a4f7b0d0915eb242b3f4ee09e9b33d (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
Notes on Mono support in OE.

===============================
Mono 2.2 rc1 status
- still needs quite a bit of packaging TLC
- applied patch for "need OABI" issue
- overall seems to be running well

===============================
Mono 1.9.1 status

- mono-native and mono-mcs-intermediate error out during compile, but in a
  dev shell they compile fine -- very strange.

===============================
Cross Compiling Mono

Cross compiling mono requires a two stage build because the mono mcs directory
cannot be built while cross compiling (http://www.mono-project.com/Mono:ARM).
The recommended way to cross compile mono is to 

 1. do a complete build on the host system, and install.  
 2. cross compile mono which will only build the native target code and 
    overlay the target binaries on the host install.  

The MCS build (step 1) is implemented by the mono-mcs-intermediate* recipe.
This recipe is very similiar to the native build, except it uses standard
install prefixes and the install directory is tar'd up, and placed in staging
for use by the cross build.

During the mono cross build, the first step during the install is to untar
the install results of the mcs-intermediate build.  The cross build install
then proceeds to overlay the native binaries in the install directory.

================================
mono.bbclass

Has a function mono_do_clilibs and inserts that function into PACKAGEFUNCS.
This function calls mono_find_provides_and_requires which finds out (through
calls to monodis --assembly and monodis --assemblyref) which assemblies are
provided and required by a particular package. mono_do_clilibs then
puts the information about provided assemblies into
${CLILIBSDIR}/${packagename}.list and information about the
required packages into ${PKGDEST}/{packagename}.clilibdeps where it
will later be picked up by read_shlibdeps.