Glenn Burkhardt
2000-Dec-18 04:31 UTC
bugfix for configure script (misses readline library)
I've always wanted to have 'readline' working in 'smbclient'. I sat down to add it today, and found that it already was coded, but that the configure script was failing to find the readline library properly. The problem is that on several systems, the 'termcap' library is needed as well. Samba version 2.0.7 Platforms: Solaris 5.8, SunOS 4.1.4, Linux version 2.2.14-15mdk In the config.log file on the Solaris system, you get something like this: ------------------------------------------------------- configure:3712: checking for readline in -lreadline configure:3731: gcc -o conftest -O conftest.c -lreadline -ldl 1>&5 Undefined first referenced symbol in file tgetnum /usr/local/lib/libreadline.a(terminal.o) tgetstr /usr/local/lib/libreadline.a(terminal.o) tgoto /usr/local/lib/libreadline.a(display.o) tputs /usr/local/lib/libreadline.a(display.o) tgetent /usr/local/lib/libreadline.a(terminal.o) tgetflag /usr/local/lib/libreadline.a(terminal.o) ld: fatal: Symbol referencing errors. No output written to conftest collect2: ld returned 1 exit status configure: failed program was: #line 3720 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char readline(); int main() { readline() ; return 0; } --------------------------------------------------------- The test will succeed if the link line is: gcc -o conftest -O conftest.c -lreadline -ltermcap -ldl Attached is a patch for 'configure.in'. Run 'autoconf' to generate a new configure script. -------------- next part -------------- --- configure.in.orig Sun Dec 17 23:09:15 2000 +++ configure.in Sun Dec 17 23:01:37 2000 @@ -312,7 +312,8 @@ # test for where we get readline() from if test "$ac_cv_header_readline_h" = "yes" || test "$ac_cv_header_readline_readline_h" = "yes"; then - AC_CHECK_LIB(readline,readline) + AC_CHECK_LIB(readline,readline, [LIBS="$LIBS -lreadline -ltermcap"; + AC_DEFINE(HAVE_LIBREADLINE)],, -ltermcap) fi