[OpenWrt-Devel] [PATCH] build: Introduce building of artifacts

Hauke Mehrtens hauke at hauke-m.de
Sat Nov 24 12:48:23 EST 2018


On 11/23/18 10:53 AM, Petr Štetiar wrote:
> We currently could (ab)use IMAGES for this task, but the downside is,
> that the filenames has filesystem tied to the filename, which might be
> confusing as the artifact itself don't has to be used with that specific
> filesystem. Another downside is, that the artifacts built with IMAGES
> target are build for every FILESYSTEMS filesystem.
> 
> Consider following use case:
> 
>  define Device/apalis
>    ...
>    FILESYSTEMS := ext4 squashfs
>    IMAGES := spl-uboot.bin recovery.scr
>    IMAGE/spl-uboot.bin := append-uboot-spl | pad-to 68k | append-uboot
>    IMAGE/recovery.scr := recovery-scr
>  endef
> 
> Where we would get target binaries with following filenames:
> 
>  openwrt-imx6-apalis-squashfs.recovery.scr
>  openwrt-imx6-apalis-squashfs.spl-uboot.bin
>  openwrt-imx6-apalis-ext4.recovery.scr
>  openwrt-imx6-apalis-ext4.spl-uboot.bin
> 
> With proposed patch, we could now just do:
> 
>  define Device/apalis
>    ...
>    ARTIFACTS := spl-uboot.bin recovery.scr
>    ARTIFACT/spl-uboot.bin := append-uboot-spl | pad-to 68k | append-uboot
>    ARTIFACT/recovery.scr := recovery-scr
>  endef
> 
> Which would produce target binaries with following filenames:
> 
>  openwrt-imx6-apalis-recovery.scr
>  openwrt-imx6-apalis-spl-uboot.bin
> 
> Signed-off-by: Petr Štetiar <ynezz at true.cz>

Acked-by: Hauke Mehrtens <hauke at hauke-m.de>

I think this feature is useful.

> ---
>  include/image.mk | 18 ++++++++++++++++++
>  1 file changed, 18 insertions(+)
> 
> diff --git a/include/image.mk b/include/image.mk
> index f2a85f6..a2b106d 100644
> --- a/include/image.mk
> +++ b/include/image.mk
> @@ -321,6 +321,7 @@ define Device/Init
>    CMDLINE:=
>  
>    IMAGES :=
> +  ARTIFACTS :=
>    IMAGE_PREFIX := $(IMG_PREFIX)-$(1)
>    IMAGE_NAME = $$(IMAGE_PREFIX)-$$(1)-$$(2)
>    KERNEL_PREFIX = $$(IMAGE_PREFIX)
> @@ -498,6 +499,19 @@ define Device/Build/image
>  
>  endef
>  
> +define Device/Build/artifact
> +  $$(_TARGET): $(BIN_DIR)/$(IMAGE_PREFIX)-$(1)
> +  $(KDIR)/tmp/$(IMAGE_PREFIX)-$(1): $$(KDIR_KERNEL_IMAGE)
> +	@rm -f $$@
> +	$$(call concat_cmd,$(ARTIFACT/$(1)))
> +
> +  .IGNORE: $(BIN_DIR)/$(IMAGE_PREFIX)-$(1)
> +
> +  $(BIN_DIR)/$(IMAGE_PREFIX)-$(1): $(KDIR)/tmp/$(IMAGE_PREFIX)-$(1)
> +	cp $$^ $$@
> +
> +endef
> +
>  define Device/Build
>    $(if $(CONFIG_TARGET_ROOTFS_INITRAMFS),$(call Device/Build/initramfs,$(1)))
>    $(call Device/Build/kernel,$(1))
> @@ -508,6 +522,10 @@ define Device/Build
>    $$(eval $$(foreach image,$$(IMAGES), \
>      $$(foreach fs,$$(filter $(TARGET_FILESYSTEMS),$$(FILESYSTEMS)), \
>        $$(call Device/Build/image,$$(fs),$$(image),$(1)))))
> +
> +  $$(eval $$(foreach artifact,$$(ARTIFACTS), \
> +    $$(call Device/Build/artifact,$$(artifact))))
> +
>  endef
>  
>  define Device/DumpInfo
> 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.infradead.org/pipermail/openwrt-devel/attachments/20181124/df7bc072/attachment.sig>
-------------- next part --------------
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


More information about the openwrt-devel mailing list