• unknown's avatar
    Fixes after review · b7b8537a
    unknown authored
    BUILD/check-cpu:
      Change variable name
      Add missing fi
      Test with -n instead of -z
    b7b8537a
check-cpu 2.27 KB
#!/bin/sh
#
# Check cpu of current machine and find the
# best compiler optimization flags for gcc
#
#

if test -r /proc/cpuinfo ; then
  cpuinfo="cat /proc/cpuinfo"
  cpu_family=`$cpuinfo | grep 'family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -1`
  if test -z "$cpu_family" ; then
    cpu_family=`$cpuinfo | grep 'cpu' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -1`
  fi
  cpu_vendor=`$cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -1`
  model_name=`$cpuinfo | grep 'model name' | cut -d ':' -f 2 | head -1`
  if test -z "$model_name" ; then
    model_name=`$cpuinfo | grep 'cpu model' | cut -d ':' -f 2 | head -1`
  fi
  if test -z "$model_name" ; then
    model_name=`uname -m`
  fi
else
  # Fallback when there is no /proc/cpuinfo
  case "`uname -s`" in
    FreeBSD)
      cpu_family=`uname -m`;
      model_name=`sysctl -b hw.model`
      ;;
    *)
      cpu_family=`uname -m`;
      model_name="unknown";
      ;;
  esac
fi

cpu_flag=""
cpu_flag_old=""

case "$cpu_family--$model_name" in
  Alpha*EV6*)
    cpu_flag="ev6";
    ;;
  *Xeon*)
    cpu_flag="nocona";
    ;;
  *Pentium*4*Mobile*CPU*)
    cpu_flag="pentium4m";
  ;;
  *Pentium*4*CPU*)
    cpu_flag="pentium4";
    ;;
  *Pentium*III*Mobile*CPU*)
    cpu_flag="pentium3m";
  ;;
  *Pentium*III*CPU*)
    cpu_flag="pentium3";
  ;;
  *Athlon*64*)
    cpu_flag="athlon64";
    cpu_flag_old="athlon";
    ;;
  *Athlon*)
    cpu_flag="athlon";
    ;;
  *Itanium*)
    # Don't need to set any flags for itanium(at the moment)
    cpu_flag="";
    ;;
  *ppc)
    cpu_flag="powerpc";
    ;;
  *)
    cpu_flag="";
    ;;
esac

if test -z "$cpu_flag"; then
  echo "BUILD/check-cpu: Oops, could not findout what kind of cpu this machine is using."
  check_cpu_flags=""
  return
fi

echo "cpu_flag: $cpu_flag"

if test -z "$CC" ; then
  cc="gcc";
else
  cc=$CC

fi

cc_ver=`$cc --version | sed 1q`
cc_verno=`echo $cc_ver | sed -e 's/[^0-9. ]//g;	 s/^ *//g; s/ .*//g'`

case "$cc_ver--$cc_verno" in
  *GCC*--3.4*|*GCC*--3.5*|*GCC*--4.*)
    check_cpu_cflags="-mtune=$cpu_flag -march=$cpu_flag"
    ;;
  *GCC*)
    # Fix for older compiler versions
    if test -n "$cpu_flag_old"; then
      cpu_flag="$cpu_flag_old"
    fi
    check_cpu_cflags="-mcpu=$cpu_flag -march=$cpu_flag"
    ;;
  *)
    check_cpu_cflags=""
    ;;
esac
echo $check_cpu_cflags