1AC_DEFUN([AG_GST_BISON_CHECK], 2[ 3 dnl FIXME: check if AC_PROG_YACC is suitable here 4 dnl FIXME: make precious 5 AC_PATH_PROG(BISON_PATH, bison, no) 6 if test x$BISON_PATH = xno; then 7 AC_MSG_ERROR(Could not find bison) 8 fi 9 10 dnl check bison version 11 dnl we need version >= 2.4 for the '<>' support 12 dnl in the parser. 13 dnl First lines observed: 'bison (GNU Bison) 2.3' or 'GNU Bison version 1.28' 14 bison_min_version=2.4 15 bison_version=`$BISON_PATH --version | head -n 1 | sed 's/^[[^0-9]]*//' | sed 's/[[^0-9]]*$//' | cut -d' ' -f1` 16 AC_MSG_CHECKING([bison version $bison_version >= $bison_min_version]) 17 18 if perl -we "exit ((v$bison_version ge v$bison_min_version) ? 0 : 1)"; then 19 AC_MSG_RESULT([yes]) 20 else 21 AC_MSG_ERROR([no]) 22 fi 23]) 24 25AC_DEFUN([AG_GST_FLEX_CHECK], 26[ 27 dnl we require flex for building the parser 28 AC_PATH_PROG(FLEX_PATH, flex, no) 29 if test x$FLEX_PATH = xno; then 30 AC_MSG_ERROR(Could not find flex) 31 fi 32 33 dnl check flex version 34 dnl we need version >= 2.5.31 for the reentrancy support 35 dnl in the parser. 36 flex_min_version=2.5.31 37 flex_version=`$FLEX_PATH --version | head -n 1 | awk '{print $2}'` 38 AC_MSG_CHECKING([flex version $flex_version >= $flex_min_version]) 39 if perl -w <<EOF 40 (\$min_version_major, \$min_version_minor, \$min_version_micro ) = "$flex_min_version" =~ /(\d+)\.(\d+)\.(\d+)/; 41 (\$flex_version_major, \$flex_version_minor, \$flex_version_micro ) = "$flex_version" =~ /(\d+)\.(\d+)\.(\d+)/; 42 exit (((\$flex_version_major > \$min_version_major) || 43 ((\$flex_version_major == \$min_version_major) && 44 (\$flex_version_minor > \$min_version_minor)) || 45 ((\$flex_version_major == \$min_version_major) && 46 (\$flex_version_minor == \$min_version_minor) && 47 (\$flex_version_micro >= \$min_version_micro))) 48 ? 0 : 1); 49EOF 50 then 51 AC_MSG_RESULT(yes) 52 else 53 AC_MSG_ERROR([no]) 54 fi 55]) 56