| AC_DEFUN([AG_GST_BISON_CHECK], |
| [ |
| dnl FIXME: check if AC_PROG_YACC is suitable here |
| dnl FIXME: make precious |
| AC_PATH_PROG(BISON_PATH, bison, no) |
| if test x$BISON_PATH = xno; then |
| AC_MSG_ERROR(Could not find bison) |
| fi |
| |
| dnl check bison version |
| dnl we need version >= 2.4 for the '<>' support |
| dnl in the parser. |
| dnl First lines observed: 'bison (GNU Bison) 2.3' or 'GNU Bison version 1.28' |
| bison_min_version=2.4 |
| bison_version=`$BISON_PATH --version | head -n 1 | sed 's/^[[^0-9]]*//' | sed 's/[[^0-9]]*$//' | cut -d' ' -f1` |
| AC_MSG_CHECKING([bison version $bison_version >= $bison_min_version]) |
| |
| if perl -we "exit ((v$bison_version ge v$bison_min_version) ? 0 : 1)"; then |
| AC_MSG_RESULT([yes]) |
| else |
| AC_MSG_ERROR([no]) |
| fi |
| ]) |
| |
| AC_DEFUN([AG_GST_FLEX_CHECK], |
| [ |
| dnl we require flex for building the parser |
| AC_PATH_PROG(FLEX_PATH, flex, no) |
| if test x$FLEX_PATH = xno; then |
| AC_MSG_ERROR(Could not find flex) |
| fi |
| |
| dnl check flex version |
| dnl we need version >= 2.5.31 for the reentrancy support |
| dnl in the parser. |
| flex_min_version=2.5.31 |
| flex_version=`$FLEX_PATH --version | head -n 1 | awk '{print $2}'` |
| AC_MSG_CHECKING([flex version $flex_version >= $flex_min_version]) |
| if perl -w <<EOF |
| (\$min_version_major, \$min_version_minor, \$min_version_micro ) = "$flex_min_version" =~ /(\d+)\.(\d+)\.(\d+)/; |
| (\$flex_version_major, \$flex_version_minor, \$flex_version_micro ) = "$flex_version" =~ /(\d+)\.(\d+)\.(\d+)/; |
| exit (((\$flex_version_major > \$min_version_major) || |
| ((\$flex_version_major == \$min_version_major) && |
| (\$flex_version_minor > \$min_version_minor)) || |
| ((\$flex_version_major == \$min_version_major) && |
| (\$flex_version_minor == \$min_version_minor) && |
| (\$flex_version_micro >= \$min_version_micro))) |
| ? 0 : 1); |
| EOF |
| then |
| AC_MSG_RESULT(yes) |
| else |
| AC_MSG_ERROR([no]) |
| fi |
| ]) |