<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'><font color="#000000" face="Calibri,sans-serif">Hey Alex,</font><BR><font color="#000000" face="Calibri,sans-serif"></font> <BR><font color="#000000" face="Calibri,sans-serif">Jo Shields is currently working on revamping the Windows Installer in his repo: <a href="https://github.com/directhex/newbuilder">https://github.com/directhex/newbuilder</a></font><BR>I contributed the WiX setup files for creating an MSI installer. Jo sent me this link for a preview build (the usual caveats apply): <a href="https://drive.google.com/file/d/0Bz6-k9ELOQf3YTE1RHV3Y0dNaFU/view">https://drive.google.com/file/d/0Bz6-k9ELOQf3YTE1RHV3Y0dNaFU/view</a><BR> <BR>Btw. while developing the WiX setup I used the binaries from your AppVeyor build, it all worked fine :)<BR> <BR>Can you maybe also make changes to <a href="http://www.mono-project.com/docs/compiling-mono/windows/">http://www.mono-project.com/docs/compiling-mono/windows/</a> (just click the "edit page on github" link), so it reflects what is necessary right now to build Mono on Windows? I think that page is pretty outdated right now.<BR> <BR>-- Alex<BR> <BR> <BR><div>> Date: Fri, 28 Nov 2014 14:29:29 +0100<br>> From: ajlennon@dynamicdevices.co.uk<br>> To: monodanmorg@yahoo.com<br>> CC: mono-devel-list@lists.ximian.com<br>> Subject: Re: [Mono-dev] Building Mono on Windows - And Having a Windows        Installer again<br>> <br>> Hi Daniel,<br>> <br>> On 30/11/2014 02:13, Edward Ned Harvey (mono) wrote:<br>> >> From: mono-devel-list-bounces@lists.ximian.com [mailto:mono-devel-list-<br>> >> bounces@lists.ximian.com] On Behalf Of Daniel Morgan<br>> >><br>> >> I see the latest version of Mono's Windows installer is 3.2.3.  Can this be used<br>> >> to build the latest from git?<br>> >><br>> >> I see a link for binaries for 3.4.0, but they are not official binaries.<br>> >><br>> >> I am going to try build Mono on Windows using Cygwin.  Not sure how web<br>> >> the visual studio stuff works.<br>> > Search this list for Appveyor.  I know Alex Lennon was putting some effort in, and I think got to the point of having a reliable automated build process - but check with folks to be sure (I haven't followed very closely and I could be wrong).  At some point, Miguel pulled Duncan Mak into the conversation, so I would guess maybe Duncan is involved with distributing windows builds...  All of this occurred within the last ~ 1 month or so.<br>> ><br>> <br>> As Edward says, I did put a bit of time into this and we do have what I<br>> think is a reliable automated build process on the Windows platform,<br>> although as ever there are improvements that can be made,<br>> <br>> Stepping back for a second there's a couple of documents that I've been<br>> maintaining on building Mono under Windows with Cygwin (prior to being<br>> introduced to Appveyor CI)<br>> <br>> This covers 3.4.0 - 3.6.0,<br>> http://www.codeproject.com/Articles/769292/How-to-build-Mono-on-Windows<br>> <br>> And this covers 3.8.0+<br>> http://www.codeproject.com/Articles/769292/How-to-build-Mono-on-Windows<br>> <br>> It gets you to the point you can just about use Mono but there are some<br>> remaining issues I have yet to address,<br>> <br>> e.g.<br>> <br>> - understanding how the Mono installer works<br>> - dealing with hard coded library references in the build (I think the<br>> installer may do some of this)<br>> - ensuring that Windows batch files for e.g. mcs, mono, xbuild are<br>> correcly created (Again I think the installer may do some of this)<br>> <br>> ...<br>> <br>> Further to that I then created a build script for the Appveyor build<br>> platform, based on work and suggestions from Mladen Mihajlovic, which is<br>> currently automatically building Mono on commits to the repo<br>> <br>> You can see the build history here:<br>> https://ci.appveyor.com/project/ajlennon/mono-817<br>> <br>> The output "artifact" from any of these builds is currently a set of<br>> Mono binaries which you _should_ be able to download and use straight<br>> away (would love some feedback on any issues here)<br>> <br>> e.g. https://ci.appveyor.com/project/ajlennon/mono-817/build/artifacts<br>> <br>> You should also be able to take the script I created and use this to<br>> build your own build of Mono, independently of the instruction documents<br>> I reference above. In particular there's a useful line there that<br>> automates installation of needed Cygwin packages.<br>> <br>> See here: https://github.com/mono/mono/blob/master/appveyor.yml<br>> (build_script section)<br>> <br>> What I'd like to do next is to modify this script to take the bones of<br>> the Windows installer and generate an output artifact which was an MSI<br>> installer.<br>> <br>> Unfortunately this is not trivial (to me at least!), and also requires<br>> pulling in some GTK# dependencies and so forth. I want to progress this<br>> but have not yet had time due to work commitments.<br>> <br>> Also, and perhaps more importantly the Cygwin build may all become<br>> somewhat deprecated as Jo Shields appears to be doing some excellent<br>> work to make Mono build under MSVC.<br>> <br>> Once this is achievable, to my mind it will be a vastly superior way to<br>> build Mono, instead of the 2 hour+ Cygwin build with all the faff.<br>> <br>> >> Also, what is the best Linux distro to build mono?  OpenSUSE?  Debian,<br>> >> Ubuntu?  It has been awhile for me.  Not starting a flame war here - just<br>> >> wanting the easiest route to get the dependencies on linux  in order to build<br>> >> the latest mono from git.<br>> > On basically any system I've seen so far, building is easy.  The basic process of "./configure && make && make install" usually works.  If it doesn't, then add "make get-monolite-latest" before "make EXTERNAL_MCS=..."  as below...<br>> ><br>> > On every redhat-based or debian-based (or even mac) system I've ever used, one of these two variants has always worked.<br>> ><br>> > OSX<br>> > export BUILDDIR=/Users/whatever/Projects/mono-build<br>> > export NUMPROC=3 ; time ( test -d $BUILDDIR && rm -rf $BUILDDIR ; mkdir -p $BUILDDIR ; ./autogen.sh --prefix=$BUILDDIR --disable-bcl-opt --enable-nls=no && make -j $NUMPROC && make install && echo "" && echo "    Done" && echo "")<br>> ><br>> > Ubuntu 14.04<br>> > export BUILDDIR=/home/whatever/Projects/mono-build<br>> > export NUMPROC=3 ; time ( test -d $BUILDDIR && rm -rf $BUILDDIR ; mkdir -p $BUILDDIR ; ./autogen.sh --prefix=$BUILDDIR --disable-bcl-opt --enable-nls=no && make get-monolite-latest && make -j $NUMPROC EXTERNAL_MCS="${PWD}/mcs/class/lib/monolite/gmcs.exe" && make install && echo "" && echo "    Done" && echo "")<br>> ><br>> <br>> Possibly a bit off-topic but fwiw I maintain and use Yocto for Embedded<br>> Linux with meta-mono layer. The recipes for building Mono are here,<br>> <br>> http://git.yoctoproject.org/cgit/cgit.cgi/meta-mono/tree/recipes-mono/mono?h=master<br>> <br>> Cheers,<br>> <br>> Alex<br>> _______________________________________________<br>> Mono-devel-list mailing list<br>> Mono-devel-list@lists.ximian.com<br>> http://lists.ximian.com/mailman/listinfo/mono-devel-list<br></div>                                      </div></body>
</html>