blob: c9d37e29a31e8af8ba8dfcc9fed4c5c92cac7467 [file] [log] [blame] [edit]
###############################################################################
# libbrlapi - A library providing access to braille terminals for applications.
#
# Copyright (C) 2005-2023 by
# Alexis Robert <alexissoft@free.fr>
# Samuel Thibault <Samuel.Thibault@ens-lyon.org>
#
# libbrlapi comes with ABSOLUTELY NO WARRANTY.
#
# This is free software, placed under the terms of the
# GNU Lesser General Public License, as published by the Free Software
# Foundation; either version 2.1 of the License, or (at your option) any
# later version. Please see the file LICENSE-LGPL for details.
#
# Web Page: http://brltty.app/
#
# This software is maintained by Dave Mielke <dave@mielke.cc>.
###############################################################################
AC_DEFUN([BRLTTY_PYTHON_BINDINGS], [dnl
PYTHON_OK=true
# Suppress a new warning introduced in Python 3.6:
#
# Python runtime initialized with LC_CTYPE=C
# (a locale with default ASCII encoding),
# which may cause Unicode compatibility problems.
# Using C.UTF-8, C.utf8, or UTF-8 (if available)
# as alternative Unicode-compatible locales is recommended.
#
export PYTHONCOERCECLOCALE=0
AC_PATH_PROGS([PYTHON], [python3 python python2], [python])
if test -n "${PYTHON}"
then
test -n "${PYTHON_VERSION}" || {
BRLTTY_PYTHON_QUERY([PYTHON_VERSION], [version])
test -n "${PYTHON_VERSION}" || {
AC_MSG_WARN([Python version not defined])
PYTHON_OK=false
}
}
AC_SUBST([PYTHON_VERSION])
test -n "${PYTHON_CPPFLAGS}" || {
BRLTTY_PYTHON_QUERY([python_include_directory], [incdir])
if test -n "${python_include_directory}"
then
PYTHON_CPPFLAGS="-I${python_include_directory}"
test -f "${python_include_directory}/Python.h" || {
AC_MSG_WARN([Python developer environment not installed])
PYTHON_OK=false
}
else
AC_MSG_WARN([Python include directory not found])
PYTHON_OK=false
fi
}
AC_SUBST([PYTHON_CPPFLAGS])
test -n "${PYTHON_LIBS}" || {
PYTHON_LIBS="-lpython${PYTHON_VERSION}"
BRLTTY_PYTHON_QUERY([python_library_directory], [libdir])
if test -n "${python_library_directory}"
then
PYTHON_LIBS="-L${python_library_directory}/config ${PYTHON_LIBS}"
else
AC_MSG_WARN([Python library directory not found])
PYTHON_OK=false
fi
}
AC_SUBST([PYTHON_LIBS])
test -n "${PYTHON_EXTRA_LIBS}" || {
BRLTTY_PYTHON_QUERY([PYTHON_EXTRA_LIBS], [libopts])
}
AC_SUBST([PYTHON_EXTRA_LIBS])
test -n "${PYTHON_EXTRA_LDFLAGS}" || {
BRLTTY_PYTHON_QUERY([PYTHON_EXTRA_LDFLAGS], [linkopts])
}
AC_SUBST([PYTHON_EXTRA_LDFLAGS])
test -n "${PYTHON_SITE_PKG}" || {
BRLTTY_PYTHON_QUERY([PYTHON_SITE_PKG], [pkgdir])
test -n "${PYTHON_SITE_PKG}" || {
AC_MSG_WARN([Python packages directory not found])
PYTHON_OK=false
}
}
AC_SUBST([PYTHON_SITE_PKG])
else
AC_MSG_WARN([Python interpreter not found])
PYTHON_OK=false
fi
AC_PATH_PROGS([CYTHON], [cython3 cython])
test -n "${CYTHON}" || {
AC_MSG_WARN([Cython compiler not found])
PYTHON_OK=false
}
if test "${GCC}" = "yes"
then
CYTHON_CFLAGS="-Wno-parentheses -Wno-unused -fno-strict-aliasing -U_POSIX_C_SOURCE -U_XOPEN_SOURCE"
else
case "${host_os}"
in
*)
CYTHON_CFLAGS=""
;;
esac
fi
AC_SUBST([CYTHON_CFLAGS])
AC_SUBST([PYTHON_OK])
])
AC_DEFUN([BRLTTY_PYTHON_QUERY], [dnl
$1=`"${PYTHON}" "${srcdir}/Tools/pythoncmd" $2`
])