[Mono-dev] Getting started on mono sources

Edward Ned Harvey (mono) edward.harvey.mono at clevertrove.com
Tue Feb 18 01:20:01 UTC 2014


> From: Jean-Michel.Perraud at csiro.au [mailto:Jean-Michel.Perraud at csiro.au]
> 
> At least a couple of people including myself have an interest in
> recommended dev env to work on Mono itself (
> http://lists.ximian.com/pipermail/mono-devel-list/2013-July/040638.html). A
> Howto on recommended setup for Mono contributions would save a fair bit
> of time and hassle for contributors, but I have not heard of such a document.

I found the .sln files and msbuild instructions to be nonfunctional on a modern system...  But I managed to find a workable solution, thanks to Marek, who said:

> I am using Xamarin Studio (it should work with MonoDevelop as well) to
> debug and write BCL source code.
> 
> You compile your own mono then use Project -> Set Active runtime to point
> to your locally build sources then untick Debug project code only in
> Preferences and you are set to go.

The above information proved vital, but I still encountered plenty of difficulty, but I am nothing if not diligent about documenting things as I go along.  So here is something more closely resembling a step-by-step:

On OSX Mavericks, (Goes without saying)  Requires XCode, and the command line tools.  Which no longer include (since 2013) autoconf, automake, libtool.  So used homebrew to install autoconf, automake, libtool.
http://brew.sh/ 
brew install autoconf
brew install automake
brew install libtool

Installed the latest MonoDevelop (Xamarin Studio) and latest mono.

Followed instructions to build from Git.
https://github.com/mono/mono 
Note:  The instructions only say to "make" and don't say to "make install" afterward (which seems to be an oversight).  Furthermore, the first time I ran "make" it ended with an error message, DoesNotExist referenced by TOC doesn't exist.  Abort.  But then, to my surprise, I simply ran "make && make install" and it worked fine the second time around.  Weird.  Also - before anybody wastes time trying this for the first time - I did not get a functional result on the "Master" branch of the git repo.  I used SourceTree to checkout the 3.2.6 Tag.  (I'm sure you could use any git client you like, including command line.)

Anyway, it all took 2G of disk space and a few hours to checkout, configure, build, but after mono finished building...

Inside Xamarin Studio, create some dumb new project.  By default only a single runtime registered so the Project / Active Runtime menu item doesn't appear.  I had to go to Xamarin Studio / Preferences / .NET Runtimes / Add.  Add the newly built runtime environment.  The system thinks a while (beachball) and then the Project / Active Runtime menu becomes available, to select my newly compiled runtime.

Go to Xamarin Studio / Preferences /  Debugger.  And un-check the checkbox:
[_]  Debug project code only; do not step into framework code
 
And now for example, I'm able to write an app with:
	RSACryptoServiceProvider myrsa = new RSACryptoServiceProvider (3072);
	myrsa.ExportParameters (includePrivateParameters: false);

And I'm able to Start Debugging.  And step into the RSA code to see what it's doing internally.  Hooray!   :-)



More information about the Mono-devel-list mailing list