Salome HOME
Initial version
[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 ##
52 EOF
53 (test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
54 make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
55 }
56
57 # looks for the native product and collects it's environment (used by make_env())
58 try_native(){
59 tclhome="`find_in_path tclsh ${PATH}`"
60 if [ -z "${tclhome}" ] ; then
61     tclhome="`find_in_path tclsh /usr/bin`"
62 fi
63 if [ -n "${tclhome}" ] ; then
64     tclhome=`cd ${tclhome}/..; pwd`
65     tmp="\${TCLHOME}/bin ${tclhome}/bin \${PATH} ${PATH}";  
66     path=`sort_path ${tmp}`
67     tmp="\${TCLHOME}/lib ${tclhome}/lib \${LD_LIBRARY_PATH} ${LD_LIBRARY_PATH}";  
68     ld_library_path=`sort_path ${tmp}`
69     cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
70 #$DELIM ${PRODUCT_TYPE} $DELIM
71 export TCLHOME=${tclhome}
72 export PATH=${path}
73 export LD_LIBRARY_PATH=${ld_library_path}
74 ##
75 EOF
76     (test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
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 makedir ${PRODUCT_DIR}
94
95 check_jb tar xfz ${SOURCE_DIR}/tcl8.3.3.tar.gz -C ${INSTALL_WORK}
96 cd ${INSTALL_WORK}/tcl8.3.3/unix
97 check_job ${PRODUCT_DIR}/CONFIGURE.LOG ./configure --enable-gcc --enable-shared --enable-threads \
98     --prefix=${PRODUCT_DIR}
99 GCC=`which gcc`
100 cat >> ${PRODUCT_DIR}/MAKE.LOG <<EOF
101 used gcc=$GCC
102 EOF
103 check_job ${PRODUCT_DIR}/MAKE.LOG make
104 check_job ${PRODUCT_DIR}/MAKEINSTALL.LOG make install
105
106 ln -s ${PRODUCT_DIR}/bin/tclsh8.3 ${PRODUCT_DIR}/bin/tclsh
107 ln -s ${PRODUCT_DIR}/lib/libtcl8.3.so ${PRODUCT_DIR}/lib/libtcl.so 
108 ln -s ${PRODUCT_DIR}/lib/libtclstub8.3.a ${PRODUCT_DIR}/lib/libtclstub.a
109
110 check_jb tar xfz ${SOURCE_DIR}/tk8.3.3.tar.gz -C ${INSTALL_WORK}
111 cd ${INSTALL_WORK}/tk8.3.3/unix
112 check_job ${PRODUCT_DIR}/CONFIGURE.LOG ./configure --enable-gcc --enable-shared --enable-threads \
113     --prefix=${PRODUCT_DIR} 
114 cat >> ${PRODUCT_DIR}/MAKE.LOG <<EOF
115 used gcc=$GCC
116 EOF
117 check_job ${PRODUCT_DIR}/MAKE.LOG make
118 check_job ${PRODUCT_DIR}/MAKEINSTALL.LOG make install
119
120 ln -s ${PRODUCT_DIR}/bin/wish8.3 ${PRODUCT_DIR}/bin/wish
121 ln -s ${PRODUCT_DIR}/lib/libtk8.3.so ${PRODUCT_DIR}/lib/libtk.so 
122 ln -s ${PRODUCT_DIR}/lib/libtkstub8.3.a ${PRODUCT_DIR}/lib/libtkstub.a
123
124 check_jb tar xfz ${SOURCE_DIR}/tclx8.3.tar.gz -C ${INSTALL_WORK}
125 cd ${INSTALL_WORK}/tclx8.3/unix
126 #VRV - bug in a tclx configure 
127 chmod +w ./configure
128 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 
129 chmod -w ./configure
130 #VRV - bug in a tclx configure 
131 check_job ${PRODUCT_DIR}/CONFIGURE.LOG \
132     ./configure --enable-gcc --enable-shared --enable-threads \
133     --prefix=${PRODUCT_DIR}
134 cat >> ${PRODUCT_DIR}/MAKE.LOG <<EOF
135 used gcc=$GCC
136 EOF
137 check_job ${PRODUCT_DIR}/MAKE.LOG make
138 check_job ${PRODUCT_DIR}/MAKEINSTALLEXEC.LOG make install-exec
139
140 ln -s ${PRODUCT_DIR}/lib/libtclx8.3.so ${PRODUCT_DIR}/lib/libtclx.so
141 ln -s ${PRODUCT_DIR}/lib/libtclx8.3.a ${PRODUCT_DIR}/lib/libtclx.a
142 ln -s ${PRODUCT_DIR}/lib/libtkx8.3.so ${PRODUCT_DIR}/lib/libtkx.so
143 ln -s ${PRODUCT_DIR}/lib/libtkx8.3.a ${PRODUCT_DIR}/lib/libtkx.a
144
145 rm -fr ${INSTALL_WORK}/tcl8.3.3 ${INSTALL_WORK}/tk8.3.3 ${INSTALL_WORK}/tclx8.3
146 print_env
147 }
148
149 install_binary()
150 {
151 make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
152 source ${INSTALL_WORK}/$SHRC
153
154 check_jb tar xfz ${SOURCE_DIR}/tcltk8.3.3.tar.gz -C ${INSTALL_ROOT}
155
156 print_env
157 }
158
159 export PROCEDURE=$1;
160 export INSTALL_WORK=$2;
161 export SOURCE_DIR=$3;
162 export INSTALL_ROOT=$4;
163 export PRODUCT_SEQUENCE=$5;
164 if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="tcl" ; fi
165 export PRODUCT="tcltk8.3.3"
166 export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
167 export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
168 source ./common.sh
169 $PROCEDURE