Re: build systems



On Nov 10, 2007 3:42 PM, Emmanuele Bassi <ebassi gmail com> wrote:
> and adding the interpreter for the language du jour is not going to
> magically remove those dependencies. in fact, it's going to increase
> them because:
>
>   1. you will need the interpreter for that language

Seems like python is more common on peoples computers than autotools:
http://people.debian.org/~igloo/popcon-graphs/index.php?packages=autoconf+automake+libtool+python&show_installed=on&want_legend=on&from_date=&to_date=&hlght_date=&date_fmt=%25Y-%25m&beenhere=1

So not really a dependency.. more like "Die Mauer im Kopf"

>   2. you will need the modules upon which the new build system is
>      going to depend on

(as this thread started as a question about waf i'll continue there)

In the case of waf it only depends on core python, no modules. And as
for gnome customizations they are already distributed with waf, in one
single file, and as the gnome modules improve, waf gets updated.

>   3. you will need the new build system

Well, in the case of waf, it's one single file that takes perhaps
60kB, and is distributed with the project. So nothing to install.

> which means introducing a series of points of failure when trying to
> build or cross-compile GNOME.

Not really. The correct version of the build system is distributed
with the project so it's actually less points of failure, and as for
cross-compiling that's something waf handles very nice. In the XMMS2
project we crosscompile both for Linux ARM and Wintendo with no effort
at all.

http://buildbot.xmms2.xmms.se/

> a whole slew of dependencies and the fact that building for other
> platforms is now made more difficult is not what I would call a nice
> trade-off for being able to write an installer in python (for instance).

"a whole slew" = 1 (python)

CC=.. LD=.. CXX=.. ./waf configure && ./waf build && ./waf install =
pretty straight forward crosscompiling don't you think?

> sure. why not just move the bits on the disk using a magnet? the head of
> a drive is already doing it, we can do it too.

Sounds boring. Much better to invent a satelite that drops
SMS-messages from space, and you have to run around and catch them
with your phone! Or perhaps drill for broadband! That sure is fun too,
no seriously, I don't get what you mean by this?

> autotools are hard, we get it; it's not because autotools are some
> byzantine system maintained by 15th century inquisitors who delight
> themselves in torturing developers: it's because the problem space is
> complex, and portability makes it incredibly hard. if ever Scons, waf,
> ants, whatever reach the same feature set and portability of autotools
> they would become exactly like the autotools.

Finally a point I agree on. You are right, the process of building
software is a complex task. There are a lot of things to be handled,
and it's a process that ties up the developer while he/she waits for
the result. And not to mention the requirements from the package
maintainers from diffrent parts of the community. It sure is a complex
task, and it has to produce correct output and do it FAST!

As for portability, I still don't get it. python runs everywhere,
SCons and waf both run everywhere I've tried them. iirc you need
cygwin on win32 to use autotools, while it's enough to use the regular
cmd.exe with waf and SCons (less dependencies!! heh). With the XMMS2
project we use waf on win32, osx, bsd, linux, solaris without
problems, and without cruft.

> autotools are like democracy: they are not at all perfect, it's just
> that there's nothing that works better.

Too bad that democracy is not secularized. :(

-- 
Daniel Svensson, <dsvensson gmail com>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]