<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0cm;
        margin-right:0cm;
        margin-bottom:0cm;
        margin-left:36.0pt;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
span.EmailStyle18
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page Section1
        {size:612.0pt 792.0pt;
        margin:70.85pt 3.0cm 70.85pt 3.0cm;}
div.Section1
        {page:Section1;}
 /* List Definitions */
 @list l0
        {mso-list-id:1712801833;
        mso-list-type:hybrid;
        mso-list-template-ids:937883818 1691507268 201981955 201981957 201981953 201981955 201981957 201981953 201981955 201981957;}
@list l0:level1
        {mso-level-start-at:0;
        mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;
        mso-fareast-font-family:Calibri;
        mso-bidi-font-family:"Times New Roman";}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l0:level3
        {mso-level-tab-stop:108.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level4
        {mso-level-tab-stop:144.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level5
        {mso-level-tab-stop:180.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level6
        {mso-level-tab-stop:216.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level7
        {mso-level-tab-stop:252.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level8
        {mso-level-tab-stop:288.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level9
        {mso-level-tab-stop:324.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=ES link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal><span lang=EN-US>Hi,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-US>Here are my current patches for building a
minimal mono/mcs only for moonlight. The resulting mono/mcs is only useful for
moonlight, so when configuring mono &#8211;with-moonlight is disabled by default
(which shouldn&#8217;t be a problem &#8211; moon&#8217;s autogen.sh runs this automatically).
This is against mono trunk.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoListParagraph style='text-indent:-18.0pt;mso-list:l0 level1 lfo2'><![if !supportLists]><span
lang=EN-US style='font-family:Symbol'><span style='mso-list:Ignore'>&middot;<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=EN-US>All modules (mono, mcs, moon,
mono-basic) needs to be checked out next to each other (this means that the
&#8211;with-mcspath configure option has been removed). moon's autogen.sh runs mono&#8217;s
too (the reason for requiring mono/mcs to be next to moon &#8211; easier to find for
moon&#8217;s autogen.sh).<o:p></o:p></span></p>

<p class=MsoListParagraph style='text-indent:-18.0pt;mso-list:l0 level1 lfo2'><![if !supportLists]><span
lang=EN-US style='font-family:Symbol'><span style='mso-list:Ignore'>&middot;<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=EN-US>The configure options passed to
mono are: &#8220;--with-moonlight=yes --enable-minimal=aot,com,interpreter
--with-ikvm-native=no --with-mcs-docs=no --disable-nls&#8221;:<o:p></o:p></span></p>

<p class=MsoListParagraph style='margin-left:72.0pt;text-indent:-18.0pt;
mso-list:l0 level2 lfo2'><![if !supportLists]><span lang=EN-US
style='font-family:"Courier New"'><span style='mso-list:Ignore'>o<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span></span><![endif]><span
lang=EN-US>--enable-minimal: has what I figured we could do without, there
might be more.<o:p></o:p></span></p>

<p class=MsoListParagraph style='margin-left:72.0pt;text-indent:-18.0pt;
mso-list:l0 level2 lfo2'><![if !supportLists]><span lang=EN-US
style='font-family:"Courier New"'><span style='mso-list:Ignore'>o<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span></span><![endif]><span
lang=EN-US>--with-ikvm-native=no: why is this even enabled by default?<o:p></o:p></span></p>

<p class=MsoListParagraph style='margin-left:72.0pt;text-indent:-18.0pt;
mso-list:l0 level2 lfo2'><![if !supportLists]><span lang=EN-US
style='font-family:"Courier New"'><span style='mso-list:Ignore'>o<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span></span><![endif]><span
lang=EN-US>--with-mcs-docs=no: <o:p></o:p></span></p>

<p class=MsoListParagraph style='margin-left:72.0pt;text-indent:-18.0pt;
mso-list:l0 level2 lfo2'><![if !supportLists]><span lang=EN-US
style='font-family:"Courier New"'><span style='mso-list:Ignore'>o<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span></span><![endif]><span
lang=EN-US>--disable-nls: not sure about this one, it just sounded like something
we could skip. <o:p></o:p></span></p>

<p class=MsoListParagraph style='text-indent:-18.0pt;mso-list:l0 level1 lfo2'><![if !supportLists]><span
lang=EN-US style='font-family:Symbol'><span style='mso-list:Ignore'>&middot;<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=EN-US>A #define MOONLIGHT &nbsp;has
been added to mono, so we can have moonlight-specific native code. <o:p></o:p></span></p>

<p class=MsoListParagraph style='text-indent:-18.0pt;mso-list:l0 level1 lfo2'><![if !supportLists]><span
lang=EN-US style='font-family:Symbol'><span style='mso-list:Ignore'>&middot;<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=EN-US>A system mono is still required
(used to run our tools as well as gmcs &#8211; only smcs is run using moonlight&#8217;s
mono).<o:p></o:p></span></p>

<p class=MsoListParagraph style='text-indent:-18.0pt;mso-list:l0 level1 lfo2'><![if !supportLists]><span
lang=EN-US style='font-family:Symbol'><span style='mso-list:Ignore'>&middot;<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=EN-US>I got down to building 3
profiles in mcs/class: basic, net_2_1_bootstrap, net_2_1_raw. There was one
little problem though: we require cecil, the tuner and the linker, which needs
to be built too. Cecil can&#8217;t be built in the 2.1 profile (it uses&nbsp; 1.0 api
which isn&#8217;t available in 2.1), so that left only the basic profile. Since I
didn&#8217;t want to mess too much with mcs&#8217; makefiles, those&nbsp; assemblies are
built from moon/class (&#8220;$(MAKE) &#8211;C &lt;assembly src dir&gt; PROFILE=basic&#8221; for
each of them).<o:p></o:p></span></p>

<p class=MsoListParagraph style='text-indent:-18.0pt;mso-list:l0 level1 lfo2'><![if !supportLists]><span
lang=EN-US style='font-family:Symbol'><span style='mso-list:Ignore'>&middot;<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=EN-US>I have been a bit in doubt
about how to have fewer SUBDIRS entries in mono/Makefile.am and
mono/mono/Makefile.am &#8211; the current conditional solution gets ugly since
apparently automake doesn&#8217;t support &#8216;elseif&#8217; and there already is a conditional
in mono/mono/Makefile.am. The other solution is to have the subdir
conditionally defined (like interpreter_dir in mono/mono/Makefile.am), I like
this method better, though more changes (not necessarily clean since some parts
would have to be reordered, ) are required in mono&#8217;s configure.in<o:p></o:p></span></p>

<p class=MsoListParagraph style='text-indent:-18.0pt;mso-list:l0 level1 lfo2'><![if !supportLists]><span
lang=EN-US style='font-family:Symbol'><span style='mso-list:Ignore'>&middot;<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=EN-US>I also made libmono link
statically, the problem with this is that we&#8217;ll need a separate desktop
libmoon, since it needs to use the desktop mono. Not sure if this is something
to pursue.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-US>A clean build of mono/mcs/moon/mono-basic
(git clean &#8211;xfd executed in those directories first) now completes in 8:48 on
my machine (with ccache installed) &#8211; (as a curiosity 3:19 of that is spent
inside moon&#8217;s autogen.sh, which also execute mono/autogen.sh,
mono/libgc/autogen.sh, moon/pixman/autogen.sh and moon/cairo/autogen.sh&#8230;).<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-US>moon.patch is here: <a
href="http://monobin.com/__m5eb373f3%20">http://monobin.com/__m5eb373f3 </a>since
it passed the list&#8217;s size limit.</span><span lang=EN-US style='color:#1F497D'><o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-US>Rolf<o:p></o:p></span></p>

</div>

</body>

</html>