I believe ncurses.h is in the standard place, but not where it is
configures looks for and the sources include it: /usr/local/src/build/zsh-4.3.4-dev-2$ grep 'include.*curses' **/*.c Src/Modules/curses.c:#include "curses.mdh" Src/Modules/curses.c:#include "curses.pro" Src/Modules/curses.c:# include <ncurses.h> Src/Modules/curses.c:# include <curses.h> Src/Modules/curses.c:#include "curses_keys.h" Src/Modules/termcap.c:# include <curses.h> Src/Modules/terminfo.c:# include <curses.h> /usr/local/src/build/zsh-4.3.4-dev-2$ locate ncurses.h /usr/local/include/ncurses/ncurses.h /usr/local/include/ncursesw/ncurses.h so, one should have #include <ncursesw/ncurses.h> rather than #include <ncurses.h> in Src/Modules/curses.c Perhaps I should add -I/usr/local/include/ncursesw to the CPPFLAGS? On 20/11/07 16:14, Peter Stephenson wrote: On Tue, 20 Nov 2007 15:09:27 +0200 "Zvi Har'El" <rl@xxxxxxxxxxxxxxxxxxx> wrote:Another problem. I have two Solaris systems, 2.8 and 2.9. The tar, as well as the CVS Head, do not build. Last time I was able to build was, from the Head -rwxr-xr-x 2 root root 548196 2007-11-08 10:24:53.000000000 +0200 /usr/local/bin/zsh The I have in these systems, in addition to Solaris's curses, also gnu ncurses 5.6 (installed at /usr/local). For some reason, configure finds ncursesw.so but doesn't find ncurses.h. I attach config.log and config.h.Thanks. We shouldn't search the ncurses library if we haven't found the ncurses header. Obviously it's better to find the header, but the shell may need help doing that. I've added a note to the installation instructions. The last hunk was supposed to add "-expect_unresolved '*'" to DLLDFLAGS on Tru64 Unix, but the mail I sent seems to have gone astray. I haven't tested this. The idea that the OS still appeared to autoconf as osf* was suggested by Google but I don't know that for sure either. Index: INSTALL =================================================================== RCS file: /cvsroot/zsh/zsh/INSTALL,v retrieving revision 1.32 diff -u -r1.32 INSTALL --- INSTALL 12 Oct 2007 10:18:58 -0000 1.32 +++ INSTALL 20 Nov 2007 14:08:56 -0000 @@ -328,6 +328,14 @@ to the developers at zsh-workers@xxxxxxxxxx and attempt to recompile with --with-term-lib="tinfo termcap ncurses curses" (see below). +Note that use of ncurses requires the header ncurses.h, so this +needs to be in the include path. configure will not search for +ncurses or ncursesw unless this is the case. If you have installed +ncurses.h in a non-standard place you may need to pass +CPPFLAGS=-I/usr/local/include (or wherever the header is found) to +configure. Similarly, you may need to pass LDFLAGS=-L/usr/local/lib +(or wherever) in order to find the library. + On some systems a suitable development package with a name such as curses-devel or ncurses-devel needs to be installed before zsh can be compiled. This is likely to be contained on any installation media, Index: configure.ac =================================================================== RCS file: /cvsroot/zsh/zsh/configure.ac,v retrieving revision 1.78 diff -u -r1.78 configure.ac --- configure.ac 10 Nov 2007 20:29:27 -0000 1.78 +++ configure.ac 20 Nov 2007 14:08:58 -0000 @@ -636,6 +636,17 @@ AC_CHECK_LIB(m, pow) +dnl Various features of ncurses depend on having the right header +dnl (the system's own curses.h may well not be good enough). +dnl So don't search for ncurses unless we found the header. +if test x$ac_cv_header_ncurses_h = xyes; then + ncursesw_test=ncursesw + ncurses_test=ncurses +else + ncursesw_test= + ncurses_test= +fi + dnl Prefer BSD termcap library to SysV curses library, except on certain dnl SYSV-derived systems. However, if we find terminfo and termcap dnl stuff in the same library we will use that; typically this @@ -648,12 +659,13 @@ termcap_curses_order="$withval" AC_SEARCH_LIBS(tigetstr, [$termcap_curses_order]) else - termcap_curses_order="ncursesw tinfo termcap ncurses curses" + termcap_curses_order="$ncursesw_test tinfo termcap $ncurses_test curses" fi], [case "$host_os" in hpux10.*|hpux11.*|solaris*) - termcap_curses_order="Hcurses ncursesw ncurses curses termcap" ;; - *) termcap_curses_order="ncursesw tinfo termcap ncurses curses" ;; + termcap_curses_order="Hcurses $ncursesw_test $ncurses_test curses termcap" ;; + *) + termcap_curses_order="$ncursesw_test tinfo termcap $ncurses_test curses" ;; esac])dnl AH_TEMPLATE([HAVE_BOOLCODES], @@ -2357,7 +2369,8 @@ esac fi case "$host_os" in - *freebsd*|linux*|irix*|osf*|gnu*|dragonfly*) DLLDFLAGS="${DLLDFLAGS=-shared}" ;; + osf*) DLLDFLAGS="${DLLDFLAGS=-shared -expect_unresolved '*'}" ;; + *freebsd*|linux*|irix*|gnu*|dragonfly*) DLLDFLAGS="${DLLDFLAGS=-shared}" ;; sunos*) DLLDFLAGS="${DLLDFLAGS=-assert nodefinitions}" ;; sysv4*|esix*) DLLDFLAGS="${DLLDFLAGS=-G $ldflags}" ;; netbsd*) DLLDFLAGS="${DLLDFLAGS=${DLLDARG}-x -shared --whole-archive}" ;; -- Dr. Zvi Har'El mailto:rl@xxxxxxxxxxxxxxxxxxx Department of Mathematics tel:+972-54-4227607 Technion - Israel Institute of Technology fax:+972-4-8293388 http://www.math.technion.ac.il/~rl/ Haifa 32000, ISRAEL "If you can't say somethin' nice, don't say nothin' at all." -- Thumper (1942) |