1dnl need: prefix exec_prefix libdir includedir CC TERMCAP_LIB 2dnl require: 3dnl AC_PROG_CC 4dnl BASH_CHECK_LIB_TERMCAP 5 6AC_DEFUN([RL_LIB_READLINE_VERSION], 7[ 8AC_REQUIRE([BASH_CHECK_LIB_TERMCAP]) 9 10AC_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 23if test -z "$ac_cv_rl_prefix"; then 24test "x$prefix" = xNONE && ac_cv_rl_prefix=$ac_default_prefix || ac_cv_rl_prefix=${prefix} 25fi 26 27eval ac_cv_rl_includedir=${ac_cv_rl_prefix}/include 28eval ac_cv_rl_libdir=${ac_cv_rl_prefix}/lib 29 30LIBS="$LIBS -lreadline ${TERMCAP_LIB}" 31CFLAGS="$CFLAGS -I${ac_cv_rl_includedir}" 32LDFLAGS="$LDFLAGS -L${ac_cv_rl_libdir}" 33 34AC_CACHE_VAL(ac_cv_rl_version, 35[AC_TRY_RUN([ 36#include <stdio.h> 37#include <readline/readline.h> 38#include <stdlib.h> 39 40extern int rl_gnu_readline_p; 41 42main() 43{ 44 FILE *fp; 45 fp = fopen("conftest.rlv", "w"); 46 if (fp == 0) 47 exit(1); 48 if (rl_gnu_readline_p != 1) 49 fprintf(fp, "0.0\n"); 50 else 51 fprintf(fp, "%s\n", rl_library_version ? rl_library_version : "0.0"); 52 fclose(fp); 53 exit(0); 54} 55], 56ac_cv_rl_version=`cat conftest.rlv`, 57ac_cv_rl_version='0.0', 58ac_cv_rl_version='4.2')]) 59 60CFLAGS="$_save_CFLAGS" 61LDFLAGS="$_save_LDFLAGS" 62LIBS="$_save_LIBS" 63 64RL_MAJOR=0 65RL_MINOR=0 66 67# ( 68case "$ac_cv_rl_version" in 692*|3*|4*|5*|6*|7*|8*|9*) 70 RL_MAJOR=`echo $ac_cv_rl_version | sed 's:\..*$::'` 71 RL_MINOR=`echo $ac_cv_rl_version | sed -e 's:^.*\.::' -e 's:[[a-zA-Z]]*$::'` 72 ;; 73esac 74 75# ((( 76case $RL_MAJOR in 77[[0-9][0-9]]) _RL_MAJOR=$RL_MAJOR ;; 78[[0-9]]) _RL_MAJOR=0$RL_MAJOR ;; 79*) _RL_MAJOR=00 ;; 80esac 81 82# ((( 83case $RL_MINOR in 84[[0-9][0-9]]) _RL_MINOR=$RL_MINOR ;; 85[[0-9]]) _RL_MINOR=0$RL_MINOR ;; 86*) _RL_MINOR=00 ;; 87esac 88 89RL_VERSION="0x${_RL_MAJOR}${_RL_MINOR}" 90 91# Readline versions greater than 4.2 have these defines in readline.h 92 93if test $ac_cv_rl_version = '0.0' ; then 94 AC_MSG_WARN([Could not test version of installed readline library.]) 95elif test $RL_MAJOR -gt 4 || { test $RL_MAJOR = 4 && test $RL_MINOR -gt 2 ; } ; then 96 # set these for use by the caller 97 RL_PREFIX=$ac_cv_rl_prefix 98 RL_LIBDIR=$ac_cv_rl_libdir 99 RL_INCLUDEDIR=$ac_cv_rl_includedir 100 AC_MSG_RESULT($ac_cv_rl_version) 101else 102 103AC_DEFINE_UNQUOTED(RL_READLINE_VERSION, $RL_VERSION, [encoded version of the installed readline library]) 104AC_DEFINE_UNQUOTED(RL_VERSION_MAJOR, $RL_MAJOR, [major version of installed readline library]) 105AC_DEFINE_UNQUOTED(RL_VERSION_MINOR, $RL_MINOR, [minor version of installed readline library]) 106 107AC_SUBST(RL_VERSION) 108AC_SUBST(RL_MAJOR) 109AC_SUBST(RL_MINOR) 110 111# set these for use by the caller 112RL_PREFIX=$ac_cv_rl_prefix 113RL_LIBDIR=$ac_cv_rl_libdir 114RL_INCLUDEDIR=$ac_cv_rl_includedir 115 116AC_MSG_RESULT($ac_cv_rl_version) 117 118fi 119]) 120