From 9caed751db9110c785fd6b1def89d808baa1d907 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Wed, 18 Sep 2019 17:10:15 +0100 Subject: [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 CC: George Dunlap Signed-off-by: Ian Jackson Acked-by: Wei Liu --- 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.39.5