[Mono-dev] Update on Build System

Miguel de Icaza miguel at xamarin.com
Sat May 24 02:58:59 UTC 2014

Hey guys,

#1 Makefile Build System Update

So the clean staged setup has been added to mono/master and in practice
most of you will never notice an improvement.

Those working on libraries that had cross dependencies will enjoy reliable
and working builds.   If you make a change in say System, and you type
"make" in mcs/class/System, it will make sure that all the dependencies are
properly compiled and the result will be stable.

#2 MSBuild setup

Based on the work above, I have updated the MSBuild setup, and it is now
possible to build most of the managed code with xbuild.   This means that
you can use this from Visual Studio or Xamarin Studio.

Since xbuild does not support passing /keyfile to the C# compiler, I still
have to fix about 6-7 assemblies that use -keyfile to be signed.

Once that happens, you should be able to build all of Mono's managed code

xbuild msvc/scripts/net_4_5.sln

Currently I disabled generating project files for profiles other than 4.5,
just because it is easier to debug this way.

I am also a bit sad that our xbuild does not have any support for parallel
builds, it would have been a neat hack to make the xbuild-based build
system parallel and get this for free.

#3 Future Parallel Work - Makefiles

I tried to implement parallel builds for mcs/class/Facades, and while it
works, it regressed some of the other standard targets that we have (the
other -local).   I will have to revisit this later.

But the principle behind the patch that enabled this could be used for
mcs/class and parallelize all the builds as well.   We only need to (a)
generate the assembly dependencies [1] and (b) we need to figure out the
-local target breakage (same stuff I broke for Facades).

[1]  (which we have from the xbuild work above)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ximian.com/pipermail/mono-devel-list/attachments/20140523/a1d2cea0/attachment.html>

More information about the Mono-devel-list mailing list