From 6e06b36c90ad1bb02fb07dcd948be36e16d5b35f Mon Sep 17 00:00:00 2001
From: Iustin Pop <iustin@google.com>
Date: Mon, 26 Nov 2007 15:48:37 +0000
Subject: [PATCH] Add checking of python modules at ./configure time

This patch adds checking for our external python modules at the
./configure stage, as it's better to check than rely on documentation.

The patch adds one autoconf macro from the autoconf macro archive
(http://autoconf-archive.cryp.to)

Reviewed-by: imsnah
---
 Makefile.am                   |  2 ++
 autogen.sh                    |  2 +-
 autotools/ac_python_module.m4 | 48 +++++++++++++++++++++++++++++++++++
 configure.ac                  |  7 +++++
 4 files changed, 58 insertions(+), 1 deletion(-)
 create mode 100644 autotools/ac_python_module.m4

diff --git a/Makefile.am b/Makefile.am
index bd1428966..7365c8b36 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,3 +1,5 @@
+ACLOCAL_AMFLAGS = -I autotools
+
 SUBDIRS = man lib scripts daemons doc test tools qa
 EXTRA_DIST = NEWS DEVNOTES
 
diff --git a/autogen.sh b/autogen.sh
index bbda39c6e..6b5fe3716 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -10,7 +10,7 @@ set -e
 rm -rf config.cache autom4te.cache
 mkdir -p autotools
 
-aclocal-1.9
+aclocal-1.9 -I autotools
 autoconf
 automake-1.9 --add-missing -Wall -Wno-portability
 
diff --git a/autotools/ac_python_module.m4 b/autotools/ac_python_module.m4
new file mode 100644
index 000000000..6892e8f0a
--- /dev/null
+++ b/autotools/ac_python_module.m4
@@ -0,0 +1,48 @@
+##### http://autoconf-archive.cryp.to/ac_python_module.html
+#
+# SYNOPSIS
+#
+#   AC_PYTHON_MODULE(modname[, fatal])
+#
+# DESCRIPTION
+#
+#   Checks for Python module.
+#
+#   If fatal is non-empty then absence of a module will trigger an
+#   error.
+#
+# LAST MODIFICATION
+#
+#   2007-01-09
+#
+# COPYLEFT
+#
+#   Copyright (c) 2007 Andrew Collier <colliera@ukzn.ac.za>
+#
+#   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.
+
+AC_DEFUN([AC_PYTHON_MODULE],[
+    if test -z $PYTHON;
+    then
+        PYTHON="python"
+    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
+])
diff --git a/configure.ac b/configure.ac
index d39cfaa35..5fe8e6cc1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -60,6 +60,13 @@ AC_PROG_LN_S
 # Check for Python
 AM_PATH_PYTHON(2.4)
 
+AC_PYTHON_MODULE(twisted.internet, t)
+AC_PYTHON_MODULE(twisted.cred, t)
+AC_PYTHON_MODULE(twisted.spread, t)
+AC_PYTHON_MODULE(OpenSSL, t)
+AC_PYTHON_MODULE(simplejson, t)
+AC_PYTHON_MODULE(pyparsing, t)
+
 # Check for docbook2man
 found_docbook2man=
 AC_CHECK_PROG(found_docbook2man, [docbook2man], [yes])
-- 
GitLab