]> git.ipfire.org Git - ipfire.org.git/commitdiff
configure: Check for required Python modules
authorMichael Tremer <michael.tremer@ipfire.org>
Wed, 25 Oct 2023 15:20:22 +0000 (15:20 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Wed, 25 Oct 2023 15:20:22 +0000 (15:20 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
configure.ac
m4/.gitignore [new file with mode: 0644]
m4/ax_python_module.m4 [new file with mode: 0644]

index c5f4c7f2d4af37f79c20c129983f8d716a40c90b..8dacb8f87c70ac94750678b5631902becd248d9f 100644 (file)
@@ -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 (file)
index 0000000..55eaa80
--- /dev/null
@@ -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 (file)
index 0000000..f0f873d
--- /dev/null
@@ -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
+])