/
githubmirror
/
sssd
Обзор
Документация
Войти
/
githubmirror
/
sssd
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/external/python.m4
137 строк
5 KB
Alexey Tikhonov
Get rid of Python2 support
27 май 2026, 11:09
27 май 2026, 11:09
622fa7f
Код
Авторство
О чём код?
dnl Check for python-config and substitute needed CFLAGS and LDFLAGS dnl Usage: dnl AM_PYTHON_CONFIG(python_with_major_version) dnl argument python_with_major_version should be python3 dnl This function sets the PYTHON_CFLAGS, PYTHON_LIBS and PYTHON_INCLUDES dnl variables AC_DEFUN([AM_PYTHON_CONFIG], [ AC_PATH_PROG([PYTHON_CONFIG], [python$PYTHON_VERSION-config]) AS_IF([test x"$PYTHON_CONFIG" = x], AC_MSG_ERROR([ The program python$PYTHON_VERSION-config was not found in search path. Please ensure that it is installed and its directory is included in the search path. If you want to build sssd without $1 bindings then specify --without-$1-bindings when running configure.])) PYTHON_CFLAGS="` $PYTHON_CONFIG --cflags`" PYTHON_LIBS="` $PYTHON_CONFIG --libs`" PYTHON_INCLUDES="` $PYTHON_CONFIG --includes`" # With python3.8 it is expected that C extension do not link against # libpythonX.Y anymore but only the application loading the extension links # the library. pyhton3.8-config adds a new option --embed for this use # case. See # https://docs.python.org/dev/whatsnew/3.8.html#debug-build-uses-the-same-abi-as-release-build # for details. Since the dlopen-test checks the python modules as well we # have to make sure that it links libpythonX.Y. # # To build the Python modules PYTHON_LIBS must be used, python-config will # take care that this does not include libpythonX.Y for Python3.8. # # For our dlopen-test PYTHON_DLOPEN_LIB must be used. It is either empty or # contains libpythonX.Y if needed. $PYTHON_CONFIG --libs --embed 1> /dev/null 2> /dev/null if test $? -eq 0; then PYTHON_DLOPEN_LIB="` $PYTHON_CONFIG --libs --embed | grep -o -- '-lpython@<:@^ @:>@*' |sed -e 's/^-l/lib/'`" if test x"$PYTHON_DLOPEN_LIB" != x; then python_lib_paths="` $PYTHON_CONFIG --ldflags | grep -o -- '-L/@<:@^ @:>@*' | sed -e 's/^-L//'`" for p in $python_lib_paths; do if test -e $p"/"$PYTHON_DLOPEN_LIB; then PYTHON_DLOPEN_LIB=$p"/"$PYTHON_DLOPEN_LIB break fi done PYTHON_DLOPEN_LIB=$PYTHON_DLOPEN_LIB".so" AC_DEFINE_UNQUOTED([PYTHON_DLOPEN_LIB], ["$PYTHON_DLOPEN_LIB"], [The path of libpython for dlopen-tests]) fi fi ]) dnl Taken from GNOME sources dnl a macro to check for ability to create python extensions dnl AM_CHECK_PYTHON_HEADERS([ACTION-IF-POSSIBLE], [ACTION-IF-NOT-POSSIBLE]) AC_DEFUN([AM_CHECK_PYTHON_HEADERS], [ AC_REQUIRE([AM_PATH_PYTHON]) AC_MSG_CHECKING(for headers required to compile python extensions) 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" ]) dnl Clean variables after detection of python AC_DEFUN([SSS_CLEAN_PYTHON_VARIABLES], [ unset pyexecdir pkgpyexecdir pythondir pgkpythondir unset PYTHON PYTHON_CFLAGS PYTHON_LIBS PYTHON_INCLUDES unset PYTHON_VERSION PYTHON_CONFIG dnl removed cached variables, required for reusing of AM_PATH_PYTHON unset am_cv_pathless_PYTHON ac_cv_path_PYTHON am_cv_python_version unset am_cv_python_platform am_cv_python_pythondir am_cv_python_pyexecdir unset ac_cv_path_PYTHON_CONFIG ]) AC_DEFUN([AM_PYTHON3_MODULE],[ if test x"$PYTHON3" = x; then if test -n "$2"; then AC_MSG_ERROR([cannot look for $1 module: Python 3 not found]) else AC_MSG_NOTICE([cannot look for $1 module: Python 3 not found]) eval AS_TR_CPP(HAVE_PY3MOD_$1)=no fi else AC_MSG_CHECKING($(basename $PYTHON3) module: $1) $PYTHON3 -c "import $1" 2>/dev/null if test $? -eq 0; then AC_MSG_RESULT(yes) eval AS_TR_CPP(HAVE_PY3MOD_$1)=yes else AC_MSG_RESULT(no) eval AS_TR_CPP(HAVE_PY3MOD_$1)=no # if test -n "$2" then AC_MSG_ERROR(failed to find required module $1) exit 1 fi fi fi ]) dnl SYNOPSIS dnl dnl SSS_CHECK_PYTEST(python_interpreter, have_suffix) dnl dnl DESCRIPTION dnl dnl Checks for pytest AC_DEFUN([SSS_CHECK_PYTEST],[ if test x"$1" = x; then if test -n "$2"; then AC_MSG_ERROR([cannot look for pytest: $(basename $1) not found]) else AC_MSG_NOTICE([cannot look for pytest module: $(basename $1) not found]) eval AS_TR_CPP(HAVE_$2)=no fi else AC_MSG_CHECKING($(basename $1) pytest) $1 -m pytest --version 2>/dev/null if test $? -eq 0; then AC_MSG_RESULT(yes) eval AS_TR_CPP(HAVE_$2)=yes else AC_MSG_RESULT(no) eval AS_TR_CPP(HAVE_$2)=no fi fi ])