3 ####################################################################################
4 # File : omniORB-4.1.4.sh
5 # Created : Mon Feb 09 16:21:00 2009
6 # Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
8 # Module : Installation Wizard
9 # Copyright : 2002-2009 CEA
11 # This script is the part of the SALOME installation procedure.
13 ####################################################################################
17 if [ -z "${OMNIORBDIR}" ]; then
18 #echo "OMNIORBDIR doesn't set"
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
26 check_lib_version _omnipymodule.so.3.4 ${OMNIORBDIR}/lib/python${python_version}/site-packages
27 if [ "$?" -ne "0" ]; then
30 check_lib_version libCOSNotify4.so.0.1 ${OMNIORBDIR}/lib
31 if [ "$?" -ne "0" ]; then
34 check_lib_version notifd ${OMNIORBDIR}/bin
35 if [ "$?" -ne "0" ]; then
44 if [ `uname -m` = "x86_64" ] && [ -d ${PRODUCT_DIR}/lib64 ] ; then
46 elif [ -d ${PRODUCT_DIR}/lib ] ; then
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
61 if [ $PROCEDURE != "try_preinstalled" ] && [ -w ${PRODUCT_DIR} ] ; then
62 cat > ${PRODUCT_DIR}/.omniORB.cfg <<EOF
63 InitRef = NameService=corbaname::`hostname`:2810
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}"
72 cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
73 #$DELIM ${PRODUCT_TYPE}_src $DELIM
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}"
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
89 make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
90 source ${INSTALL_WORK}/$SHRC
92 makedir ${PRODUCT_SRC_DIR}
94 check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}.tar.gz -C ${PRODUCT_SRC_DIR}
95 check_jb tar xfz ${SOURCE_DIR}/omniORBpy-3.4.tar.gz -C ${PRODUCT_SRC_DIR}
96 check_jb tar xfz ${SOURCE_DIR}/omniNotify-2.1.tar.gz -C ${PRODUCT_SRC_DIR}
98 if test `uname -m` = "x86_64" ; then
99 if [ -f patches/omniNotify-2.1-lib64.patch ] ; then
100 cp patches/omniNotify-2.1-lib64.patch ${PRODUCT_SRC_DIR}/omniNotify-2.1_SRC
101 ( cd ${PRODUCT_SRC_DIR}/omniNotify-2.1_SRC ; patch -p1 < omniNotify-2.1-lib64.patch )
104 # to generate environment scripts
108 install_source_and_build()
114 test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
116 cd ${PRODUCT_SRC_DIR}/omniORB-4.1.4_SRC
120 check_job ${PRODUCT_DIR}/CONFIGURE_OMNIORB.LOG ../configure --prefix=${PRODUCT_DIR}
123 cat >> ${PRODUCT_DIR}/MAKE_OMNIORB.LOG <<EOF
126 check_job ${PRODUCT_DIR}/MAKE_OMNIORB.LOG make
127 check_job ${PRODUCT_DIR}/INSTALL_OMNIORB.LOG make install
130 cd ${PRODUCT_SRC_DIR}/omniORBpy-3.4_SRC
134 check_job ${PRODUCT_DIR}/CONFIGURE_OMNIORBPY.LOG \
135 ../configure --prefix=${PRODUCT_DIR}
138 cat >> ${PRODUCT_DIR}/MAKE_OMNIORBPY.LOG <<EOF
141 check_job ${PRODUCT_DIR}/MAKE_OMNIORBPY.LOG make
142 check_job ${PRODUCT_DIR}/INSTALL_OMNIORBPY.LOG make install
145 cd ${PRODUCT_SRC_DIR}/omniNotify-2.1_SRC
150 check_job ${PRODUCT_DIR}/CONFIGURE_OMNINOTIFY.LOG \
151 ../configure --prefix=${PRODUCT_DIR}
154 cat >> ${PRODUCT_DIR}/MAKE_OMNINOTIFY.LOG <<EOF
157 check_job ${PRODUCT_DIR}/MAKE_OMNINOTIFY.LOG make
158 check_job ${PRODUCT_DIR}/INSTALL_OMNINOTIFY.LOG make install
160 cd ${PRODUCT_DIR}/bin
161 sed -e "s%#\!.*python%#\!/usr/bin/env python%" omniidl > _omniidl
162 mv -f _omniidl omniidl
164 sed -e "s%#\!.*python%#\!/usr/bin/env python%" omniidlrun.py > _omniidlrun.py
165 mv -f _omniidlrun.py omniidlrun.py
166 chmod a+x omniidlrun.py
170 # remove sources and temporary files after building
171 if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
172 test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
175 # to generate environment scripts
181 make_env ${INST_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
182 source ${INSTALL_WORK}/$SHRC
184 # create a product directory
185 test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
187 check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}.tar.gz -C ${PRODUCT_DIR}
189 ln -sf ${PRODUCT_DIR} ${INST_ROOT}/omni
191 cd ${PRODUCT_DIR}/bin
192 for l in omniidl omniidlrun.py ; do
193 sed -e "s%#\!.*python%#\!/usr/bin/env python%" \
194 -e "s%\"[^[:space:]]*${PRODUCT}\([^[:space:]]*\)\"%\"${PRODUCT_DIR}\1\"%" \
200 cd ${PRODUCT_DIR}/lib
201 for l in X `find . -name "*_idl.py"`; do
202 if [ "${l}" != "X" ] ; then
203 lname=`basename ${l} | sed -e "s%_idl.py$%%g"`".idl"
204 sed -e "s%\(omniORB.openModule(.*,[[:space:]]*r\"\)[^[:space:]]*${PRODUCT}\([^[:space:]]*/${lname}\"\)%\1${PRODUCT_DIR}\2%g" ${l} > ${l}_
205 chmod -f --reference=${l} ${l}_ ; mv -f ${l}_ ${l}
209 cd ${PRODUCT_DIR}/lib/pkgconfig
210 for l in X `find . -name "*.pc"`; do
211 if [ "${l}" != "X" ] ; then
212 sed -e "s%prefix=.*%prefix=${PRODUCT_DIR}%g" ${l} > ${l}_
213 chmod -f --reference=${l} ${l}_ ; mv -f ${l}_ ${l}
217 # to generate environment script for sources
222 export INSTALL_WORK=$2;
223 export SOURCE_DIR=$3;
225 export PRODUCT_SEQUENCE=$5;
226 export PRODUCT_TYPE=$6;
227 export INSTALL_PRODUCTS=$7;
230 test $# == 10 && shift && SINGLE_DIR=$9
231 export PRODUCT="omniORB-4.1.4"
232 export PRODUCT_DIR=${INST_ROOT}/${SINGLE_DIR:-${PRODUCT}}
233 export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
234 export PRODUCT_SRC_DIR=${INST_ROOT}/${PRODUCT}_SRC