[MonoDevelop] Autotools integration?

Alexandre Gomes alexmipego@hotmail.com
Sat, 11 Dec 2004 16:20:24 +0000


Hi all,

After all that was said I wish to add some considerations.
First of all I think that we must pick up one of the existing build 
systems quick, or build our own. But thats a real need, and we need it fast.
The problems I see, most exposed in Miguel de Icaza article - 
http://primates.ximian.com/~miguel/texts/md-build.html - is that a Mono 
build system must not be "closed" to Mono Managed world.
I took a look into MS solution and I see that Windows have some 
advantage over linux in this problem. The problem is that linux have too 
many ways of instaling applications and libraries. Some use pkg-config, 
other use other things similar, and some do not use none, configure just 
look into a default directory for some file.
The next problem that I see, specially compared to MS way, is that 
dependency hell in Linux is really HELL! In microsoft way of doing 
things we can deploy the librarys dll in our installation package, 
solving at start library version problems and/or installing it not done 
yet. It is rare to have to install any program as a dependency of another.
I'm not saying that Linux is bad or that this features should be fixed, 
I understand the good things of it but I'm saying the bad side of it.

Now, as a Linux newbie (1-2 years of use only) I can say what I think 
Linux, at least Mono, can do for helping more and more developers, 
packagers and people changing from MS to Linux.
At first we must make the new Mono Developers life easier. This way we 
show Linux power to those coming from Windows. This can be accouplished 
with simplething implemented in a new (or changed) build system.
A new Mono-Linux develop without good knowledge of C/C++ can use a C/C++ 
native Linux library. Think as we were talking about gtk-sharp 
developers. We just need to "bridge" native and managed world. But, then 
we find autotools in our path. The developer will have to know how to do 
and configure it to make his application compile. Will have to research 
for every step to check if an library is there, where it is, and how to 
get his configuration. Long way.
My suggestion is a kind of Configuration Repository where we can store 
simple "Check for gtkhtml" and include it in our build system. As 
developers add this simple things to the Repository the newbie ones will 
have his work done in less time. Plus we can solve bugs in checking for 
that speficic library in the future.

The next thing, really bad, is that we find that we need a library and 
sometimes we don't know were to search. Take for example installing Mono 
(we know where to get) but we have so many sources to compile and get...
My suggestion is that the new build system can automaticly pick needed 
libraries and download them. In some cases were an exact version is 
needed that would make software installation much easier. That process 
could be automated, for example, in FC using yum to get them, if no yum 
repo had it use wget.
In cases like mono there could be one script that wget's all files, 
extracts them, compile them in order and the system is ready to go.

Thanks for your time.