7 if [ -z "$TCLHOME" ]; then
8 echo "TCLHOME doesn't set"
13 tcl_cfg=${TCLHOME}/lib/tclConfig.sh
14 if [ ! -f ${tcl_cfg} ]; then tcl_cfg=${TCLHOME}/tcl${VERSION}/lib/tclConfig.sh; fi
15 if [ ! -f ${tcl_cfg} ]; then tcl_cfg=${TCLHOME}/lib/tcl${VERSION}/tclConfig.sh; fi
16 if [ ! -f ${tcl_cfg} ]; then tcl_cfg=${TCLHOME}/lib/tcl${VERSION}/lib/tclConfig.sh; fi
17 if [ -f ${tcl_cfg} ]; then
18 tcl_ver=`awk '/^TCL_VERSION=.*/ {gsub("TCL_VERSION=","",$1);print $1}' ${tcl_cfg} | cut -d "'" -f 2`
19 if [ "$tcl_ver" != ${VERSION} ] ; then
27 tk_cfg=${TCLHOME}/lib/tkConfig.sh
28 if [ ! -f ${tk_cfg} ]; then tk_cfg=${TCLHOME}/tk${VERSION}/tkConfig.sh; fi
29 if [ ! -f ${tk_cfg} ]; then tk_cfg=${TCLHOME}/lib/tk${VERSION}/tkConfig.sh; fi
30 if [ ! -f ${tk_cfg} ]; then tk_cfg=${TCLHOME}/lib/tk${VERSION}/lib/tkConfig.sh; fi
31 if [ -f ${tk_cfg} ]; then
32 tk_ver=`awk '/^TK_VERSION=.*/ {gsub("TK_VERSION=","",$1);print $1}' ${tk_cfg} | cut -d "'" -f 2`
33 if [ "$tk_ver" != ${VERSION} ] ; then
45 cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
46 #$DELIM ${PRODUCT_TYPE} $DELIM
47 export TCLHOME=\${INSTALL_ROOT}/${PRODUCT}
48 export PATH=\${TCLHOME}/bin:\${PATH}
49 export LD_LIBRARY_PATH=\${TCLHOME}/lib:\${LD_LIBRARY_PATH}
50 export TCLLIBPATH="\${TCLHOME}/lib \${TCLHOME}/lib/tcl${VERSION} \${TCLHOME}/lib/tk${VERSION} \${TCLLIBPATH}"
53 (test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
54 make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
57 # looks for the native product and collects it's environment (used by make_env())
59 tclhome="`find_in_path tclsh ${PATH}`"
60 if [ -z "${tclhome}" ] ; then
61 tclhome="`find_in_path tclsh /usr/bin`"
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}
73 export LD_LIBRARY_PATH=${ld_library_path}
74 export TCLLIBPATH="\${TCLHOME}/lib \${TCLHOME}/lib/tcl${VERSION} \${TCLHOME}/lib/tk${VERSION} \${TCLLIBPATH}"
77 (test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
78 make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
85 try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
91 make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
92 source ${INSTALL_WORK}/$SHRC
94 makedir ${PRODUCT_DIR}
96 check_jb tar xfz ${SOURCE_DIR}/tcl8.4.5.tar.gz -C ${INSTALL_WORK}
97 cd ${INSTALL_WORK}/tcl8.4.5/unix
98 cat >> ${PRODUCT_DIR}/CONFIGURE.LOG <<EOF
103 check_job ${PRODUCT_DIR}/CONFIGURE.LOG ./configure --enable-gcc --enable-shared --enable-threads \
104 --prefix=${PRODUCT_DIR}
106 cat >> ${PRODUCT_DIR}/MAKE.LOG <<EOF
112 check_job ${PRODUCT_DIR}/MAKE.LOG make
113 cat >> ${PRODUCT_DIR}/MAKEINSTALL.LOG <<EOF
118 check_job ${PRODUCT_DIR}/MAKEINSTALL.LOG make install
120 (cd ${PRODUCT_DIR}/bin; ln -fs tclsh8.4 tclsh)
121 (cd ${PRODUCT_DIR}/lib; ln -fs libtcl8.4.so libtcl.so)
122 (cd ${PRODUCT_DIR}/lib; ln -fs libtclstub8.4.a libtclstub.a)
124 check_jb tar xfz ${SOURCE_DIR}/tk8.4.5.tar.gz -C ${INSTALL_WORK}
125 cd ${INSTALL_WORK}/tk8.4.5/unix
126 cat >> ${PRODUCT_DIR}/CONFIGURE.LOG <<EOF
131 check_job ${PRODUCT_DIR}/CONFIGURE.LOG ./configure --enable-gcc --enable-shared --enable-threads \
132 --prefix=${PRODUCT_DIR} --with-tcl=${PRODUCT_DIR}/lib
133 cat >> ${PRODUCT_DIR}/MAKE.LOG <<EOF
138 check_job ${PRODUCT_DIR}/MAKE.LOG make
139 cat >> ${PRODUCT_DIR}/MAKEINSTALL.LOG <<EOF
144 check_job ${PRODUCT_DIR}/MAKEINSTALL.LOG make install
146 (cd ${PRODUCT_DIR}/bin; ln -fs wish8.4 wish)
147 (cd ${PRODUCT_DIR}/lib; ln -fs libtk8.4.so libtk.so)
148 (cd ${PRODUCT_DIR}/lib; ln -fs libtkstub8.4.a libtkstub.a)
150 check_jb tar xfz ${SOURCE_DIR}/tclx8.3.5.tar.gz -C ${INSTALL_WORK}
152 #vsr: patch tclx 8.3.5 to make it compiliable on Mandriva 2006.0
153 cd ${INSTALL_WORK}/tclx8.3.5/unix
154 mv Common.mk.in Common.mk.in.orig
155 sed -e 's/@DEFS@/-DSTDC_HEADERS=1 -DNDEBUG=1 -DRETSIGTYPE=void/g' Common.mk.in.orig > Common.mk.in
156 cd ${INSTALL_WORK}/tclx8.3.5/tcl/unix
157 mv tclxConfig.sh.in tclxConfig.sh.in.orig
158 sed -e 's/@DEFS@/ -DSTDC_HEADERS=1 -DNDEBUG=1 -DRETSIGTYPE=void /g' tclxConfig.sh.in.orig > tclxConfig.sh.in
159 cd ${INSTALL_WORK}/tclx8.3.5/tk/unix
160 mv tkxConfig.sh.in tkxConfig.sh.in.orig
161 sed -e 's/@DEFS@/ -DSTDC_HEADERS=1 -DNDEBUG=1 -DRETSIGTYPE=void /g' tkxConfig.sh.in.orig > tkxConfig.sh.in
163 cd ${INSTALL_WORK}/tclx8.3.5/unix
164 #VRV - bug in a tclx 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
168 #VRV - bug in a tclx configure
169 cat >> ${PRODUCT_DIR}/CONFIGURE.LOG <<EOF
174 check_job ${PRODUCT_DIR}/CONFIGURE.LOG \
175 ./configure --enable-gcc --enable-shared --enable-threads \
176 --prefix=${PRODUCT_DIR} --with-tcl=${PRODUCT_DIR}/lib --with-tk=${PRODUCT_DIR}/lib
177 cat >> ${PRODUCT_DIR}/MAKE.LOG <<EOF
182 check_job ${PRODUCT_DIR}/MAKE.LOG make
183 cat >> ${PRODUCT_DIR}/MAKEINSTALLEXEC.LOG <<EOF
188 check_job ${PRODUCT_DIR}/MAKEINSTALLEXEC.LOG make install-exec
190 (cd ${PRODUCT_DIR}/lib; ln -fs libtclx8.3.so libtclx.so)
191 (cd ${PRODUCT_DIR}/lib; ln -fs libtclx8.3.a libtclx.a)
192 (cd ${PRODUCT_DIR}/lib; ln -fs libtkx8.3.so libtkx.so)
193 (cd ${PRODUCT_DIR}/lib; ln -fs libtkx8.3.a libtkx.a)
195 #du -sk ${INSTALL_WORK}/tcl8.4.5 > ${PRODUCT_DIR}/size.log
196 #du -sk ${INSTALL_WORK}/tk8.4.5 >> ${PRODUCT_DIR}/size.log
197 #du -sk ${INSTALL_WORK}/tclx8.3.5 >> ${PRODUCT_DIR}/size.log
199 rm -fr ${INSTALL_WORK}/tcl8.4.5 ${INSTALL_WORK}/tk8.4.5 ${INSTALL_WORK}/tclx8.3.5
205 make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
206 source ${INSTALL_WORK}/$SHRC
208 check_jb tar xfz ${SOURCE_DIR}/tcltk-8.4.5.tar.gz -C ${INSTALL_ROOT}
210 # overriding installation path
211 cd ${PRODUCT_DIR}/lib
212 old_prefix=`grep -e "^TCL_PREFIX='.*'" tclConfig.sh | sed -e "s%^TCL_PREFIX='\(.*\)'%\1%g"`
213 sed -e "s%${old_prefix}%${PRODUCT_DIR}%g" tclConfig.sh > _tclConfig.sh
214 mv -f _tclConfig.sh tclConfig.sh
215 sed -e "s%${old_prefix}%${PRODUCT_DIR}%g" tkConfig.sh > _tkConfig.sh
216 mv -f _tkConfig.sh tkConfig.sh
222 export INSTALL_WORK=$2;
223 export SOURCE_DIR=$3;
224 export INSTALL_ROOT=$4;
225 export PRODUCT_SEQUENCE=$5;
226 if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="tcl" ; fi
227 export PRODUCT="tcltk-8.4.5"
228 export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
229 export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}