summaryrefslogtreecommitdiff
path: root/autoconf/m4/sanity_check.m4
diff options
context:
space:
mode:
Diffstat (limited to 'autoconf/m4/sanity_check.m4')
-rw-r--r--autoconf/m4/sanity_check.m431
1 files changed, 31 insertions, 0 deletions
diff --git a/autoconf/m4/sanity_check.m4 b/autoconf/m4/sanity_check.m4
new file mode 100644
index 00000000000..639fccca246
--- /dev/null
+++ b/autoconf/m4/sanity_check.m4
@@ -0,0 +1,31 @@
+dnl Check a program for version sanity. The test runs a program, passes it an
+dnl argument to make it print out some identification string, and filters that
+dnl output with a regular expression. If the output is non-empty, the program
+dnl passes the sanity check.
+dnl $1 - Name or full path of the program to run
+dnl $2 - Argument to pass to print out identification string
+dnl $3 - grep RE to match identification string
+dnl $4 - set to 1 to make errors only a warning
+AC_DEFUN([CHECK_PROGRAM_SANITY],
+[
+AC_MSG_CHECKING([sanity for program ]$1)
+sanity="0"
+sanity_path=`which $1 2>/dev/null`
+if test "$?" -eq 0 -a -x "$sanity_path" ; then
+ sanity=`$1 $2 2>&1 | grep "$3"`
+ if test -z "$sanity" ; then
+ AC_MSG_RESULT([no])
+ sanity="0"
+ if test "$4" -eq 1 ; then
+ AC_MSG_WARN([Program ]$1[ failed to pass sanity check.])
+ else
+ AC_MSG_ERROR([Program ]$1[ failed to pass sanity check.])
+ fi
+ else
+ AC_MSG_RESULT([yes])
+ sanity="1"
+ fi
+else
+ AC_MSG_RESULT([not found])
+fi
+])