[Mono-list] Mono Tools and Utilities

Jonathan Pryor jonpryor@vt.edu
Sun, 12 Oct 2003 10:59:47 -0400


This message is part announcement, and part discussion request.

Announcement:
------------

The mono-tools CVS repository is now buildable, and it's fairly easy to
create RPMs for it, too!  (RPMs can be built with "cvs co mono-tools &&
cd mono-tools && ./autogen.sh && make dist-rpm".)

At present, the only software built and packaged is Type Reflector.


History:
-------

Mono-tools was originally created to keep the build order acyclic.

Long ago (mono-0.18), type-reflector was in mcs/tools.  The reason it
was removed was because of build order: type-reflector would attempt to
build against Gtk# and System.Windows.Forms.

The reason this is a problem is because if you're doing a fresh build,
gtk-sharp won't be built until after mcs is built, yet type-reflector
was part of mcs.  So, to build a fully-functional type-reflector, you'd
have to build mcs twice (once to bootstrap, and once after building
gtk-sharp to get "full functionality").

Thus, it was wholly reasonable to move type-reflector.  It was moved to
mono-tools, but mono-tools wasn't buildable or packagable until
yesterday.


Discussion:
----------

There are other programs within mcs/tools that also make use of Gtk#. 
These include:

	SqlSharp (which uses Gtk# in mcs/tools/SqlSharp/gui/gtk-sharp)
	security/certview/

I would propose moving these into mono-tools, so that the CVS build
order can remain acyclic.

However, these tools currently use the mcs Makefile build system
(located in mcs/build).

So I would also propose the following:

	1.  Move mcs/build into a new CVS repository, "build"
	2.  Use the CVS aliasing functionality [1] to insert the "build"
	    CVS repository into the "mcs" and "mono-tools" repositories.
	    This would allow the build system to be located in one
	    location, and all users would receive updates
	    simultaneously.

[1] http://www.cvshome.org/docs/manual/cvs-1.11.7/cvs_18.html#SEC158

Questions:
---------

1.  Should we do this?  (Move SqlSharp & certview into mono-tools, move
the mcs/build scripts into a new CVS repository.)

2.  Is there anything else that should be moved/aliased into mono-tools?

The debugger is currently aliased into mono-tools, but is neither built
nor packaged (as I've had little success with it yet, but have hopes for
the future).

Thanks
 - Jon