diff options
Diffstat (limited to 'Mk')
-rw-r--r-- | Mk/Scripts/depends-list.sh | 27 | ||||
-rw-r--r-- | Mk/Scripts/do-depends.sh | 12 | ||||
-rw-r--r-- | Mk/bsd.port.mk | 27 | ||||
-rw-r--r-- | Mk/bsd.sanity.mk | 2 |
4 files changed, 54 insertions, 14 deletions
diff --git a/Mk/Scripts/depends-list.sh b/Mk/Scripts/depends-list.sh index ce4f4b75a094..843bedd03958 100644 --- a/Mk/Scripts/depends-list.sh +++ b/Mk/Scripts/depends-list.sh @@ -37,7 +37,7 @@ while getopts "fmrw" FLAG; do done shift $((OPTIND-1)) -validate_env PORTSDIR dp_PKGNAME +validate_env PORTSDIR dp_OVERLAYS dp_PKGNAME if [ ${recursive} -eq 1 -o ${requires_wrkdir} -eq 1 ]; then validate_env dp_MAKE # Cache command executions to avoid looking them up again in every @@ -65,16 +65,25 @@ check_dep() { case "${2}" in /*) d=${2} ;; - *) d=${PORTSDIR}/${2} ;; + *) for overlay in ${dp_OVERLAYS} ${PORTSDIR}; do + d=${overlay}/${2} + f= + case "${d}" in + *@*/*) ;; # Ignore @ in the path which would not be a flavor + *@*) + f=${d##*@} + d=${d%@*} + ;; + esac + if [ -f ${d}/Makefile ]; then + if [ -n $f ]; then + export FLAVOR=$f + fi + break + fi + done esac - case "${d}" in - *@*/*) ;; # Ignore @ in the path which would not be a flavor - *@*) - export FLAVOR=${d##*@} - d=${d%@*} - ;; - esac if [ ${flavors} -eq 1 -a -n "${FLAVOR:-}" ]; then port_display="${d}@${FLAVOR}" else diff --git a/Mk/Scripts/do-depends.sh b/Mk/Scripts/do-depends.sh index 163570052a54..af93ec646a74 100644 --- a/Mk/Scripts/do-depends.sh +++ b/Mk/Scripts/do-depends.sh @@ -11,7 +11,7 @@ validate_env dp_RAWDEPENDS dp_DEPTYPE dp_DEPENDS_TARGET dp_DEPENDS_PRECLEAN \ dp_DEPENDS_CLEAN dp_DEPENDS_ARGS dp_USE_PACKAGE_DEPENDS \ dp_USE_PACKAGE_DEPENDS_ONLY dp_PKG_ADD dp_PKG_INFO dp_WRKDIR \ dp_PKGNAME dp_STRICT_DEPENDS dp_LOCALBASE dp_LIB_DIRS dp_SH \ - dp_SCRIPTSDIR PORTSDIR dp_MAKE dp_MAKEFLAGS + dp_SCRIPTSDIR PORTSDIR dp_MAKE dp_MAKEFLAGS dp_OVERLAYS [ -n "${DEBUG_MK_SCRIPTS}" -o -n "${DEBUG_MK_SCRIPTS_DO_DEPENDS}" ] && set -x @@ -125,7 +125,15 @@ for _line in ${dp_RAWDEPENDS} ; do case "${origin}" in /*) ;; - *) origin="${PORTSDIR}/${origin}" ;; + *) + for overlay in ${dp_OVERLAYS} ${PORTSDIR}; do + orig="${overlay}/${origin}" + if [ -f "${orig}/Makefile" ]; then + break + fi + done + origin="${orig}" + ;; esac case "${origin}" in *@*/*) ;; # Ignore @ in the path which would not be a flavor diff --git a/Mk/bsd.port.mk b/Mk/bsd.port.mk index b6d630ead0b5..fb88ab5614d4 100644 --- a/Mk/bsd.port.mk +++ b/Mk/bsd.port.mk @@ -1029,6 +1029,7 @@ STAGEDIR?= ${WRKDIR}/stage NOTPHONY?= FLAVORS?= FLAVOR?= +OVERLAYS?= # Disallow forced FLAVOR as make argument since we cannot change it to the # proper default. .if empty(FLAVOR) && !empty(.MAKEOVERRIDES:MFLAVOR) @@ -1450,7 +1451,17 @@ ${_f}_ARGS:= ${f:C/^[^\:]*(\:|\$)//:S/,/ /g} .endif .endfor .for f in ${USES} -.include "${USESDIR}/${f:C/\:.*//}.mk" +.undef _usefound +.for udir in ${OVERLAYS:C,$,/Mk/Uses,} ${USESDIR} +_usefile= ${udir}/${f:C/\:.*//}.mk +.if exists(${_usefile}) && !defined(_usefound) +_usefound= +.include "${_usefile}" +.endif +.endfor +.if !defined(_usefound) +ERROR+= "Unkonwn USES=${f:C/\:.*//}" +.endif .endfor .if !empty(FLAVORS) @@ -1962,7 +1973,17 @@ ${_f}_ARGS:= ${f:C/^[^\:]*(\:|\$)//:S/,/ /g} .endif .endfor .for f in ${_USES_POST} -.include "${USESDIR}/${f:C/\:.*//}.mk" +.undef _usefound +.for udir in ${OVERLAYS:C,$,/Mk/Uses,} ${USESDIR} +_usefile= ${udir}/${f:C/\:.*//}.mk +.if exists(${_usefile}) && !defined(_usefound) +_usefound= +.include "${_usefile}" +.endif +.endfor +.if !defined(_usefound) +ERROR+= "Unkonwn USES=${f:C/\:.*//}" +.endif .endfor .if defined(PORTNAME) @@ -3964,6 +3985,7 @@ ${deptype:tl}-depends: dp_SH="${SH}" \ dp_SCRIPTSDIR="${SCRIPTSDIR}" \ PORTSDIR="${PORTSDIR}" \ + dp_OVERLAYS="${OVERLAYS}" \ dp_MAKE="${MAKE}" \ dp_MAKEFLAGS='${.MAKEFLAGS}' \ ${SH} ${SCRIPTSDIR}/do-depends.sh @@ -4018,6 +4040,7 @@ DEPENDS-LIST= \ dp_PKGNAME="${PKGNAME}" \ dp_PKG_INFO="${PKG_INFO}" \ dp_SCRIPTSDIR="${SCRIPTSDIR}" \ + dp_OVERLAYS="${OVERLAYS}" \ ${SH} ${SCRIPTSDIR}/depends-list.sh \ ${DEPENDS_SHOW_FLAVOR:D-f} diff --git a/Mk/bsd.sanity.mk b/Mk/bsd.sanity.mk index 04542537d798..c3490ea1bab9 100644 --- a/Mk/bsd.sanity.mk +++ b/Mk/bsd.sanity.mk @@ -58,7 +58,7 @@ ERROR+= "${a} is unsupported, please use ${${a}_ALT}" # Warnings only when DEVELOPER=yes -.if exists(${.CURDIR}/../../Mk/bsd.port.mk) +.if exists(${.CURDIR}/../../Mk/bsd.port.mk) || ${OVERLAYS:tA:M${.CURDIR:H:H}} == ${.CURDIR:H:H} .if ${.CURDIR:H:T} != ${PKGCATEGORY} DEV_ERROR+= "The first entry in CATEGORIES should be the directory where the port lives" .endif |