119 lines
2.9 KiB
Text
119 lines
2.9 KiB
Text
|
dnl need: prefix exec_prefix libdir includedir CC TERMCAP_LIB
|
||
|
dnl require:
|
||
|
dnl AC_PROG_CC
|
||
|
dnl BASH_CHECK_LIB_TERMCAP
|
||
|
|
||
|
AC_DEFUN([RL_LIB_READLINE_VERSION],
|
||
|
[
|
||
|
AC_REQUIRE([BASH_CHECK_LIB_TERMCAP])
|
||
|
|
||
|
AC_MSG_CHECKING([version of installed readline library])
|
||
|
|
||
|
# What a pain in the ass this is.
|
||
|
|
||
|
# save cpp and ld options
|
||
|
_save_CFLAGS="$CFLAGS"
|
||
|
_save_LDFLAGS="$LDFLAGS"
|
||
|
_save_LIBS="$LIBS"
|
||
|
|
||
|
# Don't set ac_cv_rl_prefix if the caller has already assigned a value. This
|
||
|
# allows the caller to do something like $_rl_prefix=$withval if the user
|
||
|
# specifies --with-installed-readline=PREFIX as an argument to configure
|
||
|
|
||
|
if test -z "$ac_cv_rl_prefix"; then
|
||
|
test "x$prefix" = xNONE && ac_cv_rl_prefix=$ac_default_prefix || ac_cv_rl_prefix=${prefix}
|
||
|
fi
|
||
|
|
||
|
eval ac_cv_rl_includedir=${ac_cv_rl_prefix}/include
|
||
|
eval ac_cv_rl_libdir=${ac_cv_rl_prefix}/lib
|
||
|
|
||
|
LIBS="$LIBS -lreadline ${TERMCAP_LIB}"
|
||
|
CFLAGS="$CFLAGS -I${ac_cv_rl_includedir}"
|
||
|
LDFLAGS="$LDFLAGS -L${ac_cv_rl_libdir}"
|
||
|
|
||
|
AC_CACHE_VAL(ac_cv_rl_version,
|
||
|
[AC_TRY_RUN([
|
||
|
#include <stdio.h>
|
||
|
#include <readline/readline.h>
|
||
|
|
||
|
extern int rl_gnu_readline_p;
|
||
|
|
||
|
main()
|
||
|
{
|
||
|
FILE *fp;
|
||
|
fp = fopen("conftest.rlv", "w");
|
||
|
if (fp == 0)
|
||
|
exit(1);
|
||
|
if (rl_gnu_readline_p != 1)
|
||
|
fprintf(fp, "0.0\n");
|
||
|
else
|
||
|
fprintf(fp, "%s\n", rl_library_version ? rl_library_version : "0.0");
|
||
|
fclose(fp);
|
||
|
exit(0);
|
||
|
}
|
||
|
],
|
||
|
ac_cv_rl_version=`cat conftest.rlv`,
|
||
|
ac_cv_rl_version='0.0',
|
||
|
ac_cv_rl_version='4.2')])
|
||
|
|
||
|
CFLAGS="$_save_CFLAGS"
|
||
|
LDFLAGS="$_save_LDFLAGS"
|
||
|
LIBS="$_save_LIBS"
|
||
|
|
||
|
RL_MAJOR=0
|
||
|
RL_MINOR=0
|
||
|
|
||
|
# (
|
||
|
case "$ac_cv_rl_version" in
|
||
|
2*|3*|4*|5*|6*|7*|8*|9*)
|
||
|
RL_MAJOR=`echo $ac_cv_rl_version | sed 's:\..*$::'`
|
||
|
RL_MINOR=`echo $ac_cv_rl_version | sed -e 's:^.*\.::' -e 's:[[a-zA-Z]]*$::'`
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
# (((
|
||
|
case $RL_MAJOR in
|
||
|
[[0-9][0-9]]) _RL_MAJOR=$RL_MAJOR ;;
|
||
|
[[0-9]]) _RL_MAJOR=0$RL_MAJOR ;;
|
||
|
*) _RL_MAJOR=00 ;;
|
||
|
esac
|
||
|
|
||
|
# (((
|
||
|
case $RL_MINOR in
|
||
|
[[0-9][0-9]]) _RL_MINOR=$RL_MINOR ;;
|
||
|
[[0-9]]) _RL_MINOR=0$RL_MINOR ;;
|
||
|
*) _RL_MINOR=00 ;;
|
||
|
esac
|
||
|
|
||
|
RL_VERSION="0x${_RL_MAJOR}${_RL_MINOR}"
|
||
|
|
||
|
# Readline versions greater than 4.2 have these defines in readline.h
|
||
|
|
||
|
if test $ac_cv_rl_version = '0.0' ; then
|
||
|
AC_MSG_WARN([Could not test version of installed readline library.])
|
||
|
elif test $RL_MAJOR -gt 4 || { test $RL_MAJOR = 4 && test $RL_MINOR -gt 2 ; } ; then
|
||
|
# set these for use by the caller
|
||
|
RL_PREFIX=$ac_cv_rl_prefix
|
||
|
RL_LIBDIR=$ac_cv_rl_libdir
|
||
|
RL_INCLUDEDIR=$ac_cv_rl_includedir
|
||
|
AC_MSG_RESULT($ac_cv_rl_version)
|
||
|
else
|
||
|
|
||
|
AC_DEFINE_UNQUOTED(RL_READLINE_VERSION, $RL_VERSION, [encoded version of the installed readline library])
|
||
|
AC_DEFINE_UNQUOTED(RL_VERSION_MAJOR, $RL_MAJOR, [major version of installed readline library])
|
||
|
AC_DEFINE_UNQUOTED(RL_VERSION_MINOR, $RL_MINOR, [minor version of installed readline library])
|
||
|
|
||
|
AC_SUBST(RL_VERSION)
|
||
|
AC_SUBST(RL_MAJOR)
|
||
|
AC_SUBST(RL_MINOR)
|
||
|
|
||
|
# set these for use by the caller
|
||
|
RL_PREFIX=$ac_cv_rl_prefix
|
||
|
RL_LIBDIR=$ac_cv_rl_libdir
|
||
|
RL_INCLUDEDIR=$ac_cv_rl_includedir
|
||
|
|
||
|
AC_MSG_RESULT($ac_cv_rl_version)
|
||
|
|
||
|
fi
|
||
|
])
|