blob: 639fccca2464058e84c3b14cf9217731b2ce5e3d [file] [log] [blame]
Reid Spencera5e26072005-07-17 00:50:40 +00001dnl 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
Reid Spencer6697a742005-12-22 02:08:30 +00008dnl $4 - set to 1 to make errors only a warning
Reid Spencera5e26072005-07-17 00:50:40 +00009AC_DEFUN([CHECK_PROGRAM_SANITY],
10[
11AC_MSG_CHECKING([sanity for program ]$1)
Reid Spencer118dfcd2007-01-03 20:59:52 +000012sanity="0"
Reid Spencera5e26072005-07-17 00:50:40 +000013sanity_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])
Reid Spencer36917d92006-12-04 20:28:07 +000018 sanity="0"
Reid Spencer6697a742005-12-22 02:08:30 +000019 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])
Reid Spencer36917d92006-12-04 20:28:07 +000026 sanity="1"
Reid Spencera5e26072005-07-17 00:50:40 +000027 fi
Reid Spencera5e26072005-07-17 00:50:40 +000028else
29 AC_MSG_RESULT([not found])
30fi
31])