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

Re: About ROOT [Was: Re: ROOT as A replacement for gnuplot]



Hello

Quite frankly, it's not good enough.

So you will explaine this to kde developpers :)
They will switch to bksys/Scons. (we can not says that kde is a small project :).
Blender is already using it.


Reading further into the manual, I was glad to see that it actually had
and Autoconf-like feature for checking for availability of libraries,
headers, and so on.  And more importantly, it seemed that it actually
does this the right way.  That is, it doesn't merely check for the
existence of the library and/or header file - it actually runs the
compiler/linker to see if it can find the library/header, and whether it
can be used - just as Autoconf does.

yes but with scons + bksys it may be a good solution


The platform independence aspect seems to be dealt with via the conept
of environments, predefined by SCons.  I have no idea that works.   What
most systems does (and SCons seems to do), is to have some sort of
environment definition that has a one-to-one (sometimes many-to-one, or
one-to-many) mapping from target OS (as reported by `uname`).  In
general, that's a bad idea.  It's much better to test what the system is
actually like:  Is it 64bit? Is it big or little endian? Does the
compiler understand `-fPIC'? What kind of output does the compiler
proper produce - .o or .obj files? and so on.  The other approach fails
miserably if `unexpected' cases, like Linux on a 64bit little endian
machine, using the Intel C/C++ compiler rather than GCC, and so on.
In other words, it's much better (read: portable) to test things, rather
than rely on predefined environments.

I don't who how they deal with the different platform so I can not say.

The idea of using MD5 checksums to detect updated sources is nice, but I
doubt it has great merits over timestamps.

Except if you save a file without changes. the timestamps change but not the md5. So sometimes it makes a big difference.


Finally, and my most important hick-up, is that it's based on Python.
Not that I don't like Python (I haven't really used it, so I can't say),
it has more to do with the fact, that SCons introduces a non-standard
tool as a build requirement.

I know about this objection but if you want to compile something on a windows machine which choise do you have to use thoses POSIX, standards.

you have to install a cygwin system.

nowadays most of the distribution are python-inside.

and it is easier to install python on windows that cygwin.

So to summerise:  I think SCons has done some good things, and it's
definitely not the worst build system I've seen.   However, I think
using Python is a bad idea, and I think some of the decisions they made
with regards to platform independence are wrong.  Finally, the fact that
it's not standardised makes in very unattractive.

So maybe the scons + bksys system is quite young but in the futur I think it will become the famoust out of the box multiplatform build system or not... :)

yours,

Frédéric



Reply to: