[Numpy-discussion] [ANN] garnumpy 0.1, a gar system to build a self contained scipy environment (unix only)

David Cournapeau david@ar.media.kyoto-u.ac...
Thu Mar 1 23:02:30 CST 2007


    I am not sure whether this is really useful to other, but anyway: I 
release the first version of garnumpy, a system derived from Nick 
Moffit's gar system, to build a set of packages from sources.
    The idea is to build numpy + scipy automatically with its 
dependencies, like a complete LAPACK, umfpack, etc... Right now, support 
for ATLAS (3.7.28), NETLIB BLAS/LAPACK only is there. It can also build 
a FFT library (fftw3 supported for now), and a UMFPACK system.
    This can be useful:
        - if you are on distributions without a full blas/lapack or 
umfpack packaged on your system
        - with a CPU not well supported by last release of ATLAS 
(Core2Duo, which got a lot of improvements in the 3.7 series)
        - if you do not want (or like me cannot) install numpy system-wide

    It has been successfully used on Fedora Core and Ubuntu with gcc+g77 
or gcc+gfortran (by successfully, I mean all scipy tests passed). I 
don't really know if this is easier to use than building scipy/numpy by 
hand (it is for me, at least:) ).

    Here is the Readme:

What is garnumpy ?

    Garnumpy is a system derived from the GAR system by Nick Moffitt to 
    a self contained scipy environment. It supports optional compilation 
of most scipy
    dependencies, including fftw3, ATLAS or NETLIB Blas and Lapack, UMFPACK.

What for ?

    If you want to install a scipy environment, with special libraries, 
or libraries
    not packaged on your OS (full lapack using ATLAS, etc...).

    If you want a self contained directory where everything is 
installed, for easy
    removing later (everything in in one directory)

    As it installs everything in a special directory, you can use 
garnumpy without special
    rights (eg non root), and without the risk of destroying anything on 
your system.

How to use ?

    Short story:
        cd platform/scipy; make install
    will install numpy, scipy and all the dependencies (by default, it will
    build fftw3, and NETLIB BLAS/LAPACK), if you have a "standard" GNU 
    Then, in a shell:
        source startgarnumpy.sh

    will set the necessary env variables to use scipy in the current shell.

    Longer story:

    before the above, you should:
        - set main_prefix and GARCHIVEROOT in gar.conf.mk to some values
        - make garchive will download all the sources in one step (useful if
          you plan on trying different build options)
        - if you change main_prefix, you should change accordingly 

    Other variable to adjust in gar.conf.mk:
        - BLASLAPACK: set to the wanted BLAS/LAPACK set. By default, netlib,
          but atlas (for using ATLAS BLAS/LAPACK) and system (using already
          installed BLAS/LAPACK) are also supported.
        - SCIPYSANDPKG: a list of packages in scipy sandbox to install
        - TESTNELIB: set to 1 to test the compiled NETLIB LAPACK library
        - SOURCEFORGEDL: set to a proper sourceforge mirror (redirection
          often fail).

    Variable to adjust in gar.cc.mk (everything related to the build tools,
    mostly compiler, compiler options and link options should be set here)
        - CC, F77 and CXX: C, Fortran and C++ compilers

    You can use the two following working templates:
        - gar.cc.mk.g77: GNU build system with g77 for F77 code.
        - gar.cc.mk.gfortran: GNU build system with gfortran for all 
Fortran code.

Supported softwares:
    - numpy and scipy (in platform)
    - ipython (in tools)
    - matplolib (in gui)

    UBUNTU (6.10):
        You can build a fully functional scipy + matplotlib by 
installing the following:

        sudo apt-get install python python-dev gcc g77 python-gtk2-dev 
patch swig g++

    Fedora Core (6):
        You can build a fully functional numpy + scipy by installing the 

        sudo yum install python python-devel gcc compat-gcc-34-g77 
gcc-c++ swig



More information about the Numpy-discussion mailing list