[Libguestfs] [PATCH] Use pkg-config for Python

Hilko Bengen bengen at hilluzination.de
Thu May 16 20:13:50 UTC 2013


At least libpython2.7-dev and libpython3.3-dev on current
Debian/unstable ship with pkg-config files. As with the pkg-config
check for Lua, we check for versioned and an unversioned .pc files.

---
 configure.ac       |   35 ++++++++++++++++++++---------------
 python/Makefile.am |    2 +-
 2 files changed, 21 insertions(+), 16 deletions(-)

diff --git a/configure.ac b/configure.ac
index c809741..0aa1716 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1106,7 +1106,6 @@ AM_CONDITIONAL([HAVE_PERL],
 dnl Check for Python (optional, for Python bindings).
 PYTHON_PREFIX=
 PYTHON_VERSION=
-PYTHON_INCLUDEDIR=
 PYTHON_INSTALLDIR=
 
 AC_ARG_ENABLE([python],
@@ -1117,23 +1116,30 @@ AS_IF([test "x$enable_python" != "xno"],[
     AC_CHECK_PROG([PYTHON],[python],[python],[no])
 
     if test "x$PYTHON" != "xno"; then
-        AC_MSG_CHECKING([Python prefix])
-        PYTHON_PREFIX=`$PYTHON -c "import sys; print (sys.prefix)"`
-        AC_MSG_RESULT([$PYTHON_PREFIX])
-
 	AC_MSG_CHECKING([Python version])
         PYTHON_VERSION_MAJOR=`$PYTHON -c "import sys; print (sys.version_info@<:@0@:>@)"`
         PYTHON_VERSION_MINOR=`$PYTHON -c "import sys; print (sys.version_info@<:@1@:>@)"`
         PYTHON_VERSION="$PYTHON_VERSION_MAJOR.$PYTHON_VERSION_MINOR"
 	AC_MSG_RESULT([$PYTHON_VERSION])
-
-        AC_MSG_CHECKING([for Python include path])
-        if test -z "$PYTHON_INCLUDEDIR"; then
-            python_path=`$PYTHON -c "import distutils.sysconfig; \
-                                     print (distutils.sysconfig.get_python_inc ());"`
-            PYTHON_INCLUDEDIR=$python_path
-        fi
-        AC_MSG_RESULT([$PYTHON_INCLUDEDIR])
+        # Debian: python-2.7.pc, python-3.2.pc
+        PKG_CHECK_MODULES([PYTHON], [python-"$PYTHON_VERSION"],[
+            AC_SUBST([PYTHON_CFLAGS])
+            AC_SUBST([PYTHON_LIBS])
+            AC_SUBST([PYTHON_VERSION])
+            AC_DEFINE([HAVE_PYTHON],[1],[Python library found at compile time])
+        ],[
+            PKG_CHECK_MODULES([PYTHON], [python],[
+                AC_SUBST([PYTHON_CFLAGS])
+                AC_SUBST([PYTHON_LIBS])
+                AC_SUBST([PYTHON_VERSION])
+                AC_DEFINE([HAVE_PYTHON],[1],[Python library found at compile time])
+            ],[
+                AC_MSG_WARN([python $PYTHON_VERSION not found])
+            ])
+        ])
+        AC_MSG_CHECKING([Python prefix])
+        PYTHON_PREFIX=`$PYTHON -c "import sys; print (sys.prefix)"`
+        AC_MSG_RESULT([$PYTHON_PREFIX])
 
         AC_ARG_WITH([python-installdir],
                     [AS_HELP_STRING([--with-python-installdir],
@@ -1171,11 +1177,10 @@ AS_IF([test "x$enable_python" != "xno"],[
 
     AC_SUBST(PYTHON_PREFIX)
     AC_SUBST(PYTHON_VERSION)
-    AC_SUBST(PYTHON_INCLUDEDIR)
     AC_SUBST(PYTHON_INSTALLDIR)
 ])
 AM_CONDITIONAL([HAVE_PYTHON],
-    [test "x$PYTHON" != "xno" && test "x$PYTHON_INCLUDEDIR" != "x" && test "x$PYTHON_INSTALLDIR" != "x"])
+    [test "x$PYTHON" != "xno" && test "x$PYTHON_LIBS" != "x" ])
 
 dnl Check for Ruby and rake (optional, for Ruby bindings).
 AC_ARG_ENABLE([ruby],
diff --git a/python/Makefile.am b/python/Makefile.am
index e514a76..ecc25d5 100644
--- a/python/Makefile.am
+++ b/python/Makefile.am
@@ -43,7 +43,7 @@ libguestfsmod_la_SOURCES = guestfs-py.c guestfs-py.h guestfs-py-byhand.c
 
 libguestfsmod_la_CPPFLAGS = \
 	-DGUESTFS_PRIVATE=1 \
-	-I$(PYTHON_INCLUDEDIR) \
+	$(PYTHON_CFLAGS) \
 	-I$(top_srcdir)/src -I$(top_builddir)/src
 
 libguestfsmod_la_CFLAGS = \
-- 
1.7.10.4




More information about the Libguestfs mailing list