# Author : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
# Project : SALOME
# Module : Installation Wizard
-# Copyright : 2002-2006 CEA
+# Copyright : 2002-2007 CEA
#
# This script is the part of the SALOME installation procedure.
#
export SHRC="salome.sh"
export CSHRC="salome.csh"
+
+#this function takes several parameters
+#first parameter contains path to module source filder
+#second parameters is value of $VERSION variables form MODULE.sh file
+
+check_salome_src_version(){
+root_dir=`printenv $1`
+module_version=$2
+
+if [ -n "$root_dir" ]; then
+ cfg_file=configure.ac
+ if [ ! -f ${root_dir}/${cfg_file} ] ; then
+ cfg_file=configure.in.base
+ fi
+ if [ -f ${root_dir}/${cfg_file} ] ; then
+ ver=`grep -e "^AC_INIT" ${root_dir}/${cfg_file} | sed -e "s%.*\[\([[:digit:].]*\)\].*%\1%g"`
+ if [ "$ver" = "${module_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
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
### 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
+#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
-else
-echo 'export LD_LIBRARY_PATH=/usr/lib:${LD_LIBRARY_PATH}' >> ${install_work}/$SHRC 2>/dev/null
+echo 'if [ -e "${LICENSE_FILE}" ] ; then' >> ${install_work}/$SHRC 2>/dev/null
+echo 'export SIMULOGD_LICENSE_FILE=29029@amun' >> ${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
-fi
# 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
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
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
#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
}
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%"`
srcdir=`pwd`
-SALOME_MODULES="`env | awk -F_ '/[[:alnum:]]*_ROOT_DIR/ { print $1 }'`"
+#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`
l=`basename $l`
cd $ldir; cd $d
# 1. 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}[^[:space:]/]*/\(lib\|lib64\)% \1${moddir}/${myldir}%g" $l > $l"_"
+# sed -e "s%[[:space:]]\(-L\)\?[^[:space:]]*${mod}[^[:space:]/]*/lib% \1${moddir}/lib%g" $l > $l"_"
+ sed -e "s%[[:space:]]\(-L\)\?[^[:space:]]*${mod}[^[:space:]/]*/lib% \1${moddir}/lib%g" \
+ -e "s%^libdir='[^[:space:]]*${mod}[^[:space:]]*/\(lib.*\)'%libdir='${moddir}/\1'%g" $l > $l"_"
mv -f $l"_" $l
fi
done
+
# 2. process CAS.CADE dependencies
casdir=`printenv CASROOT`/lib
if [ ! -d ${casdir} ] ; then casdir=`printenv CASROOT`/Linux/lib ; fi
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
+ if test `uname -m` = "x86_64" ; then
+ vtkdir=`printenv VTKHOME`/lib64/vtk-5.0
+ vtkldir=`printenv VTKHOME`/lib64
+ else
+ vtkdir=`printenv VTKHOME`/lib/vtk-5.0
+ vtkldir=`printenv VTKHOME`/lib
+ fi
+ 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
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"_"
- mv -f $l"_" $l
+
+# # 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"_"
+# mv -f $l"_" $l
+
+ # 15. process libxml dependencies
+ libxmldir=`printenv LIBXML_DIR`/lib
+ if [ ! -d ${libxmldir} ] ; then libxmldir=`printenv LIBXML_DIR`/lib ; fi
+ sed -e "s%\(.*\)\([[:space:]].*/lib/libxml2.la[[:space:]]\)\(.*\)%\1 ${libxmldir}/libxml2.la \3%g" \
+ -e "s%-L[^[:space:]]*libxml2[^[:space:]]*/lib%-L${libxmldir}%g" $l > $l"_"
+ mv -f $l"_" $l
+
+ # 16. 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
+
+ # 3. 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
+
+ # 4. 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
+
+
fi
done