Salome HOME
Implementation of support of 64bit
[tools/install.git] / config_files / Numeric-23.7.sh
1 #!/bin/sh
2
3 check_version(){
4 ver=`python -c 'import Numeric; print Numeric.__version__' 2>/dev/null`
5 if [ "$ver" == "23.7" ]; then
6    return 0
7 fi
8 return 1
9 }
10
11 print_env(){
12 cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
13 #$DELIM ${PRODUCT_TYPE} $DELIM
14 export PYTHONPATH=\${INSTALL_ROOT}/${PRODUCT}/lib/python\${PYTHON_VERSION}/site-packages/Numeric:\${PYTHONPATH}
15 ##
16 EOF
17 (test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
18 make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
19 }
20
21 # looks for the native product and collects it's environment (used by make_env())
22 try_native(){
23 numpath=`python -c "import Numeric; print Numeric.__file__" 2>/dev/null`
24 if [ -n "${numpath}" ] ; then
25     numpath=`dirname ${numpath}`
26     ver=`python -c 'import Numeric; print Numeric.__version__' 2>/dev/null | awk -F. '{v=0;for(i=1;i<=NF;i++)v=v*100+$i;print v}'`
27     if [ $ver -ge 2307 ] ; then
28         tmp="${numpath} ${numpath} \${PYTHONPATH} ${PYTHONPATH}";  
29         pythonpath=`sort_path ${tmp}`
30         cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
31 #$DELIM ${PRODUCT_TYPE} $DELIM
32 export PYTHONPATH=${pythonpath}
33 ##
34 EOF
35         make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
36         if [ $ver -eq 2307 ] ; then
37             return 0
38         else
39             return 2
40         fi
41     fi
42 fi
43 return 1
44 }
45
46 try_preinstalled(){
47 try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
48 return $?
49 }
50
51 install_source()
52 {
53 make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
54 source ${INSTALL_WORK}/$SHRC
55
56 makedir ${PRODUCT_DIR}
57
58 check_jb tar xfz ${SOURCE_DIR}/Numeric-23.7.tar.gz -C ${INSTALL_WORK}
59 cd ${PRODUCT_WORK}
60   if test `uname -m` = "x86_64" ; then
61 export CFLAGS=-m64
62 export CXXFLAGS=-m64
63   fi
64 # check existence of lapack, f77blas, cblas, atlas, g2c libraries
65 check_lib_version liblapack.so  $LD_LIBRARY_PATH:/usr/lib
66 lapack_nf=$?
67 check_lib_version libf77blas.so $LD_LIBRARY_PATH:/usr/lib
68 f77blas_nf=$?
69 check_lib_version libcblas.so   $LD_LIBRARY_PATH:/usr/lib
70 cblas_nf=$?
71 check_lib_version libatlas.so   $LD_LIBRARY_PATH:/usr/lib
72 atlas_nf=$?
73 check_lib_version libg2c.so     $LD_LIBRARY_PATH:/usr/lib
74 g2c_nf=$?
75 let nfound=$lapack_nf+$f77blas_nf+$cblas_nf+$atlas_nf+$g2c_nf
76 # modify build procedure according to the libraries found
77 if [ $nfound -gt 0 ] ; then
78     cp setup.py setup.py.orig
79     if [ "$lapack_nf" -eq "1" ] ; then
80         sed -e "s%\(^libraries_list = \[\)\('lapack', \)\(.*\)$%\1\3%g" setup.py > _setup.py
81         mv _setup.py setup.py
82     fi
83     if [ "$f77blas_nf" -eq "1" ] ; then 
84         sed -e "s%\(^libraries_list = \[.*\)\('f77blas', \)\(.*\)$%\1\3%g" setup.py > _setup.py
85         mv _setup.py setup.py
86     fi
87     if [ "$cblas_nf" -eq "1" ] ; then
88         sed -e "s%\(^libraries_list = \[.*\)\('cblas', \)\(.*\)$%\1\3%g" setup.py > _setup.py
89         mv _setup.py setup.py
90     fi
91     if [ "$atlas_nf" -eq "1" ] ; then
92         sed -e "s%\(^libraries_list = \[.*\)\('atlas', \)\(.*\)$%\1\3%g" setup.py > _setup.py
93         mv _setup.py setup.py
94     fi
95     if [ "$g2c_nf" -eq "1" ] ; then
96         sed -e "s%\(^libraries_list = \[.*\)\('g2c'\)\(.*\)$%\1\3%g" setup.py > _setup.py
97         mv _setup.py setup.py
98     fi
99     sed -e "s%^use_dotblas = 1%use_dotblas = 0%g" setup.py > _setup.py
100     mv _setup.py setup.py
101     sed -e "s%#\(os.path.join('Src', 'blas_lite.c'),\)%\1%g" setup.py > _setup.py
102     mv _setup.py setup.py
103     sed -e "s%#\(os.path.join('Src', 'f2c_lite.c'),\)%\1%g" setup.py > _setup.py
104     mv _setup.py setup.py
105     sed -e "s%#\(os.path.join('Src', 'zlapack_lite.c'),\)%\1%g" setup.py > _setup.py
106     mv _setup.py setup.py
107     sed -e "s%#\(os.path.join('Src', 'dlapack_lite.c')\)%\1%g" setup.py > _setup.py
108     mv _setup.py setup.py
109     chmod a+x setup.py
110 fi
111
112 check_job ${PRODUCT_DIR}/INSTALL.LOG python setup.py install --prefix=${PRODUCT_DIR}
113
114   if test `uname -m` = "x86_64" ; then
115       cd ${PRODUCT_DIR}; ln -sf lib64 lib
116   fi
117
118 #du -sk ${PRODUCT_WORK} > ${PRODUCT_DIR}/size.log
119 cd ${PRODUCT_DIR}; rm -fr ${PRODUCT_WORK}
120 print_env
121 }
122
123 install_binary()
124 {
125 check_jb tar xfz ${SOURCE_DIR}/Numeric-23.7.tar.gz -C ${INSTALL_ROOT}
126
127 print_env
128 }
129
130 export PROCEDURE=$1;
131 export INSTALL_WORK=$2;
132 export SOURCE_DIR=$3;
133 export INSTALL_ROOT=$4;
134 export PRODUCT_SEQUENCE=$5;
135 if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="numeric" ; fi
136 export PRODUCT="Numeric-23.7"
137 export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
138 export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
139 source ./common.sh
140 $PROCEDURE