~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to m4/vl_lib_readline.m4

  • Committer: Monty Taylor
  • Date: 2008-12-09 05:51:21 UTC
  • mfrom: (667.1.2 remove-strfill)
  • mto: This revision was merged to the branch mainline in revision 670.
  • Revision ID: monty@inaugust.com-20081209055121-oin4t65auiulqjwd
Merged toru.

Show diffs side-by-side

added added

removed removed

Lines of Context:
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
 
 
64
 
AC_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