summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Momjian2005-12-04 03:52:29 +0000
committerBruce Momjian2005-12-04 03:52:29 +0000
commit7382f2822078ff73de7bdc461c1296b66403fe04 (patch)
tree490b36978575e0a03e9deff0d3a8a7301cd8f473
parent5559eedd54339e7a2d6e70a2534cb829d3f6dd53 (diff)
Add configure flag to allow libedit to be preferred over GNU readline:
--with-libedit-preferred prefer BSD Libedit over GNU Readline
-rw-r--r--config/programs.m425
-rwxr-xr-xconfigure63
-rw-r--r--configure.in9
-rw-r--r--doc/src/sgml/installation.sgml36
4 files changed, 102 insertions, 31 deletions
diff --git a/config/programs.m4 b/config/programs.m4
index ad3e4a43b2..8467e5b620 100644
--- a/config/programs.m4
+++ b/config/programs.m4
@@ -78,12 +78,16 @@ AC_SUBST(FLEXFLAGS)
AC_DEFUN([PGAC_CHECK_READLINE],
[AC_REQUIRE([AC_CANONICAL_HOST])
-AC_MSG_CHECKING([for readline])
AC_CACHE_VAL([pgac_cv_check_readline],
[pgac_cv_check_readline=no
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
LIBS="${pgac_rllib}${pgac_lib} $pgac_save_LIBS"
AC_TRY_LINK_FUNC([readline], [[
@@ -98,20 +102,25 @@ for pgac_rllib in -lreadline -ledit ; do
esac
pgac_cv_check_readline="${pgac_rllib}${pgac_lib}"
- break 2
+ break
]])
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
LIBS=$pgac_save_LIBS
])[]dnl AC_CACHE_VAL
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"
- AC_MSG_RESULT([yes ($pgac_cv_check_readline)])
-else
- AC_MSG_RESULT(no)
-fi])# PGAC_CHECK_READLINE
+ AC_DEFINE(HAVE_LIBREADLINE, 1, [Define if you have a function readline library])
+fi
+
+])# PGAC_CHECK_READLINE
diff --git a/configure b/configure
index f3cb1136b2..089573a0a7 100755
--- a/configure
+++ b/configure
@@ -890,7 +890,8 @@ Optional Packages:
--with-pam build with PAM support
--with-bonjour build with Bonjour 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
--with-gnu-ld assume the C compiler uses GNU ld [default=no]
@@ -3772,6 +3773,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
#
@@ -6490,15 +6522,19 @@ fi
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
echo $ECHO_N "(cached) $ECHO_C" >&6
else
pgac_cv_check_readline=no
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
LIBS="${pgac_rllib}${pgac_lib} $pgac_save_LIBS"
cat >conftest.$ac_ext <<_ACEOF
@@ -6557,7 +6593,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
esac
pgac_cv_check_readline="${pgac_rllib}${pgac_lib}"
- break 2
+ break
else
echo "$as_me: failed program was:" >&5
@@ -6567,24 +6603,29 @@ fi
rm -f conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
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
LIBS=$pgac_save_LIBS
fi
if test "$pgac_cv_check_readline" != no ; then
+ LIBS="$pgac_cv_check_readline $LIBS"
cat >>confdefs.h <<\_ACEOF
#define HAVE_LIBREADLINE 1
_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
+
+
if test x"$pgac_cv_check_readline" = x"no"; then
{ { echo "$as_me:$LINENO: error: readline library not found
If you have readline already installed, see config.log for details on the
diff --git a/configure.in b/configure.in
index a4009002fc..adc021c663 100644
--- a/configure.in
+++ b/configure.in
@@ -468,10 +468,17 @@ AC_SUBST(with_openssl)
#
+# Prefer libedit
+#
+PGAC_ARG_BOOL(with, libedit-preferred, no,
+ [ --with-libedit-preferred prefer BSD Libedit over GNU Readline])
+
+
+#
# Readline
#
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.
# This is particularly a problem with non-US code pages.
# Therefore disable its use until we understand the cause. 2004-07-20
diff --git a/doc/src/sgml/installation.sgml b/doc/src/sgml/installation.sgml
index e02f6bca58..1438d6aa32 100644
--- a/doc/src/sgml/installation.sgml
+++ b/doc/src/sgml/installation.sgml
@@ -50,7 +50,7 @@ su - postgres
<para>
In general, a modern Unix-compatible platform should be able to run
<productname>PostgreSQL</>.
- The platforms that had received specific testing at the
+ The platforms that had received specific testing at the
time of release are listed in <xref linkend="supported-platforms">
below. In the <filename>doc</> subdirectory of the distribution
there are several platform-specific <acronym>FAQ</> documents you
@@ -107,16 +107,20 @@ su - postgres
</indexterm>
The <acronym>GNU</> <productname>Readline</> library (for
- comfortable line editing and command history retrieval) will be
- used by default. If you don't want to use it then you must
- specify the <option>--without-readline</option> option for
- <filename>configure</>. (On <productname>NetBSD</productname>,
- the <filename>libedit</filename> library is
- <productname>Readline</productname>-compatible and is used if
- <filename>libreadline</filename> is not found.) 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.
+ simple line editing and command history retrieval) is
+ used by default. If you don't want to use it then you must specify
+ the <option>--without-readline</option> option for
+ <filename>configure</>. As an alternative, you can often use the
+ BSD-licensed <filename>libedit</filename> library, originally
+ developed on <productname>NetBSD</productname>. The
+ <filename>libedit</filename> library is
+ GNU <productname>Readline</productname>-compatible and is used if
+ <filename>libreadline</filename> is not found, or if
+ <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>
</listitem>
@@ -858,6 +862,16 @@ su - postgres
</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>
<term><option>--without-readline</option></term>
<listitem>
<para>