summaryrefslogtreecommitdiffstats
path: root/configure.in
diff options
context:
space:
mode:
Diffstat (limited to 'configure.in')
-rw-r--r--configure.in91
1 files changed, 60 insertions, 31 deletions
diff --git a/configure.in b/configure.in
index 1dc5c8e..5d60834 100644
--- a/configure.in
+++ b/configure.in
@@ -243,38 +243,67 @@ AC_MSG_RESULT($withval)
LIBS="$withval $LIBS"
], AC_MSG_RESULT(no))
-AC_MSG_CHECKING(for --with-readline)
-AC_ARG_WITH(readline, [--with-readline[=DIRECTORY] use GNU readline library], [
-AC_MSG_RESULT($withval)
-AC_DEFINE(WITH_READLINE)
-if test -d "$withval"
-then LDFLAGS="$LDFLAGS -L$withval"
+AC_MSG_CHECKING(for --with(out)-readline)
+use_readline="yes"
+AC_ARG_WITH(readline,
+[--with-readline=DIRECTORY search GNU readline library in DIRECTORY
+--without-readline do not use GNU readline library],
+[AC_MSG_RESULT($withval); use_readline="$withval"],
+[AC_MSG_RESULT((default) yes)])
+if test "$use_readline" != "no"
+then
+ if test "$use_readline" != "yes"
+ then add_ldflags="-L$use_readline"
+ else add_ldflags=""
+ fi
+ # See where the termcap interface could be hiding...
+ AC_MSG_CHECKING(for readline and termcap libraries)
+ AC_CACHE_VAL(ac_cv_readline_termcap,
+ [
+ AC_MSG_RESULT(have to find out)
+ save_libs="$LIBS"
+ save_ldflags="$LDFLAGS"
+ LDFLAGS="$save_ldflags $add_ldflags"
+ rl="-lreadline"
+ first=""
+ # Hack for SGI IRIX 5.x.
+ # Both termcap and gl have an entry point clear().
+ # When linking with both shared libraries, we're in trouble.
+ # We don't need the one in termcap.
+ # By forcing a static link for termcap, we avoid
+ # linking its clear() entry point.
+ if test -f /usr/lib/libgl.so -a -f /usr/lib/libtermcap.a
+ then first="/usr/lib/libtermcap.a"
+ fi
+ for add_lib in \
+ "$first" "-ltermcap" "-ltermlib" "-lcurses" "-lncurses"
+ do
+ AC_MSG_CHECKING(for $rl $add_lib)
+ LIBS="$save_libs $rl $add_lib"
+ AC_TRY_LINK([extern char *readline();],
+ [char *line=readline();],
+ [AC_MSG_RESULT(yes);
+ ac_cv_readline_termcap="$rl $add_lib"],
+ [AC_MSG_RESULT(no)])
+ if test "$ac_cv_readline_termcap" != ""
+ then break
+ fi
+ done
+ LIBS="$save_libs"
+ LDFLAGS="$save_ldflags"
+ AC_MSG_CHECKING(result from check for readline and termcap)
+ ])
+ if test "$ac_cv_readline_termcap" = ""
+ then
+ AC_MSG_RESULT(no)
+ AC_MSG_WARN(cannot link with GNU readline -- see config.log)
+ else
+ AC_MSG_RESULT($ac_cv_readline_termcap)
+ LIBS="$LIBS $ac_cv_readline_termcap"
+ LDFLAGS="$LDFLAGS $add_ldflags"
+ AC_DEFINE(WITH_READLINE)
+ fi
fi
-# first check if we can compile without lib termcap
-AC_MSG_CHECKING(for -lreadline without -ltermcap)
-# check if a libreadline exists
-LIBS="$LIBS -lreadline"
-AC_TRY_LINK(extern char *readline();,char *line=readline();,[
- AC_MSG_RESULT(yes)],[
- AC_MSG_RESULT(no)
- AC_CHECKING(for -lreadline that needs -ltermcap)
- termcap=
- AC_CHECK_LIB(termcap, tgetent, [termcap=termcap], [
- AC_CHECK_LIB(termlib, tgetent, [termcap=termlib], [
- AC_ERROR(no working -ltermcap/termlib found -- do not use --with-readline)])])
- # Avoid possible conflict between shared libraries termcap and gl
- # on IRIX 5: both contain a routine called clear.
- if test -f /usr/lib/lib$termcap.a
- then LIBS="$LIBS /usr/lib/lib$termcap.a"
- else LIBS="$LIBS -l$termcap"
- fi
- AC_MSG_CHECKING(for -lreadline)
- AC_TRY_LINK(extern char *readline();, char *line=readline();,[
- AC_MSG_RESULT(yes)],[
- AC_ERROR(no working GNU readline library found -- do not use --with-readline)])
- ])
-],
-AC_MSG_RESULT(no))
AC_MSG_CHECKING(for --with-thread)
AC_ARG_WITH(thread, [--with-thread[=DIRECTORY] make interpreter thread-safe], [