Salome HOME
Update copyright notes
[tools/install.git] / config_files / gcc-3.2.sh
index e14807320eb3d34544912710aa3579a752f4935d..7f1710ec9e27531254c53a2085404ede487d3856 100755 (executable)
@@ -1,12 +1,22 @@
 #!/bin/sh
 
+####################################################################################
+#  File      : gcc-3.2.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-2006 CEA
+#
+#  This script is the part of the SALOME installation procedure.
+#
+####################################################################################
+
 check_version(){
-gcc_ver=`gcc -dumpversion`
-gcc_ver_number=`echo $gcc_ver | cut -d . -f 1`
-gcc_ver_subnumber=`echo $gcc_ver | cut -d . -f 2`
-gcc_ver=$(($gcc_ver_number*1000+$gcc_ver_subnumber))
-#if [ `gcc --version | grep 'gcc (GCC) .*' | cut -b 11-13` == "3.2" ] ;  then 
-if [ $gcc_ver -eq 3002 ]  ; then
+# version number is calculated as: <major>*10000+<minor>*100+<release>
+# e.g. for gcc 3.2 it is equal to 30200, for gcc 3.3.2 - 30202
+gcc_ver=`gcc -dumpversion | awk -F[.-] '{v1=0;v2=0;v3=0;if(NF>0)v1=$1;if(NF>1)v2=$2;if(NF>2)v3=$3;print v1*10000+v2*100+v3}'`
+if [ $gcc_ver -eq 30200 ]  ; then
     return 0
 fi
 return 1
@@ -28,18 +38,18 @@ make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
 
 # looks for the native product and collects it's environment (used by make_env())
 try_native(){
-gcc_root="`find_in_path gcc ${PATH}`"
-if [ -z "${gcc_root}" ] ; then
-    gcc_root="`find_in_path gcc /usr/bin`"
-fi
+gcc_root="`where_gcc 3.2.0`"
 if [ -n "${gcc_root}" ] ; then
     gcc_root=`cd ${gcc_root}/..; pwd`
-    gcc_ver=`gcc -dumpversion`
-    gcc_ver_number=`echo $gcc_ver | cut -d . -f 1`
-    gcc_ver_subnumber=`echo $gcc_ver | cut -d . -f 2`
-    gcc_ver=$(($gcc_ver_number*1000+$gcc_ver_subnumber))
-    #if [ "`${gcc_root}/bin/gcc --version | grep 'gcc (GCC) .*' | cut -b 11-13`" = "3.2" ] ; then
-    if [ $gcc_ver -ge 3002 ]  ; then
+    # get version number: <major>, <minor> and <release>
+    # <major> and <minor> numbers are checked strickly, but <release> number can be larger than required one
+    # version number is calculated as: <major>*10000+<minor>*100+<release>
+    # e.g. for gcc 3.2 it is equal to 30200, for gcc 3.3.2 - 30202
+    maj_ver=`${gcc_root}/bin/gcc -dumpversion | awk -F[.-] '{if(NF>0) print $1; else print 0}'`
+    min_ver=`${gcc_root}/bin/gcc -dumpversion | awk -F[.-] '{if(NF>1) print $2; else print 0}'`
+    rel_ver=`${gcc_root}/bin/gcc -dumpversion | awk -F[.-] '{if(NF>2) print $3; else print 0}'`
+    let gcc_ver=$maj_ver*10000+$min_ver*100+$rel_ver
+    if [ $gcc_ver -ge 30200 ]  ; then
        tmp="\${GCC_ROOT}/bin ${gcc_root}/bin \${PATH} ${PATH}";  
        path=`sort_path ${tmp}`
        tmp="\${GCC_ROOT}/lib ${gcc_root}/lib \${LD_LIBRARY_PATH} ${LD_LIBRARY_PATH}";  
@@ -54,7 +64,10 @@ export LD_LIBRARY_PATH=${ld_library_path}
 ##
 EOF
        make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-       if [ $gcc_ver -eq 3002 ]  ; then
+#######       THIS COULD BE USED FOR STRICT COMPARISON  ##############################
+#      if [ $maj_ver -eq 3 ] && [ $min_ver -eq 2 ] && [ $rel_ver -eq 0 ] ;  then 
+######################################################################################
+       if [ $maj_ver -eq 3 ] && [ $min_ver -eq 2 ] && [ $rel_ver -ge 0 ] ;  then 
            return 0
        else
            return 2
@@ -100,7 +113,7 @@ check_job ${PRODUCT_DIR}/CONFIGURE.LOG ${PRODUCT_WORK}/configure --prefix=${PROD
 check_job ${PRODUCT_DIR}/BOOTSTRAP.LOG make bootstrap
 check_job ${PRODUCT_DIR}/INSTALL.LOG make install
 
-rm -fr ${PRODUCT_WORK} ${PRODUCT_WORK}-build
+cd ${PRODUCT_DIR}; rm -fr ${PRODUCT_WORK} ${PRODUCT_WORK}-build
 print_env
 }
 
@@ -120,4 +133,4 @@ export PRODUCT="gcc-3.2"
 export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
 export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
 source ./common.sh
-$PROCEDURE 
\ No newline at end of file
+$PROCEDURE