summaryrefslogtreecommitdiff
path: root/bootstrap
diff options
context:
space:
mode:
authorAkim Demaille <demaille@gostai.com>2009-09-03 10:50:32 +0200
committerAkim Demaille <demaille@gostai.com>2009-09-03 11:10:48 +0200
commit3710dd02e2ade48dc1ad17fad654daef78cf6d6e (patch)
tree40619ff15e752de056cfc33e06d8efdec8c94ff4 /bootstrap
parent9852b61c2b87f619117e4a170c7c34b29a8afc59 (diff)
downloadbison-3710dd02e2ade48dc1ad17fad654daef78cf6d6e.tar.gz
bootstrap: fix/improve find_tool.
* bootstrap (find_tool): Improve error messages. Fix typo about find_tool_names. (cherry-picked from 1deef26d0ca3df3d1c845a8cf41fc0cdef009d79).
Diffstat (limited to 'bootstrap')
-rwxr-xr-xbootstrap20
1 files changed, 14 insertions, 6 deletions
diff --git a/bootstrap b/bootstrap
index 4b0abfa6..4d31cbe4 100755
--- a/bootstrap
+++ b/bootstrap
@@ -142,29 +142,37 @@ vc_ignore=auto
# find_tool ENVVAR NAMES...
# -------------------------
+# Look for some needed program. Use the value of the ENVVAR if set,
+# otherwise look for the first of the NAMES that can be run (i.e.,
+# supports --version). If found, set ENVVAR to the program name,
+# die otherwise.
find_tool ()
{
# Find sha1sum, named gsha1sum on MacPorts.
find_tool_envvar=$1
shift
- if eval test x"\$$find_tool_envvar" = x; then
+ find_tool_names=$@
+ eval "find_tool_res=\$$find_tool_envvar"
+ if test x"$find_tool_res" = x; then
for i
do
if ($i --version </dev/null) >/dev/null 2>&1; then
- find_tool_res=$i
- break
+ find_tool_res=$i
+ break
fi
done
+ else
+ find_tool_error_prefix="\$$find_tool_envvar: "
fi
if test x"$find_tool_res" = x; then
- echo >&2 "$0: $find_tool_name is required"
+ echo >&2 "$0: one of these is required: $find_tool_names"
exit 1
fi
($find_tool_res --version </dev/null) >/dev/null 2>&1 || {
- echo >&2 "$0: cannot run $find_tool_res --version"
+ echo >&2 "$0: ${find_tool_error_prefix}cannot run $find_tool_res --version"
exit 1
}
- eval "$find_tool_envvar=\"$find_tool_res\""
+ eval "$find_tool_envvar=\$find_tool_res"
eval "export $find_tool_envvar"
}