Salome HOME
Update
[tools/install.git] / config_files / common.sh
index e4c88fbd2fbe5088879c48137e88062327587f62..d950f943a6dbe6438f6cfa93335245259c629d84 100755 (executable)
@@ -6,7 +6,7 @@
 #  Author    : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
 #  Project   : SALOME
 #  Module    : Installation Wizard
-#  Copyright : 2002-2006 CEA
+#  Copyright : 2002-2008 CEA
 #
 #  This script is the part of the SALOME installation procedure.
 #
@@ -16,6 +16,45 @@ export DELIM="------"
 export SHRC="salome.sh"
 export CSHRC="salome.csh"
 
+#####################################################
+# !WARNING! This is current SALOME version number 
+####################################################
+export SALOME_VERSION="6.4.0"
+export YACSGEN_VERSION="6.4.0"
+export JOBMANAGER_VERSION="6.4.0"
+
+# Name of the single directory for SALOME modules
+export SDIR_NAME="SALOME_${SALOME_VERSION}"
+
+#this function takes one parameter - path to module source folder
+check_salome_src_version(){
+root_dir=`printenv $1`
+
+if [ -n "$root_dir" ]; then
+    cfg_file=configure.ac
+    if [ ! -f ${root_dir}/${cfg_file} ] ; then
+       cfg_file=configure.in.base
+       else
+           cfg_file=CMakeLists.txt
+       fi
+    if [ -f ${root_dir}/${cfg_file} ] ; then
+       if [ "${cfg_file}" = "CMakeLists.txt" ] ; then
+           ver_maj=`cat ${root_dir}/${cfg_file} | grep SET\(VERSION_MAJOR | sed -e "s%[A-Z_() ]%%g"`
+           ver_min=`cat ${root_dir}/${cfg_file} | grep SET\(VERSION_MINOR | sed -e "s%[A-Z_() ]%%g"`
+           ver_maintenance=`cat ${root_dir}/${cfg_file} | grep SET\(VERSION_MAINTENANCE | sed -e "s%[A-Z_() ]%%g"`
+           ver="${ver_maj}.${ver_min}.${ver_maintenance}"
+       else
+           ver=`grep -e "^AC_INIT" ${root_dir}/${cfg_file} | sed -e "s%.*\[\([[:digit:].]*\)\].*%\1%g"`
+       fi
+
+       if [ "$ver" = "${SALOME_VERSION}" ]; then
+           return 0
+       fi
+    fi
+fi
+return 1
+}
+
 #this function takes several parameters
 #first parameter contains descriptor of output file
 #next parameters is command for execution
@@ -76,6 +115,7 @@ make_env()
 {
 install_root=$1;  shift
 install_work=$1; 
+
 for i in $SHRC $CSHRC ; do
     if [ -e ${install_work}/$i ]; then
        rm ${install_work}/$i
@@ -83,15 +123,15 @@ for i in $SHRC $CSHRC ; do
     touch ${install_work}/$i
 done
 
-if [ $# -eq 3 ] ; then
-    product_name=$3;
+if [ $# -eq 4 ] ; then
+    product_name=$4;
     product_env=${install_work}/env_${product_name}.sh
     (test -e ${product_env} && rm ${product_env} )
 fi
-### !!! writing salome.sh file !!!  -> define INSTALL_ROOT
+### !!! writing salome.sh file !!!  -> define INST_ROOT
 cat >> ${install_work}/$SHRC <<EOF
 #${DELIM} Setting products installation directory ${DELIM}
-export INSTALL_ROOT=${install_root}
+export INST_ROOT=${install_root}
 
 #${DELIM} Environment switch: 0 for SALOME building, 1 for SALOME launching ${DELIM}
 export ENV_FOR_LAUNCH=1
@@ -124,11 +164,44 @@ done
 ### Note, that for performance reasons temporary environment files used during installation procedure itself
 ### are created without using setenv(a|p) aliases.
 
+# 0. add /usr/lib or /usr/lib64 dir to the LD_LIBRARY_PATH
+#if test `uname -m` = "x86_64" ; then
+#echo 'export LD_LIBRARY_PATH=/usr/lib64:${LD_LIBRARY_PATH}' >> ${install_work}/$SHRC 2>/dev/null
+#echo '' >> ${install_work}/$SHRC 2>/dev/null
+#else
+#echo 'export LD_LIBRARY_PATH=/usr/lib:${LD_LIBRARY_PATH}' >> ${install_work}/$SHRC 2>/dev/null
+#echo '' >> ${install_work}/$SHRC 2>/dev/null
+#fi
+
+# Licence activation 
+
+# Source of license environment file
+
+echo '#------ License activation ------' >> ${install_work}/$SHRC 2>/dev/null
+echo 'export LICENSE_FILE=/product/distene/dlim8.var.sh' >> ${install_work}/$SHRC 2>/dev/null
+echo '' >> ${install_work}/$SHRC 2>/dev/null
+echo 'if [ -e "${LICENSE_FILE}" ] ; then' >> ${install_work}/$SHRC 2>/dev/null
+echo 'export SIMULOGD_LICENSE_FILE=29029@soleil' >> ${install_work}/$SHRC 2>/dev/null
+echo 'source ${LICENSE_FILE}' >> ${install_work}/$SHRC 2>/dev/null
+echo 'fi' >> ${install_work}/$SHRC 2>/dev/null
+echo '' >> ${install_work}/$SHRC 2>/dev/null
+
 # 1. first dump all environment files into the $SHRC file
 product_sequence="$2"
+install_products="$3"
 for i in $product_sequence ; do
     env_file=${install_work}/env_${i}.sh
-    ( test -e $env_file && cat $env_file >> ${install_work}/$SHRC 2>/dev/null )
+    _env_file=${install_work}/_env_${i}.sh
+    if [ -e $_env_file ] ; then
+       cat $_env_file >> ${install_work}/$SHRC 2>/dev/null
+    elif [ -e $env_file ] ; then
+       echo $install_products | grep -q "\b${i}\b"
+       if [ $? -eq 1 ] ; then
+           cat $env_file | sed 's/^/## /' >> ${install_work}/$SHRC 2>/dev/null
+       else
+           cat $env_file >> ${install_work}/$SHRC 2>/dev/null
+       fi
+    fi
 done
 
 # 2. writing global functions to _salome.sh file
@@ -304,13 +377,13 @@ sed -e 's%export\([[:blank:]]*\)PYTHONPATH=\$[{]\?PYTHONPATH[}]\?:\(.*\)%exporta
 sed -e 's%export\([[:blank:]]*\)LD_RUN_PATH=\$[{]\?LD_RUN_PATH[}]\?:\(.*\)%exporta\1LD_RUN_PATH \2%g' -e 's%export\([[:blank:]]*\)LD_RUN_PATH=\(.*\):\$[{]\?LD_RUN_PATH[}]\?%exportp\1LD_RUN_PATH \2%g' ${INSTALL_WORK}/_tmp1 > ${INSTALL_WORK}/_tmp2
 
 # Setting "/usr/X11R6/lib" path in LD_LIBRARY_PATH for the libGL.so.1 file
-if test `uname -m` = "x86_64" ; then
-echo '# Setting /usr/X11R6/lib64 path in LD_LIBRARY_PATH for the libGL.so.1 file' >> ${INSTALL_WORK}/_tmp2
-echo 'export LD_LIBRARY_PATH=/usr/X11R6/lib64:${LD_LIBRARY_PATH}' >> ${INSTALL_WORK}/_tmp2
-else
-echo '# Setting /usr/X11R6/lib path in LD_LIBRARY_PATH for the libGL.so.1 file' >> ${INSTALL_WORK}/_tmp2
-echo 'export LD_LIBRARY_PATH=/usr/X11R6/lib:${LD_LIBRARY_PATH}' >> ${INSTALL_WORK}/_tmp2
-fi
+#if test `uname -m` = "x86_64" ; then
+#echo '# Setting /usr/X11R6/lib64 path in LD_LIBRARY_PATH for the libGL.so.1 file' >> ${INSTALL_WORK}/_tmp2
+#echo 'export LD_LIBRARY_PATH=/usr/X11R6/lib64:${LD_LIBRARY_PATH}' >> ${INSTALL_WORK}/_tmp2
+#else
+#echo '# Setting /usr/X11R6/lib path in LD_LIBRARY_PATH for the libGL.so.1 file' >> ${INSTALL_WORK}/_tmp2
+#echo 'export LD_LIBRARY_PATH=/usr/X11R6/lib:${LD_LIBRARY_PATH}' >> ${INSTALL_WORK}/_tmp2
+#fi
 
 cat ${INSTALL_WORK}/_tmp2 >> ${install_work}/_$SHRC
 
@@ -322,18 +395,24 @@ cat ${INSTALL_WORK}/_tmp1 >> ${install_work}/$CSHRC
 sed -e 's%export \([[:alnum:]_[:blank:]]*\)\=%setenv \1 %g' ${INSTALL_WORK}/_tmp2 > ${INSTALL_WORK}/_tmp1 2>/dev/null
 sed -e 's%exporta \([[:alnum:]_[:blank:]]*\)%setenva \1%g'  ${INSTALL_WORK}/_tmp1 > ${INSTALL_WORK}/_tmp2 2>/dev/null
 sed -e 's%exportp \([[:alnum:]_[:blank:]]*\)%setenvp \1%g'  ${INSTALL_WORK}/_tmp2 > ${INSTALL_WORK}/_tmp1 2>/dev/null
-sed -e 's%if \[ -n "\${ENV_FOR_LAUNCH}" \] ; then%if ( ${?ENV_FOR_LAUNCH} ) then%g' ${INSTALL_WORK}/_tmp1 > ${INSTALL_WORK}/_tmp2 2>/dev/null
-sed -e 's%if \[ "\${ENV_FOR_LAUNCH}" == "1" \] ; then%if ( "\${ENV_FOR_LAUNCH}" == "1" ) then%g' ${INSTALL_WORK}/_tmp2 > ${INSTALL_WORK}/_tmp1 2>/dev/null
-sed -e 's%^\([[:blank:]]*\)fi\([[:blank:]]*\)$%\1endif\2%g' ${INSTALL_WORK}/_tmp1 > ${INSTALL_WORK}/_tmp2 2>/dev/null
-cat ${INSTALL_WORK}/_tmp2 >> ${install_work}/_$CSHRC 2>/dev/null
+sed -e 's%if \[ -n "\${PYTHONPATH}" \] ; then%if ( ${?PYTHONPATH} ) then%g' ${INSTALL_WORK}/_tmp1 > ${INSTALL_WORK}/_tmp2 2>/dev/null
+sed -e 's%if \[ -n "\${ENV_FOR_LAUNCH}" \] ; then%if ( ${?ENV_FOR_LAUNCH} ) then%g' ${INSTALL_WORK}/_tmp2 > ${INSTALL_WORK}/_tmp1 2>/dev/null
+sed -e 's%if \[ "\${ENV_FOR_LAUNCH}" =\?= "1" \] ; then%if ( "\${ENV_FOR_LAUNCH}" == "1" ) then%g' ${INSTALL_WORK}/_tmp1 > ${INSTALL_WORK}/_tmp2 2>/dev/null
+sed -e 's%^\([[:blank:]]*\)fi\([[:blank:]]*\)$%\1endif\2%g' ${INSTALL_WORK}/_tmp2 > ${INSTALL_WORK}/_tmp1 2>/dev/null
+sed -e 's%var.sh%var.csh%g' ${INSTALL_WORK}/_tmp1 > ${INSTALL_WORK}/_tmp2 2>/dev/null
+sed -e 's%if \[ -e "\${LICENSE_FILE}" \] ; then%if ( -e ${LICENSE_FILE} ) then%g' ${INSTALL_WORK}/_tmp2 > ${INSTALL_WORK}/_tmp1 2>/dev/null
+
+cat ${INSTALL_WORK}/_tmp1 >> ${install_work}/_$CSHRC 2>/dev/null
 
 rm -f ${INSTALL_WORK}/_tmp1 ${INSTALL_WORK}/_tmp2
 
-if [ $# -eq 4 ] ; then
-    product_dir=$4
+if [ $# -eq 5 ] ; then
+    product_dir=$5
     if [ -e ${product_dir} ] ; then
-       cp -f ${install_work}/_$SHRC  ${product_dir}/$SHRC
-       cp -f ${install_work}/_$CSHRC ${product_dir}/$CSHRC
+       test -e ${product_dir}/$SHRC && mv ${product_dir}/$SHRC ${product_dir}/${SHRC}_`date +%F_%T`
+       cp ${install_work}/_$SHRC  ${product_dir}/$SHRC
+       test -e ${product_dir}/$CSHRC && mv ${product_dir}/$CSHRC ${product_dir}/${CSHRC}_`date +%F_%T`
+       cp ${install_work}/_$CSHRC ${product_dir}/$CSHRC
     fi
 fi
 sed -e 's%setenv ENV_FOR_LAUNCH 1%setenv ENV_FOR_LAUNCH 0%' ${install_work}/_$CSHRC > ${install_root}/env_build.csh
@@ -343,10 +422,13 @@ cp -f ${install_work}/_$CSHRC ${install_root}/env_products.csh
 cp -f ${install_work}/_$SHRC  ${install_root}/env_products.sh
 
 rm -f ${install_work}/_$SHRC ${install_work}/_$CSHRC
-### !!! copying build.csh script
+### !!! copying build.csh and build.sh scripts
 if [ -e ./build.csh ]; then
     cp -f ./build.csh ${install_root}
 fi
+if [ -e ./build.sh ]; then
+    cp -f ./build.sh ${install_root}
+fi
 ### !!! copying release notes
 for p in `ls ../` ; do
     export pdf=`echo ${p} | sed s/[.]/" "/g | awk '{print $2}'`
@@ -363,25 +445,25 @@ done
 #try use already existing product
 try_existing()
 {
-product_dir=$1;  install_root=$2;  install_work=$3;  product_sequence="$4";  product_type=$5
+product_dir=$1;  install_root=$2;  install_work=$3;
+product_sequence="$4"; installed_products="$5";  product_type=$6
 env_file=${product_dir}/env_${product_type}.sh
 if [ -f ${env_file} ] ; then
-    cp -f ${env_file} ${install_work}
-    make_env ${install_root} ${install_work} "${product_sequence}"
+    cp -f ${env_file} ${install_work}/_env_${product_type}.sh
+    make_env ${install_root} ${install_work} "${product_sequence}" "${installed_products}"
     source ${install_work}/$SHRC
     check_version
     if [ $? -eq 0 ] ; then
-       if [ -d ${product_dir} ] && [ -w ${product_dir} ] ; then
-           #makedir ${product_dir}
-           print_env
-           return 0    
-       fi
-    else
-       rm -f ${install_work}/env_${product_type}.sh
-       make_env ${install_root} ${install_work} "${product_sequence}"
+       return 0
     fi
 fi
-return 1;
+echo ${product_type} | grep -q '_src$'
+if [ $? -eq 1 ] ; then
+    print_env_bin
+else
+    print_env_src
+fi
+return 0
 }
 
 #check existance of lib passed as first parameter
@@ -545,7 +627,17 @@ return 1
 }
 
 where_gl_libs(){
-# first search libGL.la file and check if this file is correct
+# search libGL.so* file and correct libGL.la in the same directory
+for d in /usr/X11R6/lib64 /usr/lib64 /usr/X11R6/lib /usr/lib ; do
+    if [ "`ls ${d}/libGL.so* 2>/dev/null`" ] && [ -f ${d}/libGL.la ]; then
+       libdir=`grep "libdir=" ${d}/libGL.la | sed -e "s%libdir='\(.*\)'%\1%" -e "s%/*$%%g"`
+       if [ "$libdir" == "$d" ] ; then
+           echo "$d"
+           return 0
+       fi
+    fi
+done
+# search libGL.la file and check if this file is correct
 for d in /usr/X11R6/lib64 /usr/lib64 /usr/X11R6/lib /usr/lib ; do
     if [ -f ${d}/libGL.la ] ; then
        libdir=`grep "libdir=" ${d}/libGL.la | sed -e "s%libdir='\(.*\)'%\1%"`
@@ -572,81 +664,164 @@ if [ -z "$ldir" ] || [ ! -d "$ldir" ]; then return 1; fi
 
 srcdir=`pwd`
 
-SALOME_MODULES="`env | awk -F_ '/[[:alnum:]]*_ROOT_DIR/ { print $1 }'`"
+SALOME_MODULES="`env | awk -F_ '/[a-zA-Z0-9]*_ROOT_DIR/ { print $1 }'`"
 
 cd $ldir
 ldir=`pwd`
 la_files=`find . -name "*.la"`
 
 for l in X ${la_files}; do
+
 if [ "$l" != "X" ] ; then
     d=`dirname $l`
     l=`basename $l`
     cd $ldir; cd $d
-    # 1. process salome modules dependencies
+
+    # . process salome modules dependencies
     for mod in $SALOME_MODULES; do
        moddir=`printenv ${mod}_ROOT_DIR`
        if [ -n "${moddir}" ] ; then
-           #echo $l $mod $moddir
-           sed -e "s%[[:space:]]\(-L\)\?[^[:space:]]*${mod}[^[:space:]/]*/lib% \1${moddir}/lib%g" $l > $l"_"
+           sed -e "s%[[:space:]]\(-L\)\?[^[:space:]]*${mod}[1]\?/lib% \1${moddir}/lib%g" \
+               -e "s%^libdir='[^[:space:]]*${mod}[1]\?/\(lib.*\)'%libdir='${moddir}/\1'%g" $l > $l"_"
            mv -f $l"_" $l
        fi
     done
-    # 2. process CAS.CADE dependencies
+
+   # . process CASCASDE products dependencies
+    netgendir=`printenv NETGENHOME`
+    freetypedir=`printenv FREETYPEDIR`
+    ftgldir=`printenv FTGLDIR`
+    gl2psdir=`printenv GL2PSHOME`
+    freeimagedir=`printenv FREEIMAGEDIR`
+    tbbbasedir=`printenv TBBHOME`
+    cgnslibdir=`printenv CGNSHOME`
+
+    TBBKERNEL='cc4.1.0_libc2.4_kernel2.6.16.21'
+    if test `uname -m` = "x86_64" ; then
+       export TBBMODE="intel64/$TBBKERNEL"
+    else
+       export TBBMODE="ia32/$TBBKERNEL"
+    fi
+
+    tbbdir=${tbbbasedir}/lib/$TBBMODE
+
+       if [ -n "${netgendir}" ] && [ -d "${netgendir}" ] ; then
+           sed -e "s%\(.*\)\([[:space:]].*-L.*/netgen-[0-9]\.[0-9]\.[0-9][0-9]/lib[[:space:]]\)\(.*\)%\1 -L${netgendir}/lib \3%g" \
+               -e 's%\(.*\)\([[:space:]].*libnglib.la\)\(.*\)%\1 -lnglib \3%g' $l > _$l
+           mv -f _$l $l
+       fi
+       chmod a+x $l    
+       if [ -n "${freetypedir}" ] && [ -d "${freetypedir}" ] ; then
+           sed -e "s%\(.*\)\([[:space:]].*-L.*/freetype-[0-9]\.[0-9]\.[0-9]/lib[[:space:]]\)\(.*\)%\1 -L${freetypedir}/lib \3%g" \
+               -e 's%\(.*\)\([[:space:]].*libfreetype.la\)\(.*\)%\1 -lfreetype \3%g' $l > _$l
+           mv -f _$l $l
+       fi
+       chmod a+x $l
+       if [ -n "${ftgldir}" ] && [ -d "${ftgldir}" ] ; then
+           sed -e "s%\(.*\)\([[:space:]].*-L.*/ftgl-[0-9]\.[0-9]\.[0-9]/lib[[:space:]]\)\(.*\)%\1 -L${ftgldir}/lib \3%g" \
+               -e 's%\(.*\)\([[:space:]].*libftgl.la\)\(.*\)%\1 -lftgl \3%g' $l > _$l
+           mv -f _$l $l
+       fi
+       chmod a+x $l
+       if [ -n "${gl2psdir}" ] && [ -d "${gl2psdir}" ] ; then
+           sed -e "s%\(.*\)\([[:space:]].*-L.*/gl2ps-[0-9]\.[0-9]\.[0-9]/lib[[:space:]]\)\(.*\)%\1 -L${gl2psdir}/lib \3%g" $l > _$l
+           mv -f _$l $l
+       fi
+       chmod a+x $l
+       if [ -n "${freeimagedir}" ] && [ -d "${freeimagedir}" ] ; then
+           sed -e "s%\(.*\)\([[:space:]].*-L.*/freeimage-[0-9]\.[0-9]\.[0-9]/lib[[:space:]]\)\(.*\)%\1 -L${freeimagedir}/lib \3%g" $l > _$l
+           mv -f _$l $l
+       fi
+       chmod a+x $l
+       if [ -n "${freeimagedir}" ] && [ -d "${freeimagedir}" ] ; then
+           sed -e "s%\(.*\)\([[:space:]].*-L.*/freeimage-[0-9]\.[0-9][0-9]\.[0-9]/lib[[:space:]]\)\(.*\)%\1 -L${freeimagedir}/lib \3%g" $l > _$l
+           mv -f _$l $l
+       fi
+       chmod a+x $l
+       if [ -n "${tbbdir}" ] && [ -d "${tbbdir}" ] ; then
+           sed -e "s%\(.*\)\([[:space:]].*-L.*/tbb[^[:space:]]*/lib[^[:space:]]*\)\(.*\)%\1 -L${tbbdir} \3%g" $l > _$l
+           mv -f _$l $l
+       fi
+       chmod a+x $l
+       if [ -n "${cgnslibdir}" ] && [ -d "${cgnslibdir}" ] ; then
+           sed -e "s%\(.*\)\([[:space:]].*-L.*/cgnslib-[0-9]\.[0-9]\.[0-9]/lib[[:space:]]\)\(.*\)%\1 -L${cgnslibdir}/lib \3%g" $l > _$l
+           mv -f _$l $l
+       fi
+       chmod a+x $l
+
+    # . process CAS.CADE dependencies
     casdir=`printenv CASROOT`/lib
     if [ ! -d ${casdir} ] ; then casdir=`printenv CASROOT`/Linux/lib ; fi
     if [ ! -d ${casdir} ] ; then casdir=`printenv CASROOT`/lin/lib ; fi
     if [ -n "${CASROOT}" ] && [ -d "${casdir}" ] ; then
-       # echo $l $CASROOT $casdir
-       sed -e "s%[[:space:]]\(-L\)\?[^[:space:]]*\(OCT\|CAS\)[^[:space:]/]*/Linux/lib% \1${casdir}%g" \
-           -e "s%[[:space:]]\(-L\)\?[^[:space:]]*\(OCT\|CAS\)[^[:space:]/]*/lin/lib% \1${casdir}%g"   \
-           -e "s%[[:space:]]\(-L\)\?[^[:space:]]*\(OCT\|CAS\)[^[:space:]/]*/lib% \1${casdir}%g" $l > $l"_"
+        sed -e "s%-L[^[:space:]]*OCCT[^[:space:]]*/install/lib%-L${casdir}%g" \
+           -e "s%[^[:space:]]*OCCT[^[:space:]]*/install/lib/%${casdir}/%g"   \
+           -e "s%[[:space:]]-L[^[:space:]]*\(OCCT\|CAS\)[^[:space:]]*/lib\?% -L${CASROOT}/lib%g" \
+           -e "s%[[:space:]][^[:space:]]*\(OCCT\|CAS\)[^[:space:]]*/lib/lib\?% ${CASROOT}/lib/lib%g" $l > $l"_"
        mv -f $l"_" $l
     fi
-    # 3. process omniORB dependencies
+
+    # . process omniORB dependencies
     omnidir=`printenv OMNIORBDIR`/lib/i586_linux_2.0_glibc2.1
     if [ ! -d ${omnidir} ] ; then omnidir=`printenv OMNIORBDIR`/lib ; fi
     if [ -n "${OMNIORBDIR}" ] && [ -d "${omnidir}" ] ; then
        # echo $l $OMNIORBDIR $omnidir
-       sed -e "s%-L[^[:space:]]*omni[^[:space:]]*%-L${omnidir}%g" $l > $l"_"
+       sed -e "s%-L[^[:space:]]*omni[^[:space:]]*%-L${omnidir}%g" \
+           -e "s%-R[^[:space:]]*omni[^[:space:]]*%-R${omnidir}%g" $l > $l"_"
        mv -f $l"_" $l
     fi
-    # 4. process VTK dependencies
-    vtkdir=`printenv VTKHOME`/lib/vtk
-    if [ -n "${VTKHOME}" ] && [ -d "${vtkdir}" ] ; then
+
+    # . process VTK dependencies
+    vtkpath=`printenv VTKHOME`
+    if [ `uname -m` = "x86_64" ] && [ -d ${vtkpath}/lib64 ] ; then
+       LIB_PREFIX=64
+    elif [ -d ${vtkpath}/lib ] ; then
+       LIB_PREFIX=""
+    else
+       LIB_PREFIX=64
+    fi
+    vtkldir=${vtkpath}/lib${LIB_PREFIX}
+    vtkdir=${vtkldir}/vtk-5.0
+    if [ -n "${VTKHOME}" ] && [ -d "${vtkdir}" ] && [ -d "${vtkldir}" ] ; then
        # echo $l $VTKHOME $vtkdir
-       sed -e "s%-L[^[:space:]]*VTK[^[:space:]]*/lib/vtk%-L${vtkdir}%g" $l > $l"_"
+       sed -e "s%-L[^[:space:]]*VTK[^[:space:]]*/\(lib\|lib64\)/vtk\-5\.0%-L${vtkdir}%g" \
+           -e "s%-L[^[:space:]]*VTK[^[:space:]]*/\(lib\|lib64\)%-L${vtkldir}%g" $l > $l"_"
        mv -f $l"_" $l
     fi
-    # 5. process HDF dependencies
+
+    # . process HDF dependencies
     hdfdir=`printenv HDF5HOME`/lib
     if [ -n "${HDF5HOME}" ] && [ -d "${hdfdir}" ] ; then
        # echo $l $HDF5HOME $hdfdir
        sed -e "s%[[:space:]]\(-L\)\?[^[:space:]]*hdf[^[:space:]/]*/lib% \1${hdfdir}%g" $l > $l"_"
        mv -f $l"_" $l
     fi
-    # 6. process MED dependencies
+
+    # . process MED dependencies
     meddir=`printenv MED2HOME`/lib
     if [ -n "${MED2HOME}" ] && [ -d "${meddir}" ] ; then
        # echo $l $MED2HOME $meddir
        sed -e "s%[[:space:]]\(-L\)\?[^[:space:]]*med[^[:space:]/]*/lib% \1${meddir}%g" $l > $l"_"
        mv -f $l"_" $l
     fi
-    # 7. process qwt dependencies
+
+    # . process qwt dependencies
     qwtdir=`find_in_path libqwt.so ${LD_LIBRARY_PATH}`
     if [ -n "${qwtdir}" ] && [ -d "${qwtdir}" ] ; then
        # echo $l $qwtdir
        sed -e "s%[[:space:]]\(-L\)\?[^[:space:]]*qwt[^[:space:]/]*/lib% \1${qwtdir}%g" $l > $l"_"
        mv -f $l"_" $l
     fi
-    # 8. process qt dependencies
+
+    # . process qt dependencies
     qtdir=`printenv QTDIR`/lib
     if [ -n "${QTDIR}" ] && [ -d "${qtdir}" ] ; then
        # echo $l $QTDIR $qtdir
        sed -e "s%[[:space:]]\(-L\)\?[^[:space:]]*qt[^[:space:]/]*/lib% \1${qtdir}%g" $l > $l"_"
        mv -f $l"_" $l
     fi
-    # 9. process python dependencies
+
+    # . process python dependencies
     where_python=`which python`                 # e.g. /usr/bin/python
     if [ -n "$where_python" ] ; then
         where_python=`dirname $where_python`    # --> /usr/bin
@@ -656,40 +831,109 @@ if [ "$l" != "X" ] ; then
        sed -e "s%-L[^[:space:]]*python[0-9]\.[0-9]\([^[:space:]]*\)%-L${where_python}/lib/python${python_version}\1%g" $l > $l"_"
        mv -f $l"_" $l
     fi
-    # 10. process sip dependencies
+
+    # . process sip dependencies
     sipdir=`find_in_path sip.so ${LD_LIBRARY_PATH}`
     if [ -n "${sipdir}" ] && [ -d "${sipdir}" ] ; then
        # echo $l $sipdir
        sed -e "s%-L[^[:space:]]*sip[^[:space:]]*%-L${sipdir}%g" $l > $l"_"
        mv -f $l"_" $l
     fi
-    # 11. process PyQt dependencies
-    pyqtdir=`find_in_path qt.so ${LD_LIBRARY_PATH}`
+
+    # . process PyQt dependencies
+    pyqtdir=`find_in_path Qt.so ${LD_LIBRARY_PATH}`
     if [ -n "${pyqtdir}" ] && [ -d "${pyqtdir}" ] ; then
        # echo $l $pyqtdir
        sed -e "s%-L[^[:space:]]*PyQt[^[:space:]]*%-L${pyqtdir}%g" $l > $l"_"
        mv -f $l"_" $l
     fi
-    # 12. process tcl/tk dependencies
+
+    # . process tcl/tk dependencies
     tcldir=`printenv TCLHOME`/lib
     if [ -n "${tcldir}" ] && [ -d "${tcldir}" ] ; then
        # echo $l $TCLHOME $tcldir
        sed -e "s%-L[^[:space:]]*tcltk[^[:space:]]*/lib%-L${tcldir}%g" $l > $l"_"
        mv -f $l"_" $l
     fi
-    # 13. process boost dependencies
+
+    # . process boost dependencies
     boostdir=`printenv BOOSTDIR`/lib
     if [ -n "${boostdir}" ] && [ -d "${boostdir}" ] ; then
        # echo $l $BOOSTDIR $boostdir
        sed -e "s%-L[^[:space:]]*boost[^[:space:]]*/lib%-L${boostdir}%g" $l > $l"_"
        mv -f $l"_" $l
     fi
-    # 14. modify libdir
-    #sed -e "s%^libdir='\(.*\)'%libdir='${PRODUCT_DIR}/lib/salome'%g" $l > $l"_"
-    mod=`basename $ldir | awk -F_ '{print $1}'`
-    moddir=`printenv ${mod}_ROOT_DIR`
-    sed -e "s%^libdir='[^[:space:]]*${mod}[^[:space:]]*/\(lib.*\)'%libdir='${moddir}/\1'%g" $l > $l"_"
+
+    # . process blsurf dependencies
+    blsurfdir=`printenv BLSURFHOME`/lib
+    if [ -n "${blsurfdir}" ] && [ -d "${blsurfdir}" ] ; then
+       # echo $l $BOOSTDIR $boostdir
+       sed -e "s%-L[^[:space:]]*BLSurf[^[:space:]]*/lib%-L${blsurfdir}%g" $l > $l"_"
+       mv -f $l"_" $l
+    fi
+
+    # . process libxml dependencies
+    libxmldir=`printenv LIBXML_DIR`/lib
+    if [ ! -d ${libxmldir} ] ; then libxmldir=`printenv  LIBXML_DIR`/lib ; fi
+    sed -e "s%[[:space:]]\(-L\)\?[^[:space:]]*libxml2-[0-9]\.[0-9]\.[0-9]/lib% \1${libxmldir}%g" $l > $l"_"
+    mv -f $l"_" $l     
+    sed -e "s%[[:space:]]\(-L\)\?[^[:space:]]*libxml2/lib% \1${libxmldir}%g" $l > $l"_"
     mv -f $l"_" $l
+
+    # . process metis dependencies
+    metisdir=`printenv METISDIR`
+    if [ ! -d ${metisdir} ] ; then metisdir=`printenv  METISDIR` ; fi
+    sed -e "s%-L[^[:space:]]*metis[^[:space:]]*%-L${metisdir}%g" $l > $l"_"
+    mv -f $l"_" $l     
+
+    # . process scotch dependencies
+    scotchdir=`printenv SCOTCHDIR`/bin
+    if [ ! -d ${scotchdir} ] ; then scotchdir=`printenv SCOTCHDIR`/bin ; fi
+    sed    -e "s%-L[^[:space:]]*scotch[^[:space:]]*/bin%-L${scotchdir}%g" $l > $l"_"
+    mv -f $l"_" $l     
+    scotchlib=`printenv SCOTCHDIR`/lib
+    if [ ! -d ${scotchlib} ] ; then scotchlib=`printenv SCOTCHDIR`/lib ; fi
+    sed    -e "s%-L[^[:space:]]*scotch[^[:space:]]*/lib%-L${scotchlib}%g" $l > $l"_"
+    mv -f $l"_" $l     
+
+    # . process libGL.la dependencies
+    if test `uname -m` = "x86_64" ; then
+      libGLpath=/usr/lib64/libGL.la
+    else
+      libGLpath=/usr/lib/libGL.la
+    fi
+    sed -e "s%$libGLpath%""%g" $l > $l"_"
+    mv -f $l"_" $l
+
+    # . process graphviz dependencies
+    graphvizdir=`printenv GRAPHVIZHOME`/lib
+    if [ ! -d ${graphvizdir} ] ; then graphvizdir=`printenv GRAPHVIZHOME`/lib ; fi
+    sed -e "s%[[:space:]]\(-L\)\?[^[:space:]]*graphviz-[0-9]\.[0-9]\+\.[0-9]/lib% \1${graphvizdir}%g" \
+       -e "s%[[:space:]]\(-L\)\?[^[:space:]]*graphviz/lib% \1${graphvizdir}%g" $l > $l"_"
+    chmod -f --reference=$l $l"_"
+    mv -f $l"_" $l     
+    # . process QScintilla dependencies
+    qscintilladir=`printenv QSCINTILLA_DIR`/lib
+    if [ ! -d ${qscintilladir} ] ; then qscintilladir=`printenv QSCINTILLA_DIR`/lib ; fi
+    sed -e "s%[[:space:]]\(-L\)\?[^[:space:]]*QScintilla-[0-9]\.[0-9]\(\.[0-9]\)\?/lib% \1${qscintilladir}%g" $l > $l"_"
+    chmod -f --reference=$l $l"_"
+    mv -f $l"_" $l     
+
+    # . process expat-2.0.1 dependencies
+    expatdir=${EXPAT_ROOT}/lib
+    sed -e "s%-L[^[:space:]]*expat[^[:space:]]*/lib%-L${expatdir}%g" \
+       -e "s%[^[:space:]]*expat[^[:space:]]*/lib/libexpat.la%-lexpat%g" $l > $l"_"
+    chmod -f --reference=$l $l"_"
+    mv -f $l"_" $l     
+
+    # . process ParaView dependencies
+    paraviewdir=`printenv PVHOME`/lib
+    if [ ! -d ${paraviewdir} ] ; then paraviewdir=`printenv PVHOME`/lib ; fi
+    sed -e "s%[[:space:]]\(-L\)\?[^[:space:]]*ParaView-[0-9]\.[0-9]\+\.[0-9]/lib% \1${paraviewdir}%g" $l > $l"_"
+    chmod -f --reference=$l $l"_"
+    mv -f $l"_" $l 
+
 fi
 done