1dnl Check a program for version sanity. The test runs a program, passes it an
2dnl argument to make it print out some identification string, and filters that 
3dnl output with a regular expression. If the output is non-empty, the program
4dnl passes the sanity check.
5dnl   $1 - Name or full path of the program to run
6dnl   $2 - Argument to pass to print out identification string
7dnl   $3 - grep RE to match identification string
8dnl   $4 - set to 1 to make errors only a warning
9AC_DEFUN([CHECK_PROGRAM_SANITY],
10[
11AC_MSG_CHECKING([sanity for program ]$1)
12sanity="0"
13sanity_path=`which $1 2>/dev/null`
14if test "$?" -eq 0 -a -x "$sanity_path" ; then
15  sanity=`$1 $2 2>&1 | grep "$3"`
16  if test -z "$sanity" ; then
17    AC_MSG_RESULT([no])
18    sanity="0"
19    if test "$4" -eq 1 ; then
20      AC_MSG_WARN([Program ]$1[ failed to pass sanity check.])
21    else
22      AC_MSG_ERROR([Program ]$1[ failed to pass sanity check.])
23    fi
24  else
25    AC_MSG_RESULT([yes])
26    sanity="1"
27  fi
28else
29  AC_MSG_RESULT([not found])
30fi
31])
32