Salome HOME
Fix pb with Hexotic environment
[tools/install.git] / config_files / omniORB-4.1.5.sh
1 #!/bin/bash -noprofile
2
3 ####################################################################################
4 #  File      : omniORB-4.1.5.sh
5 #  Created   : Mon Feb 09 16:21:00 2009
6 #  Author    : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
7 #  Project   : SALOME
8 #  Module    : Installation Wizard
9 #  Copyright : 2002-2009 CEA
10 #
11 #  This script is the part of the SALOME installation procedure.
12 #
13 ####################################################################################
14
15 check_version()
16 {
17 if [ -z "${OMNIORBDIR}" ]; then
18    #echo "OMNIORBDIR doesn't set"
19    return 1
20 fi
21 python_version="`python -c 'import sys; print sys.version[:3]'`"
22 check_lib_version libomniORB4.so.1.4 ${OMNIORBDIR}/lib
23 if [ "$?" -ne "0" ]; then
24    return 1
25 fi
26 check_lib_version _omnipymodule.so.3.5 ${OMNIORBDIR}/lib/python${python_version}/site-packages
27 if [ "$?" -ne "0" ]; then
28    return 1
29 fi
30 check_lib_version libCOSNotify4.so.0.1 ${OMNIORBDIR}/lib
31 if [ "$?" -ne "0" ]; then
32    return 1
33 fi
34 check_lib_version notifd ${OMNIORBDIR}/bin
35 if [ "$?" -ne "0" ]; then
36    return 1
37 fi
38 return 0
39 }
40
41 print_env_bin()
42 {
43
44 if [ `uname -m` = "x86_64" ] && [ -d ${PRODUCT_DIR}/lib64 ] ; then 
45     OMNI_LIB_PREFIX=64
46 elif [ -d ${PRODUCT_DIR}/lib ] ; then 
47     OMNI_LIB_PREFIX=""
48 else 
49     OMNI_LIB_PREFIX=64
50 fi
51
52 cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
53 #$DELIM ${PRODUCT_TYPE} $DELIM
54 export OMNIORBDIR=\${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
55 export OMNIORB_CONFIG=\${OMNIORBDIR}/.omniORB.cfg
56 export PYTHONPATH=\${OMNIORBDIR}/lib:\${OMNIORBDIR}/lib/python\${PYTHON_VERSION}/site-packages:\${PYTHONPATH}
57 export PATH=\$OMNIORBDIR/bin:\$PATH
58 export LD_LIBRARY_PATH=\$OMNIORBDIR/lib:\$LD_LIBRARY_PATH 
59 ##
60 EOF
61 if [ $PROCEDURE != "try_preinstalled" ] && [ -w ${PRODUCT_DIR} ] ; then
62     cat > ${PRODUCT_DIR}/.omniORB.cfg <<EOF
63 InitRef = NameService=corbaname::`hostname`:2810
64 EOF
65 fi
66 (test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
67 make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
68 }
69
70 print_env_src()
71 {
72 cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
73 #$DELIM ${PRODUCT_TYPE}_src $DELIM
74 # nothing to do
75 ##
76 EOF
77 (test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
78 make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
79 }
80
81 try_preinstalled(){
82 try_existing ${PRODUCT_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
83 try_existing ${PRODUCT_SRC_DIR} ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
84 return $?
85 }
86
87 install_source()
88 {
89 make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
90 source ${INSTALL_WORK}/$SHRC
91
92 makedir ${PRODUCT_SRC_DIR}
93 # unpack
94 check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}.tar.gz -C ${PRODUCT_SRC_DIR}
95 check_jb tar xfz ${SOURCE_DIR}/omniORBpy-3.5.tar.gz -C ${PRODUCT_SRC_DIR}
96 check_jb tar xfz ${SOURCE_DIR}/omniNotify-2.1.tar.gz -C ${PRODUCT_SRC_DIR}
97
98 if [ -f patches/omniNotify-2.1.patch ] ; then
99     cp patches/omniNotify-2.1.patch ${PRODUCT_SRC_DIR}/omniNotify-2.1_SRC
100     ( cd ${PRODUCT_SRC_DIR}/omniNotify-2.1_SRC ; patch -p1 < omniNotify-2.1.patch )
101 fi
102 if test `uname -m` = "x86_64" ; then
103     if [ -f patches/omniNotify-2.1-lib64.patch ] ; then
104         cp patches/omniNotify-2.1-lib64.patch ${PRODUCT_SRC_DIR}/omniNotify-2.1_SRC
105         ( cd ${PRODUCT_SRC_DIR}/omniNotify-2.1_SRC ; patch -p1 < omniNotify-2.1-lib64.patch )
106     fi
107 fi
108 # to generate environment scripts
109 try_preinstalled
110 }
111
112 install_source_and_build()
113 {
114 # install sources
115 install_source
116
117 # build sources
118 test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
119 # install omniORB
120 cd ${PRODUCT_SRC_DIR}/omniORB-4.1.5_SRC
121 mkdir build
122 cd build
123
124 check_job ${PRODUCT_DIR}/CONFIGURE_OMNIORB.LOG ../configure --prefix=${PRODUCT_DIR}
125
126 GCC=`which gcc`
127 cat >> ${PRODUCT_DIR}/MAKE_OMNIORB.LOG <<EOF
128 used gcc=$GCC
129 EOF
130 check_job ${PRODUCT_DIR}/MAKE_OMNIORB.LOG make
131 check_job ${PRODUCT_DIR}/INSTALL_OMNIORB.LOG make install
132
133 # install omniORBpy
134 cd ${PRODUCT_SRC_DIR}/omniORBpy-3.5_SRC
135 mkdir build
136 cd build
137
138 check_job ${PRODUCT_DIR}/CONFIGURE_OMNIORBPY.LOG \
139     ../configure --prefix=${PRODUCT_DIR}
140
141 GCC=`which gcc`
142 cat >> ${PRODUCT_DIR}/MAKE_OMNIORBPY.LOG <<EOF
143 used gcc=$GCC
144 EOF
145 check_job ${PRODUCT_DIR}/MAKE_OMNIORBPY.LOG make
146 check_job ${PRODUCT_DIR}/INSTALL_OMNIORBPY.LOG make install
147
148 # install omniNotify
149 cd ${PRODUCT_SRC_DIR}/omniNotify-2.1_SRC
150
151 mkdir build
152 cd build
153
154 check_job ${PRODUCT_DIR}/CONFIGURE_OMNINOTIFY.LOG \
155     ../configure --prefix=${PRODUCT_DIR}
156
157 GCC=`which gcc`
158 cat >> ${PRODUCT_DIR}/MAKE_OMNINOTIFY.LOG <<EOF
159 used gcc=$GCC
160 EOF
161 check_job ${PRODUCT_DIR}/MAKE_OMNINOTIFY.LOG make
162 check_job ${PRODUCT_DIR}/INSTALL_OMNINOTIFY.LOG make install
163
164 cd ${PRODUCT_DIR}/bin
165 sed -e "s%#\!.*python%#\!/usr/bin/env python%" omniidl > _omniidl
166 mv -f _omniidl omniidl
167 chmod a+x omniidl
168 sed -e "s%#\!.*python%#\!/usr/bin/env python%" omniidlrun.py > _omniidlrun.py
169 mv -f _omniidlrun.py omniidlrun.py
170 chmod a+x omniidlrun.py
171
172 cd ${PRODUCT_DIR}
173
174 # remove sources and temporary files after building
175 if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
176     test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
177 fi
178
179 # to generate environment scripts
180 try_preinstalled
181 }
182
183 install_binary()
184 {
185 make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
186 source ${INSTALL_WORK}/$SHRC
187
188 # create a product directory
189 test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
190
191 check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}.tar.gz -C ${PRODUCT_DIR}
192
193 ln -sf ${PRODUCT_DIR} ${INST_ROOT}/omni
194
195 cd ${PRODUCT_DIR}/bin
196 for l in omniidl omniidlrun.py ; do
197     sed -e "s%#\!.*python%#\!/usr/bin/env python%" \
198         -e "s%\"[^[:space:]]*${PRODUCT}\([^[:space:]]*\)\"%\"${PRODUCT_DIR}\1\"%" \
199         ${l} > _${l}
200     mv -f _${l} ${l}
201     chmod a+x ${l}
202 done
203
204 cd ${PRODUCT_DIR}/lib
205 for l in X `find . -name "*_idl.py"`; do
206     if [ "${l}" != "X" ] ; then
207         lname=`basename ${l} | sed -e "s%_idl.py$%%g"`".idl"
208         sed -e "s%\(omniORB.openModule(.*,[[:space:]]*r\"\)[^[:space:]]*${PRODUCT}\([^[:space:]]*/${lname}\"\)%\1${PRODUCT_DIR}\2%g" ${l} > ${l}_
209         chmod -f --reference=${l} ${l}_ ; mv -f ${l}_ ${l}
210     fi
211 done
212
213 cd ${PRODUCT_DIR}/lib/pkgconfig
214 for l in X `find . -name "*.pc"`; do
215     if [ "${l}" != "X" ] ; then
216         sed -e "s%prefix=.*%prefix=${PRODUCT_DIR}%g" ${l} > ${l}_
217         chmod -f --reference=${l} ${l}_ ; mv -f ${l}_ ${l}
218     fi
219 done
220
221 # to generate environment script for sources
222 try_preinstalled
223 }
224
225 export PROCEDURE=$1;
226 export INSTALL_WORK=$2;
227 export SOURCE_DIR=$3;
228 export INST_ROOT=$4;
229 export PRODUCT_SEQUENCE=$5;
230 export PRODUCT_TYPE=$6;
231 export INSTALL_PRODUCTS=$7;
232 shift
233 REMOVE_SRC_TMP=$8;
234 test $# == 10 && shift && SINGLE_DIR=$9
235 export PRODUCT="omniORB-4.1.5"
236 export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
237 export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
238 export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT}_SRC
239 source ./common.sh
240 $PROCEDURE