Try to compute a correct VG base directory, regardless of how/where
the script is invoked. See #162092.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8732 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/vg-in-place b/vg-in-place
index 0f58ed1..23e8540 100755
--- a/vg-in-place
+++ b/vg-in-place
@@ -1,14 +1,29 @@
#!/bin/sh
-# This ensures it works when invoked from any directory.
-d="`dirname $0`"
-if [ "$d" = "." ]; then
- d="$PWD"
+# Figure out an absolute pathname to this file, based on
+# $0 (the name of the file) and $PWD.
+
+dollarzero=$0
+
+if [ "${dollarzero#/}" == "${dollarzero}" ];
+then
+ # Relative name
+ scriptname=$PWD/$dollarzero;
+else
+ # Absolute name
+ scriptname=$dollarzero;
fi
+# echo "Name of this script: " $scriptname
+
+vgbasedir=`dirname $scriptname`
+
+# echo "VG base directory: " $vgbasedir
+
+
# We set both VALGRIND_LIB and VALGRIND_LIB_INNER to handle normal and
# 'inner' builds.
-VALGRIND_LIB="$d/.in_place" \
- VALGRIND_LIB_INNER="$d/.in_place" \
- "$d/coregrind/valgrind" "$@"
+VALGRIND_LIB="$vgbasedir/.in_place" \
+ VALGRIND_LIB_INNER="$vgbasedir/.in_place" \
+ "$vgbasedir/coregrind/valgrind" "$@"