Salome HOME
Replacing CAS-6.1.2a2 by CAS-6.1.2sp1
[tools/install.git] / config_files / CAS-6.1.2sp1.sh
diff --git a/config_files/CAS-6.1.2sp1.sh b/config_files/CAS-6.1.2sp1.sh
new file mode 100755 (executable)
index 0000000..ec9d00c
--- /dev/null
@@ -0,0 +1,229 @@
+#!/bin/bash -noprofile
+
+####################################################################################
+#  File      : CAS-6.1.2sp1.sh
+#  Created   : Thu Dec 18 12:01:00 2002
+#  Author    : Vadim SANDLER, Open CASCADE SAS (vadim.sandler@opencascade.com)
+#  Project   : SALOME
+#  Module    : Installation Wizard
+#  Copyright : 2002-2007 CEA
+#
+#  This script is the part of the SALOME installation procedure.
+#
+####################################################################################
+
+check_version()
+{
+if [ -z "$CASROOT" ]; then
+    return 1
+fi
+check_lib_version ${CASROOT}/inc/Standard_Version.hxx
+if [ "$?" -ne "0" ] ; then
+    return 1
+fi
+ver_major=`grep "#define OCC_VERSION_MAJOR" ${CASROOT}/inc/Standard_Version.hxx | awk '{print $3}'`
+ver_minor=`grep "#define OCC_VERSION_MINOR" ${CASROOT}/inc/Standard_Version.hxx | awk '{print $3}'`
+ver_maint=`grep "#define OCC_VERSION_MAINTENANCE" ${CASROOT}/inc/Standard_Version.hxx | awk '{print $3}'`
+ver="$ver_major.$ver_minor.$ver_maint"
+if [ "$ver" == "6.1.1" ] ; then
+    return 0
+fi
+return 1
+}
+
+print_env()
+{
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export CASROOT=\${INSTALL_ROOT}/${PRODUCT}
+export PATH=\${CASROOT}/bin:\${PATH}
+export LD_LIBRARY_PATH=\${CASROOT}/lib:\${CASROOT}/lin/lib:\${LD_LIBRARY_PATH}
+# Variable for Foundation Classes : 
+export CSF_UnitsLexicon=\${CASROOT}/src/UnitsAPI/Lexi_Expr.dat 
+export CSF_UnitsDefinition=\${CASROOT}/src/UnitsAPI/Units.dat 
+# Variable for DataExchange : 
+export CSF_SHMessage=\${CASROOT}/src/SHMessage
+export CSF_XSMessage=\${CASROOT}/src/XSMessage 
+# Variable for Font : 
+export CSF_MDTVFontDirectory=\${CASROOT}/src/FontMFT 
+export CSF_MDTVTexturesDirectory=\${CASROOT}/src/Textures 
+# Activation of OCCT Kernel multithreading :
+export MMGT_REENTRANT=1
+##
+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(){
+check_version
+if [ $? -eq 0 ] ; then
+    cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF 
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export CASROOT=${CASROOT}
+export PATH=\${CASROOT}/bin:\${PATH}
+export LD_LIBRARY_PATH=\${CASROOT}/lib:\${CASROOT}/lin/lib:\${LD_LIBRARY_PATH}
+# Variable for Foundation Classes : 
+export CSF_UnitsLexicon=\${CASROOT}/src/UnitsAPI/Lexi_Expr.dat 
+export CSF_UnitsDefinition=\${CASROOT}/src/UnitsAPI/Units.dat 
+# Variable for DataExchange : 
+export CSF_SHMessage=\${CASROOT}/src/SHMessage
+export CSF_XSMessage=\${CASROOT}/src/XSMessage 
+# Variable for Font : 
+export CSF_MDTVFontDirectory=\${CASROOT}/src/FontMFT 
+export CSF_MDTVTexturesDirectory=\${CASROOT}/src/Textures 
+##
+EOF
+    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}
+
+# unpack
+check_jb tar xfz ${SOURCE_DIR}/CAS-6.1.2sp1.tar.gz -C ${INSTALL_WORK}
+cd ${PRODUCT_WORK}
+
+# configure
+if test `uname -m` = "x86_64" ; then
+    flags="CFLAGS=-m64 CXXFLAGS=-m64"
+    flags="$flags --with-xmu-include=/usr/X11R6/include/X11"
+    flags="$flags --with-xmu-library=/usr/X11R6/lib64"
+else
+    flags="$flags --with-xmu-include=/usr/X11R6/include/X11"
+    flags="$flags --with-xmu-library=/usr/X11R6/lib"
+fi
+glincdir="`where_gl_includes`"
+if [ $? -eq 0 ] ; then flags="$flags --with-gl-include=$glincdir"; fi
+gllibdir="`where_gl_libs`"
+if [ $? -eq 0 ] ; then flags="$flags --with-gl-library=$gllibdir"; fi
+tcldir="`where_tcl`"
+if [ $? -eq 0 ] ; then flags="$flags --with-tcl=$tcldir"; fi
+tkdir="`where_tk`"
+if [ $? -eq 0 ] ; then flags="$flags --with-tk=$tkdir"; fi
+dpsdir="`where_dps`"
+if [ $? -eq 0 ] ; then flags="$flags --with-dps-include=$dpsdir/include --with-dps-library=$dpsdir/lib"; fi
+flags="$flags --disable-debug --enable-production"
+
+export CASROOT=${PRODUCT_WORK}
+check_job ${PRODUCT_DIR}/CONFIGURE.LOG ./configure $flags --prefix=${PRODUCT_DIR}
+
+# make
+GCC=`which gcc`
+cat >> ${PRODUCT_DIR}/MAKE.LOG <<EOF
+used gcc=$GCC
+EOF
+check_job ${PRODUCT_DIR}/MAKE.LOG make -j4 install-strip
+
+# copy includes
+cp -fr inc ${PRODUCT_DIR}
+cp -f config.h ${PRODUCT_DIR}
+(cd ${PRODUCT_DIR}/inc; ln -fs ../config.h config.h)
+# copy resources
+makedir ${PRODUCT_DIR}/src
+for d in UnitsAPI SHMessage FontMFT Textures XSMessage DrawResources ; do
+    cp -rp src/${d} ${PRODUCT_DIR}/src
+done
+(cd ${PRODUCT_DIR}; mkdir -p Linux; cd Linux; ln -fs ../lib lib; ln -fs ../bin bin)
+(cd ${PRODUCT_DIR}; mkdir -p lin;   cd lin;   ln -fs ../lib lib; ln -fs ../bin bin)
+
+# fix libGL dependencies
+cd ${PRODUCT_DIR}/lib
+gllibdir="`where_gl_libs`"
+if [ "$gllibdir" != "" ] ; then
+    if [ -f ${gllibdir}/libGL.la ] ; then
+       libdir=`grep "libdir=" ${gllibdir}/libGL.la | sed -e "s%libdir='\(.*\)'%\1%"`
+       if [ "`ls $libdir/libGL.so* 2>/dev/null`" ] ; then
+           str_to_replace="${gllibdir}/libGL.la"
+       fi
+    fi
+    if [ "$str_to_replace" == "" ] ; then
+       str_to_replace="-L${gllibdir} -lGL"
+    fi
+    sed -e "s%-lGL%%g"                                                         \
+       -e "s%[^[:space:]]*libGL.la[[:space:]]%%g"                             \
+       -e "s%^dependency_libs='\(.*\)%dependency_libs='${str_to_replace} \1%" \
+       libTKOpenGl.la > libTKOpenGl.la.new
+    mv -f libTKOpenGl.la.new libTKOpenGl.la
+fi
+
+#du -sk ${PRODUCT_WORK} > ${PRODUCT_DIR}/size.log
+cd ${PRODUCT_DIR}; rm -fr ${PRODUCT_WORK}
+print_env
+}
+
+install_binary()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/CAS-6.1.2sp1.tar.gz -C ${INSTALL_ROOT}
+
+# modify *.la files
+ldir=${PRODUCT_DIR}/lib
+if [ ! -d $ldir ]; then ldir=${PRODUCT_DIR}/Linux/lib; fi
+if [ ! -d $ldir ]; then ldir=${PRODUCT_DIR}/lin/lib; fi
+cd $ldir
+# 1. set libdir correctly, correct dependencies, set tcldir correctly
+tcldir=`printenv TCLHOME`
+for l in X `find . -name "*.la"`; do
+    if [ "$l" != "X" ] ; then
+       l=`basename $l`
+       libdir=`grep -e "libdir=.*" $l | sed -e "s/libdir=[\'|\"]\(.*\)[\'|\"]/\1/g"`
+       sed -e "s%${libdir}%${ldir}%g" $l > _$l
+       mv -f _$l $l
+       if [ -n "${tcldir}" ] && [ -d "${tcldir}" ] ; then
+           sed -e "s%-L[^[:space:]]*tcltk[^[:space:]]*/lib%-L${tcldir}/lib%g" $l > _$l
+           mv -f _$l $l
+       fi
+       chmod a+x $l
+    fi
+done
+
+# 2. fix libGL dependencies
+cd $ldir
+gllibdir="`where_gl_libs`"
+if [ "$gllibdir" != "" ] ; then
+    if [ -f ${gllibdir}/libGL.la ] ; then
+       libdir=`grep "libdir=" ${gllibdir}/libGL.la | sed -e "s%libdir='\(.*\)'%\1%"`
+       if [ "`ls $libdir/libGL.so* 2>/dev/null`" ] ; then
+           str_to_replace="${gllibdir}/libGL.la"
+       fi
+    fi
+    if [ "$str_to_replace" == "" ] ; then
+       str_to_replace="-L${gllibdir} -lGL"
+    fi
+    sed -e "s%-lGL%%g"                                                         \
+       -e "s%[^[:space:]]*libGL.la[[:space:]]%%g"                             \
+       -e "s%^dependency_libs='\(.*\)%dependency_libs='${str_to_replace} \1%" \
+       libTKOpenGl.la > libTKOpenGl.la.new
+    mv -f libTKOpenGl.la.new libTKOpenGl.la
+fi
+
+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="cas" ; fi
+export PRODUCT="CAS-6.1.2sp1"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
+source ./common.sh
+$PROCEDURE