]> xenbits.xensource.com Git - people/larsk/xen.git/commitdiff
tools/configure: Allow specifying python to be found from path
authorIan Jackson <ian.jackson@eu.citrix.com>
Wed, 18 Sep 2019 16:10:15 +0000 (17:10 +0100)
committerIan Jackson <ian.jackson@eu.citrix.com>
Thu, 19 Sep 2019 11:19:39 +0000 (12:19 +0100)
./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@cardoe.com>
CC: George Dunlap <george.dunlap@citrix.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
Acked-by: Wei Liu <wl@xen.org>
tools/configure
tools/configure.ac

index 1baacea9aca9edeff900979aea0d443eb3d1e8e9..f2c66dfce9cac1c59004b630cc6da4f10178cf6b 100755 (executable)
@@ -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
index 3fe04907a2b42988d22f0a843f5cf83cac6e7069..674bd5809debc1a28acc95c258babca721cf32af 100644 (file)
@@ -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])