Readline fix to be robust against platforms where readline has its own
[gnupg.git] / m4 / readline.m4
1 dnl Check for readline and dependencies
2 dnl Copyright (C) 2004 Free Software Foundation, Inc.
3 dnl
4 dnl This file is free software, distributed under the terms of the GNU
5 dnl General Public License.  As a special exception to the GNU General
6 dnl Public License, this file may be distributed as part of a program
7 dnl that contains a configuration script generated by Autoconf, under
8 dnl the same distribution terms as the rest of that program.
9 dnl
10 dnl Defines HAVE_LIBREADLINE to 1 if a working readline setup is
11 dnl found, and sets @LIBREADLINE@ to the necessary libraries.
12
13 AC_DEFUN([GNUPG_CHECK_READLINE],
14 [
15   AC_ARG_WITH(readline,
16      AC_HELP_STRING([--with-readline=DIR],
17         [look for the readline library in DIR]),
18      [_do_readline=$withval],[_do_readline=yes])
19
20   if test "$_do_readline" != "no" ; then
21      if test -d "$withval" ; then
22         CPPFLAGS="${CPPFLAGS} -I$withval/include"
23         LDFLAGS="${LDFLAGS} -L$withval/lib"
24      fi
25
26      for _termcap in "" "-ltermcap" "-lcurses" "-lncurses" ; do
27         _readline_save_libs=$LIBS
28         _combo="-lreadline${_termcap:+ $_termcap}"
29         LIBS="$LIBS $_combo"
30
31         AC_MSG_CHECKING([whether readline via \"$_combo\" is present and sane])
32
33         AC_LINK_IFELSE(AC_LANG_PROGRAM([
34 #include <stdio.h>
35 #include <readline/readline.h>
36 #include <readline/history.h>
37 ],[add_history("foobar");]),_found_readline=yes,_found_readline=no)
38
39         AC_MSG_RESULT([$_found_readline])
40
41         LIBS=$_readline_save_libs
42
43         if test $_found_readline = yes ; then
44            AC_DEFINE(HAVE_LIBREADLINE,1,
45               [Define to 1 if you have a fully functional readline library.])
46            AC_SUBST(LIBREADLINE,$_combo)
47            break
48         fi
49      done
50
51      unset _termcap
52      unset _readline_save_libs
53      unset _combo
54      unset _found_readline
55   fi
56 ])dnl