From 6fcbbc393eced8350f6d4679d8070bfc48244aab Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Tue, 20 Jun 2017 08:18:08 -0700 Subject: 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. --- autogen.sh | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) (limited to 'autogen.sh') diff --git a/autogen.sh b/autogen.sh index 9fdd492456f..76fde9e18d2 100755 --- a/autogen.sh +++ b/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` -- cgit v1.2.1