Salome HOME
Improve INSTALL wizard: move all patch files to the separate directory
[tools/install.git] / config_files / omniORB-4.0.7.sh
1 #!/bin/sh
2
3 check_version()
4 {
5 if [ -z "${OMNIORBDIR}" ]; then
6    #echo "OMNIORBDIR doesn't set"
7    return 1
8 fi
9 python_version="`python -c 'import sys; print sys.version[:3]'`"
10 check_lib_version libomniORB4.so.0.6 ${OMNIORBDIR}/lib
11 if [ "$?" -ne "0" ]; then
12    return 1
13 fi
14 check_lib_version _omnipymodule.so.2.6 ${OMNIORBDIR}/lib/python${python_version}/site-packages
15 if [ "$?" -ne "0" ]; then
16    return 1
17 fi
18 check_lib_version libCOSNotify4.so.0.1 ${OMNIORBDIR}/lib
19 if [ "$?" -ne "0" ]; then
20    return 1
21 fi
22 check_lib_version notifd ${OMNIORBDIR}/bin
23 if [ "$?" -ne "0" ]; then
24    return 1
25 fi
26 return 0
27 }
28
29 print_env()
30 {
31
32 if test `uname -m` = "x86_64" ; then
33 export OMNI_LIB_PREFIX="64"
34 fi
35
36 cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
37 #$DELIM ${PRODUCT_TYPE} $DELIM
38 export OMNIORBDIR=\${INSTALL_ROOT}/${PRODUCT}
39 export OMNIORB_CONFIG=\${OMNIORBDIR}/.omniORB.cfg
40 export PYTHONPATH=\${OMNIORBDIR}/lib\${OMNI_LIB_PREFIX}:\${OMNIORBDIR}/lib\${OMNI_LIB_PREFIX}/python\${PYTHON_VERSION}/site-packages:\${PYTHONPATH}
41 export PATH=\$OMNIORBDIR/bin:\$PATH
42 export LD_LIBRARY_PATH=\$OMNIORBDIR/lib:\$LD_LIBRARY_PATH 
43 ##
44 EOF
45 cat > ${PRODUCT_DIR}/.omniORB.cfg <<EOF
46 InitRef = NameService=corbaname::`hostname`:2810
47 EOF
48 (test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
49 make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
50 }
51
52 # looks for the native product and collects it's environment (used by make_env())
53 try_native(){
54 omnidir="`find_in_path omniidl ${PATH}:/usr/bin`"
55 if [ -n "${omnidir}" ] ; then
56   omnidir=`cd ${omnidir}/..; pwd`
57   OMNIORBDIR=${omnidir}
58   python_version="`python -c 'import sys; print sys.version[:3]'`"
59   check_lib_version libomniORB4.so.0.6 ${OMNIORBDIR}/lib
60   if [ "$?" -ne "0" ]; then return 1 ; fi
61   check_lib_version _omnipymodule.so.2.6 ${OMNIORBDIR}/lib/python${python_version}/site-packages
62   if [ "$?" -ne "0" ]; then return 1 ; fi
63   tmp="${omnidir}/bin ${omnidir}/bin \${PATH} ${PATH}";  
64   path=`sort_path ${tmp}`
65   tmp="${omnidir}/lib ${omnidir}/lib \${LD_LIBRARY_PATH} ${LD_LIBRARY_PATH}";  
66   ld_library_path=`sort_path ${tmp}`
67   tmp="${omnidir}/lib:${omnidir}/lib/python\${PYTHON_VERSION}:${omnidir}/lib/python\${PYTHON_VERSION}/site-packages ${omnidir}/lib:${omnidir}/lib/python${python_version}/site-packages \${PYTHONPATH} ${PYTHONPATH}";  
68   pythonpath=`sort_path ${tmp}`
69   cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
70 #$DELIM ${PRODUCT_TYPE} $DELIM
71 export OMNIORB_CONFIG=\${HOME}/.omniORB.cfg
72 export PYTHONPATH=${pythonpath}
73 export PATH=${path}
74 export LD_LIBRARY_PATH=${ld_library_path}
75 ##
76 EOF
77   make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
78   return 0
79 fi
80 return 1;
81 }
82
83 try_preinstalled(){
84 try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
85 return $?
86 }
87
88 install_source()
89 {
90 make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
91 source ${INSTALL_WORK}/$SHRC
92
93
94 makedir ${PRODUCT_DIR}
95
96 check_jb tar xfz ${SOURCE_DIR}/omniORB-4.0.7.tar.gz -C ${INSTALL_WORK}
97 check_jb tar xfz ${SOURCE_DIR}/omniORBpy-2.7.tar.gz -C ${INSTALL_WORK}
98 check_jb tar xfz ${SOURCE_DIR}/omniNotify-2.1.tar.gz -C ${INSTALL_WORK}
99
100 # apply patches for 64-bit platforms
101 if test `uname -m` = "x86_64" ; then
102     if [ -f patches/omniORB-4.0.7-lib64.patch ] ; then
103         cp patches/omniORB-4.0.7-lib64.patch ${INSTALL_WORK}/omniORB-4.0.7
104         ( cd ${INSTALL_WORK}/omniORB-4.0.7 ; patch -p1 < omniORB-4.0.7-lib64.patch )
105     fi
106     if [ -f patches/omniORBpy-2.7-lib64.patch ] ; then
107         cp patches/omniORBpy-2.7-lib64.patch ${INSTALL_WORK}/omniORBpy-2.7
108         ( cd ${INSTALL_WORK}/omniORBpy-2.7 ; patch -p1 < omniORBpy-2.7-lib64.patch )
109     fi
110     if [ -f patches/omniNotify-2.1-lib64.patch ] ; then
111         cp patches/omniNotify-2.1-lib64.patch ${INSTALL_WORK}/omniNotify
112         ( cd ${INSTALL_WORK}/omniNotify ; patch -p1 < omniNotify-2.1-lib64.patch )
113     fi
114 fi
115
116 # install omniORB
117 cd ${INSTALL_WORK}/omniORB-4.0.7
118 mkdir build
119 cd build
120
121 check_job ${PRODUCT_DIR}/CONFIGURE_OMNIORB.LOG \
122     ../configure --prefix=${PRODUCT_DIR}
123
124 GCC=`which gcc`
125 cat >> ${PRODUCT_DIR}/MAKE_OMNIORB.LOG <<EOF
126 used gcc=$GCC
127 EOF
128 check_job ${PRODUCT_DIR}/MAKE_OMNIORB.LOG make
129 check_job ${PRODUCT_DIR}/INSTALL_OMNIORB.LOG make install
130
131 if test `uname -m` = "x86_64" ; then
132 cd ${PRODUCT_DIR}/lib; ln -s ../lib64/python2.4 .
133 fi
134
135 # install omniORBpy
136 cd ${INSTALL_WORK}/omniORBpy-2.7
137 mkdir build
138 cd build
139
140 check_job ${PRODUCT_DIR}/CONFIGURE_OMNIORBPY.LOG \
141     ../configure --prefix=${PRODUCT_DIR}
142
143 GCC=`which gcc`
144 cat >> ${PRODUCT_DIR}/MAKE_OMNIORBPY.LOG <<EOF
145 used gcc=$GCC
146 EOF
147 check_job ${PRODUCT_DIR}/MAKE_OMNIORBPY.LOG make
148 check_job ${PRODUCT_DIR}/INSTALL_OMNIORBPY.LOG make install
149
150 # install omniNotify
151 cd ${INSTALL_WORK}/omniNotify
152
153 mkdir build
154 cd build
155
156 check_job ${PRODUCT_DIR}/CONFIGURE_OMNINOTIFY.LOG \
157     ../configure --prefix=${PRODUCT_DIR}
158
159 GCC=`which gcc`
160 cat >> ${PRODUCT_DIR}/MAKE_OMNINOTIFY.LOG <<EOF
161 used gcc=$GCC
162 EOF
163 check_job ${PRODUCT_DIR}/MAKE_OMNINOTIFY.LOG make
164 check_job ${PRODUCT_DIR}/INSTALL_OMNINOTIFY.LOG make install
165
166 cd ${PRODUCT_DIR}/bin
167 sed -e "s%#\!.*python%#\!/usr/bin/env python%" omniidl > _omniidl
168 mv -f _omniidl omniidl
169 chmod a+x omniidl
170 sed -e "s%#\!.*python%#\!/usr/bin/env python%" omniidlrun.py > _omniidlrun.py
171 mv -f _omniidlrun.py omniidlrun.py
172 chmod a+x omniidlrun.py
173
174 #du -sk ${PRODUCT_WORK} > ${PRODUCT_DIR}/size.log
175 cd ${PRODUCT_DIR}
176 rm -fr ${INSTALL_WORK}/omniORB-4.0.7
177 rm -fr ${INSTALL_WORK}/omniORBpy-2.7
178 rm -fr ${INSTALL_WORK}/omniNotify
179 print_env
180 }
181
182 install_binary()
183 {
184 make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
185 source ${INSTALL_WORK}/$SHRC
186
187 check_jb tar xfz ${SOURCE_DIR}/omniORB-4.0.7.tar.gz -C ${INSTALL_ROOT}
188
189 ln -sf ${PRODUCT_DIR} ${INSTALL_ROOT}/omni
190
191 cd ${PRODUCT_DIR}/bin
192 sed -e "s%#\!.*python%#\!/usr/bin/env python%" omniidl > _omniidl
193 mv -f _omniidl omniidl
194 chmod a+x omniidl
195 sed -e "s%#\!.*python%#\!/usr/bin/env python%" omniidlrun.py > _omniidlrun.py
196 mv -f _omniidlrun.py omniidlrun.py
197 chmod a+x omniidlrun.py
198
199 print_env
200 }
201
202 export PROCEDURE=$1;
203 export INSTALL_WORK=$2;
204 export SOURCE_DIR=$3;
205 export INSTALL_ROOT=$4;
206 export PRODUCT_SEQUENCE=$5;
207 if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="omni" ; fi
208 export PRODUCT="omniORB-4.0.7"
209 export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
210 export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
211 source ./common.sh
212 $PROCEDURE