Home | History | Annotate | Download | only in valgrind
      1 #!/bin/bash
      2 
      3 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
      4 # Use of this source code is governed by a BSD-style license that can be
      5 # found in the LICENSE file.
      6 
      7 # Prints a path to Valgrind binaries to be used for Chromium.
      8 # Select the valgrind from third_party/valgrind by default,
      9 # but allow users to override this default without editing scripts and
     10 # without specifying a commandline option
     11 
     12 export THISDIR=`dirname $0`
     13 
     14 # User may use his own valgrind by giving its path with CHROME_VALGRIND env.
     15 if [ "$CHROME_VALGRIND" = "" ]
     16 then
     17   # Guess which binaries we should use by uname
     18   case "$(uname -a)" in
     19   *Linux*x86_64*)
     20     PLATFORM="linux_x64"
     21     ;;
     22   *Linux*86*)
     23     PLATFORM="linux_x86"
     24     ;;
     25   *Darwin*9.[678].[01]*i386*)
     26     # Didn't test other kernels.
     27     PLATFORM="mac"
     28     ;;
     29   *Darwin*10.[0-9].[0-9]*i386*)
     30     PLATFORM="mac_10.6"
     31     ;;
     32   *Darwin*10.[0-9].[0-9]*x86_64*)
     33     PLATFORM="mac_10.6"
     34     ;;
     35   *Darwin*11.[0-9].[0-9]*x86_64*)
     36     PLATFORM="mac_10.7"
     37     ;;
     38   *)
     39     echo "Unknown platform:" >&2
     40     uname -a >&2
     41     echo "We'll try to search for valgrind binaries installed in /usr/local" >&2
     42     PLATFORM=
     43   esac
     44 
     45   if [ "$PLATFORM" != "" ]
     46   then
     47     # The binaries should be in third_party/valgrind
     48     # (checked out from deps/third_party/valgrind/binaries).
     49     CHROME_VALGRIND="$THISDIR/../../third_party/valgrind/$PLATFORM"
     50 
     51     # TODO(timurrrr): readlink -f is not present on Mac...
     52     if [ "$PLATFORM" != "mac" ] && \
     53       [ "$PLATFORM" != "mac_10.6" ] && \
     54       [ "$PLATFORM" != "mac_10.7" ]
     55     then
     56       # Get rid of all "../" dirs
     57       CHROME_VALGRIND=`readlink -f $CHROME_VALGRIND`
     58     fi
     59 
     60     if ! test -x $CHROME_VALGRIND/bin/valgrind
     61     then
     62       # We couldn't find the binaries in third_party/valgrind
     63       CHROME_VALGRIND=""
     64     fi
     65   fi
     66 fi
     67 
     68 if ! test -x $CHROME_VALGRIND/bin/valgrind
     69 then
     70   echo "Oops, could not find Valgrind binaries in your checkout." >&2
     71   echo "Please see" >&2
     72   echo "  http://dev.chromium.org/developers/how-tos/using-valgrind/get-valgrind" >&2
     73   echo "for the instructions on how to download pre-built binaries." >&2
     74   exit 1
     75 fi
     76 
     77 echo $CHROME_VALGRIND
     78