Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: configure should have --with-ncurses and --with-ncursesw



Peter Stephenson <pws@xxxxxxx> wrote:
> > To be able to use ncurses by default, I had to change the configure
> > script:
> > 
> > -  termcap_curses_order="tinfo curses ncurses termcap"
> > +  termcap_curses_order="ncurses tinfo curses termcap"
> 
> That looks harmless: I can't see why there might be a good reason for
> preferring curses to ncurses.  I'll have a go at this when I'm back in
> normal operation (my home laptop power supply has died and I'm still
> reeling from being back at work).

OK, here is an attempt at doing this consistently.  I've changed the search
order.  I've also changed the order in which we search for tigetflag
(terminfo) and tgetent (termcap).  The point of this is that if we find
tigetflag in ncurses we then don't need to link against termcap as well.

Much of the history of the termcap/terminfo/curses library search is
probably irrelevant now, since we always try to link against terminfo
in order to make the zsh/terminfo module to work and have done this for
some time.  I'm not sure we need --with-curses-terminfo any more.

This now makes my Fedora system link against -lncurses, instead of -lcurses
-ltermcap.

Index: configure.ac
===================================================================
RCS file: /cvsroot/zsh/zsh/configure.ac,v
retrieving revision 1.60
diff -u -r1.60 configure.ac
--- configure.ac	4 Dec 2006 11:24:10 -0000	1.60
+++ configure.ac	5 Jan 2007 13:05:47 -0000
@@ -637,20 +637,24 @@
 AC_CHECK_LIB(m, pow)
 
 dnl Prefer BSD termcap library to SysV curses library, except on certain
-dnl SYSV-derived systems.
+dnl SYSV-derived systems.  However, if we find terminfo and termcap
+dnl stuff in the same library we will use that; typically this
+dnl is ncurses or curses.
 dnl On HPUX, Hcurses is reported to work better than curses.
+dnl Prefer ncurses to curses on all systems; prefer it to tinfo
+dnl if we were told to use curses.  tinfo isn't very common now.
 AC_ARG_WITH(curses-terminfo,
 AC_HELP_STRING([--with-curses-terminfo], [use terminfo support from curses library]),
 [if test x$withval = xyes; then
-  termcap_curses_order="tinfo curses ncurses termcap"
+  termcap_curses_order="ncurses tinfo curses termcap"
   AC_SEARCH_LIBS(tigetstr, [$termcap_curses_order])
 else
-  termcap_curses_order="tinfo termcap curses ncurses"
+  termcap_curses_order="tinfo termcap ncurses curses"
 fi],
 [case "$host_os" in
   hpux10.*|hpux11.*|solaris*)
-      termcap_curses_order="Hcurses curses ncurses termcap" ;;
-  *)             termcap_curses_order="tinfo termcap curses ncurses" ;;
+      termcap_curses_order="Hcurses ncurses curses termcap" ;;
+  *)             termcap_curses_order="tinfo termcap ncurses curses" ;;
 esac])dnl
 
 AH_TEMPLATE([HAVE_BOOLCODES],
@@ -667,8 +671,13 @@
 [Define if you have the terminfo strnames symbol.])
 AH_TEMPLATE([TERM_H_NEEDS_CURSES_H],
 [Define if term.h chokes without curses.h.])
-AC_SEARCH_LIBS(tgetent, [$termcap_curses_order])
+dnl Check for tigetflag (terminfo) before tgetent (termcap).
+dnl That's so that on systems where termcap and [n]curses are
+dnl both available and both contain termcap functions, while
+dnl only [n]curses contains terminfo functions, we only link against
+dnl [n]curses.
 AC_SEARCH_LIBS(tigetflag, [$termcap_curses_order])
+AC_SEARCH_LIBS(tgetent, [$termcap_curses_order])
 AC_CHECK_HEADERS(curses.h, [],
 [AC_CACHE_CHECK(for Solaris 8 curses.h mistake, ac_cv_header_curses_solaris,
 AC_TRY_COMPILE([#include <curses.h>], [],

-- 
Peter Stephenson <pws@xxxxxxx>                  Software Engineer
CSR PLC, Churchill House, Cambridge Business Park, Cowley Road
Cambridge, CB4 0WZ, UK                          Tel: +44 (0)1223 692070


To access the latest news from CSR copy this link into a web browser:  http://www.csr.com/email_sig.php



Messages sorted by: Reverse Date, Date, Thread, Author