<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <br>
    <div class="moz-cite-prefix">On 12/05/2014 17:30, Bryan Crotaz
      wrote:<br>
    </div>
    <blockquote
cite="mid:CAGW14aX2XfgZxBc5JoCd54DqTBd8hHqgUR6Ygrq95bGbhbzdhA@mail.gmail.com"
      type="cite">
      <div dir="ltr">Ooooh pretty.....  Will give it a go.
        <div><br>
        </div>
        <div>Can the build script be extended to install needed cygwin
          packages if they're missing?  When I first tried to build I
          had no idea how to find the packages, or how to install them -
          for newbie contributors this would remove a lot (in my case 2
          days) of head scratching.</div>
      </div>
      <div class="gmail_extra"><br>
      </div>
    </blockquote>
    <br>
    That's an interesting idea Bryan. I'd love it if the Win32 build
    process was a little more streamlined but I wouldn't know where to
    begin myself within the Mono build scripting at present.<br>
    <br>
    In the short-term it might be possible to do something with a script
    using one of the command-line package managers for Cygwin (e.g.
    apt-cyg)<br>
    <br>
    I could have a look at that when I have time maybe if the Cygwin UI
    setup app is proving a hurdle.<br>
    <br>
    <blockquote
cite="mid:CAGW14aX2XfgZxBc5JoCd54DqTBd8hHqgUR6Ygrq95bGbhbzdhA@mail.gmail.com"
      type="cite">
      <div class="gmail_extra"><br>
        <div class="gmail_quote">On 12 May 2014 17:23, Alex J Lennon <span
            dir="ltr"><<a moz-do-not-send="true"
              href="mailto:ajlennon@dynamicdevices.co.uk"
              target="_blank">ajlennon@dynamicdevices.co.uk</a>></span>
          wrote:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">
            <div text="#000000" bgcolor="#FFFFFF">
              <div class=""> <br>
                <div>On 12/05/2014 17:07, Bryan Crotaz wrote:<br>
                </div>
                <blockquote type="cite">
                  <div>Will this make building on windows possible?<br>
                    <br>
                  </div>
                </blockquote>
              </div>
              Bryan,<br>
              <br>
              I've written a walkthrough here for building 3.4.0 from
              the release tarball and 3.4.1 from git on Windows.<br>
              <br>
              <a moz-do-not-send="true"
href="http://www.codeproject.com/Articles/769292/How-to-build-Mono-on-Windows"
                target="_blank">http://www.codeproject.com/Articles/769292/How-to-build-Mono-on-Windows</a><br>
              <br>
              Best regards, Alex
              <div>
                <div class="h5"><br>
                  <br>
                  <blockquote type="cite">
                    <div>Bryan Crotaz
                      <div>Silver Curve</div>
                    </div>
                    <div><br>
                      On 12 May 2014, at 16:59, Miguel de Icaza <<a
                        moz-do-not-send="true"
                        href="mailto:miguel@xamarin.com" target="_blank">miguel@xamarin.com</a>>

                      wrote:<br>
                      <br>
                    </div>
                    <blockquote type="cite">
                      <div>
                        <div dir="ltr">Hey guys,
                          <div><br>
                          </div>
                          <div>Another update: I am almost done with the
                            work, only one cycle left to resolve and I
                            will be able to land the changes.</div>
                          <div><br>
                          </div>
                          <div>All the changes are on a branch on
                            github.</div>
                          <div><br>
                          </div>
                          <div>MIguel</div>
                        </div>
                        <div class="gmail_extra"><br>
                          <br>
                          <div class="gmail_quote">On Fri, May 2, 2014
                            at 4:27 PM, Miguel de Icaza <span dir="ltr"><<a
                                moz-do-not-send="true"
                                href="mailto:miguel@xamarin.com"
                                target="_blank">miguel@xamarin.com</a>></span>
                            wrote:<br>
                            <blockquote class="gmail_quote"
                              style="margin:0 0 0 .8ex;border-left:1px
                              #ccc solid;padding-left:1ex">
                              <div dir="ltr">Hello guys,
                                <div><br>
                                </div>
                                <div>Just a follow up to my previous
                                  posting on this.</div>
                                <div><br>
                                </div>
                                <div> I have managed to untangle this
                                  mess, and now I have a clean build
                                  that does not involve overwriting
                                  assemblies.</div>
                                <div><br>
                                </div>
                                <div>In addition to untangling this, I
                                  added dependencies on all the
                                  assemblies involved in this circular
                                  dependency mess so if you type "make"
                                  in any of System, System.Xml,
                                  System.Security, Mono.Security or
                                  System.Configuration, all the
                                  dependencies will be properly built.</div>
                                <div><br>
                                </div>
                                <div>During the fixing, I noticed that
                                  our System.Xml build must have broke a
                                  few eons ago, because there was code
                                  in place to perform a 2-stage
                                  System.Xml build as well (without and
                                  with System.Configuration support),
                                  but nobody noticed that this had
                                  happened.   While I fixed this, it
                                  raises the obvious point that nobody
                                  really cares (or likes)
                                  System.Configuration.</div>
                                <div><br>
                                </div>
                                <div>While doing this review, I found a
                                  few other places that also have these
                                  ugly loops, so I am going to be fixing
                                  those as well.</div>
                                <span><font color="#888888">
                                    <div><br>
                                    </div>
                                    <div>Miguel</div>
                                  </font></span></div>
                              <div class="gmail_extra"><br>
                                <br>
                                <div class="gmail_quote">
                                  <div>On Tue, Apr 22, 2014 at 3:53 PM,
                                    Miguel de Icaza <span dir="ltr"><<a
                                        moz-do-not-send="true"
                                        href="mailto:miguel@xamarin.com"
                                        target="_blank">miguel@xamarin.com</a>></span>
                                    wrote:<br>
                                  </div>
                                  <div>
                                    <div>
                                      <blockquote class="gmail_quote"
                                        style="margin:0 0 0
                                        .8ex;border-left:1px #ccc
                                        solid;padding-left:1ex">
                                        <div dir="ltr">Hey guys,
                                          <div><br>
                                          </div>
                                          <div>I was looking at making
                                            the MSBuild system work, and
                                            during the process I have
                                            encountered a few problems
                                            that we have in our existing
                                            build system that are
                                            problematic.</div>
                                          <div> <br>
                                          </div>
                                          <div>The problem is that
                                            System, System.XML and
                                            System.Configuration are
                                            each defined in terms of the
                                            other assemblies.   So we
                                            gradually bring up each one
                                            of those assemblies up by
                                            first compiling a stub
                                            System, which we use to
                                            build System.XML and
                                            System.Configuration.   Then
                                            we rebuild System, this time
                                            referencing System.XML and
                                            System.Configuration so we
                                            can take a dependency on
                                            them, and so on.</div>
                                          <div><br>
                                          </div>
                                          <div>To build a complete
                                            System.dll for a particular
                                            profile (net_2_0, net_4_0,
                                            etc) takes three steps: </div>
                                          <div>
                                            <ul>
                                              <li>Core Build</li>
                                              <li>Secondary Build:</li>
                                              <ul>
                                                <li>Core Build + </li>
                                                <li>Defines: XML_DEP +
                                                  SECURITY_DEP</li>
                                                <li>Refs: </li>
                                                <ul>
                                                  <li>-r:PrebuiltSystem=../lib/Previous/System.dll </li>
                                                  <li>-r:System.Xml.dll<br>
                                                  </li>
                                                  <li>-r:MonoSecurity=Mono.Security.dll</li>
                                                </ul>
                                              </ul>
                                              <li>Final Build:</li>
                                              <ul>
                                                <li>Secondary Build + </li>
                                                <li>defines:
                                                  -d:CONFIGURATION_DEP</li>
                                                <li>Refs:</li>
                                                <ul>
                                                  <li>System.Configuration.dll</li>
                                                </ul>
                                              </ul>
                                            </ul>
                                            <div>The above is what is
                                              required to bring up
                                              System.</div>
                                          </div>
                                          <div><br>
                                          </div>
                                          <div>Our implementation has
                                            one major problem: it
                                            overwrites the intermediate
                                            files.  So the core build
                                            output is overwritten by the
                                            secondary build, and the
                                            secondary build is
                                            overwritten by the final
                                            build.</div>
                                          <div><br>
                                          </div>
                                          <div>It seems that
                                            historically, instead of
                                            introducing temporary
                                            directories for each stage,
                                            instead we hacked our way
                                            out of it.   We introduced a
                                            LIBRARY_USE_INTERMEDIATE_FILE
                                            whose sole purpose was to
                                            work around the case where
                                            Windows was actively telling
                                            us we were doing something
                                            wrong (we were overwriting a
                                            file that we were actively
                                            referencing!)</div>
                                          <div><br>
                                          </div>
                                          <div>The above is also likely
                                            going to prevent reliable
                                            parallel builds, or probably
                                            means that we introduced
                                            some gross hack to make the
                                            above work in parallel.</div>
                                          <div><br>
                                          </div>
                                          <div>I am going to try to fix
                                            this, but the Makefile goop
                                            is pretty dense, and I might
                                            fail.   I just figured I
                                            should share my findings in
                                            case civilization comes to
                                            an end and a future
                                            archeologist tries to figure
                                            out why this was not
                                            working.</div>
                                          <div><br>
                                          </div>
                                          <div>These are the defines
                                            that we use to bring up
                                            System for each profile:</div>
                                          <div><br>
                                          </div>
                                          <div>basic Profile:</div>
                                          <div>
                                            <p>basic: -d:NET_1_1
                                              -d:NET_2_0
                                              -d:BOOTSTRAP_BASIC
                                              -d:CONFIGURATION_2_0</p>
                                            <p>basic: -d:NET_1_1
                                              -d:NET_2_0
                                              -d:BOOTSTRAP_BASIC
                                              -d:CONFIGURATION_2_0
                                              -d:XML_DEP</p>
                                            <p><br>
                                            </p>
                                            <p>Build Profile:</p>
                                            <p>build: -d:NET_1_1
                                              -d:NET_2_0 -d:NET_3_0
                                              -d:NET_3_5 -d:NET_4_0
                                              -d:CONFIGURATION_2_0</p>
                                            <p>build: -d:NET_1_1
                                              -d:NET_2_0 -d:NET_3_0
                                              -d:NET_3_5 -d:NET_4_0
                                              -d:CONFIGURATION_2_0 
                                              -d:XML_DEP</p>
                                            <p><br>
                                            </p>
                                            <p>Net 2.0 profile:</p>
                                            <p>net_2_0: -d:NET_1_1
                                              -d:NET_2_0 
                                              -d:CONFIGURATION_2_0</p>
                                            <p>net_2_0: -d:NET_1_1
                                              -d:NET_2_0 
                                              -d:CONFIGURATION_2_0 
                                              -d:XML_DEP
                                              -d:SECURITY_DEP </p>
                                            <p>net_2_0: -d:NET_1_1
                                              -d:NET_2_0 
                                              -d:CONFIGURATION_2_0 
                                              -d:XML_DEP -d:SECURITY_DEP
                                              -d:CONFIGURATION_DEP </p>
                                            <p><br>
                                            </p>
                                            <p>Net 4.0 profile:<br>
                                            </p>
                                            <p>net_4_0: -d:NET_1_1
                                              -d:NET_2_0 -d:NET_3_0
                                              -d:NET_3_5 -d:NET_4_0
                                              -d:CONFIGURATION_2_0</p>
                                            <p>net_4_0: -d:NET_1_1
                                              -d:NET_2_0 -d:NET_3_0
                                              -d:NET_3_5 -d:NET_4_0
                                              -d:CONFIGURATION_2_0
                                              -d:XML_DEP 
                                              -d:SECURITY_DEP</p>
                                            <p>net_4_0: -d:NET_1_1
                                              -d:NET_2_0 -d:NET_3_0
                                              -d:NET_3_5 -d:NET_4_0
                                              -d:CONFIGURATION_2_0
                                              -d:XML_DEP 
                                              -d:SECURITY_DEP 
                                              -d:CONFIGURATION_DEP</p>
                                            <p><br>
                                            </p>
                                            <p>Net 4.5 profile:<br>
                                            </p>
                                            <p>net_4_5: -d:NET_1_1
                                              -d:NET_2_0 -d:NET_3_0
                                              -d:NET_3_5 -d:NET_4_0
                                              -d:NET_4_5
                                              -d:CONFIGURATION_2_0 </p>
                                            <p>net_4_5: -d:NET_1_1
                                              -d:NET_2_0 -d:NET_3_0
                                              -d:NET_3_5 -d:NET_4_0
                                              -d:NET_4_5
                                              -d:CONFIGURATION_2_0
                                              -d:XML_DEP 
                                              -d:SECURITY_DEP </p>
                                            <p>net_4_5: -d:NET_1_1
                                              -d:NET_2_0 -d:NET_3_0
                                              -d:NET_3_5 -d:NET_4_0
                                              -d:NET_4_5
                                              -d:CONFIGURATION_2_0 
                                              -d:XML_DEP -d:SECURITY_DEP
                                              -d:CONFIGURATION_DEP </p>
                                            <span><font color="#888888">
                                                <p><br>
                                                </p>
                                              </font></span></div>
                                          <span><font color="#888888">
                                              <div>Miguel</div>
                                            </font></span></div>
                                      </blockquote>
                                    </div>
                                  </div>
                                </div>
                                <br>
                              </div>
                            </blockquote>
                          </div>
                          <br>
                        </div>
                      </div>
                    </blockquote>
                    <blockquote type="cite">
                      <div><span>_______________________________________________</span><br>
                        <span>Mono-devel-list mailing list</span><br>
                        <span><a moz-do-not-send="true"
                            href="mailto:Mono-devel-list@lists.ximian.com"
                            target="_blank">Mono-devel-list@lists.ximian.com</a></span><br>
                        <span><a moz-do-not-send="true"
                            href="http://lists.ximian.com/mailman/listinfo/mono-devel-list"
                            target="_blank">http://lists.ximian.com/mailman/listinfo/mono-devel-list</a></span><br>
                      </div>
                    </blockquote>
                    <br>
                    <fieldset></fieldset>
                    <br>
                    <pre>_______________________________________________
Mono-devel-list mailing list
<a moz-do-not-send="true" href="mailto:Mono-devel-list@lists.ximian.com" target="_blank">Mono-devel-list@lists.ximian.com</a>
<a moz-do-not-send="true" href="http://lists.ximian.com/mailman/listinfo/mono-devel-list" target="_blank">http://lists.ximian.com/mailman/listinfo/mono-devel-list</a>
</pre>
                  </blockquote>
                  <br>
                </div>
              </div>
            </div>
          </blockquote>
        </div>
        <br>
        <br clear="all">
        <div><br>
        </div>
        -- <br>
        Bryan Crotaz
        <div>Managing Director<br>
          <div>Silver Curve</div>
        </div>
      </div>
    </blockquote>
    <br>
    <div class="moz-signature">-- <br>
      <div class="preview">
        <p style="font-family: Helvetica, Arial, sans-serif; font-size:
          10px; line-height: 12px;"><a
            href="http://www.dynamicdevices.co.uk/" class="clink"><img
              src="cid:part10.03030504.09040209@dynamicdevices.co.uk"
              alt="Dynamic Devices Ltd" id="sig-logo" border="0"></a></p>
        <p style="font-family: Helvetica, Arial, sans-serif; font-size:
          10px; line-height: 12px; color: rgb(153, 153, 153);"><span
            id="name-input" style="font-weight: bold;" class="txt">Alex
            J Lennon</span> <span id="title-sep">/</span> <span
            id="title-input" style="color: #999;" class="txt">Director</span><br>
          <span id="address-input" style="color: #999;" class="txt">1
            Queensway, Liverpool L22 4RA</span> </p>
        <p style="font-family: Helvetica, Arial, sans-serif; font-size:
          10px; line-height: 12px;"> <span id="mobile-input"
            style="color: #999;" class="txt">mobile: +44 (0)7956 668178</span>
          <br>
          <br>
        </p>
        <p style="font-size: 10px; line-height: 12px; font-family:
          Helvetica, Arial, sans-serif"> <a id="linkedin-input"
            class="social" href="http://www.linkedin.com/in/alexjlennon"><img
              src="cid:part12.05000109.03070506@dynamicdevices.co.uk"
              alt="Linkedin"></a> <a id="skype-input" class="social"
            href="skype:alexjlennon?add"><img
              src="cid:part14.02030602.07000701@dynamicdevices.co.uk"
              alt="Skype"></a></p>
        <p id="disclaimer-input" style="font-family: Helvetica, Arial,
          sans-serif; color: rgb(153, 153, 153); font-size: 9px;
          line-height: 12px;width: 25%" class="txt">This e-mail message
          may contain confidential or legally privileged information and
          is intended only for the use of the intended recipient(s). Any
          unauthorized disclosure, dissemination, distribution, copying
          or the taking of any action in reliance on the information
          herein is prohibited. E-mails are not secure and cannot be
          guaranteed to be error free as they can be intercepted,
          amended, or contain viruses. Anyone who communicates with us
          by e-mail is deemed to have accepted these risks. Company Name
          is not responsible for errors or omissions in this message and
          denies any responsibility for any damage arising from the use
          of e-mail. Any opinion and other statement contained in this
          message and any attachment are solely those of the author and
          do not necessarily represent those of the company.</p>
      </div>
    </div>
  </body>
</html>