- AC_MSG_CHECKING(for ]$2[ >= ]$5[)
- AC_PATH_PROGS_FEATURE_CHECK(]$1[, ]$3[,
- AS_VERSION_COMPARE(`$ac_path_]$1[ ]$4[`, ]$5[, ,
- ac_cv_path_]$1[=$ac_path_]$1[
- ,
- ac_cv_path_]$1[=$ac_path_]$1[
- )
- ,
- AC_MSG_RESULT(no)
- AC_MSG_ERROR(You need ]$2[ ]$5[ or greater)
- )
- AC_SUBST(]$1[, $ac_cv_path_]$1[)
- AC_MSG_RESULT($]$1[)
+ AC_ARG_VAR(]$1[, ]$3[)
+
+ AC_MSG_CHECKING(for ]$2[ >= ]$5[)
+ AC_PATH_PROGS_FEATURE_CHECK(]$1[, ]$2[,
+ AS_VAR_SET(version, [`$ac_path_]$1[ ]$4[`])
+ AS_VAR_IF(version, [], ,
+ AS_VERSION_COMPARE($version, ]$5[, ,
+ ac_cv_path_]$1[=$ac_path_]$1[,
+ ac_cv_path_]$1[=$ac_path_]$1[))
+ , AC_MSG_RESULT(no))
+
+ AS_IF([true], [
+ AC_SUBST(]$1[, $ac_cv_path_]$1[)
+ AC_MSG_RESULT($]$1[)
+ ], AS_IF([true], [
+ AC_MSG_ERROR(You need ]$2[ ]$5[ or greater)
+ ], [
+ AC_SUBST(]$1[, [:])
+ AC_MSG_RESULT([no])
+ ]))
+]) dnl }}}
+
+CY_CHECK_PROGS_VERSION([BISON], [bison], [GNU Project parser generator (yacc replacement)],
+ [-V | $SED -e '1 s/^bison (GNU Bison) \(.*\)$/\1/p;d'], [2.3])
+CY_CHECK_PROGS_VERSION([FLEX], [flex], [the fast lexical analyser generator],
+ [--version | $SED -e '1 s/^@<:@^0-9.@:>@* \(@<:@0-9.@:>@*\).*$/\1/p;d'], [2.5.33])
+CY_CHECK_PROGS_VERSION([GPERF], [gperf], [perfect hash function generator],
+ [--version | $SED -e '1 s/^.* \(@<:@0-9.@:>@*\)$/\1/p;d'], [3.0.3])
+CY_CHECK_PROGS_VERSION([GNUTAR], [tar gtar gnutar], [a very sticky lump of files],
+ [--version | $SED -e '1 s/^tar (GNU tar) \(.*\)$/\1/p;d'], [1.19])
+
+AC_MSG_CHECKING([bison for %code{}])
+echo '%code{}%%_:' >conftest.y
+if $BISON conftest.y -o/dev/null 2>/dev/null; then
+ AC_LIB_APPENDTOVAR([CY_FILTERS], [Bison24])
+ AC_MSG_RESULT([yes])
+else
+ AC_LIB_APPENDTOVAR([CY_FILTERS], [Bison23])
+ AC_MSG_RESULT([no])
+fi
+
+rm -f conftest.y
+AC_SUBST([CY_FILTERS])
+
+dnl CY_TRY {{{
+AC_DEFUN([CY_SUCCESS], [cy_good=1])
+AC_DEFUN([CY_FAILURE], [cy_good=0])
+
+AC_DEFUN([CY_TRY], [
+ cy_save=$]$1[
+ AC_LIB_APPENDTOVAR(]$1[, ]$2[)
+ ]$3[
+ ]$1[=$cy_save
+ AS_IF([test "x$cy_good" = x1], ]$4[, ]$5[)
+]) dnl }}}
+
+AC_DEFUN([CY_TEST_FLAG_], [
+ AC_LANG_PUSH(]$2[)
+ AC_MSG_CHECKING([for ]]$4[[ ]]$1[)
+ CY_TRY(]$3[, $1, [
+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([])],
+ [CY_SUCCESS], [CY_FAILURE])
+ ], [
+ AC_MSG_RESULT([yes])
+ AC_LIB_APPENDTOVAR(]$3[, ]$1[)
+ ], [AC_MSG_RESULT([no])])
+ AC_LANG_POP(]$2[)