/m4/ragel.m4
m4 | 53 lines | 46 code | 7 blank | 0 comment | 0 complexity | 1d6544f12a98fe41d1965874b7192413 MD5 | raw file
Possible License(s): BSD-3-Clause
- dnl Check for presence of the Ragel State Machine generator.
- dnl
- dnl This macro checks for the presence of the ragel tool in the system,
- dnl and whether the ragel tool is absolutely needed for a complete
- dnl build.
- dnl
- dnl To check for the need for Ragel, you have to provide the relative
- dnl path of a source file generated through Ragel: if the file is
- dnl present in the source tree, a missing ragel command will not cause
- dnl the configure to abort.
- AC_DEFUN([_RAGEL_VARS], [
- AC_ARG_VAR([RAGEL], [Ragel generator command])
- AC_ARG_VAR([RAGELFLAGS], [Ragel generator flags])
- ])
- AC_DEFUN([CHECK_RAGEL], [
- AC_REQUIRE([_RAGEL_VARS])
- AC_PATH_PROG([RAGEL], [ragel], [no], [$PATH:/usr/local/bin:/opt/local/bin])
- dnl We set RAGEL to false so that it would execute the "false"
- dnl command if needed.
- AS_IF([test x"$RAGEL" = x"no"],
- [RAGEL=false],
- AS_IF([test x"$2" != "x"],
- [ragel_version=`$RAGEL --version | sed -n -e '1s:.*version \(@<:@0-9@:>@\.@<:@0-9@:>@\) .*:\1:p'`
- ragel_version_compare=`echo $ragel_version | tr -d .`
- ragel_wanted_version=`echo $2 | tr -d .`
- AS_IF([test $ragel_version_compare -lt $ragel_wanted_version],
- [AC_MSG_WARN([Found Ragel $ragel_version but Ragel $2 requested])
- RAGEL=false
- ])
- ]))
- dnl Only test the need if not found
- AS_IF([test x"$RAGEL" = x"false"], [
- AC_MSG_CHECKING([whether we need ragel to regenerate sources])
- AS_IF([test -a "${srcdir}/$1"], [ragel_needed=no], [ragel_needed=yes])
- AC_MSG_RESULT([$ragel_needed])
- AS_IF([test x"$ragel_needed" = x"yes"],
- [AC_MSG_ERROR([dnl
- You need Ragel to build from development sources.
- You can find Ragel at http://www.complang.org/ragel/dnl
- ])])
- ])
- ])
- AC_DEFUN([CHECK_RAGEL_AM], [
- CHECK_RAGEL([$1], [$2])
- AM_CONDITIONAL([HAVE_RAGEL], [test x"$RAGEL" != x"false"])
- ])