Add configure flag to allow libedit to be preferred over GNU readline:

--with-libedit-preferred  prefer BSD Libedit over GNU Readline
This commit is contained in:
Bruce Momjian 2005-12-04 03:52:29 +00:00
parent e4a9229d55
commit 10e3d224e0
4 changed files with 105 additions and 34 deletions

View File

@ -1,4 +1,4 @@
# $PostgreSQL: pgsql/config/programs.m4,v 1.18 2004/12/02 20:04:19 tgl Exp $ # $PostgreSQL: pgsql/config/programs.m4,v 1.19 2005/12/04 03:52:28 momjian Exp $
# PGAC_PATH_FLEX # PGAC_PATH_FLEX
@ -78,12 +78,16 @@ AC_SUBST(FLEXFLAGS)
AC_DEFUN([PGAC_CHECK_READLINE], AC_DEFUN([PGAC_CHECK_READLINE],
[AC_REQUIRE([AC_CANONICAL_HOST]) [AC_REQUIRE([AC_CANONICAL_HOST])
AC_MSG_CHECKING([for readline])
AC_CACHE_VAL([pgac_cv_check_readline], AC_CACHE_VAL([pgac_cv_check_readline],
[pgac_cv_check_readline=no [pgac_cv_check_readline=no
pgac_save_LIBS=$LIBS pgac_save_LIBS=$LIBS
for pgac_rllib in -lreadline -ledit ; do if test x"$with_libedit_preferred" != x"yes"
then READLINE_ORDER="-lreadline -ledit"
else READLINE_ORDER="-ledit -lreadline"
fi
for pgac_rllib in $READLINE_ORDER ; do
AC_MSG_CHECKING([for ${pgac_rllib}])
for pgac_lib in "" " -ltermcap" " -lncurses" " -lcurses" ; do for pgac_lib in "" " -ltermcap" " -lncurses" " -lcurses" ; do
LIBS="${pgac_rllib}${pgac_lib} $pgac_save_LIBS" LIBS="${pgac_rllib}${pgac_lib} $pgac_save_LIBS"
AC_TRY_LINK_FUNC([readline], [[ AC_TRY_LINK_FUNC([readline], [[
@ -98,20 +102,25 @@ for pgac_rllib in -lreadline -ledit ; do
esac esac
pgac_cv_check_readline="${pgac_rllib}${pgac_lib}" pgac_cv_check_readline="${pgac_rllib}${pgac_lib}"
break 2 break
]]) ]])
done done
if test "$pgac_cv_check_readline" != no ; then
AC_MSG_RESULT([yes ($pgac_cv_check_readline)])
break
else
AC_MSG_RESULT(no)
fi
done done
LIBS=$pgac_save_LIBS LIBS=$pgac_save_LIBS
])[]dnl AC_CACHE_VAL ])[]dnl AC_CACHE_VAL
if test "$pgac_cv_check_readline" != no ; then if test "$pgac_cv_check_readline" != no ; then
AC_DEFINE(HAVE_LIBREADLINE, 1, [Define if you have a function readline library])
LIBS="$pgac_cv_check_readline $LIBS" LIBS="$pgac_cv_check_readline $LIBS"
AC_MSG_RESULT([yes ($pgac_cv_check_readline)]) AC_DEFINE(HAVE_LIBREADLINE, 1, [Define if you have a function readline library])
else fi
AC_MSG_RESULT(no)
fi])# PGAC_CHECK_READLINE ])# PGAC_CHECK_READLINE

63
configure vendored
View File

@ -890,7 +890,8 @@ Optional Packages:
--with-pam build with PAM support --with-pam build with PAM support
--with-bonjour build with Bonjour support --with-bonjour build with Bonjour support
--with-openssl build with OpenSSL support --with-openssl build with OpenSSL support
--without-readline do not use Readline --with-libedit-preferred prefer BSD Libedit over GNU Readline
--without-readline do not use GNU Readline / BSD Libedit line editing
--without-zlib do not use Zlib --without-zlib do not use Zlib
--with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-gnu-ld assume the C compiler uses GNU ld [default=no]
@ -3771,6 +3772,37 @@ echo "${ECHO_T}$with_openssl" >&6
#
# Prefer libedit
#
# Check whether --with-libedit-preferred or --without-libedit-preferred was given.
if test "${with_libedit_preferred+set}" = set; then
withval="$with_libedit_preferred"
case $withval in
yes)
:
;;
no)
:
;;
*)
{ { echo "$as_me:$LINENO: error: no argument expected for --with-libedit-preferred option" >&5
echo "$as_me: error: no argument expected for --with-libedit-preferred option" >&2;}
{ (exit 1); exit 1; }; }
;;
esac
else
with_libedit_preferred=no
fi;
# #
# Readline # Readline
# #
@ -6490,15 +6522,19 @@ fi
if test "$with_readline" = yes; then if test "$with_readline" = yes; then
echo "$as_me:$LINENO: checking for readline" >&5
echo $ECHO_N "checking for readline... $ECHO_C" >&6
if test "${pgac_cv_check_readline+set}" = set; then if test "${pgac_cv_check_readline+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6 echo $ECHO_N "(cached) $ECHO_C" >&6
else else
pgac_cv_check_readline=no pgac_cv_check_readline=no
pgac_save_LIBS=$LIBS pgac_save_LIBS=$LIBS
for pgac_rllib in -lreadline -ledit ; do if test x"$with_libedit_preferred" != x"yes"
then READLINE_ORDER="-lreadline -ledit"
else READLINE_ORDER="-ledit -lreadline"
fi
for pgac_rllib in $READLINE_ORDER ; do
echo "$as_me:$LINENO: checking for ${pgac_rllib}" >&5
echo $ECHO_N "checking for ${pgac_rllib}... $ECHO_C" >&6
for pgac_lib in "" " -ltermcap" " -lncurses" " -lcurses" ; do for pgac_lib in "" " -ltermcap" " -lncurses" " -lcurses" ; do
LIBS="${pgac_rllib}${pgac_lib} $pgac_save_LIBS" LIBS="${pgac_rllib}${pgac_lib} $pgac_save_LIBS"
cat >conftest.$ac_ext <<_ACEOF cat >conftest.$ac_ext <<_ACEOF
@ -6557,7 +6593,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
esac esac
pgac_cv_check_readline="${pgac_rllib}${pgac_lib}" pgac_cv_check_readline="${pgac_rllib}${pgac_lib}"
break 2 break
else else
echo "$as_me: failed program was:" >&5 echo "$as_me: failed program was:" >&5
@ -6567,24 +6603,29 @@ fi
rm -f conftest.err conftest.$ac_objext \ rm -f conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext conftest$ac_exeext conftest.$ac_ext
done done
if test "$pgac_cv_check_readline" != no ; then
echo "$as_me:$LINENO: result: yes ($pgac_cv_check_readline)" >&5
echo "${ECHO_T}yes ($pgac_cv_check_readline)" >&6
break
else
echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6
fi
done done
LIBS=$pgac_save_LIBS LIBS=$pgac_save_LIBS
fi fi
if test "$pgac_cv_check_readline" != no ; then if test "$pgac_cv_check_readline" != no ; then
LIBS="$pgac_cv_check_readline $LIBS"
cat >>confdefs.h <<\_ACEOF cat >>confdefs.h <<\_ACEOF
#define HAVE_LIBREADLINE 1 #define HAVE_LIBREADLINE 1
_ACEOF _ACEOF
LIBS="$pgac_cv_check_readline $LIBS"
echo "$as_me:$LINENO: result: yes ($pgac_cv_check_readline)" >&5
echo "${ECHO_T}yes ($pgac_cv_check_readline)" >&6
else
echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6
fi fi
if test x"$pgac_cv_check_readline" = x"no"; then if test x"$pgac_cv_check_readline" = x"no"; then
{ { echo "$as_me:$LINENO: error: readline library not found { { echo "$as_me:$LINENO: error: readline library not found
If you have readline already installed, see config.log for details on the If you have readline already installed, see config.log for details on the

View File

@ -1,5 +1,5 @@
dnl Process this file with autoconf to produce a configure script. dnl Process this file with autoconf to produce a configure script.
dnl $PostgreSQL: pgsql/configure.in,v 1.432 2005/11/05 16:42:01 tgl Exp $ dnl $PostgreSQL: pgsql/configure.in,v 1.433 2005/12/04 03:52:24 momjian Exp $
dnl dnl
dnl Developers, please strive to achieve this order: dnl Developers, please strive to achieve this order:
dnl dnl
@ -467,11 +467,18 @@ AC_MSG_RESULT([$with_openssl])
AC_SUBST(with_openssl) AC_SUBST(with_openssl)
#
# Prefer libedit
#
PGAC_ARG_BOOL(with, libedit-preferred, no,
[ --with-libedit-preferred prefer BSD Libedit over GNU Readline])
# #
# Readline # Readline
# #
PGAC_ARG_BOOL(with, readline, yes, PGAC_ARG_BOOL(with, readline, yes,
[ --without-readline do not use Readline]) [ --without-readline do not use GNU Readline / BSD Libedit line editing])
# readline on MinGW has problems with backslashes in psql and other bugs. # readline on MinGW has problems with backslashes in psql and other bugs.
# This is particularly a problem with non-US code pages. # This is particularly a problem with non-US code pages.
# Therefore disable its use until we understand the cause. 2004-07-20 # Therefore disable its use until we understand the cause. 2004-07-20

View File

@ -1,4 +1,4 @@
<!-- $PostgreSQL: pgsql/doc/src/sgml/installation.sgml,v 1.249 2005/11/05 00:04:04 tgl Exp $ --> <!-- $PostgreSQL: pgsql/doc/src/sgml/installation.sgml,v 1.250 2005/12/04 03:52:29 momjian Exp $ -->
<chapter id="installation"> <chapter id="installation">
<title><![%standalone-include[<productname>PostgreSQL</>]]> <title><![%standalone-include[<productname>PostgreSQL</>]]>
@ -107,16 +107,20 @@ su - postgres
</indexterm> </indexterm>
The <acronym>GNU</> <productname>Readline</> library (for The <acronym>GNU</> <productname>Readline</> library (for
comfortable line editing and command history retrieval) will be simple line editing and command history retrieval) is
used by default. If you don't want to use it then you must used by default. If you don't want to use it then you must specify
specify the <option>--without-readline</option> option for the <option>--without-readline</option> option for
<filename>configure</>. (On <productname>NetBSD</productname>, <filename>configure</>. As an alternative, you can often use the
the <filename>libedit</filename> library is BSD-licensed <filename>libedit</filename> library, originally
<productname>Readline</productname>-compatible and is used if developed on <productname>NetBSD</productname>. The
<filename>libreadline</filename> is not found.) If you are using <filename>libedit</filename> library is
a package-based Linux distribution, be aware that you need both GNU <productname>Readline</productname>-compatible and is used if
the <literal>readline</> and <literal>readline-devel</> packages, <filename>libreadline</filename> is not found, or if
if those are separate in your distribution. <option>--with-libedit-preferred</option> is used as an
option to <filename>configure</>. If you are using a package-based
Linux distribution, be aware that you need both the
<literal>readline</> and <literal>readline-devel</> packages, if
those are separate in your distribution.
</para> </para>
</listitem> </listitem>
@ -857,6 +861,16 @@ su - postgres
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry>
<term><option>--with-libedit-preferred</option></term>
<listitem>
<para>
Favors the use of the BSD-licensed <application>libedit</> library
rather than GPL-licensed <application>Readline</>.
</para>
</listitem>
</varlistentry>
<varlistentry> <varlistentry>
<term><option>--without-readline</option></term> <term><option>--without-readline</option></term>
<listitem> <listitem>