From 1e75b7b01502c0660c419ea6cadb92d86cac354d Mon Sep 17 00:00:00 2001
From: Reid Spencer <rspencer@reidspencer.com>
Date: Fri, 11 Aug 2006 21:53:27 +0000
Subject: [PATCH] Make llvmdo and llvmgrep invulnerable to where they are run
 from by getting the llvm source root from the llvm-config command. The
 dependency now is that the correct llvm-config command is in the path. For
 most developers this is the case.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29630 91177308-0d34-0410-b5e6-96231b3b80d8
---
 utils/llvmdo   | 13 ++++++++++---
 utils/llvmgrep |  3 +--
 2 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/utils/llvmdo b/utils/llvmdo
index 9b1179b44e32..02013ba8b07c 100755
--- a/utils/llvmdo
+++ b/utils/llvmdo
@@ -27,8 +27,8 @@
 ##===----------------------------------------------------------------------===##
 
 if test $# -lt 1 ; then
-  echo "Usage: llvmdo [-dirs "DIRNAMES..."] PROGRAM ARGS...";
-  exit 1;
+  echo "Usage: llvmdo [-dirs "DIRNAMES..."] PROGRAM ARGS..."
+  exit 1
 fi
 
 if test "$1" = "-dirs" ; then
@@ -37,13 +37,20 @@ if test "$1" = "-dirs" ; then
 elif test -z "$LLVMDO_DIRS" ; then
   LLVMDO_DIRS="include lib tools utils runtime autoconf docs test examples projects"
 fi
+if test "$1" = "" ; then
+  echo "Missing program name to run"
+  exit 1
+fi
+
 PROGRAM=`which $1`
 if test ! -x "$PROGRAM" ; then
   echo "Can't execute $1"
   exit 1
 fi
 shift;
-TOPDIR=`pwd | sed -e 's#\(.*/llvm[0-9]*\).*#\1#'`
+
+TOPDIR=`llvm-config --src-root`
+
 if test -d "$TOPDIR" ; then
   cd $TOPDIR
   case `uname -s` in
diff --git a/utils/llvmgrep b/utils/llvmgrep
index e5a08ad00512..d4369c7d7641 100755
--- a/utils/llvmgrep
+++ b/utils/llvmgrep
@@ -18,8 +18,7 @@
 # details.
 ##===----------------------------------------------------------------------===##
 
-TOPDIR=`pwd | sed -e 's#\(.*/llvm[0-9]*\).*#\1#'`
-echo $TOPDIR
+TOPDIR=`llvm-config --src-root`
 if test -d "$TOPDIR" ; then
   cd $TOPDIR
   case `uname -s` in
-- 
GitLab