> On Aug 22, 2022, at 8:34 AM, Martin Husemann <mar...@duskware.de> wrote:
> 
> On Mon, Aug 22, 2022 at 08:27:18AM -0600, Brook Milligan wrote:
>> INSTALLBOOT_BOARDS is constructed dynamically from installboot, so it
>> is not really part of the current user interface.  
> 
> I would just drop the INSTALLBOOT_BOARDS != part and leave it to the
> user to pass a proper list via
> 
>       build.sh -V INSTALLBOOT_BOARDS="pinebook pinebook-pro"
> 
> or similar. The for loop over the boards would just do nothing in the
> invocation w/o that -V.

Yes, an empty variable will skip the loop.  

However, that does not help people (the NetBSD build farm?, armbsd.org?) who 
want to release an entire collection of bootable images, which I think would be 
a really great service if anyone wishes to pick it up.

The installboot names of the images are not nearly as simple as you suggest 
above, and there are a number of variants.

Thus, I think it would be preferable to include an “all” option, which is the 
new behavior of “everything for which a U-Boot package is found”.

The patch below is what I am currently testing for this.  If this works and is 
reasonable, I’ll fix up the docs as well.

Thoughts?

Cheers,
Brook

Index: Makefile.inc
===================================================================
RCS file: /cvsroot/src/etc/etc.evbarm/Makefile.inc,v
retrieving revision 1.127
diff -u -r1.127 Makefile.inc
--- Makefile.inc        21 Aug 2022 15:01:08 -0000      1.127
+++ Makefile.inc        22 Aug 2022 15:17:25 -0000
@@ -92,14 +92,30 @@
 IMAGE.kern=    ${IMAGE.rel}/binary/kernel
 IMAGE.instk=   ${IMAGE.rel}/installation/instkernel
 
-# list of boards supported by installboot(8); a bootable image will be
-# created for each (if the corresponding U-Boot package is installed
-# in one of the directories listed in the environment variable
-# INSTALLBOOT_UBOOT_PATHS)
+# INSTALLBOOT_BOARDS: a list of boards to install bootable images for.
+# One of:
 #
-INSTALLBOOT_BOARDS!= \
+#   - none: do not install any bootable images
+#
+#   - all: install any bootable images from the list supported by
+#          installboot(8) for which a corresponding U-Boot package is
+#          installed in one of the directories listed in the
+#          environment variable INSTALLBOOT_UBOOT_PATHS
+#
+#   - list of boards: a list of boards (as recognized by
+#          installboot(8)) to install
+#
+#   - <undefined> or <empty>: same as none
+#
+__INSTALLBOOT_BOARDS!= \
        ${TOOL_INSTALLBOOT} -m ${MACHINE} 2>&1 \
        | ${TOOL_AWK} 'BEGIN { FS=" " } { if (BOARDS) print $$1 } /^Known 
boards/{ BOARDS=1 }'
+.if !empty(_INSTALLBOOT_BOARDS:M[Nn][Oo][Nn][Ee])
+_INSTALLBOOT_BOARDS=
+.fi
+.if !empty(_INSTALLBOOT_BOARDS:M[Aa][Ll][Ll])
+_INSTALLBOOT_BOARDS=${__INSTALLBOOT_BOARDS}
+.fi
 
 __mkimage: .USE
        TOOL_MAKE=${MAKE} \
@@ -121,7 +137,7 @@
            ${IMAGE.dir}/${.TARGET:S/smp_//}.img.gz
        ${TOOL_GZIP} -cd ${IMAGE.dir}/${.TARGET:S/smp_//}.img.gz \
                > ${IMAGE.dir}/${.TARGET:S/smp_//}.img
-.for f in ${INSTALLBOOT_BOARDS}
+.for f in ${_INSTALLBOOT_BOARDS}
        @echo "===> Making bootable image 
${IMAGE.dir:T}/${.TARGET:S/smp_//}-${f}.img.gz"
        @cp ${IMAGE.dir}/${.TARGET:S/smp_//}.img 
${IMAGE.dir}/${.TARGET:S/smp_//}-${f}.img
        @${TOOL_INSTALLBOOT} -m ${MACHINE} -o board=${f} \

Reply via email to