source: codes/icosagcm/devel/make_python @ 616

Last change on this file since 616 was 616, checked in by dubos, 6 years ago

devel/unstructured : add -fPIC, minor improvements

  • Property svn:executable set to *
File size: 1.9 KB
Line 
1#!/bin/bash
2
3function log()
4{
5    echo $*
6    $*
7}
8
9function full_dir()
10{
11    (cd -P $1 ; pwd)
12}
13
14#--------------- Generate kernels, invoked by : './make_python kernels' ---------------
15
16function update()
17{
18 diff $2 $1 || log cp -pr $1 $2
19}
20
21function cmd_kernels() # this function is invoked by : './make_python kernels'
22{
23    cd $KERNELS
24    ./codegen hexagonal unstructured
25
26    cd $KERNELS/src/hexagonal
27    for x in *.k90 ; do
28        update "$x" "$DYNAMICO_ROOT/src/kernels_hex/$x"
29    done
30
31    cd $KERNELS/src/unstructured
32    for x in *.k90 ; do
33        update "$x" "$DYNAMICO_ROOT/src/kernels_unst/$x"
34    done
35
36# make sure to recompile dynamics
37    cd $DYNAMICO_ROOT
38    touch src/dynamics/*.F90 src/diagnostics/*.F90 src/transport/*.F90 src/unstructured/*.F90}
39}
40
41#------------------ Default action , invoked by : './make_python' --------------------
42
43function make_so()
44{
45    ARLIB=$1
46    SOLIB=$2
47    ls -l $ARLIB
48    ls -l $SOLIB
49    if [[ $ARLIB -nt $SOLIB ]]; then
50        echo $ARLIB is newer than $SOLIB
51        log $LINK $SOFLAGS $WHOLE_ARCHIVE $ARLIB $NO_WHOLE_ARCHIVE $3 -o $SOLIB
52        $LDD $SOLIB
53    fi
54}
55
56
57function cmd_()
58{
59    make_so $XIOS_ROOTDIR/lib/libxios.a $LIBDIR/libxios.so "$NETCDF_LDFLAGS"
60    make_so $LIBDIR/libicosa.a $LIBDIR/libicosa.so "-L$LIBDIR -lxios"
61
62    # Cythonize Python modules
63    cd $DYNAMICO_ROOT/Python/src
64    CYTHONFLAGS="$SOFLAGS $LDFLAGS -L$LIBDIR -licosa"
65    LDSHARED="$LINK" CFLAGS="-fno-strict-aliasing -O2" LDFLAGS="$CYTHONFLAGS" log python setup.py build_ext --inplace
66    cp -fp *.so $DYNAMICO_ROOT/Python/dynamico
67    cd ..
68#    python -c 'import dynamico ; help(dynamico)'
69}
70
71#------------------------- script starts here ------------------------
72
73DYNAMICO_ROOT=$PWD
74LIBDIR=$DYNAMICO_ROOT/lib
75KERNELS=$DYNAMICO_ROOT/Python
76
77. arch.env
78. arch.path
79
80echo "Selected architecture : $CURRENT_ARCH"
81
82if [[ "$CURRENT_ARCH" == "" ]] ; then echo "Current architecture undefined or unsupported" ; exit ; fi
83
84. Python/env/${CURRENT_ARCH}.env
85
86cmd_$1
Note: See TracBrowser for help on using the repository browser.