From 8fb7d02686ed85ad799dfd902ea88d977dab1868 Mon Sep 17 00:00:00 2001 From: Russell Bryant Date: Thu, 17 Dec 2015 19:58:33 -0500 Subject: [PATCH] configure: Check for presence of Python 3. The configure script already checked for Python 2 (>=2.7). Add another check for Python 3 (>=3.4). This will be used later for automatically running tests with Python 3 as well if available. Signed-off-by: Russell Bryant Acked-by: Ben Pfaff --- configure.ac | 1 + m4/openvswitch.m4 | 42 ++++++++++++++++++++++++++++++++++++++++++ tests/atlocal.in | 5 +++++ 3 files changed, 48 insertions(+) diff --git a/configure.ac b/configure.ac index 49aa182d4..05d80d5dd 100644 --- a/configure.ac +++ b/configure.ac @@ -95,6 +95,7 @@ OVS_CHECK_OPENSSL OVS_CHECK_LIBCAPNG OVS_CHECK_LOGDIR OVS_CHECK_PYTHON +OVS_CHECK_PYTHON3 OVS_CHECK_FLAKE8 OVS_CHECK_DOT OVS_CHECK_IF_PACKET diff --git a/m4/openvswitch.m4 b/m4/openvswitch.m4 index 0149c3078..fa85d3f30 100644 --- a/m4/openvswitch.m4 +++ b/m4/openvswitch.m4 @@ -358,6 +358,48 @@ else: fi AM_CONDITIONAL([HAVE_PYTHON], [test "$HAVE_PYTHON" = yes])]) +dnl Checks for Python 3.x, x >= 4. +AC_DEFUN([OVS_CHECK_PYTHON3], + [AC_CACHE_CHECK( + [for Python 3.x for x >= 4], + [ovs_cv_python3], + [if test -n "$PYTHON3"; then + ovs_cv_python3=$PYTHON3 + else + ovs_cv_python3=no + for binary in python3 python3.4; do + ovs_save_IFS=$IFS; IFS=$PATH_SEPARATOR + for dir in $PATH; do + IFS=$ovs_save_IFS + test -z "$dir" && dir=. + if test -x "$dir"/"$binary" && "$dir"/"$binary" -c 'import sys +if sys.hexversion >= 0x03040000 and sys.hexversion < 0x04000000: + sys.exit(0) +else: + sys.exit(1)'; then + ovs_cv_python3=$dir/$binary + break 2 + fi + done + done + if test $ovs_cv_python != no; then + if test -x "$ovs_cv_python" && ! "$ovs_cv_python" -c 'import six' >/dev/null 2>&1; then + ovs_cv_python=no + AC_MSG_WARN([Missing Python six library.]) + fi + fi + fi]) + AC_SUBST([HAVE_PYTHON3]) + AM_MISSING_PROG([PYTHON3], [python3]) + if test $ovs_cv_python3 != no; then + PYTHON3=$ovs_cv_python3 + HAVE_PYTHON3=yes + else + HAVE_PYTHON3=no + fi + AM_CONDITIONAL([HAVE_PYTHON3], [test "$HAVE_PYTHON3" = yes])]) + + dnl Checks for dot. AC_DEFUN([OVS_CHECK_FLAKE8], [AC_CACHE_CHECK( diff --git a/tests/atlocal.in b/tests/atlocal.in index 2a163dbb8..f174061d8 100644 --- a/tests/atlocal.in +++ b/tests/atlocal.in @@ -1,6 +1,7 @@ # -*- shell-script -*- HAVE_OPENSSL='@HAVE_OPENSSL@' HAVE_PYTHON='@HAVE_PYTHON@' +HAVE_PYTHON3='@HAVE_PYTHON3@' EGREP='@EGREP@' PERL='@PERL@' @@ -8,6 +9,10 @@ if test x"$PYTHON" = x; then PYTHON='@PYTHON@' fi +if test x"$PYTHON3" = x; then + PYTHON3='@PYTHON3@' +fi + PYTHONPATH=$abs_top_srcdir/python:$abs_top_builddir/tests:$PYTHONPATH export PYTHONPATH -- 2.20.1