Salome HOME
Modifications in according to improvement 15165.
[tools/install.git] / config_files / tcltk-8.3.3.sh
1 #!/bin/bash -noprofile
2
3 ####################################################################################
4 #  File      : tcltk-8.3.3.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 VERSION="8.3"
16
17 check_version()
18 {
19 if [ -z "$TCLHOME" ]; then
20    echo "TCLHOME doesn't set"
21    return 1
22 fi
23
24 # check tcl version
25 tcl_cfg=${TCLHOME}/lib/tclConfig.sh
26 if [ ! -f ${tcl_cfg} ]; then tcl_cfg=${TCLHOME}/tcl${VERSION}/lib/tclConfig.sh; fi
27 if [ ! -f ${tcl_cfg} ]; then tcl_cfg=${TCLHOME}/lib/tcl${VERSION}/tclConfig.sh; fi
28 if [ ! -f ${tcl_cfg} ]; then tcl_cfg=${TCLHOME}/lib/tcl${VERSION}/lib/tclConfig.sh; fi
29 if [ -f ${tcl_cfg} ]; then
30     tcl_ver=`awk '/^TCL_VERSION=.*/ {gsub("TCL_VERSION=","",$1);print $1}' ${tcl_cfg} | cut -d "'" -f 2`
31     if [ "$tcl_ver" != ${VERSION} ] ; then
32         return 1
33     fi
34 else
35     return 1
36 fi
37
38 # check tk version
39 tk_cfg=${TCLHOME}/lib/tkConfig.sh
40 if [ ! -f ${tk_cfg} ]; then tk_cfg=${TCLHOME}/tk${VERSION}/tkConfig.sh; fi
41 if [ ! -f ${tk_cfg} ]; then tk_cfg=${TCLHOME}/lib/tk${VERSION}/tkConfig.sh; fi
42 if [ ! -f ${tk_cfg} ]; then tk_cfg=${TCLHOME}/lib/tk${VERSION}/lib/tkConfig.sh; fi
43 if [ -f ${tk_cfg} ]; then
44     tk_ver=`awk '/^TK_VERSION=.*/ {gsub("TK_VERSION=","",$1);print $1}' ${tk_cfg} | cut -d "'" -f 2`
45     if [ "$tk_ver" != ${VERSION} ] ; then
46         return 1
47     fi
48 else
49     return 1
50 fi
51
52 return 0
53 }
54
55 print_env_bin()
56 {
57 cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
58 #$DELIM ${PRODUCT_TYPE} $DELIM
59 export TCLHOME=\${INSTALL_ROOT}/${PRODUCT}
60 export PATH=\${TCLHOME}/bin:\${PATH}
61 export LD_LIBRARY_PATH=\${TCLHOME}/lib:\${LD_LIBRARY_PATH}
62 export TCLLIBPATH="\${TCLHOME}/lib \${TCLHOME}/lib/tcl${VERSION} \${TCLHOME}/lib/tk${VERSION} \${TCLLIBPATH}"
63 ##
64 EOF
65 (test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
66 make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
67 }
68
69 print_env_src()
70 {
71 cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh <<EOF 
72 #$DELIM ${PRODUCT_TYPE}_src $DELIM
73 # nothing to do
74 ##
75 EOF
76 (test -w ${PRODUCT_DIR}_SRC && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}_src.sh ${PRODUCT_DIR}_SRC)
77 make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}"
78 }
79
80 try_preinstalled(){
81 try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
82 try_existing ${PRODUCT_DIR}_SRC ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
83 return $?
84 }
85
86 install_source()
87 {
88 make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}_src
89 source ${INSTALL_WORK}/$SHRC
90
91 mkdir -p ${PRODUCT_DIR}_SRC
92
93 check_jb tar xfz ${SOURCE_DIR}/tcl8.3.3.tar.gz -C ${PRODUCT_DIR}_SRC
94 check_jb tar xfz ${SOURCE_DIR}/tk8.3.3.tar.gz -C ${PRODUCT_DIR}_SRC
95 check_jb tar xfz ${SOURCE_DIR}/tclx8.3.tar.gz -C ${PRODUCT_DIR}_SRC
96
97 if [ $PROCEDURE == "install_source" ]; then
98 # to generate environment scripts
99     try_preinstalled
100 fi
101 }
102
103 install_source_and_build()
104 {
105 # install sources
106 install_source
107
108 # build sources
109 makedir ${PRODUCT_DIR}
110
111 cd ${PRODUCT_DIR}_SRC/tcl-8.3.3_SRC/unix
112 cat >> ${PRODUCT_DIR}/CONFIGURE.LOG <<EOF
113 -------------------
114 Configuring tcl...
115 -------------------
116 EOF
117 check_job ${PRODUCT_DIR}/CONFIGURE.LOG ./configure --enable-gcc --enable-shared --enable-threads \
118     --prefix=${PRODUCT_DIR}
119 GCC=`which gcc`
120 cat >> ${PRODUCT_DIR}/MAKE.LOG <<EOF
121 used gcc=$GCC
122 -------------------
123 Making tcl...
124 -------------------
125 EOF
126 check_job ${PRODUCT_DIR}/MAKE.LOG make
127 cat >> ${PRODUCT_DIR}/MAKEINSTALL.LOG <<EOF
128 -------------------
129 Installing tcl...
130 -------------------
131 EOF
132 check_job ${PRODUCT_DIR}/MAKEINSTALL.LOG make install
133
134 (cd ${PRODUCT_DIR}/bin; ln -s tclsh8.3 tclsh)
135 (cd ${PRODUCT_DIR}/lib; ln -s libtcl8.3.so libtcl.so)
136 (cd ${PRODUCT_DIR}/lib; ln -s libtclstub8.3.a libtclstub.a)
137
138 cd ${PRODUCT_DIR}_SRC/tk-8.3.3_SRC/unix
139 cat >> ${PRODUCT_DIR}/CONFIGURE.LOG <<EOF
140 -------------------
141 Configuring tk...
142 -------------------
143 EOF
144 check_job ${PRODUCT_DIR}/CONFIGURE.LOG ./configure --enable-gcc --enable-shared --enable-threads \
145     --prefix=${PRODUCT_DIR} 
146 cat >> ${PRODUCT_DIR}/MAKE.LOG <<EOF
147 -------------------
148 Making tk...
149 -------------------
150 EOF
151 check_job ${PRODUCT_DIR}/MAKE.LOG make
152 cat >> ${PRODUCT_DIR}/MAKEINSTALL.LOG <<EOF
153 -------------------
154 Installing tk...
155 -------------------
156 EOF
157 check_job ${PRODUCT_DIR}/MAKEINSTALL.LOG make install
158
159 (cd ${PRODUCT_DIR}/bin; ln -s wish8.3 wish)
160 (cd ${PRODUCT_DIR}/lib; ln -s libtk8.3.so libtk.so)
161 (cd ${PRODUCT_DIR}/lib; ln -s libtkstub8.3.a libtkstub.a)
162
163 cd ${PRODUCT_DIR}_SRC/tclx-8.3_SRC/unix
164 #VRV - bug in a tclx configure 
165 chmod +w ./configure
166 echo -e '/test "$no_create" = yes || ${CONFIG_SHELL-\/bin\/sh} $CONFIG_STATUS || exit 1\ns/test "$no_create" = yes || ${CONFIG_SHELL-\/bin\/sh} $CONFIG_STATUS || exit 1/test "$no_create" = yes || ${CONFIG_SHELL-\/bin\/sh} $CONFIG_STATUS || exit 0\nwq' | ed - configure 
167 chmod -w ./configure
168 #VRV - bug in a tclx configure 
169 cat >> ${PRODUCT_DIR}/CONFIGURE.LOG <<EOF
170 -------------------
171 Configuring tclx...
172 -------------------
173 EOF
174 check_job ${PRODUCT_DIR}/CONFIGURE.LOG \
175     ./configure --enable-gcc --enable-shared --enable-threads \
176     --prefix=${PRODUCT_DIR}
177 cat >> ${PRODUCT_DIR}/MAKE.LOG <<EOF
178 -------------------
179 Making tclx...
180 -------------------
181 EOF
182 check_job ${PRODUCT_DIR}/MAKE.LOG make
183 cat >> ${PRODUCT_DIR}/MAKEINSTALLEXEC.LOG <<EOF
184 -------------------
185 Installing tclx...
186 -------------------
187 EOF
188 check_job ${PRODUCT_DIR}/MAKEINSTALLEXEC.LOG make install-exec
189
190 (cd ${PRODUCT_DIR}/lib; ln -s libtclx8.3.so libtclx.so)
191 (cd ${PRODUCT_DIR}/lib; ln -s libtclx8.3.a  libtclx.a)
192 (cd ${PRODUCT_DIR}/lib; ln -s libtkx8.3.so  libtkx.so)
193 (cd ${PRODUCT_DIR}/lib; ln -s libtkx8.3.a   libtkx.a)
194
195 #du -sk ${PRODUCT_DIR}_SRC > ${PRODUCT_DIR}/size.log
196 cd ${PRODUCT_DIR}
197
198 # remove sources and temporary files after building
199 if [ ${REMOVE_SRC_TMP} == "TRUE" ] ; then
200     test -d ${PRODUCT_DIR}_SRC && rm -fr ${PRODUCT_DIR}_SRC
201 fi
202
203 # to generate environment scripts
204 try_preinstalled
205 }
206
207 install_binary()
208 {
209 make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" "${INSTALL_PRODUCTS}" ${PRODUCT_TYPE}
210 source ${INSTALL_WORK}/$SHRC
211
212 check_jb tar xfz ${SOURCE_DIR}/${PRODUCT}.tar.gz -C ${INSTALL_ROOT}
213
214 # overriding installation path
215 cd ${PRODUCT_DIR}/lib
216 old_prefix=`grep -e "^TCL_PREFIX='.*'" tclConfig.sh | sed -e "s%^TCL_PREFIX='\(.*\)'%\1%g"`
217 sed -e "s%${old_prefix}%${PRODUCT_DIR}%g" tclConfig.sh > _tclConfig.sh
218 mv -f _tclConfig.sh tclConfig.sh
219 sed -e "s%${old_prefix}%${PRODUCT_DIR}%g" tkConfig.sh > _tkConfig.sh
220 mv -f _tkConfig.sh tkConfig.sh
221
222 # to generate environment scripts
223 try_preinstalled
224 }
225
226 export PROCEDURE=$1;
227 export INSTALL_WORK=$2;
228 export SOURCE_DIR=$3;
229 export INSTALL_ROOT=$4;
230 export PRODUCT_SEQUENCE=$5;
231 export PRODUCT_TYPE=$6;
232 export INSTALL_PRODUCTS=$7;
233 shift
234 REMOVE_SRC_TMP=$8;
235 export PRODUCT="tcltk-8.3.3"
236 export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
237 export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
238 source ./common.sh
239 $PROCEDURE