[Mac-telephony-list] asteristk build ignores 'external' ncurses libs; ok with 'other' libs (e.g. ssl ...)

snowcrash+mactelephony via List mac-telephony-list at mactelephony.net
Tue Jan 9 04:27:26 JST 2007


i'm building asterisk (trunk &/or v1.4.0) on osx 10.4.8.

i want to link against an 'external', non-osx-bundled install of libncurses.

all the following detail documents that i *can* link against external
ssl, but not ncurses.  looking for help.

i have ncurses insalled in /usr/local, so,

       % cd /usr/local/
       % ls -al lib/libncurses.dylib
               lrwxr-xr-x 1 root wheel 20 Jan  5 06:18 lib/libncurses.dylib ->
libncurses.5.6.dylib
       % ls -al include/ncurses/ncurses.h
               lrwxr-xr-x 1 root wheel 8 Jan  5 06:18
include/ncurses/ncurses.h -> curses.h

if i configure asterisk with,

       setenv LDFLAGS "-bind_at_load -L/usr/local/ssl/lib"
       setenv CPPFLAGS "-I /usr/local/ssl/include"
       ./configure \
       --prefix=/usr/local/asterisk \
       --with-ssl=/usr/local/ssl \
       --with-ncurses=/usr/local \
       ...

then, ./configure fails @,

       ...
       checking for mandatory modules:  NCURSES OPENSSL... fail

       configure: ***
       configure: *** The NCURSES installation appears to be missing or broken.
       configure: *** Either correct the installation, or run configure
       configure: *** including --without-ncurses.

if i add,

       setenv LDFLAGS "-bind_at_load -L/usr/local/ssl/lib
-L/usr/local/lib -lncurses"
       setenv CPPFLAGS "-I /usr/local/ssl/include -I/usr/local/include/ncurses"

to the above config, same error.

if, instead, i keep these LFGLAGS & CPPFLAGS defs, but,

       ./configure \
       --with-ssl=/usr/local/ssl \
       --prefix=/usr/local/asterisk \
       --with-ncurses \
       ...

then, no error, but subsequent build selects ncurses from /usr, not
spec'd /usr/local, e.g.,

% otool -L main/asterisk
       /usr/local/ssl/lib/libssl.0.9.8.dylib (compatibility version 0.9.8,
current version 0.9.8)
       /usr/local/ssl/lib/libcrypto.0.9.8.dylib (compatibility version
0.9.8, current version 0.9.8)
-->     /usr/lib/libncurses.5.4.dylib (compatibility version 5.4.0,
current version 5.4.0)
       /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
version 88.1.7)
       /usr/lib/libresolv.9.dylib (compatibility version 1.0.0, current
version 369.5.0)
       /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0,
current version 7.4.0)
       /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current
version 1.0.0)

fwiw, my "readline" is _also_ in /usr/local/, built against _my_ ncurses, i.e.,

% otool -L /usr/local/lib/libreadline.dylib
       /usr/local/lib/libreadline.5.2.dylib (compatibility version
5.0.0, current version 5.2.0)
       /usr/local/lib/libncurses.5.6.dylib (compatibility version
5.6.0, current version 5.6.0)
       /usr/lib/libmx.A.dylib (compatibility version 1.0.0, current
version 92.0.0)
       /usr/lib/libSystem.B.dylib (compatibility version 1.0.0,
current version 88.1.7)

looking thru the code, i believe this is a result of the locations
searched for the include files.

in the default osx distro,

/usr/include  > ls -al *curses*
	 -rw-r--r-- 1 root wheel 70873 2006-09-11 19:23 curses.h
	 lrwxr-xr-x 1 root wheel     8 2006-11-01 07:20 ncurses.h -> curses.h
	 -rw-r--r-- 1 root wheel  1559 2006-09-11 19:23 ncurses_dll.h

but for a 'new' ncurses install target of,

	 --prefix=/usr/local

the install is in,

/usr/local/include  > ls *curses*
	ncurses:
	 curses.h     cursesp.h  etip.h     ncurses_dll.h  unctrl.h
	 cursesapp.h  cursesw.h  form.h     panel.h
	 cursesf.h    cursslk.h  menu.h     term.h
	 cursesm.h    eti.h      ncurses.h  termcap.h

	ncursesw:
	 curses.h     cursesp.h  etip.h     ncurses_dll.h  unctrl.h
	 cursesapp.h  cursesw.h  form.h     panel.h
	 cursesf.h    cursslk.h  menu.h     term.h
	 cursesm.h    eti.h      ncurses.h  termcap.h

i _could_ symlink

 /usr/local/include/ncurses/ncurses.h -> /usr/local/include/ncurses.h

and, i guess, that might resolve the issue.

BUT, that's messy as it complicates the ability for other apps to
distinguish between,

   ncurses
   ncursesw

install dirs, so i' *like* to get asterisk 'behaving' with *my*
ncurses. clearly, it 'works' for ssl ...


ideas?

thanks!


More information about the mac-telephony-list mailing list