Index: head/Mk/Scripts/depends-list.sh =================================================================== --- head/Mk/Scripts/depends-list.sh +++ head/Mk/Scripts/depends-list.sh @@ -7,9 +7,14 @@ . ${dp_SCRIPTSDIR}/functions.sh recursive=0 +missing=0 requires_wrkdir=0 -while getopts "rw" FLAG; do +while getopts "mrw" FLAG; do case "${FLAG}" in + m) + missing=1 + recursive=1 + ;; r) recursive=1 ;; @@ -38,6 +43,10 @@ set -u +if [ ${missing} -eq 1 ]; then + existing=$(${dp_PKG_INFO} -aoq|paste -d ' ' -s -) +fi + check_dep() { local _dep wrkdir show_dep @@ -62,6 +71,13 @@ continue fi + # If only looking for missign, show if missing + if [ ${missing} -eq 1 ]; then + case " ${existing} " in + *\ ${d#${PORTSDIR}/}\ *) continue ;; # We have it, nothing to see + esac + fi + # Grab any needed vars from the port. if [ ${requires_wrkdir} -eq 1 -a ${recursive} -eq 1 ]; then Index: head/Mk/bsd.port.mk =================================================================== --- head/Mk/bsd.port.mk +++ head/Mk/bsd.port.mk @@ -4007,10 +4007,12 @@ PORTSDIR="${PORTSDIR}" \ dp_MAKE="${MAKE}" \ dp_PKGNAME="${PKGNAME}" \ + dp_PKG_INFO="${PKG_INFO}" \ dp_SCRIPTSDIR="${SCRIPTSDIR}" \ ${SH} ${SCRIPTSDIR}/depends-list.sh ALL-DEPENDS-LIST= ${DEPENDS-LIST} -r ${_UNIFIED_DEPENDS:Q} +MISSING-DEPENDS-LIST= ${DEPENDS-LIST} -m ${_UNIFIED_DEPENDS:Q} TEST-DEPENDS-LIST= ${DEPENDS-LIST} ${TEST_DEPENDS:Q} CLEAN-DEPENDS-LIST= ${DEPENDS-LIST} -wr ${_UNIFIED_DEPENDS:Q} CLEAN-DEPENDS-LIMITED-LIST= ${DEPENDS-LIST} -w ${_UNIFIED_DEPENDS:Q} @@ -4290,12 +4292,8 @@ # Show missing dependencies missing: - @_origins=$$(${PKG_INFO} -aoq); \ - for dir in $$(${ALL-DEPENDS-LIST}); do \ - _origin=$${dir##${PORTSDIR}/}; \ - if ! $$(${ECHO_CMD} $${_origins} | ${GREP} -q $${_origin}); then \ - ${ECHO_CMD} $${_origin}; \ - fi; \ + @for dir in $$(${MISSING-DEPENDS-LIST}); do \ + echo $${dir#${PORTSDIR}/}; \ done # Show missing dependencies by name