## 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_CFLAGS AC_DEFUN([AM_CHECK_PYTHON_HEADERS], [AC_REQUIRE([AM_PATH_PYTHON]) AC_MSG_CHECKING(for headers required to compile python extensions) dnl deduce PYTHON_CFLAGS if test "x$PYTHON_CFLAGS" = "x" ; then py_prefix=`$PYTHON -c "import sys; print sys.prefix"` py_exec_prefix=`$PYTHON -c "import sys; print sys.exec_prefix"` PYTHON_CFLAGS="-I${py_prefix}/include/python${PYTHON_VERSION}" if test "$py_prefix" != "$py_exec_prefix"; then PYTHON_CFLAGS="$PYTHON_CFLAGS -I${py_exec_prefix}/include/python${PYTHON_VERSION}" fi fi if test "x$PYTHON_LIBS" = "x" ; then python_link=`$PYTHON -c "import distutils.sysconfig ; print distutils.sysconfig.get_config_var(\"LIBRARY\")" | sed -e "s%lib\(.*\)\.[[a-zA-Z]]*$%-l\1%"` python_libdir=`$PYTHON -c "import distutils.sysconfig ; print distutils.sysconfig.get_config_var(\"LIBDIR\")"` PYTHON_LIBS="-L${python_libdir} ${python_link}" fi AC_SUBST(PYTHON_CFLAGS) AC_SUBST(PYTHON_LIBS) dnl check if the headers exist: save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $PYTHON_CFLAGS" AC_TRY_CPP([#include ],dnl [AC_MSG_RESULT(found) $1],dnl [AC_MSG_RESULT(not found) $2]) CPPFLAGS="$save_CPPFLAGS" ]) dnl 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]) # Check for binary relocation support. # Written by Hongli Lai # http://autopackage.org/ AC_DEFUN([AM_BINRELOC], [ AC_ARG_ENABLE(binreloc, [ --enable-binreloc compile with binary relocation support (default=enable when available)], enable_binreloc=$enableval,enable_binreloc=auto) AC_ARG_ENABLE(binreloc-threads, [ --enable-binreloc-threads compile binary relocation with threads support (default=yes)], enable_binreloc_threads=$enableval,enable_binreloc_threads=yes) BINRELOC_CFLAGS= BINRELOC_LIBS= if test "x$enable_binreloc" = "xauto"; then AC_CHECK_FILE([/proc/self/maps]) AC_CACHE_CHECK([whether everything is installed to the same prefix], [br_cv_valid_prefixes], [ if test "$bindir" = '${exec_prefix}/bin' -a "$sbindir" = '${exec_prefix}/sbin' -a \ "$datadir" = '${prefix}/share' -a "$libdir" = '${exec_prefix}/lib' -a \ "$libexecdir" = '${exec_prefix}/libexec' -a "$sysconfdir" = '${prefix}/etc' then br_cv_valid_prefixes=yes else br_cv_valid_prefixes=no fi ]) fi AC_CACHE_CHECK([whether binary relocation support should be enabled], [br_cv_binreloc], [if test "x$enable_binreloc" = "xyes"; then br_cv_binreloc=yes elif test "x$enable_binreloc" = "xauto"; then if test "x$br_cv_valid_prefixes" = "xyes" -a \ "x$ac_cv_file__proc_self_maps" = "xyes"; then br_cv_binreloc=yes else br_cv_binreloc=no fi else br_cv_binreloc=no fi]) if test "x$br_cv_binreloc" = "xyes"; then BINRELOC_CFLAGS="-DENABLE_BINRELOC" AC_DEFINE(ENABLE_BINRELOC,,[Use binary relocation?]) if test "x$enable_binreloc_threads" = "xyes"; then AC_CHECK_LIB([pthread], [pthread_getspecific]) fi AC_CACHE_CHECK([whether binary relocation should use threads], [br_cv_binreloc_threads], [if test "x$enable_binreloc_threads" = "xyes"; then if test "x$ac_cv_lib_pthread_pthread_getspecific" = "xyes"; then br_cv_binreloc_threads=yes else br_cv_binreloc_threads=no fi else br_cv_binreloc_threads=no fi]) if test "x$br_cv_binreloc_threads" = "xyes"; then BINRELOC_LIBS="-lpthread" AC_DEFINE(BR_PTHREAD,1,[Include pthread support for binary relocation?]) else BINRELOC_CFLAGS="$BINRELOC_CFLAGS -DBR_PTHREADS=0" AC_DEFINE(BR_PTHREAD,0,[Include pthread support for binary relocation?]) fi fi AC_SUBST(BINRELOC_CFLAGS) AC_SUBST(BINRELOC_LIBS) ])