|
Packit |
130fc8 |
dnl a macro to check for ability to create python extensions
|
|
Packit |
130fc8 |
dnl AM_CHECK_PYTHON_HEADERS([ACTION-IF-POSSIBLE], [ACTION-IF-NOT-POSSIBLE])
|
|
Packit |
130fc8 |
dnl function also defines PYTHON_INCLUDES
|
|
Packit |
130fc8 |
AC_DEFUN([AM_CHECK_PYTHON_HEADERS],
|
|
Packit |
130fc8 |
[AC_REQUIRE([AM_PATH_PYTHON])
|
|
Packit |
130fc8 |
|
|
Packit |
130fc8 |
AC_ARG_VAR([PYTHON_CONFIG], [python-config executable])
|
|
Packit |
130fc8 |
AS_IF(
|
|
Packit |
130fc8 |
[test "${PYTHON_CONFIG+set}" = set],
|
|
Packit |
130fc8 |
[AC_MSG_NOTICE([PYTHON_CONFIG overridden to: $PYTHON_CONFIG])],
|
|
Packit |
130fc8 |
[test -x "${PYTHON}-config"],
|
|
Packit |
130fc8 |
[
|
|
Packit |
130fc8 |
PYTHON_CONFIG="${PYTHON}-config"
|
|
Packit |
130fc8 |
AC_MSG_NOTICE([Using \$PYTHON-config: $PYTHON_CONFIG])
|
|
Packit |
130fc8 |
],
|
|
Packit |
130fc8 |
dnl else
|
|
Packit |
130fc8 |
[
|
|
Packit |
130fc8 |
AC_PATH_PROGS([PYTHON_CONFIG], [python${PYTHON_VERSION}-config python-config], [no])
|
|
Packit |
130fc8 |
AS_IF([test "${PYTHON_CONFIG}" = "no"],
|
|
Packit |
130fc8 |
[AC_MSG_ERROR([cannot find python${PYTHON_VERSION}-config or python-config in PATH])])
|
|
Packit |
130fc8 |
])
|
|
Packit |
130fc8 |
|
|
Packit |
130fc8 |
AC_ARG_VAR([PYTHON_INCLUDES], [CPPFLAGS for Python, overriding output of python2.x-config --includes, e.g. "-I/opt/misc/include/python2.7"])
|
|
Packit |
130fc8 |
|
|
Packit |
130fc8 |
if test "${PYTHON_INCLUDES+set}" = set; then
|
|
Packit |
130fc8 |
AC_MSG_NOTICE([PYTHON_INCLUDES overridden to: $PYTHON_INCLUDES])
|
|
Packit |
130fc8 |
else
|
|
Packit |
130fc8 |
dnl deduce PYTHON_INCLUDES
|
|
Packit |
130fc8 |
AC_MSG_CHECKING(for Python headers using $PYTHON_CONFIG --includes)
|
|
Packit |
130fc8 |
PYTHON_INCLUDES=`$PYTHON_CONFIG --includes`
|
|
Packit |
130fc8 |
if test $? = 0; then
|
|
Packit |
130fc8 |
AC_MSG_RESULT($PYTHON_INCLUDES)
|
|
Packit |
130fc8 |
else
|
|
Packit |
130fc8 |
AC_MSG_RESULT([failed, will try another way])
|
|
Packit |
130fc8 |
py_prefix=`$PYTHON -c "import sys; print(sys.prefix)"`
|
|
Packit |
130fc8 |
py_exec_prefix=`$PYTHON -c "import sys; print(sys.exec_prefix)"`
|
|
Packit |
130fc8 |
AC_MSG_CHECKING(for Python headers in $py_prefix and $py_exec_prefix)
|
|
Packit |
130fc8 |
PYTHON_INCLUDES="-I${py_prefix}/include/python${PYTHON_VERSION}"
|
|
Packit |
130fc8 |
if test "$py_prefix" != "$py_exec_prefix"; then
|
|
Packit |
130fc8 |
PYTHON_INCLUDES="$PYTHON_INCLUDES -I${py_exec_prefix}/include/python${PYTHON_VERSION}"
|
|
Packit |
130fc8 |
fi
|
|
Packit |
130fc8 |
AC_MSG_RESULT($PYTHON_INCLUDES)
|
|
Packit |
130fc8 |
fi
|
|
Packit |
130fc8 |
fi
|
|
Packit |
130fc8 |
|
|
Packit |
130fc8 |
AC_MSG_CHECKING(whether those headers are sufficient)
|
|
Packit |
130fc8 |
AC_SUBST(PYTHON_INCLUDES)
|
|
Packit |
130fc8 |
dnl check if the headers exist:
|
|
Packit |
130fc8 |
save_CPPFLAGS="$CPPFLAGS"
|
|
Packit |
130fc8 |
CPPFLAGS="$CPPFLAGS $PYTHON_INCLUDES"
|
|
Packit |
130fc8 |
AC_TRY_CPP([#include <Python.h>],dnl
|
|
Packit |
130fc8 |
[AC_MSG_RESULT(yes)
|
|
Packit |
130fc8 |
$1],dnl
|
|
Packit |
130fc8 |
[AC_MSG_RESULT(no)
|
|
Packit |
130fc8 |
$2])
|
|
Packit |
130fc8 |
CPPFLAGS="$save_CPPFLAGS"
|
|
Packit |
130fc8 |
])
|