configure.ac: detect bison
authorRuben Kerkhof <ruben@rubenkerkhof.com>
Sat, 12 Dec 2015 16:07:54 +0000 (17:07 +0100)
committerRuben Kerkhof <ruben@rubenkerkhof.com>
Fri, 26 Feb 2016 16:31:49 +0000 (17:31 +0100)
We use some bison-specific extensions so we really need bison, not yacc.
This has bitten a few people before, so make it easier for them.

Bison is only needed when compiling from git, since we ship the generated file
in the tarball. We take this into account by checking for the generated file first.

configure.ac

index f623263..912aa91 100644 (file)
@@ -44,6 +44,7 @@ AC_SYS_LARGEFILE
 #
 AC_PROG_CC
 AC_PROG_CPP
+AC_PROG_EGREP
 AC_PROG_INSTALL
 AC_PROG_LN_S
 AC_PROG_MAKE_SET
@@ -60,6 +61,18 @@ m4_pattern_forbid([^_?PKG_[A-Z_]+$],[*** pkg.m4 missing, please install pkg-conf
 
 PKG_PROG_PKG_CONFIG
 
+AC_CACHE_CHECK([if bison is the parser generator],
+       [collectd_cv_prog_bison],
+       [AS_IF([$YACC --version 2>/dev/null | $EGREP -q '^bison '],
+               [collectd_cv_prog_bison=yes], [collectd_cv_prog_bison=no]
+       )]
+)
+
+if test "x$collectd_cv_prog_bison" = "xno" && test ! -f "${srcdir}/liboconfig/parser.c"
+then
+       AC_MSG_ERROR([bison is missing and you do not have ${srcdir}/liboconfig/parser.c. Please install bison])
+fi
+
 AC_CHECK_PROG([have_protoc_c], [protoc-c], [yes], [no])
 if test "x$have_protoc_c" = "xno"
 then