Salome HOME
PAL8256: correct *.la files (for correct processing by libtool)
[tools/install.git] / config_files / hdf5-1.4.4.sh
1 #!/bin/sh
2
3 check_version()
4 {
5 if [ -z "$HDF5HOME" ]; then
6     #echo "HDF5HOME doesn't set"
7     return 1 
8 fi
9 check_lib_version libhdf5.so.0.0.0 ${HDF5HOME}/lib
10 if [ "$?" -ne "0" ]; then
11     return 1
12 fi
13 #check libhdf5.settings file in a  ${HDF5HOME}/lib
14 check_lib_version libhdf5.settings ${HDF5HOME}/lib
15 if [ "$?" -eq "0" ]; then
16    #check that libhdf5.settings file contains following entry:
17    #HDF5 Version:               hdf5-1.4.4
18     entry=`grep "HDF5 Version:" ${HDF5HOME}/lib/libhdf5.settings`
19     ver=`echo $entry | awk '{print $3}'` 
20     if [ "$ver" = "1.4.4" ]; then 
21         #echo "The product ${PRODUCT} has been already installed on yours system"
22         return 0
23     fi
24 fi
25 return 1
26 }
27
28 print_env()
29 {
30 cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
31 #$DELIM ${PRODUCT_TYPE} $DELIM
32 export HDF5HOME=\${INSTALL_ROOT}/hdf5-1.4.4
33 export PATH=\${HDF5HOME}/bin:\$PATH
34 export LD_LIBRARY_PATH=\${HDF5HOME}/lib:\${LD_LIBRARY_PATH}
35 ##
36 EOF
37 (test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
38 make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
39 }
40
41 # looks for the native product and collects it's environment (used by make_env())
42 try_native(){
43 check_version
44 if [ $? -eq 0 ] ; then
45     tmp="\${HDF5HOME}/bin ${HDF5HOME}/bin \${PATH} ${PATH}";  
46     path=`sort_path ${tmp}`
47     tmp="\${HDF5HOME}/lib ${HDF5HOME}/lib \${LD_LIBRARY_PATH} ${LD_LIBRARY_PATH}";  
48     ld_library_path=`sort_path ${tmp}`
49     cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
50 #$DELIM ${PRODUCT_TYPE} $DELIM
51 export HDF5HOME=${HDF5HOME}
52 export PATH=${path}
53 export LD_LIBRARY_PATH=${ld_library_path}
54 ##
55 EOF
56     make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
57     return 0
58 fi
59 return 1;
60 }
61
62 try_preinstalled(){
63 try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
64 return $?
65 }
66
67 install_source()
68 {
69 make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
70 source ${INSTALL_WORK}/$SHRC
71
72 check_jb tar xfz ${SOURCE_DIR}/hdf5-1.4.4.tar.gz -C ${INSTALL_WORK}
73 cd ${PRODUCT_WORK}
74 makedir ${PRODUCT_DIR}
75 check_job ${PRODUCT_DIR}/CONFIGURE.LOG \
76     ./configure --prefix=${PRODUCT_DIR} --enable-threadsafe --enable-hdf5v1_2 \
77         --enable-stream-vfd --disable-hsizet --with-pthread=/usr/include,/usr/lib 
78 # find . -name .depend ! -size 0 -print
79 GCC=`which gcc`
80 cat >> ${PRODUCT_DIR}/MAKE0.LOG <<EOF
81 used gcc=$GCC
82 EOF
83 check_job ${PRODUCT_DIR}/MAKE0.LOG make 
84 # 1
85 sed -e 's%$(srcdir)/usr%/usr%g' ./src/.depend > ./src/.dependnew
86 mv ./src/.dependnew ./src/.depend
87 cat >> ${PRODUCT_DIR}/MAKE1.LOG <<EOF
88 used gcc=$GCC
89 EOF
90 check_job ${PRODUCT_DIR}/MAKE1.LOG make  
91 # 2
92 sed -e 's%$(srcdir)/usr%/usr%g' ./test/.depend > ./test/.dependnew
93 mv ./test/.dependnew ./test/.depend
94 cat >> ${PRODUCT_DIR}/MAKE2.LOG <<EOF
95 used gcc=$GCC
96 EOF
97 check_job ${PRODUCT_DIR}/MAKE2.LOG make
98 # 3
99 sed -e 's%$(srcdir)/usr%/usr%g' ./tools/lib/.depend > ./tools/lib/.dependnew
100 mv ./tools/lib/.dependnew ./tools/lib/.depend
101 cat >> ${PRODUCT_DIR}/MAKE3.LOG <<EOF
102 used gcc=$GCC
103 EOF
104 check_job ${PRODUCT_DIR}/MAKE3.LOG make
105 # 4
106 sed -e 's%$(srcdir)/usr%/usr%g' ./tools/h5dump/.depend > ./tools/h5dump/.dependnew
107 mv ./tools/h5dump/.dependnew ./tools/h5dump/.depend
108 cat >> ${PRODUCT_DIR}/MAKE4.LOG <<EOF
109 used gcc=$GCC
110 EOF
111 check_job ${PRODUCT_DIR}/MAKE4.LOG make
112 # 5
113 sed -e 's%$(srcdir)/usr%/usr%g' ./tools/h5ls/.depend > ./tools/h5ls/.dependnew
114 mv ./tools/h5ls/.dependnew ./tools/h5ls/.depend
115 cat >> ${PRODUCT_DIR}/MAKE5.LOG <<EOF
116 used gcc=$GCC
117 EOF
118 check_job ${PRODUCT_DIR}/MAKE5.LOG make
119 # 6
120 sed -e 's%$(srcdir)/usr%/usr%g' ./tools/misc/.depend > ./tools/misc/.dependnew
121 mv ./tools/misc/.dependnew ./tools/misc/.depend
122 cat >> ${PRODUCT_DIR}/MAKE6.LOG <<EOF
123 used gcc=$GCC
124 EOF
125 check_job ${PRODUCT_DIR}/MAKE6.LOG make
126 # 7
127 #sed -e 's%$(srcdir)/usr%/usr%g' ./examples/.depend > ./examples/.dependnew
128 #mv ./examples/.dependnew ./examples/.depend
129 #cat >> ${PRODUCT_DIR}/MAKE7.LOG <<EOF
130 #used gcc=$GCC
131 #EOF
132 #check_job ${PRODUCT_DIR}/MAKE7.LOG make
133 ##
134 #check_job ${PRODUCT_DIR}/MAKECHECK.LOG make check
135 check_job ${PRODUCT_DIR}/MAKEINSTALL.LOG make install
136
137 rm -fr ${PRODUCT_WORK}
138 print_env
139 }
140
141 install_binary()
142 {
143 make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
144 source ${INSTALL_WORK}/$SHRC
145
146 check_jb tar xfz ${SOURCE_DIR}/hdf5-1.4.4.tar.gz -C ${INSTALL_ROOT}
147
148 ### modify libhdf5.la file to correct direct path to hdf5 library
149 ### no need to do this for sources installation because 'make install' does it!
150 cd ${PRODUCT_DIR}/lib
151 sed -e "s%^libdir='\(.*\)'%libdir='${PRODUCT_DIR}/lib'%g" libhdf5.la > libhdf5.la.new
152 mv -f libhdf5.la.new libhdf5.la
153
154 print_env
155 }
156
157 export PROCEDURE=$1;
158 export INSTALL_WORK=$2;
159 export SOURCE_DIR=$3;
160 export INSTALL_ROOT=$4;
161 export PRODUCT_SEQUENCE=$5;
162 if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="hdf" ; fi
163 export PRODUCT="hdf5-1.4.4"
164 export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
165 export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
166 source ./common.sh
167 $PROCEDURE