[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen staging] tools/configure: Allow specifying python to be found from path



commit 9caed751db9110c785fd6b1def89d808baa1d907
Author:     Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
AuthorDate: Wed Sep 18 17:10:15 2019 +0100
Commit:     Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
CommitDate: Thu Sep 19 12:19:39 2019 +0100

    tools/configure: Allow specifying python to be found from path
    
    ./configure takes a PYTHON=... argument.  You can use this to specify
    the python interpreter.  However, for no good reason, it expects an
    absolute path.
    
    Fix this.  The new logic is:
     * if not set, default to `python'
     * if not absolute, look it up with type -p
     * split into directory and executable name
    
    The results in config/Tools.mk (which contains @PYTHON@ and
    @PYTHONPATH@) are identical for both
      ./configure
      ./configure PYTHON=/usr/bin/python
    so I assert this has no functional change except that now you can say
      ./configure PYTHON=python
    
    In particular you can now say
      ./configure PYTHON=python2
      ./configure PYTHON=python3
    
    The latter is useful if you want python3 (which should probably be the
    default, but does not work right now).  The former is useful if you
    want python2 but your distro has foolishly made "python" refer to
    python3.
    
    CC: Doug Goldstein <cardoe@xxxxxxxxxx>
    CC: George Dunlap <george.dunlap@xxxxxxxxxx>
    Signed-off-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
    Acked-by: Wei Liu <wl@xxxxxxx>
---
 tools/configure    | 13 +++++++------
 tools/configure.ac | 10 +++++-----
 2 files changed, 12 insertions(+), 11 deletions(-)

diff --git a/tools/configure b/tools/configure
index 1baacea9ac..f2c66dfce9 100755
--- a/tools/configure
+++ b/tools/configure
@@ -6925,16 +6925,17 @@ then
     as_fn_error $? "Unable to find bash, please install bash" "$LINENO" 5
 fi;;
 esac
+if test -z "$PYTHON"; then :
+  PYTHON="python"
+fi
 if echo "$PYTHON" | grep -q "^/"; then :
 
-    PYTHONPATH=$PYTHON
-    PYTHON=`basename $PYTHONPATH`
-
-elif test -z "$PYTHON"; then :
-  PYTHON="python"
 else
-  as_fn_error $? "PYTHON specified, but is not an absolute path" "$LINENO" 5
+  PYTHON=`type -p "$PYTHON"`
 fi
+PYTHONPATH=$PYTHON
+PYTHON=`basename $PYTHONPATH`
+
 # Extract the first word of "$PYTHON", so it can be a program name with args.
 set dummy $PYTHON; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
diff --git a/tools/configure.ac b/tools/configure.ac
index 3fe04907a2..674bd5809d 100644
--- a/tools/configure.ac
+++ b/tools/configure.ac
@@ -337,11 +337,11 @@ case "$host_os" in
   freebsd*) ;;
   *) AX_PATH_PROG_OR_FAIL([BASH], [bash]);;
 esac
-AS_IF([echo "$PYTHON" | grep -q "^/"], [
-    PYTHONPATH=$PYTHON
-    PYTHON=`basename $PYTHONPATH`
-],[test -z "$PYTHON"], [PYTHON="python"],
-[AC_MSG_ERROR([PYTHON specified, but is not an absolute path])])
+AS_IF([test -z "$PYTHON"], [PYTHON="python"])
+AS_IF([echo "$PYTHON" | grep -q "^/"], [], [PYTHON=`type -p "$PYTHON"`])
+PYTHONPATH=$PYTHON
+PYTHON=`basename $PYTHONPATH`
+
 AX_PATH_PROG_OR_FAIL([PYTHONPATH], [$PYTHON])
 AX_CHECK_PYTHON_VERSION([2], [6])
 
--
generated by git-patchbot for /home/xen/git/xen.git#staging

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/xen-changelog

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.