Simplify autogen.sh version checking
* autogen.sh (get_version): Simplify and make more reliable by using expr rather than echo | sed. Check exit status of program. Run program in subshell in case it cannot be executed. (check_version): Check exit status of command rather than its output. Check return status of get_version.
This commit is contained in:
parent
efa2b08dcb
commit
6fcbbc393e
1 changed files with 4 additions and 13 deletions
17
autogen.sh
17
autogen.sh
|
@ -45,10 +45,8 @@ autoconf_min=`sed -n 's/^ *AC_PREREQ(\([0-9\.]*\)).*/\1/p' configure.ac`
|
|||
## Also note that we do not handle micro versions.
|
||||
get_version ()
|
||||
{
|
||||
vers=`$1 --version 2> /dev/null`
|
||||
[ x"$vers" = x ] && return 1
|
||||
|
||||
echo "$vers" | sed -n -e '1 s/.* \([0-9][0-9\.]*\).*/\1/p'
|
||||
vers=`($1 --version) 2> /dev/null` && expr "$vers" : '[^
|
||||
]* \([0-9][0-9.]*\).*'
|
||||
}
|
||||
|
||||
## $1 = version string, eg "2.59"
|
||||
|
@ -84,15 +82,8 @@ check_version ()
|
|||
printf '%s' "(using $uprog0=$uprog) "
|
||||
fi
|
||||
|
||||
found=`command -v $uprog 2> /dev/null`
|
||||
[ x"$found" = x ] && return 1
|
||||
|
||||
have_version=`get_version $uprog`
|
||||
|
||||
## We should really check the return status of get_version.
|
||||
## Non-zero means a broken executable, otherwise we failed to
|
||||
## parse the version string.
|
||||
[ x"$have_version" = x ] && return 4
|
||||
command -v $uprog > /dev/null || return 1
|
||||
have_version=`get_version $uprog` || return 4
|
||||
|
||||
have_maj=`major_version $have_version`
|
||||
need_maj=`major_version $2`
|
||||
|
|
Loading…
Add table
Reference in a new issue