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@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>
This commit is contained in:
Ian Jackson committed 2019-09-19 12:19:39 +01:00
1 parent 88339ae94f
commit 9caed751db
2 files changed
+12 -11

No files matched your search

+7 -6
View File
@@ -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
+5 -5
View 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])
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.