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

[Xen-devel] [PATCH] 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: Wei Liu <wl@xxxxxxx>
CC: George Dunlap <george.dunlap@xxxxxxxxxx>
Signed-off-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
---
 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])
 
-- 
2.11.0


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

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