Files
libguestfs/m4/guestfs-python.m4
Richard W.M. Jones 72cfaff5c5 Update copyright dates for 2025
Automated using this command:

perl -pi.bak -e 's/(20[012][0-9])-20[12][01234]/$1-2025/g' `git ls-files`
2025-02-16 17:00:46 +00:00

127 lines
4.8 KiB
Plaintext

# libguestfs
# Copyright (C) 2009-2025 Red Hat Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
dnl Check for Python (optional, for Python bindings).
PYTHON_PREFIX=
PYTHON_VERSION=
PYTHON_INSTALLDIR=
AC_ARG_ENABLE([python],
AS_HELP_STRING([--disable-python], [disable Python language bindings]),
[],
[enable_python=yes])
AS_IF([test "x$enable_python" != "xno"],[
AC_CHECK_PROGS([PYTHON],[python3 python],[no])
if test "x$PYTHON" != "xno"; then
AC_MSG_CHECKING([Python version])
PYTHON_VERSION_MAJOR=`$PYTHON -c "import sys; print (sys.version_info@<:@0@:>@)"`
PYTHON_VERSION_MINOR=`$PYTHON -c "import sys; print (sys.version_info@<:@1@:>@)"`
PYTHON_VERSION="$PYTHON_VERSION_MAJOR.$PYTHON_VERSION_MINOR"
AS_IF([test -n "$PYTHON_VERSION"],[
AC_MSG_RESULT([$PYTHON_VERSION])
],[
AC_MSG_NOTICE([Python bindings disabled])
enable_python=no
])
AC_MSG_CHECKING([Python major version is 3])
AS_IF([test "x$PYTHON_VERSION_MAJOR" = "x3"],[
AC_MSG_RESULT([yes])
],[
AC_MSG_RESULT([no])
AC_MSG_ERROR([Python $PYTHON_VERSION_MAJOR <> 3 is no longer supported.
Python 2 end of life is 2020-01-01 and libguestfs >= 1.42.1 no longer
supports it.
If you want to use Python 2, you will need to use libguestfs 1.40 or 1.42.0.])
])
# Debian: python-3.2.pc
PKG_CHECK_MODULES([PYTHON], [python-"$PYTHON_VERSION"],[
have_python_module=1
AC_SUBST([PYTHON_CFLAGS])
AC_SUBST([PYTHON_LIBS])
AC_SUBST([PYTHON_VERSION])
AC_DEFINE([HAVE_PYTHON],[1],[Python library found at compile time])
],[
PKG_CHECK_MODULES([PYTHON], [python],[
have_python_module=1
AC_SUBST([PYTHON_CFLAGS])
AC_SUBST([PYTHON_LIBS])
AC_SUBST([PYTHON_VERSION])
AC_DEFINE([HAVE_PYTHON],[1],[Python library found at compile time])
],[
AC_MSG_WARN([python $PYTHON_VERSION not found])
])
])
AC_MSG_CHECKING([Python prefix])
PYTHON_PREFIX=`$PYTHON -c "import sys; print (sys.prefix)"`
AC_MSG_RESULT([$PYTHON_PREFIX])
AC_ARG_WITH([python-installdir],
[AS_HELP_STRING([--with-python-installdir],
[directory to install python modules @<:@default=check@:>@])],
[PYTHON_INSTALLDIR="$withval"
AC_MSG_NOTICE([Python install dir $PYTHON_INSTALLDIR])],
[PYTHON_INSTALLDIR=check])
if test "x$PYTHON_INSTALLDIR" = "xcheck"; then
PYTHON_INSTALLDIR=
AC_MSG_CHECKING([for Python site-packages path])
if test -z "$PYTHON_INSTALLDIR"; then
PYTHON_INSTALLDIR=`$PYTHON -c "import sysconfig; \
print (sysconfig.get_path('platlib'));"`
fi
AC_MSG_RESULT([$PYTHON_INSTALLDIR])
fi
AC_MSG_CHECKING([for Python extension suffix (PEP-3149)])
if test -z "$PYTHON_EXT_SUFFIX"; then
python_ext_suffix=`$PYTHON -c "import sysconfig; \
print (sysconfig.get_config_var('EXT_SUFFIX') or sysconfig.get_config_var('SO'))"`
PYTHON_EXT_SUFFIX=$python_ext_suffix
fi
AC_MSG_RESULT([$PYTHON_EXT_SUFFIX])
AC_CHECK_PROGS([PYCODESTYLE],[pycodestyle],[no])
dnl Look for some optional symbols in libpython.
old_LIBS="$LIBS"
PYTHON_BLDLIBRARY=`$PYTHON -c "import sysconfig; \
print (sysconfig.get_config_var('BLDLIBRARY'))"`
AC_CHECK_LIB([c],[_Py_IsFinalizing],
[AC_DEFINE([HAVE_PY_ISFINALIZING],1,
[Found _Py_IsFinalizing in libpython.])],
[],[$PYTHON_BLDLIBRARY])
LIBS="$old_LIBS"
fi
AC_SUBST(PYTHON_PREFIX)
AC_SUBST(PYTHON_VERSION)
AC_SUBST(PYTHON_INSTALLDIR)
AC_SUBST(PYTHON_EXT_SUFFIX)
])
AM_CONDITIONAL([HAVE_PYTHON],
[test "x$PYTHON" != "xno" && test "x$have_python_module" = "x1" ])
AM_CONDITIONAL([HAVE_PYCODESTYLE],
[test -n "$PYCODESTYLE" && test "x$PYCODESTYLE" != "xno"])