configure: Check for presence of Python 3.
[cascardo/ovs.git] / m4 / openvswitch.m4
index 0149c30..fa85d3f 100644 (file)
@@ -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(