Re: [PATCH 1/3] configure: Add test for Perl
- From
- Matthias Lederhofer <matled@gmx.net>
- Date
- Jul 6, 2006, 13:58 UTC
- Message-ID
- <E1FyUNT-0007Ko-JR@moooo.ath.cx>
- In-Reply-To
- <20060706161011.ccc2ea1c.tihirvon@gmail.com>
Show 20 quoted lines
> "which" isn't portable. On SunOS 5.9 "which foo" prints error message to
> stdout and returns 0. I use this in my own configure scripts:
>
> path_find()
> {
> if test -x "$1"
> then
> echo "$1"
> return 0
> fi
> for i in `echo $PATH | sed 's/:/ /g'`
> do
> if test -x "$i/$1"
> then
> echo "$i/$1"
> return 0
> fi
> done
> return 1
> }This will not work with spaces in $PATH. I'd do something like this if cut is portable (I have only freebsd and linux to test):
path_find()
{
path="$PATH"
while [ "$path" != "" ]; do
p="`echo $path | cut -d : -f 1`"
if [ "$p" = "$path" ]; then
path=""
else
path="`echo $path | cut -d : -f 2-`"
fi
if [ -x "$p/$1" ]; then
echo "$p/$1"
return 0
fi
done
return 1
}Is there any reason to check the current directory first? "which" doesn't do it for me and without ./ in the front it does not work (without . is not in $PATH).