[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.