[Numpy-discussion] preferred numpy build system

David Cournapeau cournape at gmail.com
Sun Feb 8 19:58:55 EST 2009


On Mon, Feb 9, 2009 at 4:39 AM, Ondrej Certik <ondrej at certik.cz> wrote:

>
> Yes, I am investigating cmake, it's pretty cool. I wrote some macros
> for cython etc. What I like about cmake is that it is cross platform
> and it just produces makefiles on linux, or visual studio files (or
> whatever) on windows.  When I get more experience with it, I'll post
> here.

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.

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

David



More information about the NumPy-Discussion mailing list