Salome HOME
fix a bug with 'test -n' option
[tools/install.git] / config_files / gcc-3.2.sh
index 0218684a08073d04d0d378224e3805ff3725ff13..58a88327a0777d6320d9ad4a051bb07966363e58 100755 (executable)
@@ -1,7 +1,10 @@
 #!/bin/sh
 
 check_version(){
-if [ `gcc --version | grep 'gcc (GCC) .*' | cut -b 11-13` == "3.2" ] ;  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
@@ -29,7 +32,15 @@ if [ -z "${gcc_root}" ] ; then
 fi
 if [ -n "${gcc_root}" ] ; then
     gcc_root=`cd ${gcc_root}/..; pwd`
-    if [ "`${gcc_root}/bin/gcc --version | grep 'gcc (GCC) .*' | cut -b 11-13`" = "3.2" ] ; 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 -dumpversion | awk -F. '{if(NF>0) print $1; else print 0}'`
+    min_ver=`gcc -dumpversion | awk -F. '{if(NF>1) print $2; else print 0}'`
+    rel_ver=`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}";  
@@ -44,7 +55,14 @@ export LD_LIBRARY_PATH=${ld_library_path}
 ##
 EOF
        make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-       return 0
+#######       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
+       fi
    fi
 fi
 return 1