[Mono-dev] Compiling Mono with Visual Studio and .pdb files

Jean-Michel.Perraud at csiro.au Jean-Michel.Perraud at csiro.au
Fri May 11 07:47:42 UTC 2012

Thank you for this info Miguel

Making progress with msvc, with a lot of second guessing, but I cannot seem to fully get out of the circular dependencies easily. After fixing a few things, there seems to be a two to three stage build process ('basic', 'build' and, well, the huge rest). I can build the 'basic' stuff with references being the MS.NET libraries it defaults to, but the 'build' phase fails both with dependencies on the basic system or the MS.NET libraries (missing implementations or ambiguous references). Well done for you to sort it all out.

It sounds like your approach is similar to that in the 'msvc' folder and related makefile targets, but I probably miss many details. I found that I could run the make targets generating csproj files only after a successful 'make' on cygwin, using anciliary files (.response) from the call to 'make'. I wonder how similar to what you describe this is. My question may be naive, but what do you mean by compiler constants, build order and files used? Are you post-processing the captured output redirected to a file?

I never really had to do much with makefiles, and with a codebase the size of Mono, this is a steep learning curve.


From: Miguel Mudge [mailto:michael.mudge at welchallyn.com]
Sent: Tuesday, 8 May 2012 12:30 AM
To: Perraud, Jean-Michel (CLW, Black Mountain)
Cc: mono-devel-list at lists.ximian.com
Subject: Re: [Mono-dev] Compiling Mono with Visual Studio and .pdb files

We've been building the 2.10.2 Mono framework libraries in Visual Studio.  We performed a build on Linux, copied the compiler constants, build order and files used, and use this information to create the Visual Studio project - we did not start from Mono's msvc.  It was a very manual process, but I am pleased with the output.

We don't compile all of the libraries since our embedded device doesn't have the space.  Most of the difficulty is in the roots anyways - for example, we have several System.dll projects, which are incrementally more dependent, in order to solve circular dependency problems.  Picture attached:

It seems like the only way to reliably "copy" the build process into MSVC is to actually run the mcs make.  You might be able to hack it a bit to mock a build, grab the compile flags/files and then generate msvc files from that.

Michael "Kipp" Mudge | Welch Allyn | Lead Software Engineer
315-554-4057 | michael.mudge at welchallyn.com<mailto:michael.mudge at welchallyn.com>

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

More information about the Mono-devel-list mailing list