From 9496ad05eb86ce5793030e47e88aa01dff48cb62 Mon Sep 17 00:00:00 2001 From: Xavier Claessens Date: Wed, 9 Apr 2008 12:15:19 +0000 Subject: [PATCH 1/1] Empathy should not require python-config. Fixes bug #525562 (Frederic Peters). svn path=/trunk/; revision=880 --- configure.ac | 5 ++- m4/python.m4 | 66 +++++++++++++++++++++++++++++++++ python/pyempathy/Makefile.am | 3 +- python/pyempathygtk/Makefile.am | 3 +- 4 files changed, 72 insertions(+), 5 deletions(-) create mode 100644 m4/python.m4 diff --git a/configure.ac b/configure.ac index 4b38c595..ed8a826d 100644 --- a/configure.ac +++ b/configure.ac @@ -68,7 +68,7 @@ AC_CHECK_PROGS([XSLTPROC], [xsltproc]) if test -z "$XSLTPROC"; then AC_MSG_ERROR([xsltproc (from libxslt) is required]) fi -AC_CHECK_PROGS([PYTHON], [python2.3 python2.4 python2.5 python]) +AC_CHECK_PROGS([PYTHON], [python python2.3 python2.4 python2.5]) if test -z "$PYTHON"; then AC_MSG_ERROR([Python is required]) fi @@ -268,6 +268,9 @@ if test "x$enable_python" != "xno"; then gtk+-2.0 >= $GTK_REQUIRED libglade-2.0 >= $LIBGLADE_REQUIRED ], have_python="yes", have_python="no") + if test "x$have_python" = "xyes" ; then + AM_CHECK_PYTHON_HEADERS(,have_python="no") + fi fi else have_python=no diff --git a/m4/python.m4 b/m4/python.m4 new file mode 100644 index 00000000..fe901562 --- /dev/null +++ b/m4/python.m4 @@ -0,0 +1,66 @@ +## this one is commonly used with AM_PATH_PYTHONDIR ... +dnl AM_CHECK_PYMOD(MODNAME [,SYMBOL [,ACTION-IF-FOUND [,ACTION-IF-NOT-FOUND]]]) +dnl Check if a module containing a given symbol is visible to python. +AC_DEFUN([AM_CHECK_PYMOD], +[AC_REQUIRE([AM_PATH_PYTHON]) +py_mod_var=`echo $1['_']$2 | sed 'y%./+-%__p_%'` +AC_MSG_CHECKING(for ifelse([$2],[],,[$2 in ])python module $1) +AC_CACHE_VAL(py_cv_mod_$py_mod_var, [ +ifelse([$2],[], [prog=" +import sys +try: + import $1 +except ImportError: + sys.exit(1) +except: + sys.exit(0) +sys.exit(0)"], [prog=" +import $1 +$1.$2"]) +if $PYTHON -c "$prog" 1>&AC_FD_CC 2>&AC_FD_CC + then + eval "py_cv_mod_$py_mod_var=yes" + else + eval "py_cv_mod_$py_mod_var=no" + fi +]) +py_val=`eval "echo \`echo '$py_cv_mod_'$py_mod_var\`"` +if test "x$py_val" != xno; then + AC_MSG_RESULT(yes) + ifelse([$3], [],, [$3 +])dnl +else + AC_MSG_RESULT(no) + ifelse([$4], [],, [$4 +])dnl +fi +]) + +dnl a macro to check for ability to create python extensions +dnl AM_CHECK_PYTHON_HEADERS([ACTION-IF-POSSIBLE], [ACTION-IF-NOT-POSSIBLE]) +dnl function also defines PYTHON_INCLUDES +AC_DEFUN([AM_CHECK_PYTHON_HEADERS], +[AC_REQUIRE([AM_PATH_PYTHON]) +AC_MSG_CHECKING(for headers required to compile python extensions) +dnl deduce PYTHON_INCLUDES +py_prefix=`$PYTHON -c "import sys; print sys.prefix"` +py_exec_prefix=`$PYTHON -c "import sys; print sys.exec_prefix"` +if test -x "$PYTHON-config"; then +PYTHON_INCLUDES=`$PYTHON-config --includes 2>/dev/null` +else +PYTHON_INCLUDES="-I${py_prefix}/include/python${PYTHON_VERSION}" +if test "$py_prefix" != "$py_exec_prefix"; then + PYTHON_INCLUDES="$PYTHON_INCLUDES -I${py_exec_prefix}/include/python${PYTHON_VERSION}" +fi +fi +AC_SUBST(PYTHON_INCLUDES) +dnl check if the headers exist: +save_CPPFLAGS="$CPPFLAGS" +CPPFLAGS="$CPPFLAGS $PYTHON_INCLUDES" +AC_TRY_CPP([#include ],dnl +[AC_MSG_RESULT(found) +$1],dnl +[AC_MSG_RESULT(not found) +$2]) +CPPFLAGS="$save_CPPFLAGS" +]) diff --git a/python/pyempathy/Makefile.am b/python/pyempathy/Makefile.am index c11eedbc..a2b76b26 100644 --- a/python/pyempathy/Makefile.am +++ b/python/pyempathy/Makefile.am @@ -6,7 +6,7 @@ AM_CPPFLAGS = \ -I$(top_srcdir) \ -DDATADIR=\""$(datadir)"\" \ $(PYTHON_BINDING_CFLAGS) \ - `python-config --cflags` \ + $(PYTHON_INCLUDES) \ $(WARN_CFLAGS) BUILT_SOURCES = \ @@ -24,7 +24,6 @@ empathy_la_LIBADD = \ $(top_builddir)/libempathy/libempathy.la empathy_la_LDFLAGS = \ - `python-config --libs` \ -module -avoid-version pyempathy.c: pyempathy.override pyempathy.defs diff --git a/python/pyempathygtk/Makefile.am b/python/pyempathygtk/Makefile.am index 04aa5762..39f776b2 100644 --- a/python/pyempathygtk/Makefile.am +++ b/python/pyempathygtk/Makefile.am @@ -6,7 +6,7 @@ AM_CPPFLAGS = \ -I$(top_srcdir) \ -DDATADIR=\""$(datadir)"\" \ $(PYTHON_BINDING_CFLAGS) \ - `python-config --cflags` + $(PYTHON_INCLUDES) BUILT_SOURCES = \ pyempathygtk.c @@ -24,7 +24,6 @@ empathygtk_la_LIBADD = \ $(top_builddir)/libempathy-gtk/libempathy-gtk.la empathygtk_la_LDFLAGS = \ - `python-config --libs` \ -module -avoid-version pyempathygtk.c: pyempathygtk.override pyempathygtk.defs -- 2.39.2