From: Felix Fietkau Date: Mon, 14 Nov 2016 16:31:53 +0000 (+0100) Subject: build: add support code for appending metadata to images X-Git-Url: http://git.openwrt.org/?a=commitdiff_plain;h=77265e00c70a7f6c01d2bc68c3a41de34b18deb3;p=openwrt%2Fstaging%2Fwigyori.git build: add support code for appending metadata to images Signed-off-by: Felix Fietkau --- diff --git a/include/image-commands.mk b/include/image-commands.mk index 6386e55b79..083a389031 100644 --- a/include/image-commands.mk +++ b/include/image-commands.mk @@ -172,3 +172,21 @@ define Build/sysupgrade-tar --rootfs $(call param_get_default,rootfs,$(1),$(IMAGE_ROOTFS)) \ $@ endef + +json_quote=$(subst ','\'',$(subst ",\",$(1))) +#")') +metadata_devices=$(if $(1),$(subst "$(space)","$(comma)",$(strip $(foreach v,$(1),"$(call json_quote,$(v))")))) +metadata_json = \ + '{ $(if $(IMAGE_METADATA),$(IMAGE_METADATA)$(comma)) \ + "supported_devices":[$(call metadata_devices,$(1))], \ + "version": { \ + "dist": "$(call json_quote,$(VERSION_DIST))", \ + "version": "$(call json_quote,$(VERSION_NUMBER))", \ + "revision": "$(call json_quote,$(REVISION))", \ + "board": "$(call json_quote,$(BOARD))" \ + } \ + }' + +define Build/append-metadata + $(if $(SUPPORTED_DEVICES),echo $(call metadata_json,$(SUPPORTED_DEVICES)) | fwtool -I - $@) +endef diff --git a/include/image.mk b/include/image.mk index 8b183ab58a..d1dcdd6bad 100644 --- a/include/image.mk +++ b/include/image.mk @@ -346,6 +346,8 @@ define Device/Init BOARD_NAME := UIMAGE_NAME := + SUPPORTED_DEVICES := + IMAGE_METADATA := FILESYSTEMS := $(TARGET_FILESYSTEMS) endef @@ -355,7 +357,8 @@ DEFAULT_DEVICE_VARS := \ DEVICE_DTS DEVICE_DTS_DIR BOARD_NAME CMDLINE \ UBOOTENV_IN_UBI KERNEL_IN_UBI \ BLOCKSIZE PAGESIZE SUBPAGESIZE VID_HDR_OFFSET \ - UBINIZE_OPTS UIMAGE_NAME UBINIZE_PARTS + UBINIZE_OPTS UIMAGE_NAME UBINIZE_PARTS \ + SUPPORTED_DEVICES IMAGE_METADATA define Device/ExportVar $(1) : $(2):=$$($(2))