From 255d7e4140d5fee6edfe5c7233c8870f889b2a32 Mon Sep 17 00:00:00 2001 From: Morgan Deters Date: Wed, 19 Oct 2011 21:35:50 +0000 Subject: fix bug #264: competition / other static library builds when readline isn't available --- config/readline.m4 | 41 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 38 insertions(+), 3 deletions(-) (limited to 'config') diff --git a/config/readline.m4 b/config/readline.m4 index 70f36bc79..ce1d1deda 100644 --- a/config/readline.m4 +++ b/config/readline.m4 @@ -15,12 +15,47 @@ else fi AC_CHECK_LIB([readline], [readline], [AC_CHECK_HEADER([readline/readline.h], - AC_SUBST([READLINE_LDFLAGS], ["-lreadline -lncurses"]) - AC_DEFINE([HAVE_LIBREADLINE], [1], [Define to 1 to use libreadline]))], + [READLINE_LIBS="-lreadline -lncurses"], + [if test "$with_readline" != check; then + AC_MSG_FAILURE([cannot find libreadline!]) + fi])], [if test "$with_readline" != check; then AC_MSG_FAILURE([cannot find libreadline!]) fi], -lncurses) - if test -z "$READLINE_LDFLAGS"; then with_readline=no; else with_readline=yes; fi + if test -z "$READLINE_LIBS"; then + with_readline=no + else + # make sure it works in static builds, too + if test "$enable_static_binary" = yes; then + AC_MSG_CHECKING([whether statically-linked readline is functional]) + AC_LANG_PUSH([C++]) + cvc4_save_LIBS="$LIBS" + cvc4_save_LDFLAGS="$LDFLAGS" + LDFLAGS="-static $LDFLAGS" + LIBS="$READLINE_LIBS $LIBS" + AC_LINK_IFELSE(AC_LANG_PROGRAM([#include ], + [readline("")]), + [ AC_MSG_RESULT([yes, it works]) + with_readline=yes ], + [ AC_MSG_RESULT([no]) + if test "$with_readline" != check; then + AC_MSG_FAILURE([readline installation incompatible with static-binary]) + fi + with_readline=no ]) + LIBS="$cvc4_save_LIBS" + LDFLAGS="$cvc4_save_LDFLAGS" + AC_LANG_POP([C++]) + else + with_readline=yes + fi + fi + if test "$with_readline" = yes; then + HAVE_LIBREADLINE=1 + else + HAVE_LIBREADLINE=0 + fi + AC_DEFINE_UNQUOTED([HAVE_LIBREADLINE], ${HAVE_LIBREADLINE}, [Define to 1 to use libreadline]) + AC_SUBST([READLINE_LIBS]) fi ])# CVC4_CHECK_FOR_READLINE -- cgit v1.2.3