diff options
author | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2007-04-24 13:05:17 +0100 |
---|---|---|
committer | Simon McVittie <smcv@carbon.pseudorandom.co.uk> | 2007-04-24 18:02:14 +0100 |
commit | b5552a3ea76b3e229f40a06d32a5860b0e9e2217 (patch) | |
tree | 98b307350ff9fe1a42699cb38d5967f94d65fd42 /m4 | |
parent | 29fae4fdfd02cc2dd4c896a2cb271d9a3597623c (diff) | |
download | dbus-python-b5552a3ea76b3e229f40a06d32a5860b0e9e2217.tar.gz |
Refactor build system:
* Use autoreconf to simplify autogen.sh considerably
* Use AC_CONFIG_MACRO_DIR and aclocal -I to pick up macros from m4/
* Drop acinclude.m4 in favour of putting our macros in m4/
Diffstat (limited to 'm4')
-rw-r--r-- | m4/Makefile.am | 5 | ||||
-rw-r--r-- | m4/am-check-pymod.m4 | 37 | ||||
-rw-r--r-- | m4/am-check-python-headers.m4 | 24 | ||||
-rw-r--r-- | m4/dbus-py-add-rst2htmlflag.m4 | 20 | ||||
-rw-r--r-- | m4/jh-add-cflag.m4 | 23 |
5 files changed, 109 insertions, 0 deletions
diff --git a/m4/Makefile.am b/m4/Makefile.am new file mode 100644 index 0000000..9cbf67c --- /dev/null +++ b/m4/Makefile.am @@ -0,0 +1,5 @@ +EXTRA_DIST = \ + am-check-pymod.m4 \ + am-check-python-headers.m4 \ + dbus-py-add-rst2htmlflag.m4 \ + jh-add-cflag.m4 diff --git a/m4/am-check-pymod.m4 b/m4/am-check-pymod.m4 new file mode 100644 index 0000000..22e1ae2 --- /dev/null +++ b/m4/am-check-pymod.m4 @@ -0,0 +1,37 @@ +## 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 +]) diff --git a/m4/am-check-python-headers.m4 b/m4/am-check-python-headers.m4 new file mode 100644 index 0000000..1e0f2b6 --- /dev/null +++ b/m4/am-check-python-headers.m4 @@ -0,0 +1,24 @@ +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"` +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 +AC_SUBST(PYTHON_INCLUDES) +dnl check if the headers exist: +save_CPPFLAGS="$CPPFLAGS" +CPPFLAGS="$CPPFLAGS $PYTHON_INCLUDES" +AC_TRY_CPP([#include <Python.h>],dnl +[AC_MSG_RESULT(found) +$1],dnl +[AC_MSG_RESULT(not found) +$2]) +CPPFLAGS="$save_CPPFLAGS" +]) diff --git a/m4/dbus-py-add-rst2htmlflag.m4 b/m4/dbus-py-add-rst2htmlflag.m4 new file mode 100644 index 0000000..75fa78c --- /dev/null +++ b/m4/dbus-py-add-rst2htmlflag.m4 @@ -0,0 +1,20 @@ +dnl JH_ADD_CFLAG(FLAG) +dnl checks whether the C compiler supports the given flag, and if so, adds +dnl it to $CFLAGS. If the flag is already present in the list, then the +dnl check is not performed. +AC_DEFUN([JH_ADD_CFLAG], +[ +case " $CFLAGS " in +*@<:@\ \ @:>@$1@<:@\ \ @:>@*) + ;; +*) + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $1" + AC_MSG_CHECKING([whether [$]CC understands $1]) + AC_TRY_COMPILE([], [], [jh_has_option=yes], [jh_has_option=no]) + AC_MSG_RESULT($jh_has_option) + if test $jh_has_option = no; then + CFLAGS="$save_CFLAGS" + fi + ;; +esac]) diff --git a/m4/jh-add-cflag.m4 b/m4/jh-add-cflag.m4 new file mode 100644 index 0000000..88b4de0 --- /dev/null +++ b/m4/jh-add-cflag.m4 @@ -0,0 +1,23 @@ +dnl DBUS_PY_ADD_RST2HTMLFLAG(FLAG) +dnl checks whether rst2html supports the given flag, and if so, adds +dnl it to $RST2HTMLFLAGS. Same as JH_ADD_CFLAG, really. +AC_DEFUN([DBUS_PY_ADD_RST2HTMLFLAG], +[ +case " $RST2HTMLFLAGS " in +*@<:@\ \ @:>@$1@<:@\ \ @:>@*) + ;; +*) + save_RST2HTMLFLAGS="$RST2HTMLFLAGS" + RST2HTMLFLAGS="$RST2HTMLFLAGS $1" + AC_MSG_CHECKING([whether [$]RST2HTML understands $1]) + if $RST2HTML --strict $RST2HTMLFLAGS /dev/null > /dev/null 2>/dev/null; then + dbuspy_has_option=yes + else + dbuspy_has_option=no + fi + AC_MSG_RESULT($dbuspy_has_option) + if test $dbuspy_has_option = no; then + RST2HTMLFLAGS="$save_RST2HTMLFLAGS" + fi + ;; +esac]) |