summaryrefslogtreecommitdiffstats
path: root/configure.ac
diff options
context:
space:
mode:
authorWilliam Langford <wlangfor@gmail.com>2014-08-04 23:54:30 -0400
committerWilliam Langford <wlangfor@gmail.com>2014-08-06 12:26:34 -0400
commit6744664ff4ac54a3df68d14ffe3cd4f34fe7f42a (patch)
treeb73926b5bf8bf7590d9d7624861cfe4d09db3b02 /configure.ac
parentef5bd5a6de10657430a438955a83a7bb99a8468a (diff)
Actually check version for bison.
Clean up oniguruma checks.
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac61
1 files changed, 21 insertions, 40 deletions
diff --git a/configure.ac b/configure.ac
index fd4d00c9..885482c5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3,6 +3,9 @@ m4_define([jq_version], m4_esyscmd_s([git describe --tags --dirty --match 'jq-*'
AC_INIT([jq], [jq_version], [mu@netsoc.tcd.ie],
[jq], [http://stedolan.github.com/jq/])
+m4_include([m4/ax_compare_version.m4])
+m4_include([m4/ax_prog_bison_version.m4])
+
dnl Created autoconf implementation thompson@dtosolutions, 26NOV12
AC_PREREQ([2.61])
AC_CONFIG_AUX_DIR([config])
@@ -18,18 +21,25 @@ AC_EXEEXT
LT_INIT([shared static win32-dll])
AM_PROG_CC_C_O
+
dnl couldn't use AM_PROG_LEX as it doesn't support header files like the
dnl AC_PROG_YACC macros...
dnl check bison version
-AC_MSG_CHECKING([bison version])
+
if test "$YACC" != "bison -y"; then
+ AC_MSG_CHECKING([bison version])
AC_MSG_RESULT([not bison])
-elif $YACC --help | grep -- --warnings >/dev/null; then
- AC_MSG_RESULT([ok])
-else
- AC_MSG_RESULT([no])
- AC_MSG_ERROR([You need bison version 2.5 or more recent.])
+else
+ AX_PROG_BISON_VERSION([3],
+ [],
+ [AC_MSG_ERROR([You need bison version 3.0 or greater.])])
+ dnl These gross square brackets keep autotools from eating the perl script...
+# yacc_version=[$($YACC --version 2>1 | perl -pe '($_)=/([0-9]+([.][0-9]+)+)/')]
+# AX_COMPARE_VERSION([$yacc_version], [gt], [3],
+# [AC_MSG_RESULT([ok])],
+# [AC_MSG_RESULT([no])
+# AC_MSG_ERROR([You need bison version 3.0 or greater.])])
fi
dnl
@@ -57,48 +67,19 @@ if test $ONIGURUMAPATHSET == 1; then
LDFLAGS="$LDFLAGS -L${with_oniguruma}/lib"
fi
-# store current *FLAGS and merge with AM_*FLAGS for compilation and linker check
-OLD_CFLAGS=$CFLAGS;
-OLD_LDFLAGS=$LDFLAGS;
-CFLAGS="$AM_CFLAGS $CFLAGS"
-LDFLAGS="$AM_LDFLAGS $LDFLAGS"
-
-# ensure the library to check for is covered by the LIBS variable
-OLD_LIBS=$LIBS
-LIBS="$LIBS -lonig"
-
-# check for ONIGURUMA library headers
-AC_MSG_CHECKING([for oniguruma.h])
-# try to compile a file that includes a header of the library oniguruma
-AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ #include <oniguruma.h> ])],
- [AC_MSG_RESULT([yes])
- # try to link the function 'onig_free' out of library oniguruma
- AC_MSG_CHECKING([for oniguruma usability])
- AC_LINK_IFELSE(
- [AC_LANG_PROGRAM([[#include <oniguruma.h>]],
- [[onig_free(0);]])],
- [AC_MSG_RESULT([yes])
- FOUND_ONIGURUMA=1;],
- [AC_MSG_RESULT([no])
- LIBS=$OLD_LIBS; dnl reset to old value since oniguruma was not found
- FOUND_ONIGURUMA=0;])],
- [AC_MSG_RESULT([not found])
- FOUND_ONIGURUMA=0;])
-
-# reset original *FLAGS
-CFLAGS=$OLD_CFLAGS
-LDFLAGS=$OLD_LDFLAGS
+# check for ONIGURUMA library
+HAVE_ONIGURUMA=1
+AC_CHECK_HEADER("oniguruma.h",
+ AC_CHECK_LIB([onig],[onig_version],[LIBS="$LIBS -lonig"; HAVE_ONIGURUMA=1;]))
# handle check results
-if test $FOUND_ONIGURUMA != 1; then
+if test $HAVE_ONIGURUMA != 1; then
AC_MSG_NOTICE([Oniguruma was not found.])
AC_MSG_NOTICE([ Try setting the location using '--with-oniguruma=PREFIX' ])
AC_MSG_ERROR([ oniguruma is required to build jq.])
fi
-
-
dnl Check for valgrind
AC_CHECK_PROGS(valgrind_cmd, valgrind)
if test "x$valgrind_cmd" = "x" ; then