Dan Gohman | f17a25c | 2007-07-18 16:29:46 +0000 | [diff] [blame] | 1 | dnl Check a program for version sanity. The test runs a program, passes it an |
| 2 | dnl argument to make it print out some identification string, and filters that |
| 3 | dnl output with a regular expression. If the output is non-empty, the program |
| 4 | dnl passes the sanity check. |
| 5 | dnl $1 - Name or full path of the program to run |
| 6 | dnl $2 - Argument to pass to print out identification string |
| 7 | dnl $3 - grep RE to match identification string |
| 8 | dnl $4 - set to 1 to make errors only a warning |
| 9 | AC_DEFUN([CHECK_PROGRAM_SANITY], |
| 10 | [ |
| 11 | AC_MSG_CHECKING([sanity for program ]$1) |
| 12 | sanity="0" |
| 13 | sanity_path=`which $1 2>/dev/null` |
| 14 | if 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 |
| 28 | else |
| 29 | AC_MSG_RESULT([not found]) |
| 30 | fi |
| 31 | ]) |