[Mono-dev] Compiling mono on windows for developing (not running)

Alex J Lennon ajlennon at dynamicdevices.co.uk
Wed May 14 08:21:25 UTC 2014

On 13/05/2014 23:26, Martin Thwaites wrote:
> Hi Alex,
> I've been giving your tutorial ago, and I have some things that may be
> good to add...
> firstly, I'm building from git, and I checked it out using the visual
> studio clone.  I think this lead to a line endings error, so you need
> to run the script in a way that uses them properly.  I found that if
> you run it with "bash -x -o igncr autogen.sh --prefix="c:\monoinstall"
> --with-preview=yes" it seems to do the trick.

Hi Martin, I spotted your comment on there :) I'm glad you found it
useful and many thanks for the feedback. I will make sure to get that
incorporated shortly. You also reminded me to add that the path root
should not contain spaces or the build will fail, and I believe that
building as a user with a space in the name may also cause problems.

I have also taken Bryan's comment in an earlier thread on-board, on
automating the Cygwin package pull-down. I will aim to put a noddy
script together to do this when I get a chance.

> I've now come across another error that you may be able to help with:
> === configuring in eglib
> (/cygdrive/c/Users/Martin/Source/Repos/mono/eglib)
> configure: WARNING: no configuration information is in eglib
> === configuring in libgc
> (/cygdrive/c/Users/Martin/Source/Repos/mono/libgc)
> configure: running /bin/sh ./configure --disable-option-checking
> '--prefix=/usr/local'  '--host=i686-pc-mingw32'
> 'host_alias=i686-pc-mingw32' 'CPPFLAGS_FOR_EGLIB=' 'CFLAGS_FOR_EGLIB='
> '--disable-embed-check' '--with-libgc-threads=win32'
> '--enable-win32-dllmain=yes' '--enable-parallel-mark'
> -DFD_SETSIZE=1024' 'CFLAGS_FOR_LIBGC= -g -mno-tls-direct-seg-refs
> -DGC_BUILD -DGC_NOT_DLL' --cache-file=/dev/null --srcdir=.
> /bin/sh: ./configure: No such file or directory
> configure: error: ./configure failed for libgc

I don't have a good answer for you here I am afraid. However the fact
that you're seeing problems in eglib and libgc relating to configuration
is interesting as I have had ongoing problems here too when trying to
cross-compile for ARM targets. I mentioned some of this in an earlier
thread - http://bit.ly/1gCDDXv

To cut a long story short, when we're cross-compiling with
Yocto/OpenEmbedded we may have three different sets of relevant Mono
tools (at least). There's whatever the user has installed on their host
system for their own use. Then there's a 'native' Mono which is built as
a pre-cursor to building Mono to run on the configured target i.e. two
step build as per http://bit.ly/1v3bqCs

What I've been seeing is that the standard autotools templating results
in incorrect dependencies on the host Mono installation rather that the
native/target Mono.

This can cause build failures depending on which particular version of
Mono is actually installed on the host.

I worked through this with a guy who was trying to build on Linux Mint
with Mono installed, and which seemed to bring it out into the open for us.

The solution was for me to modify the acinclude.m4 templates before I do
the configuration to make sure they are specifying the correct prefixed
libtool rather than defaulting to whatever is about on the build machine -

 ${S}/autogen.sh --verbose || bbnote "${PN} failed to autogen.sh"
    sed -e "s|slash\}libtool|slash\}${HOST_SYS}-libtool|" -i acinclude.m4
    sed -e "s|slash\}libtool|slash\}../${HOST_SYS}-libtool|" -i
    sed -e "s|slash\}libtool|slash\}../${HOST_SYS}-libtool|" -i
    sed -e "s|r/libtool|r/${HOST_SYS}-libtool|" -i runtime/mono-wrapper.in
    sed -e "s|r/libtool|r/${HOST_SYS}-libtool|" -i


This may or may not be related to what you are seeing...

Best Regards,


> I'm now at a loss.
> As I've stated before, what I'm looking to do is be able to develop
> mono (not develop with) in Visual Studio.  Maybe the stuff the Miguel
> is doing will help, but I just had a bit of time so thought I'd give
> your stuff ago.
> Thanks,
> Martin
> On 5 May 2014 03:52, Alex J Lennon <ajlennon at dynamicdevices.co.uk
> <mailto:ajlennon at dynamicdevices.co.uk>> wrote:
>     On 05/05/2014 03:44, Konaju Games (Dev) wrote:
>     > With Cygwin, there is one change to make to etc/fstab before
>     starting
>     > a build.  You need to add noacl to the cygdrive mount.  Without this
>     > change, any files created by a Win32 process outside of Cygwin will
>     > result in Cygwin having no permissions to do anything with the
>     files.
>     >
>     http://georgik.sinusgear.com/2012/07/14/how-to-fix-incorrect-cygwin-permission-inwindows-7/
>     >
>     Thanks, I'll have a look and see if that addresses the issue I was
>     seeing with having /usr/local mounting during the build.
>     Regards, Alex
>     _______________________________________________
>     Mono-devel-list mailing list
>     Mono-devel-list at lists.ximian.com
>     <mailto:Mono-devel-list at lists.ximian.com>
>     http://lists.ximian.com/mailman/listinfo/mono-devel-list

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ximian.com/pipermail/mono-devel-list/attachments/20140514/fbcc7b11/attachment-0001.html>

More information about the Mono-devel-list mailing list