Salome HOME
Fix a bug: after installation of omni binaries it is necessary to correct path to...
[tools/install.git] / config_files / tcltk8.3.3.sh
1 #!/bin/sh
2
3 check_version()
4 {
5 if [ -z "$TCLHOME" ]; then
6    echo "TCLHOME doesn't set"
7    return 1
8 fi
9
10 check_lib_version tclsh8.3 ${TCLHOME}/bin
11 if [ "$?" -ne "0" ]; then
12       return 1
13 fi
14
15 check_lib_version wish8.3 ${TCLHOME}/bin
16 if [ "$?" -ne "0" ]; then
17       return 1
18 fi
19
20 check_lib_version libtcl8.3.so
21 if [ "$?" -ne "0" ]; then
22       return 1
23 fi
24
25 check_lib_version libtk8.3.so
26 if [ "$?" -ne "0" ]; then
27       return 1
28 fi
29
30 check_lib_version libtclx8.3.so
31 if [ "$?" -ne "0" ]; then
32       return 1
33 fi
34
35 check_lib_version libtkx8.3.so
36 if [ "$?" -ne "0" ]; then
37       return 1
38 fi
39
40 echo "The product ${PRODUCT} has been already installed on yours system"
41 return 0
42 }
43
44 print_env()
45 {
46 cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
47 #$DELIM ${PRODUCT_TYPE} $DELIM
48 export TCLHOME=\${INSTALL_ROOT}/${PRODUCT}
49 export PATH=\${TCLHOME}/bin:\${PATH}
50 export LD_LIBRARY_PATH=\${TCLHOME}/lib:\${LD_LIBRARY_PATH}
51 export TCLLIBPATH="\${TCLHOME}/lib \${TCLHOME}/lib/tcl8.3 \${TCLHOME}/lib/tk8.3 \${TCLLIBPATH}"
52 ##
53 EOF
54 (test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
55 make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
56 }
57
58 # looks for the native product and collects it's environment (used by make_env())
59 try_native(){
60 tclhome="`find_in_path tclsh ${PATH}`"
61 if [ -z "${tclhome}" ] ; then
62     tclhome="`find_in_path tclsh /usr/bin`"
63 fi
64 if [ -n "${tclhome}" ] ; then
65     tclhome=`cd ${tclhome}/..; pwd`
66     tmp="\${TCLHOME}/bin ${tclhome}/bin \${PATH} ${PATH}";  
67     path=`sort_path ${tmp}`
68     tmp="\${TCLHOME}/lib ${tclhome}/lib \${LD_LIBRARY_PATH} ${LD_LIBRARY_PATH}";  
69     ld_library_path=`sort_path ${tmp}`
70     cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
71 #$DELIM ${PRODUCT_TYPE} $DELIM
72 export TCLHOME=${tclhome}
73 export PATH=${path}
74 export LD_LIBRARY_PATH=${ld_library_path}
75 export TCLLIBPATH="\${TCLHOME}/lib \${TCLHOME}/lib/tcl8.3 \${TCLHOME}/lib/tk8.3 \${TCLLIBPATH}"
76 ##
77 EOF
78     (test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
79     make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
80     return 0
81 fi
82 return 1;
83 }
84
85 try_preinstalled(){
86 try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
87 return $?
88 }
89
90 install_source()
91 {
92 make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
93 source ${INSTALL_WORK}/$SHRC
94
95 makedir ${PRODUCT_DIR}
96
97 check_jb tar xfz ${SOURCE_DIR}/tcl8.3.3.tar.gz -C ${INSTALL_WORK}
98 cd ${INSTALL_WORK}/tcl8.3.3/unix
99 check_job ${PRODUCT_DIR}/CONFIGURE.LOG ./configure --enable-gcc --enable-shared --enable-threads \
100     --prefix=${PRODUCT_DIR}
101 GCC=`which gcc`
102 cat >> ${PRODUCT_DIR}/MAKE.LOG <<EOF
103 used gcc=$GCC
104 EOF
105 check_job ${PRODUCT_DIR}/MAKE.LOG make
106 check_job ${PRODUCT_DIR}/MAKEINSTALL.LOG make install
107
108 ln -s ${PRODUCT_DIR}/bin/tclsh8.3 ${PRODUCT_DIR}/bin/tclsh
109 ln -s ${PRODUCT_DIR}/lib/libtcl8.3.so ${PRODUCT_DIR}/lib/libtcl.so 
110 ln -s ${PRODUCT_DIR}/lib/libtclstub8.3.a ${PRODUCT_DIR}/lib/libtclstub.a
111
112 check_jb tar xfz ${SOURCE_DIR}/tk8.3.3.tar.gz -C ${INSTALL_WORK}
113 cd ${INSTALL_WORK}/tk8.3.3/unix
114 check_job ${PRODUCT_DIR}/CONFIGURE.LOG ./configure --enable-gcc --enable-shared --enable-threads \
115     --prefix=${PRODUCT_DIR} 
116 cat >> ${PRODUCT_DIR}/MAKE.LOG <<EOF
117 used gcc=$GCC
118 EOF
119 check_job ${PRODUCT_DIR}/MAKE.LOG make
120 check_job ${PRODUCT_DIR}/MAKEINSTALL.LOG make install
121
122 ln -s ${PRODUCT_DIR}/bin/wish8.3 ${PRODUCT_DIR}/bin/wish
123 ln -s ${PRODUCT_DIR}/lib/libtk8.3.so ${PRODUCT_DIR}/lib/libtk.so 
124 ln -s ${PRODUCT_DIR}/lib/libtkstub8.3.a ${PRODUCT_DIR}/lib/libtkstub.a
125
126 check_jb tar xfz ${SOURCE_DIR}/tclx8.3.tar.gz -C ${INSTALL_WORK}
127 cd ${INSTALL_WORK}/tclx8.3/unix
128 #VRV - bug in a tclx configure 
129 chmod +w ./configure
130 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 
131 chmod -w ./configure
132 #VRV - bug in a tclx configure 
133 check_job ${PRODUCT_DIR}/CONFIGURE.LOG \
134     ./configure --enable-gcc --enable-shared --enable-threads \
135     --prefix=${PRODUCT_DIR}
136 cat >> ${PRODUCT_DIR}/MAKE.LOG <<EOF
137 used gcc=$GCC
138 EOF
139 check_job ${PRODUCT_DIR}/MAKE.LOG make
140 check_job ${PRODUCT_DIR}/MAKEINSTALLEXEC.LOG make install-exec
141
142 ln -s ${PRODUCT_DIR}/lib/libtclx8.3.so ${PRODUCT_DIR}/lib/libtclx.so
143 ln -s ${PRODUCT_DIR}/lib/libtclx8.3.a ${PRODUCT_DIR}/lib/libtclx.a
144 ln -s ${PRODUCT_DIR}/lib/libtkx8.3.so ${PRODUCT_DIR}/lib/libtkx.so
145 ln -s ${PRODUCT_DIR}/lib/libtkx8.3.a ${PRODUCT_DIR}/lib/libtkx.a
146
147 rm -fr ${INSTALL_WORK}/tcl8.3.3 ${INSTALL_WORK}/tk8.3.3 ${INSTALL_WORK}/tclx8.3
148 print_env
149 }
150
151 install_binary()
152 {
153 make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
154 source ${INSTALL_WORK}/$SHRC
155
156 check_jb tar xfz ${SOURCE_DIR}/tcltk8.3.3.tar.gz -C ${INSTALL_ROOT}
157
158 print_env
159 }
160
161 export PROCEDURE=$1;
162 export INSTALL_WORK=$2;
163 export SOURCE_DIR=$3;
164 export INSTALL_ROOT=$4;
165 export PRODUCT_SEQUENCE=$5;
166 if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="tcl" ; fi
167 export PRODUCT="tcltk8.3.3"
168 export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
169 export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
170 source ./common.sh
171 $PROCEDURE