Salome HOME
Process graphviz, tcltk and Python dependencies in *.la files of Graphviz.
[tools/install.git] / config_files / omniORB-4.1.0.sh
1 #!/bin/bash -noprofile
2
3 ####################################################################################
4 #  File      : omniORB-4.1.0.sh
5 #  Created   : Thu Dec 18 12:01:00 2002
6 #  Author    : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
7 #  Project   : SALOME
8 #  Module    : Installation Wizard
9 #  Copyright : 2002-2007 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.0 ${OMNIORBDIR}/lib
23 if [ "$?" -ne "0" ]; then
24    return 1
25 fi
26 check_lib_version _omnipymodule.so.3.0 ${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 test `uname -m` = "x86_64" ; then
45 export OMNI_LIB_PREFIX="64"
46 fi
47
48 cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
49 #$DELIM ${PRODUCT_TYPE} $DELIM
50 export OMNIORBDIR=\${INSTALL_ROOT}/${SINGLE_DIR:-${PRODUCT}}
51 export OMNIORB_CONFIG=\${OMNIORBDIR}/.omniORB.cfg
52 export PYTHONPATH=\${OMNIORBDIR}/lib${OMNI_LIB_PREFIX}:\${OMNIORBDIR}/lib${OMNI_LIB_PREFIX}/python\${PYTHON_VERSION}/site-packages:\${PYTHONPATH}
53 export PATH=\$OMNIORBDIR/bin:\$PATH
54 export LD_LIBRARY_PATH=\$OMNIORBDIR/lib:\$LD_LIBRARY_PATH 
55 ##
56 EOF
57 if [ $PROCEDURE != "try_preinstalled" ] && [ -w ${PRODUCT_DIR} ] ; then
58     cat > ${PRODUCT_DIR}/.omniORB.cfg <<EOF
59 InitRef = NameService=corbaname::`hostname`:2810
60 EOF
61 fi
62 (test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
63 make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
64 }
65
66 print_env_src()
67 {
68 cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF
69 #$DELIM ${PRODUCT_TYPE}_src $DELIM
70 # nothing to do
71 ##
72 EOF
73 (test -w ${PRODUCT_SRC_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_SRC_DIR})
74 make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
75 }
76
77 try_preinstalled(){
78 try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
79 try_existing ${PRODUCT_SRC_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
80 return $?
81 }
82
83 install_source()
84 {
85 make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
86 source ${INSTALL_WORK}/$SHRC
87
88 makedir ${PRODUCT_SRC_DIR}
89 # unpack
90 check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}.tar.gz -C ${PRODUCT_SRC_DIR}
91 check_jb tar xfz ${SOURCE_DIR}/omniORBpy-3.0.tar.gz -C ${PRODUCT_SRC_DIR}
92 check_jb tar xfz ${SOURCE_DIR}/omniNotify-2.1.tar.gz -C ${PRODUCT_SRC_DIR}
93
94 if test `uname -m` = "x86_64" ; then
95     if [ -f patches/omniNotify-2.1-lib64.patch ] ; then
96         cp patches/omniNotify-2.1-lib64.patch ${PRODUCT_SRC_DIR}/omniNotify-2.1_SRC
97         ( cd ${PRODUCT_SRC_DIR}/omniNotify-2.1_SRC ; patch -p1 < omniNotify-2.1-lib64.patch )
98     fi
99 fi
100 # to generate environment scripts
101 try_preinstalled
102 }
103
104 install_source_and_build()
105 {
106 # install sources
107 install_source
108
109 # build sources
110 test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
111 # install omniORB
112 cd ${PRODUCT_SRC_DIR}/omniORB-4.1.0_SRC
113 mkdir build
114 cd build
115
116 if [ -e /etc/redhat-release ] ; then
117     grep -e "Red Hat" /etc/redhat-release > /dev/null
118     if [ $? == 0 ] ; then is_redhat=1 ; fi
119 fi
120
121 if [ "X$is_redhat" == "X1" ] ; then
122     check_job ${PRODUCT_DIR}/CONFIGURE_OMNIORB.LOG ../configure --prefix=${PRODUCT_DIR} --disable-ipv6
123 else
124     check_job ${PRODUCT_DIR}/CONFIGURE_OMNIORB.LOG ../configure --prefix=${PRODUCT_DIR}
125 fi
126
127 GCC=`which gcc`
128 cat >> ${PRODUCT_DIR}/MAKE_OMNIORB.LOG <<EOF
129 used gcc=$GCC
130 EOF
131 check_job ${PRODUCT_DIR}/MAKE_OMNIORB.LOG make
132 check_job ${PRODUCT_DIR}/INSTALL_OMNIORB.LOG make install
133
134 if test `uname -m` = "x86_64" ; then
135 cd ${PRODUCT_DIR}/lib; ln -s ../lib64/python2.4 .
136 fi
137
138 # install omniORBpy
139 cd ${PRODUCT_SRC_DIR}/omniORBpy-3.0_SRC
140 mkdir build
141 cd build
142
143 check_job ${PRODUCT_DIR}/CONFIGURE_OMNIORBPY.LOG \
144     ../configure --prefix=${PRODUCT_DIR}
145
146 GCC=`which gcc`
147 cat >> ${PRODUCT_DIR}/MAKE_OMNIORBPY.LOG <<EOF
148 used gcc=$GCC
149 EOF
150 check_job ${PRODUCT_DIR}/MAKE_OMNIORBPY.LOG make
151 check_job ${PRODUCT_DIR}/INSTALL_OMNIORBPY.LOG make install
152
153 # install omniNotify
154 cd ${PRODUCT_SRC_DIR}/omniNotify-2.1_SRC
155
156 mkdir build
157 cd build
158
159 check_job ${PRODUCT_DIR}/CONFIGURE_OMNINOTIFY.LOG \
160     ../configure --prefix=${PRODUCT_DIR}
161
162 GCC=`which gcc`
163 cat >> ${PRODUCT_DIR}/MAKE_OMNINOTIFY.LOG <<EOF
164 used gcc=$GCC
165 EOF
166 check_job ${PRODUCT_DIR}/MAKE_OMNINOTIFY.LOG make
167 check_job ${PRODUCT_DIR}/INSTALL_OMNINOTIFY.LOG make install
168
169 cd ${PRODUCT_DIR}/bin
170 sed -e "s%#\!.*python%#\!/usr/bin/env python%" omniidl > _omniidl
171 mv -f _omniidl omniidl
172 chmod a+x omniidl
173 sed -e "s%#\!.*python%#\!/usr/bin/env python%" omniidlrun.py > _omniidlrun.py
174 mv -f _omniidlrun.py omniidlrun.py
175 chmod a+x omniidlrun.py
176
177 #du -sk ${PRODUCT_SRC_DIR} > ${PRODUCT_DIR}/size.log
178 cd ${PRODUCT_DIR}
179
180 # remove sources and temporary files after building
181 if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
182     test -d ${PRODUCT_SRC_DIR} && rm -fr ${PRODUCT_SRC_DIR}
183 fi
184
185 # to generate environment scripts
186 try_preinstalled
187 }
188
189 install_binary()
190 {
191 make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
192 source ${INSTALL_WORK}/$SHRC
193
194 # create a product directory
195 test -z ${SINGLE_DIR} && makedir ${PRODUCT_DIR} || mkdir -p ${PRODUCT_DIR}
196
197 check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}.tar.gz -C ${PRODUCT_DIR}
198
199 ln -sf ${PRODUCT_DIR} ${INSTALL_ROOT}/omni
200
201 cd ${PRODUCT_DIR}/bin
202 sed -e "s%#\!.*python%#\!/usr/bin/env python%" omniidl > _omniidl
203 mv -f _omniidl omniidl
204 chmod a+x omniidl
205 sed -e "s%#\!.*python%#\!/usr/bin/env python%" omniidlrun.py > _omniidlrun.py
206 mv -f _omniidlrun.py omniidlrun.py
207 chmod a+x omniidlrun.py
208
209 # to generate environment script for sources
210 try_preinstalled
211 }
212
213 export PROCEDURE=$1;
214 export INSTALL_WORK=$2;
215 export SOURCE_DIR=$3;
216 export INSTALL_ROOT=$4;
217 export PRODUCT_SEQUENCE=$5;
218 export PRODUCT_TYPE=$6;
219 export INSTALL_PRODUCTS=$7;
220 shift
221 REMOVE_SRC_TMP=$8;
222 test $# == 10 && shift && SINGLE_DIR=$9
223 export PRODUCT="omniORB-4.1.0"
224 export PRODUCT_DIR=${INSTALL_ROOT}/${SINGLE_DIR:-${PRODUCT}}
225 export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
226 export PRODUCT_SRC_DIR=${INSTALL_ROOT}/${PRODUCT}_SRC
227 source ./common.sh
228 $PROCEDURE