aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@nbd.name>2016-11-14 17:31:53 +0100
committerFelix Fietkau <nbd@nbd.name>2016-11-19 11:24:10 +0100
commit77265e00c70a7f6c01d2bc68c3a41de34b18deb3 (patch)
tree417d3e7546724e3ddb8f38855e37ba639afbffd8
parentcc853810a4aae04f1afcad3439bf9db6fc1f4852 (diff)
downloadupstream-77265e00c70a7f6c01d2bc68c3a41de34b18deb3.tar.gz
upstream-77265e00c70a7f6c01d2bc68c3a41de34b18deb3.tar.bz2
upstream-77265e00c70a7f6c01d2bc68c3a41de34b18deb3.zip
build: add support code for appending metadata to images
Signed-off-by: Felix Fietkau <nbd@nbd.name>
-rw-r--r--include/image-commands.mk18
-rw-r--r--include/image.mk5
2 files changed, 22 insertions, 1 deletions
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))