Salome HOME
Adding tcl 8.4.7 for SL4.3
authormaintenance team <salome-mnt@opencascade.com>
Mon, 25 Sep 2006 14:35:14 +0000 (14:35 +0000)
committermaintenance team <salome-mnt@opencascade.com>
Mon, 25 Sep 2006 14:35:14 +0000 (14:35 +0000)
config_files/tcltk-8.4.7.sh [new file with mode: 0755]

diff --git a/config_files/tcltk-8.4.7.sh b/config_files/tcltk-8.4.7.sh
new file mode 100755 (executable)
index 0000000..792eb7a
--- /dev/null
@@ -0,0 +1,231 @@
+#!/bin/sh
+
+VERSION="8.4"
+
+check_version()
+{
+if [ -z "$TCLHOME" ]; then
+   echo "TCLHOME doesn't set"
+   return 1
+fi
+
+# check tcl version
+tcl_cfg=${TCLHOME}/lib/tclConfig.sh
+if [ ! -f ${tcl_cfg} ]; then tcl_cfg=${TCLHOME}/tcl${VERSION}/lib/tclConfig.sh; fi
+if [ ! -f ${tcl_cfg} ]; then tcl_cfg=${TCLHOME}/lib/tcl${VERSION}/tclConfig.sh; fi
+if [ ! -f ${tcl_cfg} ]; then tcl_cfg=${TCLHOME}/lib/tcl${VERSION}/lib/tclConfig.sh; fi
+if [ -f ${tcl_cfg} ]; then
+    tcl_ver=`awk '/^TCL_VERSION=.*/ {gsub("TCL_VERSION=","",$1);print $1}' ${tcl_cfg} | cut -d "'" -f 2`
+    if [ "$tcl_ver" != ${VERSION} ] ; then
+       return 1
+    fi
+else
+    return 1
+fi
+
+# check tk version
+tk_cfg=${TCLHOME}/lib/tkConfig.sh
+if [ ! -f ${tk_cfg} ]; then tk_cfg=${TCLHOME}/tk${VERSION}/tkConfig.sh; fi
+if [ ! -f ${tk_cfg} ]; then tk_cfg=${TCLHOME}/lib/tk${VERSION}/tkConfig.sh; fi
+if [ ! -f ${tk_cfg} ]; then tk_cfg=${TCLHOME}/lib/tk${VERSION}/lib/tkConfig.sh; fi
+if [ -f ${tk_cfg} ]; then
+    tk_ver=`awk '/^TK_VERSION=.*/ {gsub("TK_VERSION=","",$1);print $1}' ${tk_cfg} | cut -d "'" -f 2`
+    if [ "$tk_ver" != ${VERSION} ] ; then
+       return 1
+    fi
+else
+    return 1
+fi
+
+return 0
+}
+
+print_env()
+{
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export TCLHOME=\${INSTALL_ROOT}/${PRODUCT}
+export PATH=\${TCLHOME}/bin:\${PATH}
+export LD_LIBRARY_PATH=\${TCLHOME}/lib:\${LD_LIBRARY_PATH}
+export TCLLIBPATH="\${TCLHOME}/lib \${TCLHOME}/lib/tcl${VERSION} \${TCLHOME}/lib/tk${VERSION} \${TCLLIBPATH}"
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+tclhome="`find_in_path tclsh ${PATH}`"
+if [ -z "${tclhome}" ] ; then
+    tclhome="`find_in_path tclsh /usr/bin`"
+fi
+if [ -n "${tclhome}" ] ; then
+    tclhome=`cd ${tclhome}/..; pwd`
+    tmp="\${TCLHOME}/bin ${tclhome}/bin \${PATH} ${PATH}";  
+    path=`sort_path ${tmp}`
+    tmp="\${TCLHOME}/lib ${tclhome}/lib \${LD_LIBRARY_PATH} ${LD_LIBRARY_PATH}";  
+    ld_library_path=`sort_path ${tmp}`
+    cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export TCLHOME=${tclhome}
+export PATH=${path}
+export LD_LIBRARY_PATH=${ld_library_path}
+export TCLLIBPATH="\${TCLHOME}/lib \${TCLHOME}/lib/tcl${VERSION} \${TCLHOME}/lib/tk${VERSION} \${TCLLIBPATH}"
+##
+EOF
+    (test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+    make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+    return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+makedir ${PRODUCT_DIR}
+
+check_jb tar xfz ${SOURCE_DIR}/tcl8.4.7.tar.gz -C ${INSTALL_WORK}
+cd ${INSTALL_WORK}/tcl8.4.7/unix
+cat >> ${PRODUCT_DIR}/CONFIGURE.LOG <<EOF
+-------------------
+Configuring tcl...
+-------------------
+EOF
+check_job ${PRODUCT_DIR}/CONFIGURE.LOG ./configure --enable-gcc --enable-shared --enable-threads \
+    --prefix=${PRODUCT_DIR}
+GCC=`which gcc`
+cat >> ${PRODUCT_DIR}/MAKE.LOG <<EOF
+used gcc=$GCC
+-------------------
+Making tcl...
+-------------------
+EOF
+check_job ${PRODUCT_DIR}/MAKE.LOG make
+cat >> ${PRODUCT_DIR}/MAKEINSTALL.LOG <<EOF
+-------------------
+Installing tcl...
+-------------------
+EOF
+check_job ${PRODUCT_DIR}/MAKEINSTALL.LOG make install
+
+(cd ${PRODUCT_DIR}/bin; ln -fs tclsh8.4 tclsh)
+(cd ${PRODUCT_DIR}/lib; ln -fs libtcl8.4.so libtcl.so)
+(cd ${PRODUCT_DIR}/lib; ln -fs libtclstub8.4.a libtclstub.a)
+
+check_jb tar xfz ${SOURCE_DIR}/tk8.4.7.tar.gz -C ${INSTALL_WORK}
+cd ${INSTALL_WORK}/tk8.4.7/unix
+cat >> ${PRODUCT_DIR}/CONFIGURE.LOG <<EOF
+-------------------
+Configuring tk...
+-------------------
+EOF
+check_job ${PRODUCT_DIR}/CONFIGURE.LOG ./configure --enable-gcc --enable-shared --enable-threads \
+    --prefix=${PRODUCT_DIR} --with-tcl=${PRODUCT_DIR}/lib
+cat >> ${PRODUCT_DIR}/MAKE.LOG <<EOF
+-------------------
+Making tk...
+-------------------
+EOF
+check_job ${PRODUCT_DIR}/MAKE.LOG make
+cat >> ${PRODUCT_DIR}/MAKEINSTALL.LOG <<EOF
+-------------------
+Installing tk...
+-------------------
+EOF
+check_job ${PRODUCT_DIR}/MAKEINSTALL.LOG make install
+
+(cd ${PRODUCT_DIR}/bin; ln -fs wish8.4 wish)
+(cd ${PRODUCT_DIR}/lib; ln -fs libtk8.4.so libtk.so)
+(cd ${PRODUCT_DIR}/lib; ln -fs libtkstub8.4.a libtkstub.a)
+
+check_jb tar xfz ${SOURCE_DIR}/tclx8.3.5.tar.gz -C ${INSTALL_WORK}
+
+#vsr: patch tclx 8.3.5 to make it compiliable on Mandriva 2006.0
+cd ${INSTALL_WORK}/tclx8.3.5/unix
+mv Common.mk.in Common.mk.in.orig
+sed -e 's/@DEFS@/-DSTDC_HEADERS=1 -DNDEBUG=1 -DRETSIGTYPE=void/g' Common.mk.in.orig > Common.mk.in
+cd ${INSTALL_WORK}/tclx8.3.5/tcl/unix
+mv tclxConfig.sh.in tclxConfig.sh.in.orig
+sed -e 's/@DEFS@/ -DSTDC_HEADERS=1 -DNDEBUG=1 -DRETSIGTYPE=void /g' tclxConfig.sh.in.orig > tclxConfig.sh.in
+cd ${INSTALL_WORK}/tclx8.3.5/tk/unix
+mv tkxConfig.sh.in tkxConfig.sh.in.orig
+sed -e 's/@DEFS@/ -DSTDC_HEADERS=1 -DNDEBUG=1 -DRETSIGTYPE=void /g' tkxConfig.sh.in.orig > tkxConfig.sh.in
+
+cd ${INSTALL_WORK}/tclx8.3.5/unix
+#VRV - bug in a tclx configure 
+chmod +w ./configure
+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 
+chmod -w ./configure
+#VRV - bug in a tclx configure 
+cat >> ${PRODUCT_DIR}/CONFIGURE.LOG <<EOF
+-------------------
+Configuring tclx...
+-------------------
+EOF
+check_job ${PRODUCT_DIR}/CONFIGURE.LOG \
+    ./configure --enable-gcc --enable-shared --enable-threads \
+    --prefix=${PRODUCT_DIR}  --with-tcl=${PRODUCT_DIR}/lib  --with-tk=${PRODUCT_DIR}/lib
+cat >> ${PRODUCT_DIR}/MAKE.LOG <<EOF
+-------------------
+Making tclx...
+-------------------
+EOF
+check_job ${PRODUCT_DIR}/MAKE.LOG make
+cat >> ${PRODUCT_DIR}/MAKEINSTALLEXEC.LOG <<EOF
+-------------------
+Installing tclx...
+-------------------
+EOF
+check_job ${PRODUCT_DIR}/MAKEINSTALLEXEC.LOG make install-exec
+
+(cd ${PRODUCT_DIR}/lib; ln -fs libtclx8.3.so libtclx.so)
+(cd ${PRODUCT_DIR}/lib; ln -fs libtclx8.3.a  libtclx.a)
+(cd ${PRODUCT_DIR}/lib; ln -fs libtkx8.3.so  libtkx.so)
+(cd ${PRODUCT_DIR}/lib; ln -fs libtkx8.3.a   libtkx.a)
+
+#du -sk ${INSTALL_WORK}/tcl8.4.7 > ${PRODUCT_DIR}/size.log
+#du -sk ${INSTALL_WORK}/tk8.4.7 >> ${PRODUCT_DIR}/size.log
+#du -sk ${INSTALL_WORK}/tclx8.3.5 >> ${PRODUCT_DIR}/size.log
+cd ${PRODUCT_DIR}
+rm -fr ${INSTALL_WORK}/tcl8.4.7 ${INSTALL_WORK}/tk8.4.7 ${INSTALL_WORK}/tclx8.3.5
+print_env
+}
+
+install_binary()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/tcltk-8.4.7.tar.gz -C ${INSTALL_ROOT}
+
+# overriding installation path
+cd ${PRODUCT_DIR}/lib
+old_prefix=`grep -e "^TCL_PREFIX='.*'" tclConfig.sh | sed -e "s%^TCL_PREFIX='\(.*\)'%\1%g"`
+sed -e "s%${old_prefix}%${PRODUCT_DIR}%g" tclConfig.sh > _tclConfig.sh
+mv -f _tclConfig.sh tclConfig.sh
+sed -e "s%${old_prefix}%${PRODUCT_DIR}%g" tkConfig.sh > _tkConfig.sh
+mv -f _tkConfig.sh tkConfig.sh
+
+print_env
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="tcl" ; fi
+export PRODUCT="tcltk-8.4.7"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
+source ./common.sh
+$PROCEDURE