Index: bsd.port.mk =================================================================== RCS file: /home/pcvs/ports/Mk/bsd.port.mk,v retrieving revision 1.572 diff -U4 -r1.572 bsd.port.mk --- bsd.port.mk 28 Jun 2007 16:06:02 -0000 1.572 +++ bsd.port.mk 30 Jun 2007 01:02:44 -0000 @@ -5125,13 +5134,17 @@ lib-depends: .if defined(LIB_DEPENDS) && !defined(NO_DEPENDS) @for i in ${LIB_DEPENDS}; do \ lib=$${i%%:*}; \ - case $$lib in \ - *.*.*) pattern="`${ECHO_CMD} $$lib | ${SED} -e 's/\./\\\\./g'`" ;;\ - *.*) pattern="$${lib%%.*}\.$${lib#*.}" ;;\ - *) pattern="$$lib" ;;\ - esac; \ + if [ -n "${IGNORE_SHLIB_NUMBERS}" -a "${IGNORE_SHLIB_NUMBERS:L}" != "no" ]; then \ + pattern="$${lib%%.*}\."; \ + else \ + case $$lib in \ + *.*.*) pattern="`${ECHO_CMD} $$lib | ${SED} -e 's/\./\\\\./g'`$$" ;;\ + *.*) pattern="$${lib%%.*}\.$${lib#*.}$$" ;;\ + *) pattern="$$lib\." ;;\ + esac; \ + fi; \ dir=$${i#*:}; \ target=$${i##*:}; \ if ${TEST} $$dir = $$target; then \ target="${DEPENDS_TARGET}"; \ @@ -5140,10 +5153,12 @@ dir=$${dir%%:*}; \ fi; \ if [ -z "${DESTDIR}" ] ; then \ ${ECHO_MSG} -n "===> ${PKGNAME} depends on shared library: $$lib"; \ - if ${LDCONFIG} -r | ${GREP} -vwF -e "${PKGCOMPATDIR}" | ${GREP} -qwE -e "-l$$pattern"; then \ - ${ECHO_MSG} " - found"; \ + found=`${LDCONFIG} -r | ${AWK} -v skip="^${PKGCOMPATDIR:C,/+$,,}/" -v pat=":-l$$pattern" \ + '$$NF ~ skip {next} $$1 ~ pat { print $$NF; exit }'`; \ + if [ -n "$$found" ] ; then \ + ${ECHO_MSG} " - found ($$found)"; \ if [ ${_DEPEND_ALWAYS} = 1 ]; then \ ${ECHO_MSG} " (but building it anyway)"; \ notfound=1; \ else \ @@ -5173,11 +5188,15 @@ if [ ! -d "$$dir" ]; then \ ${ECHO_MSG} " => No directory for $$lib. Skipping.."; \ else \ ${_INSTALL_DEPENDS} \ - if ! ${LDCONFIG} -r | ${GREP} -vwF -e "${PKGCOMPATDIR}" | ${GREP} -qwE -e "-l$$pattern"; then \ - ${ECHO_MSG} "Error: shared library \"$$lib\" does not exist"; \ - ${FALSE}; \ + found=`${LDCONFIG} -r | ${AWK} -v skip="^${PKGCOMPATDIR:C,/+$,,}/" -v pat=":-l$$pattern" \ + '$$NF ~ skip {next} $$1 ~ pat { print $$NF; exit }'`; \ + if [ -z "$$found" ] ; then \ + ${ECHO_MSG} "Error: shared library \"$$lib\" was not installed"; \ + exit 1; \ + else \ + ${ECHO_MSG} "Shared library \"$$lib\" duly installed ($$found)"; \ fi; \ fi; \ fi; \ done