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

Re: zsh-4.3.4-dev-2.tar.gz



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}" ;;

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



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