Ignore:
Timestamp:
09/26/19 18:49:01 (5 years ago)
Author:
dubos
Message:

devel/Python : now only dynamico.dev modules require link to DYNAMICO/XIOS shared objects

File:
1 edited

Legend:

Unmodified
Added
Removed
  • codes/icosagcm/devel/make_python

    r941 r977  
    1313    rm -rf *.o *.so build/ 
    1414} 
    15  
    16 #------------------ Default action , invoked by : './make_python' -------------------- 
    1715 
    1816function make_so() 
     
    3331} 
    3432 
    35  
    36 function cmd_() 
     33function check_python_modules() 
    3734{ 
    38     echo "XIOS_ROOTDIR : $XIOS_ROOTDIR" 
    3935    MISSING="" 
    40     for module in netCDF4 jinja2 mpi4py; do 
     36    for module in $*; do 
    4137        echo "import $module" 
    4238        python -c "import $module" || MISSING="$MISSING $module" 
     
    4945        exit 
    5046    fi 
     47} 
    5148 
    52     log mpicc -c -std=c99 -fPIC $PARMETIS_CFLAGS Python/src/partition.c -o obj/partition.o 
    53     make_so $XIOS_ROOTDIR/lib/libxios.a $LIBDIR/libxios.so "$NETCDF_LDFLAGS -lstdc++" 
    54     make_so $LIBDIR/libicosa.a $LIBDIR/libicosa.so "-L$LIBDIR -lxios $KERNELS_LDFLAGS" "physics_external_mod.o physics_mod.o timeloop_gcm_mod.o icosa_init_mod.o" obj/partition.o 
    55  
    56     # Cythonize Python modules 
    57     cd $DYNAMICO_ROOT/Python/src 
    58     NUMPY=$(python -c 'import numpy as np ; print np.get_include()') 
    59     CYTHONFLAGS="$SOFLAGS $LDFLAGS -L$LIBDIR -licosa $KERNELS_LDFLAGS" 
    60     LDSHARED="$LINK" CFLAGS="-fno-strict-aliasing -O2 -I$NUMPY" LDFLAGS="$CYTHONFLAGS" log python setup.py build_ext --inplace || exit 
    61  
    62     cp -fpr $DYNAMICO_ROOT/Python/dynamico $DYNAMICO_ROOT/lib 
    63     cp -fp *.so $DYNAMICO_ROOT/lib/dynamico/dev/ 
     49function check_dynamico_modules() 
     50{ 
    6451    cd $DYNAMICO_ROOT 
    65  
    66     for module in dev.cxios dev.unstructured meshes dyn time_step DCMIP; do 
     52    for module in $*; do 
    6753        echo "import dynamico.$module" 
    6854        LD_PRELOAD=$PYTHON_PRELOAD python -c "import dynamico.$module" 
    6955    done 
    7056} 
     57 
     58function cythonize() 
     59{ 
     60    EXTRA=$1 
     61    NUMPY=$(python -c 'import numpy as np ; print np.get_include()') 
     62    CYTHONFLAGS="$SOFLAGS $LDFLAGS -L$LIBDIR $KERNELS_LDFLAGS $EXTRA" 
     63    CC=mpicc LDSHARED="$LINK" CFLAGS="-fno-strict-aliasing -O2 -I$NUMPY $PARMETIS_CFLAGS" LDFLAGS="$CYTHONFLAGS" log python setup.py build_ext --inplace || exit 
     64    rm -rf build *.c # temp files 
     65} 
     66 
     67#------------------ Default action , invoked by : './make_python' -------------------- 
     68 
     69function make_user() 
     70{ 
     71    check_python_modules netCDF4 mpi4py 
     72    # Cythonize Python modules 
     73    cd $DYNAMICO_ROOT/Python/dynamico 
     74    cythonize 
     75    rm -rf build *.c # temp files 
     76    cp -fpr $DYNAMICO_ROOT/Python/dynamico $DYNAMICO_ROOT/lib 
     77    check_dynamico_modules partition meshes dyn time_step DCMIP 
     78} 
     79 
     80function make_dev() 
     81{ 
     82    check_python_modules jinja2 
     83    echo "XIOS_ROOTDIR : $XIOS_ROOTDIR" 
     84 
     85    make_so $XIOS_ROOTDIR/lib/libxios.a $LIBDIR/libxios.so "$NETCDF_LDFLAGS -lstdc++" 
     86    make_so $LIBDIR/libicosa.a $LIBDIR/libicosa.so "-L$LIBDIR -lxios $KERNELS_LDFLAGS" "physics_external_mod.o physics_mod.o timeloop_gcm_mod.o icosa_init_mod.o" 
     87 
     88    cd $DYNAMICO_ROOT/Python/dev 
     89    cythonize "-licosa" 
     90    cp -fpr $DYNAMICO_ROOT/Python/dev $DYNAMICO_ROOT/lib/dynamico/ 
     91    check_dynamico_modules dev.cxios dev.unstructured 
     92} 
     93 
     94function cmd_() 
     95{ 
     96    make_user 
     97} 
     98 
     99function cmd_dev() 
     100{ 
     101    make_user 
     102    make_dev 
     103} 
     104 
    71105 
    72106#------------------------- script starts here ------------------------ 
Note: See TracChangeset for help on using the changeset viewer.