On Sat, 28 May 2022 09:59:23 +0900
Tatsuki Makino <tatsuki_mak...@hotmail.com> wrote:

> diff --git a/sys/conf/kern.post.mk b/sys/conf/kern.post.mk
> index cce9fcfd1c6..f6217d38bb8 100644
> --- a/sys/conf/kern.post.mk
> +++ b/sys/conf/kern.post.mk
> @@ -95,7 +95,12 @@ PORTSMODULESENV=\
>  all:
>  .for __i in ${PORTS_MODULES}
>       @${ECHO} "===> Ports module ${__i} (all)"
> -     cd $${PORTSDIR:-/usr/ports}/${__i}; ${PORTSMODULESENV}
> ${MAKE} -B clean build
> +     __i="${__i}" ;\
> +     if [ "$${__i%@*}" = "$${__i}" ] ; then\
> +     cd $${PORTSDIR:-/usr/ports}/$${__i}; ${PORTSMODULESENV}
> ${MAKE} -B clean build ;\
> +     else\
> +     cd $${PORTSDIR:-/usr/ports}/$${__i%@*}; ${PORTSMODULESENV}
> ${MAKE} -B "FLAVOR=$${__i##*@}" clean build ;\
> +     fi
>  .endfor
> 
>  .for __target in install reinstall clean


Short form using bmake features is:

@@ -133,7 +157,8 @@ PORTSMODULESENV=\
 all:
 .for __i in ${PORTS_MODULES}
        @${ECHO} "===> Ports module ${__i} (all)"
-       cd $${PORTSDIR:-/usr/ports}/${__i}; ${PORTSMODULESENV} ${MAKE} -B clean 
build
+       ${PORTSMODULESENV} ${MAKE} -C "${PORTSDIR}/${__i:C/@.*//g}" \
+           ${__i:M*@*:C/.*@/FLAVOR=/g} clean build
 .endfor
 
 .for __target in install reinstall clean
@@ -141,7 +166,9 @@ ${__target}: ports-${__target}
 ports-${__target}:
 .for __i in ${PORTS_MODULES}
        @${ECHO} "===> Ports module ${__i} (${__target})"
-       cd $${PORTSDIR:-/usr/ports}/${__i}; ${PORTSMODULESENV} ${MAKE} -B 
${__target:C/(re)?install/deinstall reinstall/}
+       ${PORTSMODULESENV} ${MAKE} -C "${PORTSDIR}/${__i:C/@.*//g}" \
+           ${__i:M*@*:C/.*@/FLAVOR=/g} \
+           ${__target:C/(re)?install/deinstall reinstall/}
 .endfor
 .endfor
 .endif


Reply via email to