root/m4/vl_lib_readline.m4

Revision 80fa461a5b12b6bc06ee0ba05f4a9f804d88af5d, 3.5 kB (checked in by Philip Herron <redbrain@…>, 3 years ago)

forgot to add

  • Property mode set to 100644
Line 
1##### http://autoconf-archive.cryp.to/vl_lib_readline.html
2#
3# SYNOPSIS
4#
5#   VL_LIB_READLINE
6#
7# DESCRIPTION
8#
9#   Searches for a readline compatible library. If found, defines
10#   `HAVE_LIBREADLINE'. If the found library has the `add_history'
11#   function, sets also `HAVE_READLINE_HISTORY'. Also checks for the
12#   locations of the necessary include files and sets `HAVE_READLINE_H'
13#   or `HAVE_READLINE_READLINE_H' and `HAVE_READLINE_HISTORY_H' or
14#   'HAVE_HISTORY_H' if the corresponding include files exists.
15#
16#   The libraries that may be readline compatible are `libedit',
17#   `libeditline' and `libreadline'. Sometimes we need to link a
18#   termcap library for readline to work, this macro tests these cases
19#   too by trying to link with `libtermcap', `libcurses' or
20#   `libncurses' before giving up.
21#
22#   Here is an example of how to use the information provided by this
23#   macro to perform the necessary includes or declarations in a C
24#   file:
25#
26#     #ifdef HAVE_LIBREADLINE
27#     #  if defined(HAVE_READLINE_READLINE_H)
28#     #    include <readline/readline.h>
29#     #  elif defined(HAVE_READLINE_H)
30#     #    include <readline.h>
31#     #  else /* !defined(HAVE_READLINE_H) */
32#     extern char *readline ();
33#     #  endif /* !defined(HAVE_READLINE_H) */
34#     char *cmdline = NULL;
35#     #else /* !defined(HAVE_READLINE_READLINE_H) */
36#       /* no readline */
37#     #endif /* HAVE_LIBREADLINE */
38#
39#     #ifdef HAVE_READLINE_HISTORY
40#     #  if defined(HAVE_READLINE_HISTORY_H)
41#     #    include <readline/history.h>
42#     #  elif defined(HAVE_HISTORY_H)
43#     #    include <history.h>
44#     #  else /* !defined(HAVE_HISTORY_H) */
45#     extern void add_history ();
46#     extern int write_history ();
47#     extern int read_history ();
48#     #  endif /* defined(HAVE_READLINE_HISTORY_H) */
49#       /* no history */
50#     #endif /* HAVE_READLINE_HISTORY */
51#
52# LAST MODIFICATION
53#
54#   2002-04-04
55#
56# COPYLEFT
57#
58#   Copyright (c) 2002 Ville Laurikari <vl@iki.fi>
59#
60#   Copying and distribution of this file, with or without
61#   modification, are permitted in any medium without royalty provided
62#   the copyright notice and this notice are preserved.
63
64AC_DEFUN([VL_LIB_READLINE], [
65  AC_CACHE_CHECK([for a readline compatible library],
66                 vl_cv_lib_readline, [
67    ORIG_LIBS="$LIBS"
68    for readline_lib in readline edit editline; do
69      for termcap_lib in "" termcap curses ncurses; do
70        if test -z "$termcap_lib"; then
71          TRY_LIB="-l$readline_lib"
72        else
73          TRY_LIB="-l$readline_lib -l$termcap_lib"
74        fi
75        LIBS="$ORIG_LIBS $TRY_LIB"
76        AC_TRY_LINK_FUNC(readline, vl_cv_lib_readline="$TRY_LIB")
77        if test -n "$vl_cv_lib_readline"; then
78          break
79        fi
80      done
81      if test -n "$vl_cv_lib_readline"; then
82        break
83      fi
84    done
85    if test -z "$vl_cv_lib_readline"; then
86      vl_cv_lib_readline="no"
87      LIBS="$ORIG_LIBS"
88    fi
89  ])
90
91  if test "$vl_cv_lib_readline" != "no"; then
92    AC_DEFINE(HAVE_LIBREADLINE, 1,
93              [Define if you have a readline compatible library])
94    AC_CHECK_HEADERS(readline.h readline/readline.h)
95    AC_CACHE_CHECK([whether readline supports history],
96                   vl_cv_lib_readline_history, [
97      vl_cv_lib_readline_history="no"
98      AC_TRY_LINK_FUNC(add_history, vl_cv_lib_readline_history="yes")
99    ])
100    if test "$vl_cv_lib_readline_history" = "yes"; then
101      AC_DEFINE(HAVE_READLINE_HISTORY, 1,
102                [Define if your readline library has \`add_history'])
103      AC_CHECK_HEADERS(history.h readline/history.h)
104    fi
105  fi
106])dnl
Note: See TracBrowser for help on using the browser.