[Spice-devel] [spice-gtk 3/3] build-sys: Add real autodetection of python

Christophe Fergeau cfergeau at redhat.com
Fri Nov 15 09:20:17 PST 2013


configure help text says that by default python will be used automatically
if appropriate, however this only means that on !windows and !gtk3, we will
force build of the python bindings, and fail if any needed package to build
them is missing.

This commit improves on the current checks so that when autodetecting
python, if a package is missing then build of the bindings is silently
disabled rather than failing.
---
 configure.ac | 50 ++++++++++++++++++++++++++++++++++++++++++--------
 1 file changed, 42 insertions(+), 8 deletions(-)

diff --git a/configure.ac b/configure.ac
index 7db6c0d..7d95155 100644
--- a/configure.ac
+++ b/configure.ac
@@ -571,20 +571,42 @@ AC_SUBST(VAPIDIR)
 AC_ARG_WITH([python],
   AS_HELP_STRING([--with-python], [build python bindings @<:@default=auto@:>@]),
   [case "$withval" in
-   yes|no) with_python="$withval";;
+   yes|no|auto) with_python="$withval";;
    *) AC_MSG_ERROR([bad value $withval for python option]) ;;
    esac],
   [AS_IF([test "$with_gtk" = "3.0" || test "x$os_win32" = "xyes"],
-         [with_python=no],[with_python=yes])]
+         [with_python=no],[with_python=auto])]
 )
 
-if test "x$with_python" = "xyes"; then
-  PKG_CHECK_MODULES(PYGTK, pygtk-2.0 >= 2.0.0)
+if test "x$with_python" != "xno"; then
+  PKG_CHECK_MODULES(PYGTK, [pygtk-2.0 >= 2.0.0], [have_pygtk=yes], [have_pygtk=no])
   AC_SUBST(PYGTK_CFLAGS)
   AC_SUBST(PYGTK_LIBS)
+  if test "x$have_pygtk" != "xyes"
+  then
+    if test "x$with_python" = "xyes"
+    then
+      AC_MSG_ERROR("No pygtk found")
+    else
+      with_python=no
+    fi
+  fi
+fi
 
-  AM_PATH_PYTHON
+if test "x$with_python" != "xno"; then
+  AM_PATH_PYTHON([], [have_python=yes], [have_python=no])
+  if test "x$have_python" != "xyes"
+  then
+    if test "x$with_python" = "xyes"
+    then
+      AC_MSG_ERROR("No python found")
+    else
+      with_python=no
+    fi
+  fi
+fi
 
+if test "x$with_python" != "xno"; then
   AC_MSG_CHECKING([whether $PYTHON version >= 2.0])
   HAVE_PYTHON_REQUIRED=no
   AM_PYTHON_CHECK_VERSION([$PYTHON], [2.0],
@@ -595,18 +617,30 @@ if test "x$with_python" = "xyes"; then
 
   if test "x$HAVE_PYTHON_REQUIRED" != "xyes"
   then
-    AC_MSG_ERROR("No suitable python found")
+    if test "x$with_python" = "xyes"
+    then
+      AC_MSG_ERROR("No suitable python found")
+    else
+      with_python=no
+    fi
   fi
+fi
 
+if test "x$with_python" != "xno"; then
   AM_CHECK_PYTHON_HEADERS(have_python_headers=yes,have_python_headers=no)
 
   if test "x$have_python_headers" != "xyes"
   then
-    AC_MSG_ERROR("No python development headers found")
+    if test "x$with_python" = "xyes"
+    then
+      AC_MSG_ERROR("No python development headers found")
+    else
+      with_python=no
+    fi
   fi
 fi
 
-AM_CONDITIONAL(WITH_PYTHON, [test "x$with_python" = "xyes"])
+AM_CONDITIONAL(WITH_PYTHON, [test "x$with_python" != "xno"])
 
 
 AC_ARG_ENABLE([dbus],
-- 
1.8.4.2



More information about the Spice-devel mailing list