diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2017-06-20 08:18:08 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2017-06-20 08:18:55 -0700 |
commit | 6fcbbc393eced8350f6d4679d8070bfc48244aab (patch) | |
tree | d33fc2f9ad373050b25de6429a833bd64d4959e7 /autogen.sh | |
parent | efa2b08dcbf0177ef5bc21216ddd3876a9fc79e3 (diff) | |
download | emacs-6fcbbc393eced8350f6d4679d8070bfc48244aab.tar.gz |
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.
Diffstat (limited to 'autogen.sh')
-rwxr-xr-x | autogen.sh | 17 |
1 files changed, 4 insertions, 13 deletions
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` |