check_platform

Go to the documentation of this file.
00001 #!/bin/bash
00002 
00003 # Find platform.
00004 #
00005 #check_platform () {
00006 
00007 #WE really needed?
00008 export ARCH="`uname`"
00009 
00010 echo -n  "Checking for OS ... " >&2
00011 if [ ! -s /etc/redhat-release ] ; then
00012    echo " not RedHat-derived. Stop." >&2
00013    exit 1
00014 fi
00015 if [ "x$(grep "Scientific Linux" /etc/redhat-release)" = "x" ] && [ "x$(grep "CentOS" /etc/redhat-release)" = "x" ] ; then   
00016    echo "not SLC! Scientific Linux [345] expected. Stop." >&2
00017    exit 1
00018 fi
00019 
00020 slc_major=$(sed 's/^.*[Rr]elease[ ]\+\([0-9]\+\)\..*$/\1/' < /etc/redhat-release)
00021 echo "SLC "$slc_major >&2
00022 
00023 if [ $slc_major -eq 4 ]; then
00024 
00025     echo -n "Checking for machine ... " >&2
00026     machine=$(uname -m | grep -E "i[3456]86")
00027     if [ "x$machine" = "x" ] ; then
00028         machine=$(uname -m)
00029         case "X${machine}" in 
00030             "Xx86_64") machine="amd64" ;; 
00031         esac
00032     else
00033         machine="ia32"
00034     fi
00035     echo $machine >&2
00036 
00037     gcc_major=$(g++ --version | sed '2,$d;s/^[^ ]\+[ ]\+[^ ]\+[ ]\+\([0-9]\+\)\..*$/\1/')
00038     gcc_minor=$(g++ --version | sed '2,$d;s/^.*GCC)[ ]\+[0-9]\+\.\([0-9]\+\)\.\([0-9]\+\).*$/\1\2/')
00039 
00040     platform="slc${slc_major}_${machine}_gcc${gcc_major}${gcc_minor}"
00041     platform=$(echo ${platform} | sed 's/gcc34[0-9]*$/gcc34/')
00042     echo "Platform is "${platform}
00043 
00044     export SYSNAME=${platform}
00045 
00046 elif [ $slc_major -eq 5 ]; then
00047     
00048     # boot strapping gcc43 compiler
00049 
00050     # get machine arch
00051     if test "x${MACHINE_ARCH}" = "x" ; then
00052         MACHINE_ARCH=`uname -m` ;
00053     fi ;
00054 
00055     # forcing compiler to gcc43 with correct platform
00056     source /afs/cern.ch/sw/lcg/external/gcc/4.3.2/${MACHINE_ARCH}/setup.sh
00057 
00058     echo $PATH
00059     gcc -v
00060 
00061     . ./lcg_platform.sh
00062     lcg_platform >& /dev/null
00063     SYSNAME=$LCG_PLATFORM
00064 
00065 else
00066 
00067     echo "Found SL major version $slc_major: not supported in check_platform"
00068     exit 1
00069 
00070 fi
00071 
00072 echo SYSNAME is $SYSNAME

Generated on Wed Aug 31 09:44:47 2011 for HepMCAnalysis by  doxygen 1.4.7