Automatic date update in version.in
[external/binutils.git] / readline / examples / autoconf / RL_LIB_READLINE_VERSION
1 dnl need: prefix exec_prefix libdir includedir CC TERMCAP_LIB
2 dnl require:
3 dnl     AC_PROG_CC
4 dnl     BASH_CHECK_LIB_TERMCAP
5
6 AC_DEFUN([RL_LIB_READLINE_VERSION],
7 [
8 AC_REQUIRE([BASH_CHECK_LIB_TERMCAP])
9
10 AC_MSG_CHECKING([version of installed readline library])
11
12 # What a pain in the ass this is.
13
14 # save cpp and ld options
15 _save_CFLAGS="$CFLAGS"
16 _save_LDFLAGS="$LDFLAGS"
17 _save_LIBS="$LIBS"
18
19 # Don't set ac_cv_rl_prefix if the caller has already assigned a value.  This
20 # allows the caller to do something like $_rl_prefix=$withval if the user
21 # specifies --with-installed-readline=PREFIX as an argument to configure
22
23 if test -z "$ac_cv_rl_prefix"; then
24 test "x$prefix" = xNONE && ac_cv_rl_prefix=$ac_default_prefix || ac_cv_rl_prefix=${prefix}
25 fi
26
27 eval ac_cv_rl_includedir=${ac_cv_rl_prefix}/include
28 eval ac_cv_rl_libdir=${ac_cv_rl_prefix}/lib
29
30 LIBS="$LIBS -lreadline ${TERMCAP_LIB}"
31 CFLAGS="$CFLAGS -I${ac_cv_rl_includedir}"
32 LDFLAGS="$LDFLAGS -L${ac_cv_rl_libdir}"
33
34 AC_CACHE_VAL(ac_cv_rl_version,
35 [AC_TRY_RUN([
36 #include <stdio.h>
37 #include <readline/readline.h>
38
39 extern int rl_gnu_readline_p;
40
41 main()
42 {
43         FILE *fp;
44         fp = fopen("conftest.rlv", "w");
45         if (fp == 0)
46                 exit(1);
47         if (rl_gnu_readline_p != 1)
48                 fprintf(fp, "0.0\n");
49         else
50                 fprintf(fp, "%s\n", rl_library_version ? rl_library_version : "0.0");
51         fclose(fp);
52         exit(0);
53 }
54 ],
55 ac_cv_rl_version=`cat conftest.rlv`,
56 ac_cv_rl_version='0.0',
57 ac_cv_rl_version='4.2')])
58
59 CFLAGS="$_save_CFLAGS"
60 LDFLAGS="$_save_LDFLAGS"
61 LIBS="$_save_LIBS"
62
63 RL_MAJOR=0
64 RL_MINOR=0
65
66 # (
67 case "$ac_cv_rl_version" in
68 2*|3*|4*|5*|6*|7*|8*|9*)
69         RL_MAJOR=`echo $ac_cv_rl_version | sed 's:\..*$::'`
70         RL_MINOR=`echo $ac_cv_rl_version | sed -e 's:^.*\.::' -e 's:[[a-zA-Z]]*$::'`
71         ;;
72 esac
73
74 # (((
75 case $RL_MAJOR in
76 [[0-9][0-9]])   _RL_MAJOR=$RL_MAJOR ;;
77 [[0-9]])        _RL_MAJOR=0$RL_MAJOR ;;
78 *)              _RL_MAJOR=00 ;;
79 esac
80
81 # (((
82 case $RL_MINOR in
83 [[0-9][0-9]])   _RL_MINOR=$RL_MINOR ;;
84 [[0-9]])        _RL_MINOR=0$RL_MINOR ;;
85 *)              _RL_MINOR=00 ;;
86 esac
87
88 RL_VERSION="0x${_RL_MAJOR}${_RL_MINOR}"
89
90 # Readline versions greater than 4.2 have these defines in readline.h
91
92 if test $ac_cv_rl_version = '0.0' ; then
93         AC_MSG_WARN([Could not test version of installed readline library.])
94 elif test $RL_MAJOR -gt 4 || { test $RL_MAJOR = 4 && test $RL_MINOR -gt 2 ; } ; then
95         # set these for use by the caller
96         RL_PREFIX=$ac_cv_rl_prefix
97         RL_LIBDIR=$ac_cv_rl_libdir
98         RL_INCLUDEDIR=$ac_cv_rl_includedir
99         AC_MSG_RESULT($ac_cv_rl_version)
100 else
101
102 AC_DEFINE_UNQUOTED(RL_READLINE_VERSION, $RL_VERSION, [encoded version of the installed readline library])
103 AC_DEFINE_UNQUOTED(RL_VERSION_MAJOR, $RL_MAJOR, [major version of installed readline library])
104 AC_DEFINE_UNQUOTED(RL_VERSION_MINOR, $RL_MINOR, [minor version of installed readline library])
105
106 AC_SUBST(RL_VERSION)
107 AC_SUBST(RL_MAJOR)
108 AC_SUBST(RL_MINOR)
109
110 # set these for use by the caller
111 RL_PREFIX=$ac_cv_rl_prefix
112 RL_LIBDIR=$ac_cv_rl_libdir
113 RL_INCLUDEDIR=$ac_cv_rl_includedir
114
115 AC_MSG_RESULT($ac_cv_rl_version)
116
117 fi
118 ])