-AC_DEFUN([GST_BISON_CHECK],
+AC_DEFUN([AG_GST_BISON_CHECK],
[
dnl FIXME: check if AC_PROG_YACC is suitable here
dnl FIXME: make precious
fi
dnl check bison version
- bison_min_version=1.35
- bison_version=`$BISON_PATH --version | head -n 1 | sed 's/^.*) //' | tr -d '[[:alpha:]]' | cut -d' ' -f1`
+ dnl we need version >= 1.875 for the reentrancy support
+ dnl in the parser.
+ dnl First lines observed: 'bison (GNU Bison) 2.3' or 'GNU Bison version 1.28'
+ bison_min_version=1.875
+ 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 -w <<EOF
- exit ($bison_version < $bison_min_version) ? 0 : 1;
-EOF
- then
+ if perl -we "exit ((v$bison_version ge v$bison_min_version) ? 0 : 1)"; then
AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no])
- AC_MSG_ERROR([Your bison version is too old, $bison_min_version or later is required.])
+ else
+ AC_MSG_ERROR([no])
fi
])
-AC_DEFUN([GST_FLEX_CHECK],
+AC_DEFUN([AG_GST_FLEX_CHECK],
[
dnl we require flex for building the parser
- dnl FIXME: check if AC_PROG_LEX is suitable here
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
- flex_min_version=2.5.6
- flex_version=`$FLEX_PATH --version | head -n 1 | sed 's/^.* //' | tr -d '[[:alpha:]]' | cut -d' ' -f1`
+ 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_minor > \$min_version_minor)) ||
((\$flex_version_major == \$min_version_major) &&
- (\$flex_version_minor >= \$min_version_minor) &&
+ (\$flex_version_minor == \$min_version_minor) &&
(\$flex_version_micro >= \$min_version_micro)))
? 0 : 1);
EOF
then
AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_MT_SAVE_FLEX, 1,
- [Defined if we have recent enough flex, which is MT save])
else
- AC_MSG_RESULT(no)
+ AC_MSG_ERROR([no])
fi
])