[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