From: Michael Tremer Date: Wed, 25 Oct 2023 15:20:22 +0000 (+0000) Subject: configure: Check for required Python modules X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a117acc2317eb978e770d44dfc3a08157f0b058f;p=ipfire.org.git configure: Check for required Python modules Signed-off-by: Michael Tremer --- diff --git a/configure.ac b/configure.ac index c5f4c7f2..8dacb8f8 100644 --- a/configure.ac +++ b/configure.ac @@ -6,6 +6,7 @@ AC_INIT([ipfire.org], [ipfire.org], [https://www.ipfire.org/]) +AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_AUX_DIR([build-aux]) AC_PREFIX_DEFAULT([/usr]) @@ -28,6 +29,21 @@ AC_PROG_SED # Python AM_PATH_PYTHON([3.4]) +AX_PYTHON_MODULE([PIL], [fatal]) +AX_PYTHON_MODULE([feedparser], [fatal]) +AX_PYTHON_MODULE([html2text], [fatal]) +AX_PYTHON_MODULE([iso3166], [fatal]) +AX_PYTHON_MODULE([jsonschema], [fatal]) +AX_PYTHON_MODULE([kerberos], [fatal]) +AX_PYTHON_MODULE([ldap], [fatal]) +AX_PYTHON_MODULE([panoramisk], [fatal]) +AX_PYTHON_MODULE([phonenumbers], [fatal]) +AX_PYTHON_MODULE([psycopg], [fatal]) +AX_PYTHON_MODULE([pycares], [fatal]) +AX_PYTHON_MODULE([redis.asyncio], [fatal]) +AX_PYTHON_MODULE([tornado], [fatal]) +AX_PYTHON_MODULE([zxcvbn], [fatal]) + # sass AC_CHECK_PROG(SASSC, [sassc], [sassc]) if test -z "${SASSC}"; then diff --git a/m4/.gitignore b/m4/.gitignore new file mode 100644 index 00000000..55eaa803 --- /dev/null +++ b/m4/.gitignore @@ -0,0 +1,6 @@ +intltool.m4 +libtool.m4 +ltoptions.m4 +ltsugar.m4 +ltversion.m4 +lt~obsolete.m4 diff --git a/m4/ax_python_module.m4 b/m4/ax_python_module.m4 new file mode 100644 index 00000000..f0f873d1 --- /dev/null +++ b/m4/ax_python_module.m4 @@ -0,0 +1,56 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_python_module.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_PYTHON_MODULE(modname[, fatal, python]) +# +# DESCRIPTION +# +# Checks for Python module. +# +# If fatal is non-empty then absence of a module will trigger an error. +# The third parameter can either be "python" for Python 2 or "python3" for +# Python 3; defaults to Python 3. +# +# LICENSE +# +# Copyright (c) 2008 Andrew Collier +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 9 + +AU_ALIAS([AC_PYTHON_MODULE], [AX_PYTHON_MODULE]) +AC_DEFUN([AX_PYTHON_MODULE],[ + if test -z $PYTHON; + then + if test -z "$3"; + then + PYTHON="python3" + else + PYTHON="$3" + fi + fi + PYTHON_NAME=`basename $PYTHON` + AC_MSG_CHECKING($PYTHON_NAME module: $1) + $PYTHON -c "import $1" 2>/dev/null + if test $? -eq 0; + then + AC_MSG_RESULT(yes) + eval AS_TR_CPP(HAVE_PYMOD_$1)=yes + else + AC_MSG_RESULT(no) + eval AS_TR_CPP(HAVE_PYMOD_$1)=no + # + if test -n "$2" + then + AC_MSG_ERROR(failed to find required module $1) + exit 1 + fi + fi +])