Back when I split up the port, Stuart suggested to see if some simplification of the do-build rule would be possible. I think the most sensible thing to do is to move this from Makefile.inc into the per-directory Makefile. There is a tiny bit of duplication, but I think the result is more manageable, especially if we add more per-SoC directories.
Since this doesn't change the output, no REVISION bump is needed is it? ok? Index: sysutils/u-boot/Makefile.inc =================================================================== RCS file: /cvs/ports/sysutils/u-boot/Makefile.inc,v retrieving revision 1.8 diff -u -p -r1.8 Makefile.inc --- sysutils/u-boot/Makefile.inc 17 Oct 2023 19:36:22 -0000 1.8 +++ sysutils/u-boot/Makefile.inc 19 Oct 2023 18:00:06 -0000 @@ -57,82 +57,6 @@ FILES=\ spl/sunxi-spl.bin \ spl/u-boot-spl.bin -do-build: -.for BOARD in ${BOARDS} - cd ${WRKSRC} && \ - mkdir -p build/${BOARD} && \ - ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} ${MAKE_FLAGS} \ - O="build/${BOARD}" \ - -f ${MAKE_FILE} "${BOARD}"_defconfig -.if "${BOARD:M*-rk3399*}" - cd ${WRKSRC} && \ - ${SETENV} ${MAKE_ENV} BL31=${RK3399_BL31} ${MAKE_PROGRAM} \ - ${MAKE_FLAGS} O="build/${BOARD}" \ - -f ${MAKE_FILE} ${ALL_TARGET} -.elif "${BOARD:M*-rk3328}" - cd ${WRKSRC} && \ - ${SETENV} ${MAKE_ENV} BL31=${RK3328_BL31} ${MAKE_PROGRAM} \ - ${MAKE_FLAGS} O="build/${BOARD}" \ - -f ${MAKE_FILE} ${ALL_TARGET} -.elif "${BOARD:M*-rk3566*}" - cd ${WRKSRC}/build/${BOARD} && \ - ../../scripts/config --set-val BAUDRATE 115200 - cd ${WRKSRC} && \ - ${SETENV} ${MAKE_ENV} ROCKCHIP_TPL=${RK3566_TPL} ${MAKE_PROGRAM} \ - ${MAKE_FLAGS} O="build/${BOARD}" \ - -f ${MAKE_FILE} ${ALL_TARGET} -.elif "${BOARD:M*-rk3568*}" - cd ${WRKSRC}/build/${BOARD} && \ - ../../scripts/config --set-val BAUDRATE 115200 - cd ${WRKSRC} && \ - ${SETENV} ${MAKE_ENV} ROCKCHIP_TPL=${RK3568_TPL} ${MAKE_PROGRAM} \ - ${MAKE_FLAGS} O="build/${BOARD}" \ - -f ${MAKE_FILE} ${ALL_TARGET} -.elif "${BOARD:M*sifive_*}" - cd ${WRKSRC} && \ - ${SETENV} ${MAKE_ENV} OPENSBI=${FW_DYNAMIC} ${MAKE_PROGRAM} \ - ${MAKE_FLAGS} O="build/${BOARD}" \ - -f ${MAKE_FILE} ${ALL_TARGET} -.else - cd ${WRKSRC} && \ - ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} ${MAKE_FLAGS} \ - O="build/${BOARD}" \ - -f ${MAKE_FILE} ${ALL_TARGET} -.endif -.if "${BOARD:M*-rk3288}" - cd ${WRKSRC}/build/${BOARD} && \ - tools/mkimage -n rk3288 -T rksd -d tpl/u-boot-tpl.bin \ - idbloader.img && \ - cat spl/u-boot-spl-dtb.bin >> idbloader.img -.endif -.endfor -.for BOARD in ${SUNXI64} -.if "${BOARD:M*_h64*}" - cd ${WRKSRC} && \ - mkdir -p build/${BOARD} && \ - ${SETENV} ${MAKE_ENV} BL31=${SUNXI_H6_BL31} ${MAKE_PROGRAM} \ - ${MAKE_FLAGS} O="build/${BOARD}" \ - -f ${MAKE_FILE} "${BOARD}"_defconfig && \ - ${SETENV} ${MAKE_ENV} BL31=${SUNXI_H6_BL31} ${MAKE_PROGRAM} \ - ${MAKE_FLAGS} O="build/${BOARD}" \ - -f ${MAKE_FILE} ${ALL_TARGET} -.else - cd ${WRKSRC} && \ - mkdir -p build/${BOARD} && \ - ${SETENV} ${MAKE_ENV} BL31=${SUNXI_BL31} ${MAKE_PROGRAM} \ - ${MAKE_FLAGS} O="build/${BOARD}" \ - -f ${MAKE_FILE} "${BOARD}"_defconfig && \ - ${SETENV} ${MAKE_ENV} BL31=${SUNXI_BL31} ${MAKE_PROGRAM} \ - ${MAKE_FLAGS} O="build/${BOARD}" \ - -f ${MAKE_FILE} ${ALL_TARGET} -.endif - if [[ -f ${WRKSRC}/build/${BOARD}/spl/sunxi-spl.bin && \ - -f ${WRKSRC}/build/${BOARD}/u-boot.itb ]]; then \ - cd ${WRKSRC}/build/${BOARD} && \ - cat spl/sunxi-spl.bin u-boot.itb > u-boot-sunxi-with-spl.bin ; \ - fi -.endfor - do-install: ${INSTALL_DATA_DIR} ${PREFIX}/share/u-boot .for BOARD in ${BOARDS} ${SUNXI64} Index: sysutils/u-boot/aarch64/Makefile =================================================================== RCS file: /cvs/ports/sysutils/u-boot/aarch64/Makefile,v retrieving revision 1.4 diff -u -p -r1.4 Makefile --- sysutils/u-boot/aarch64/Makefile 2 Sep 2023 14:33:03 -0000 1.4 +++ sysutils/u-boot/aarch64/Makefile 19 Oct 2023 18:00:06 -0000 @@ -46,4 +46,55 @@ SUNXI_H6_BL31= ${LOCALBASE}/share/arm-tr MODPY_ADJ_FILES= arch/arm/mach-rockchip/make_fit_atf.py +do-build: +.for BOARD in ${BOARDS} + cd ${WRKSRC} && \ + mkdir -p build/${BOARD} && \ + ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} ${MAKE_FLAGS} \ + O="build/${BOARD}" \ + -f ${MAKE_FILE} "${BOARD}"_defconfig +.if "${BOARD:M*-rk3399*}" + cd ${WRKSRC} && \ + ${SETENV} ${MAKE_ENV} BL31=${RK3399_BL31} ${MAKE_PROGRAM} \ + ${MAKE_FLAGS} O="build/${BOARD}" \ + -f ${MAKE_FILE} ${ALL_TARGET} +.elif "${BOARD:M*-rk3328}" + cd ${WRKSRC} && \ + ${SETENV} ${MAKE_ENV} BL31=${RK3328_BL31} ${MAKE_PROGRAM} \ + ${MAKE_FLAGS} O="build/${BOARD}" \ + -f ${MAKE_FILE} ${ALL_TARGET} +.else + cd ${WRKSRC} && \ + ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} ${MAKE_FLAGS} \ + O="build/${BOARD}" \ + -f ${MAKE_FILE} ${ALL_TARGET} +.endif +.endfor +.for BOARD in ${SUNXI64} +.if "${BOARD:M*_h64*}" + cd ${WRKSRC} && \ + mkdir -p build/${BOARD} && \ + ${SETENV} ${MAKE_ENV} BL31=${SUNXI_H6_BL31} ${MAKE_PROGRAM} \ + ${MAKE_FLAGS} O="build/${BOARD}" \ + -f ${MAKE_FILE} "${BOARD}"_defconfig && \ + ${SETENV} ${MAKE_ENV} BL31=${SUNXI_H6_BL31} ${MAKE_PROGRAM} \ + ${MAKE_FLAGS} O="build/${BOARD}" \ + -f ${MAKE_FILE} ${ALL_TARGET} +.else + cd ${WRKSRC} && \ + mkdir -p build/${BOARD} && \ + ${SETENV} ${MAKE_ENV} BL31=${SUNXI_BL31} ${MAKE_PROGRAM} \ + ${MAKE_FLAGS} O="build/${BOARD}" \ + -f ${MAKE_FILE} "${BOARD}"_defconfig && \ + ${SETENV} ${MAKE_ENV} BL31=${SUNXI_BL31} ${MAKE_PROGRAM} \ + ${MAKE_FLAGS} O="build/${BOARD}" \ + -f ${MAKE_FILE} ${ALL_TARGET} +.endif + if [[ -f ${WRKSRC}/build/${BOARD}/spl/sunxi-spl.bin && \ + -f ${WRKSRC}/build/${BOARD}/u-boot.itb ]]; then \ + cd ${WRKSRC}/build/${BOARD} && \ + cat spl/sunxi-spl.bin u-boot.itb > u-boot-sunxi-with-spl.bin ; \ + fi +.endfor + .include <bsd.port.mk> Index: sysutils/u-boot/arm/Makefile =================================================================== RCS file: /cvs/ports/sysutils/u-boot/arm/Makefile,v retrieving revision 1.4 diff -u -p -r1.4 Makefile --- sysutils/u-boot/arm/Makefile 26 Sep 2023 14:57:37 -0000 1.4 +++ sysutils/u-boot/arm/Makefile 19 Oct 2023 18:00:06 -0000 @@ -6,7 +6,6 @@ SOC= arm OMAP=\ omap4_panda \ am335x_evm -SUNXI64= SUNXI=\ A10-OLinuXino-Lime \ A10s-OLinuXino-M \ @@ -62,5 +61,24 @@ BOARDS=\ BUILD_DEPENDS+= devel/arm-none-eabi/gcc,arm CROSS_COMPILE= arm-none-eabi- + +do-build: +.for BOARD in ${BOARDS} + cd ${WRKSRC} && \ + mkdir -p build/${BOARD} && \ + ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} ${MAKE_FLAGS} \ + O="build/${BOARD}" \ + -f ${MAKE_FILE} "${BOARD}"_defconfig + cd ${WRKSRC} && \ + ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} ${MAKE_FLAGS} \ + O="build/${BOARD}" \ + -f ${MAKE_FILE} ${ALL_TARGET} +.if "${BOARD:M*-rk3288}" + cd ${WRKSRC}/build/${BOARD} && \ + tools/mkimage -n rk3288 -T rksd -d tpl/u-boot-tpl.bin \ + idbloader.img && \ + cat spl/u-boot-spl-dtb.bin >> idbloader.img +.endif +.endfor .include <bsd.port.mk> Index: sysutils/u-boot/riscv64/Makefile =================================================================== RCS file: /cvs/ports/sysutils/u-boot/riscv64/Makefile,v retrieving revision 1.3 diff -u -p -r1.3 Makefile --- sysutils/u-boot/riscv64/Makefile 2 Sep 2023 14:30:00 -0000 1.3 +++ sysutils/u-boot/riscv64/Makefile 19 Oct 2023 18:00:06 -0000 @@ -12,4 +12,17 @@ BUILD_DEPENDS+= devel/riscv-elf/gcc \ CROSS_COMPILE= riscv64-unknown-elf- FW_DYNAMIC= ${LOCALBASE}/share/opensbi/generic/fw_dynamic.bin +do-build: +.for BOARD in ${BOARDS} + cd ${WRKSRC} && \ + mkdir -p build/${BOARD} && \ + ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} ${MAKE_FLAGS} \ + O="build/${BOARD}" \ + -f ${MAKE_FILE} "${BOARD}"_defconfig + cd ${WRKSRC} && \ + ${SETENV} ${MAKE_ENV} OPENSBI=${FW_DYNAMIC} ${MAKE_PROGRAM} \ + ${MAKE_FLAGS} O="build/${BOARD}" \ + -f ${MAKE_FILE} ${ALL_TARGET} +.endfor + .include <bsd.port.mk> Index: sysutils/u-boot/rk356x/Makefile =================================================================== RCS file: /cvs/ports/sysutils/u-boot/rk356x/Makefile,v retrieving revision 1.1 diff -u -p -r1.1 Makefile --- sysutils/u-boot/rk356x/Makefile 17 Oct 2023 19:36:22 -0000 1.1 +++ sysutils/u-boot/rk356x/Makefile 19 Oct 2023 18:00:06 -0000 @@ -40,4 +40,26 @@ pre-build: cp ${FULLDISTDIR}/${RK3568_TPL} . && \ ./rkbinpatch ${RK3568_TPL} +do-build: +.for BOARD in ${BOARDS} + cd ${WRKSRC} && \ + mkdir -p build/${BOARD} && \ + ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} ${MAKE_FLAGS} \ + O="build/${BOARD}" \ + -f ${MAKE_FILE} "${BOARD}"_defconfig + cd ${WRKSRC}/build/${BOARD} && \ + ../../scripts/config --set-val BAUDRATE 115200 +.if "${BOARD:M*-rk3566*}" + cd ${WRKSRC} && \ + ${SETENV} ${MAKE_ENV} ROCKCHIP_TPL=${RK3566_TPL} ${MAKE_PROGRAM} \ + ${MAKE_FLAGS} O="build/${BOARD}" \ + -f ${MAKE_FILE} ${ALL_TARGET} +.else + cd ${WRKSRC} && \ + ${SETENV} ${MAKE_ENV} ROCKCHIP_TPL=${RK3568_TPL} ${MAKE_PROGRAM} \ + ${MAKE_FLAGS} O="build/${BOARD}" \ + -f ${MAKE_FILE} ${ALL_TARGET} +.endif +.endfor + .include <bsd.port.mk>