[Numpy-discussion] preferred numpy build system

Ondrej Certik ondrej at certik.cz
Sun Feb 8 22:33:34 EST 2009


> That's exactly what I don't like about cmake  - it means you can't
> produce accurate builds (you need to rerun cmake everytime you change
> the configuration or dependencies, whereas this is automatic with
> scons/waf). It also have (used to have) very poor documentation unless
> you buy the book - but it looks like this is changing.

You can always rerun cmake if you want (and make it automatic). Imho
that's not a problem. But maybe it is done in a better way with scons.

>
>> What I don't like on cmake is that it uses it's own language, instead
>> of python, on the other hand, so far everything seems to just work.
>> Contrary to numscons, where it looks almost like a new python program
>> just to build numpy.
>
> Again, numscons is just a library on top of scons to support things we
> need in numpy, it is not really a new program - it is a separate
> package to avoid adding experimental code to numpy itself. Numscons is
> ~ 3000 LOC, of which 1000 is for the core, 1000 for
> blas/lapack/fortran support, and 1000 for tools which are not properly
> supported in scons (recent MSVC, python extensions).
>
> I think you would have almost as much work with cmake if not more -
> when I started numscons, cmake did not have fortran support (it now
> has, although I don't know how far - it does not seem to handle mixed
> fortran/C, for example).
>
> If you don't mind fast changing software, you should look at waf: it
> is extremely fast, based on python. It also handles a lot of
> distribution issues already (tarball generation, compiler selection,
> etc...) which scons does not.


Yes, waf is pretty cool, even though the last time I looked at it, it
wasn't able to compile my project, which was larger than just couple
files. But it seems it's development is progressing fast.

As to the other things, one nice thing about cmake is that it is
production ready right now, it is well tested (kde4) and it is in
distributions (e.g. Debian). Everything else needs nontrivial
adjustments, or is not as well tested (yet).

Ondrej



More information about the NumPy-Discussion mailing list