#!/bin/bash # Copyright (c) 2011 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. # Prints a path to Valgrind binaries to be used for Chromium. # Select the valgrind from third_party/valgrind by default, # but allow users to override this default without editing scripts and # without specifying a commandline option export THISDIR=`dirname $0` # User may use his own valgrind by giving its path with CHROME_VALGRIND env. if [ "$CHROME_VALGRIND" = "" ] then # Guess which binaries we should use by uname case "$(uname -a)" in *Linux*x86_64*) PLATFORM="linux_x64" ;; *Linux*86*) PLATFORM="linux_x86" ;; *Darwin*9.[678].[01]*i386*) # Didn't test other kernels. PLATFORM="mac" ;; *Darwin*10.[0-9].[0-9]*i386*) PLATFORM="mac_10.6" ;; *Darwin*10.[0-9].[0-9]*x86_64*) PLATFORM="mac_10.6" ;; *) echo "Unknown platform:" >&2 uname -a >&2 echo "We'll try to search for valgrind binaries installed in /usr/local" >&2 PLATFORM= esac if [ "$PLATFORM" != "" ] then # The binaries should be in third_party/valgrind # (checked out from deps/third_party/valgrind/binaries). CHROME_VALGRIND="$THISDIR/../../third_party/valgrind/$PLATFORM" # TODO(timurrrr): readlink -f is not present on Mac... if [ "$PLATFORM" != "mac" ] && [ "$PLATFORM" != "mac_10.6" ] then # Get rid of all "../" dirs CHROME_VALGRIND=`readlink -f $CHROME_VALGRIND` fi if ! test -x $CHROME_VALGRIND/bin/valgrind then # We couldn't find the binaries in third_party/valgrind CHROME_VALGRIND="" fi fi if [ "$CHROME_VALGRIND" = "" ] then # Couldn't find the binaries checked out from SVN. # Let's try to find out valgrind in /usr/local. Use the most recent one. # See build-valgrind-for-chromium.sh and its history for these constants. for SVNREV in '10880-redzone' '10880' do CHROME_VALGRIND=/usr/local/valgrind-$SVNREV test -x $CHROME_VALGRIND/bin/valgrind && break done fi fi if ! test -x $CHROME_VALGRIND/bin/valgrind then echo "Could not find valgrind binaries anywhere. Please see" >&2 echo "http://dev.chromium.org/developers/how-tos/using-valgrind/building-valgrind" >&2 echo "for the instructions on how to get them." >&2 exit 1 fi echo $CHROME_VALGRIND