[MonoDevelop] Autotools integration?
Todd Berman
tberman@off.net
Tue, 14 Dec 2004 21:47:19 -0800
On Tue, 2004-12-14 at 21:13 -0500, Miguel de Icaza wrote:
> Hello Alexandre,
>
> I agree with your sense of urgency and your sense that something
> must be done about it.
>
> My personal opinion is that building on top of the auto-tools means
> that you are building on a shaky foundation, and a foundation on which
> you will end up writing tools that try to parse (and fail) the language
> used by automake/autoconf which are not really going to be parseable,
> they will always break on some condition.
>
> Leaving alone the editing capabilities, the other issue is that
> autotools are all very fragile: they need specific versions to work with
> each other, and they often break. So all in all, I think that going
> this path is a path of failure.
>
> My proposal to depend exclusively on pkg-config means that libraries
> that are mature enough will have to provide it and its is both parseable
> and detectable. The autotools are designed to help you write portable
> code that will run on BSD 4.2 on a VAX or your most modern Linux distro.
>
> I think we can safely say that Mono wont run on anything primitive,
> and we might as well just ignore anything older.
>
> Now, the important bit is to get the work started and grow it
> organically. After seeing so many attempts at coming up with an all
> encompassing solution for the last six years, I do not think we will be
> able to foresee everything that is needed in advance.
>
> Hence organically grown, pkg-config based, and the configure and
> Makefiles generated from our internal XML "Solution" format is the right
> path to go.
>
> Miguel.
There is already the beginnings of an implementation of this in
MonoDevelop. However, to not conflict with existing makefiles, the
makefile created is named Makefile.SolutionName and is easily runnable
via a make.sh file created in your toplevel directory.
There are many bits and pieces missing with this method, and a lot of
work needs to be done in order to make it not suck. Also, MonoDevelop
does this in a somewhat poor way, that would basically require
reimplementation for any project that isnt C#. There is most likely a
better way to handle all of this.
dist/distcheck actions are not supported, and multi-startup solutions
are not supported.
So basically, this code exists, and is relatively usable, at least as a
starting point for a more robust solution. Any/All patches to this
functionality would be appreciated, reviewed, and most likely accepted.
--Todd