Index: Mk/Scripts/actual-package-depends.sh =================================================================== --- Mk/Scripts/actual-package-depends.sh +++ Mk/Scripts/actual-package-depends.sh @@ -62,6 +62,11 @@ *) searchfile=$(/usr/bin/which ${pattern} 2>/dev/null) ;; + *.pc) + prefix=$(pkgconf --variable=prefix ${pattern}) + # plenty of pc files does not have prefix assume localbase in that case + searchfile=${prefix:-${LOCALBASE}}/libdata/pkgconfig/${pattern} + ;; esac if [ -n "${searchfile}" ]; then ${PKG_BIN} which -q ${searchfile} || ${PKG_BIN} which -q "$(resolv_symlink ${searchfile} 2>/dev/null)" || Index: Mk/Scripts/do-depends.sh =================================================================== --- Mk/Scripts/do-depends.sh +++ Mk/Scripts/do-depends.sh @@ -91,6 +91,16 @@ echo " - found (${libfile})" } +find_pkgconf() +{ + echo -n "===> ${dp_PKGNAME} depends on pc file: $1" + if ! pkgconf --exist ${1%.pc}; then + echo " - not found" + return 1 + fi + echo " - found" +} + anynotfound=0 err=0 for _line in ${dp_RAWDEPENDS} ; do @@ -144,6 +154,7 @@ LIB_DEPENDS) case ${pattern} in lib*.so*) fct=find_lib ;; + *.pc) fct=find_pkgconf ;; *) echo "Error: pattern ${pattern} in LIB_DEPENDS is not valid" err=1 Index: Mk/bsd.port.mk =================================================================== --- Mk/bsd.port.mk +++ Mk/bsd.port.mk @@ -3887,7 +3887,7 @@ ################################################################ .if !target(depends) -depends: pkg-depends extract-depends patch-depends lib-depends fetch-depends build-depends run-depends +depends: pkg-depends extract-depends patch-depends fetch-depends build-depends lib-depends run-depends .for deptype in PKG EXTRACT PATCH FETCH BUILD LIB RUN TEST ${deptype:tl}-depends: @@ -4162,10 +4162,11 @@ ACTUAL-PACKAGE-DEPENDS?= \ depfiles="" ; \ - for lib in ${LIB_DEPENDS:C/\:.*//}; do \ + for lib in ${LIB_DEPENDS:C/\:.*//:N*.pc}; do \ depfiles="$$depfiles `${SETENV} LIB_DIRS="${LIB_DIRS}" LOCALBASE="${LOCALBASE}" ${SH} ${SCRIPTSDIR}/find-lib.sh $${lib}`" ; \ done ; \ - ${SETENV} PKG_BIN="${PKG_BIN}" ${SH} ${SCRIPTSDIR}/actual-package-depends.sh $${depfiles} ${RUN_DEPENDS:C/(.*)\:.*/"\1"/} + depfiles="$$depfiles ${LIB_DEPENDS:C/\:.*//:M*.pc}" ; \ + ${SETENV} PKG_BIN="${PKG_BIN}" LOCALBASE="${LOCALBASE}" ${SH} ${SCRIPTSDIR}/actual-package-depends.sh $${depfiles} ${RUN_DEPENDS:C/(.*)\:.*/"\1"/} PKG_NOTES_ENV?= .for note in ${PKG_NOTES} Index: Mk/bsd.sanity.mk =================================================================== --- Mk/bsd.sanity.mk +++ Mk/bsd.sanity.mk @@ -75,7 +75,7 @@ DEV_WARNING+= "USE_GNOME=desktopfileutils is deprecated, please use USES=desktop-file-utils" .endif -.if defined(LIB_DEPENDS) && ${LIB_DEPENDS:Nlib*} +.if defined(LIB_DEPENDS) && ${LIB_DEPENDS:N*.pc:Nlib*} DEV_ERROR+= "All LIB_DEPENDS should use the new format and start out with lib. \(libfoo.so vs foo.so\)" .endif