* readline.m4: Check for completion functionality.
[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 ],[
38 add_history("foobar");
39 rl_catch_signals=0;
40 rl_inhibit_completion=0;
41 rl_attempted_completion_function=NULL;
42 ]),_found_readline=yes,_found_readline=no)
43
44         AC_MSG_RESULT([$_found_readline])
45
46         LIBS=$_readline_save_libs
47
48         if test $_found_readline = yes ; then
49            AC_DEFINE(HAVE_LIBREADLINE,1,
50               [Define to 1 if you have a fully functional readline library.])
51            AC_SUBST(LIBREADLINE,$_combo)
52            break
53         fi
54      done
55
56      unset _termcap
57      unset _readline_save_libs
58      unset _combo
59      unset _found_readline
60   fi
61 ])dnl