Index: Mk/bsd.port.mk =================================================================== --- Mk/bsd.port.mk +++ Mk/bsd.port.mk @@ -1058,8 +1058,7 @@ NOTPHONY?= FLAVORS?= FLAVOR?= -# XXX: We have no real FLAVORS support in ports or tools yet. -#PORTS_FEATURES+= FLAVORS +PORTS_FEATURES+= FLAVORS MINIMAL_PKG_VERSION= 1.6.0 _PORTS_DIRECTORIES+= ${PKG_DBDIR} ${PREFIX} ${WRKDIR} ${EXTRACT_WRKDIR} \ @@ -1075,18 +1074,6 @@ .include "${PORTSDIR}/Mk/bsd.commands.mk" -.if !empty(FLAVOR) -. if empty(FLAVORS) -IGNORE= FLAVOR is defined while this port does not have FLAVORS. -. elif ! ${FLAVORS:M${FLAVOR}} -IGNORE= Unknown flavor '${FLAVOR}', possible flavors: ${FLAVORS}. -. endif -.endif - -.if !empty(FLAVORS) && empty(FLAVOR) -FLAVOR= ${FLAVORS:[1]} -.endif - # Do not leak flavors to childs make .MAKEOVERRIDES:= ${MAKEOVERRIDES:NFLAVOR=*} @@ -1463,6 +1450,18 @@ .include "${USESDIR}/${f:C/\:.*//}.mk" .endfor +.if !empty(FLAVOR) +. if empty(FLAVORS) +IGNORE= FLAVOR is defined while this port does not have FLAVORS. +. elif ! ${FLAVORS:M${FLAVOR}} +IGNORE= Unknown flavor '${FLAVOR}', possible flavors: ${FLAVORS}. +. endif +.endif + +.if !empty(FLAVORS) && empty(FLAVOR) +FLAVOR= ${FLAVORS:[1]} +.endif + EXTRACT_SUFX?= .tar.gz .if defined(USE_LINUX_PREFIX) @@ -4311,6 +4310,7 @@ INDEX_OUT=/dev/stdout . endif +. if empty(FLAVORS) || defined(DESCRIBE_FLAVORED) describe: @(${ECHO_CMD} -n "${PKGNAME}|${.CURDIR}|${PREFIX}|"; \ ${ECHO_CMD} -n ${COMMENT:Q}; \ @@ -4325,6 +4325,13 @@ ;; \ esac; \ done < ${DESCR}; ${ECHO_CMD}) >>${INDEX_OUT} +. else # empty(FLAVORS) +describe: ${FLAVORS:S/^/describe-/} +. for f in ${FLAVORS} +describe-${f}: + @cd ${.CURDIR} && ${MAKE} -B FLAVOR=${f} -DDESCRIBE_FLAVORED describe +. endfor +. endif # empty(FLAVORS) . endif www-site: @@ -4606,6 +4613,25 @@ .endif .endif +pretty-flavors-package-names: +.if empty(FLAVORS) + @${ECHO_CMD} "no flavor: ${PKGNAME}" +.else +.for f in ${FLAVORS} + @${ECHO_CMD} -n "${f}: " + @cd ${.CURDIR} && ${MAKE} -B FLAVOR=${f} -V PKGNAME +.endfor +.endif + +flavors-package-names: +.if empty(FLAVORS) + @${ECHO_CMD} "${PKGNAME}" +.else +.for f in ${FLAVORS} + @cd ${.CURDIR} && ${MAKE} -B FLAVOR=${f} -V PKGNAME +.endfor +.endif + # Fake installation of package so that user can pkg delete it later. .if !target(fake-pkg) STAGE_ARGS= -i ${STAGEDIR}