[Numpy-discussion] scipy.scons branch: building numpy and scipy with scons

David Cournapeau david at ar.media.kyoto-u.ac.jp
Tue Dec 4 06:21:39 EST 2007


Hi,

    I've just reached a first usable scipy.scons branch, so that scipy 
can be built entirely with scons (assuming you build numpy with scons 
too). You can get it from 
http://svn.scipy.org/svn/scipy/branches/scipy.scons. To build it, you 
just need to use numpy.scons branch instead of the trunk, and use 
setupscons.py instead of setup.py. Again, I would be happy to hear about 
failures, success (please report a ticket in this case), etc...

Some of the most interesting things I can think of which work with scons:
    - you can control fortran and C flags from the command line: CFLAGS 
and FFLAGS won't override necessary flags, only optimization flags, so 
you can easily play with warning, optimization flags. For example:

CFLAGS='-W -Wall -Wextra -DDEBUG' FFLAGS='-DDEBUG -W -Wall -Wextra' 
python setupscons build

for debugging will work. No need to care about -fPIC and co, all this is 
handled automatically.
    - dependencies are handled correctly thanks to scons: for example, 
if you change a library (e.g. by using MKL=None to disable mkl), only 
link step will be redone.

platforms known to work
-----------------------

    - linux with gcc/g77 or gcc/gfortran (both atlas and mkl 9 were tested).
    - linux with intel compilers (intel and gnu compilers can also be 
mixed, AFAIK).
    - solaris with sun compilers with sunperf, only tested on indiana.

Notable non working things:
---------------------------
 
    - using netlib BLAS and LAPACK is not supported (only optimized ones 
are available: sunperf, atlas, mkl, and vecLib/Accelerate).
    - parallel build does NOT work (AFAICS, this is because f2py which 
do some things which are not thread-safe, but I have not yet found the 
exact problem).
    - I have not yet implemented umfpack checker, and as such umfpack 
cannot be built yet
    - I have not yet tweaked fortran compiler configurations for 
optimizations except for gnu compilers
    - c++ compilers configurations are not handled either.

cheers,

David



More information about the NumPy-Discussion mailing list