build: refactor JSON info files to `profiles.json`
[openwrt/openwrt.git] / include / image.mk
index 6204e8ab616d9f8264681d98674daf227508d4fe..441f55b7419ff5fca8e870826938c52ac1e6ce51 100644 (file)
@@ -545,8 +545,11 @@ endef
 
 define Device/Build/image
   GZ_SUFFIX := $(if $(filter %dtb %gz,$(2)),,$(if $(and $(findstring ext4,$(1)),$(CONFIG_TARGET_IMAGES_GZIP)),.gz))
-  $$(_TARGET): $(BIN_DIR)/$(call IMAGE_NAME,$(1),$(2))$$(GZ_SUFFIX)
+  $$(_TARGET): $(if $(CONFIG_JSON_OVERVIEW_IMAGE_INFO), \
+         $(BUILD_DIR)/json_info_files/$(call IMAGE_NAME,$(1),$(2)).json, \
+         $(BIN_DIR)/$(call IMAGE_NAME,$(1),$(2))$$(GZ_SUFFIX))
   $(eval $(call Device/Export,$(KDIR)/tmp/$(call IMAGE_NAME,$(1),$(2)),$(1)))
+
   ROOTFS/$(1)/$(3) := \
        $(KDIR)/root.$(1)$$(strip \
                $$(if $$(FS_OPTIONS/$(1)),+fs=$$(call param_mangle,$$(FS_OPTIONS/$(1)))) \
@@ -568,32 +571,33 @@ define Device/Build/image
 
   $(BIN_DIR)/$(call IMAGE_NAME,$(1),$(2)): $(KDIR)/tmp/$(call IMAGE_NAME,$(1),$(2))
        cp $$^ $$@
-       $(if $(CONFIG_JSON_ADD_IMAGE_INFO), \
-               DEVICE_ID="$(DEVICE_NAME)" \
-               BIN_DIR="$(BIN_DIR)" \
-               IMAGE_NAME="$(IMAGE_NAME)" \
-               IMAGE_TYPE=$(word 1,$(subst ., ,$(2))) \
-               IMAGE_PREFIX="$(IMAGE_PREFIX)" \
-               DEVICE_VENDOR="$(DEVICE_VENDOR)" \
-               DEVICE_MODEL="$(DEVICE_MODEL)" \
-               DEVICE_VARIANT="$(DEVICE_VARIANT)" \
-               DEVICE_ALT0_VENDOR="$(DEVICE_ALT0_VENDOR)" \
-               DEVICE_ALT0_MODEL="$(DEVICE_ALT0_MODEL)" \
-               DEVICE_ALT0_VARIANT="$(DEVICE_ALT0_VARIANT)" \
-               DEVICE_ALT1_VENDOR="$(DEVICE_ALT1_VENDOR)" \
-               DEVICE_ALT1_MODEL="$(DEVICE_ALT1_MODEL)" \
-               DEVICE_ALT1_VARIANT="$(DEVICE_ALT1_VARIANT)" \
-               DEVICE_ALT2_VENDOR="$(DEVICE_ALT2_VENDOR)" \
-               DEVICE_ALT2_MODEL="$(DEVICE_ALT2_MODEL)" \
-               DEVICE_ALT2_VARIANT="$(DEVICE_ALT2_VARIANT)" \
-               DEVICE_TITLE="$(DEVICE_TITLE)" \
-               TARGET="$(BOARD)" \
-               SUBTARGET="$(if $(SUBTARGET),$(SUBTARGET),generic)" \
-               VERSION_NUMBER="$(VERSION_NUMBER)" \
-               VERSION_CODE="$(VERSION_CODE)" \
-               SUPPORTED_DEVICES="$(SUPPORTED_DEVICES)" \
-               $(TOPDIR)/scripts/json_add_image_info.py \
-       )
+
+  $(BUILD_DIR)/json_info_files/$(call IMAGE_NAME,$(1),$(2)).json: $(BIN_DIR)/$(call IMAGE_NAME,$(1),$(2))$$(GZ_SUFFIX)
+       @mkdir -p $$(shell dirname $$@)
+       DEVICE_ID="$(DEVICE_NAME)" \
+       BIN_DIR="$(BIN_DIR)" \
+       IMAGE_NAME="$(IMAGE_NAME)" \
+       IMAGE_TYPE=$(word 1,$(subst ., ,$(2))) \
+       IMAGE_PREFIX="$(IMAGE_PREFIX)" \
+       DEVICE_VENDOR="$(DEVICE_VENDOR)" \
+       DEVICE_MODEL="$(DEVICE_MODEL)" \
+       DEVICE_VARIANT="$(DEVICE_VARIANT)" \
+       DEVICE_ALT0_VENDOR="$(DEVICE_ALT0_VENDOR)" \
+       DEVICE_ALT0_MODEL="$(DEVICE_ALT0_MODEL)" \
+       DEVICE_ALT0_VARIANT="$(DEVICE_ALT0_VARIANT)" \
+       DEVICE_ALT1_VENDOR="$(DEVICE_ALT1_VENDOR)" \
+       DEVICE_ALT1_MODEL="$(DEVICE_ALT1_MODEL)" \
+       DEVICE_ALT1_VARIANT="$(DEVICE_ALT1_VARIANT)" \
+       DEVICE_ALT2_VENDOR="$(DEVICE_ALT2_VENDOR)" \
+       DEVICE_ALT2_MODEL="$(DEVICE_ALT2_MODEL)" \
+       DEVICE_ALT2_VARIANT="$(DEVICE_ALT2_VARIANT)" \
+       DEVICE_TITLE="$(DEVICE_TITLE)" \
+       TARGET="$(BOARD)" \
+       SUBTARGET="$(if $(SUBTARGET),$(SUBTARGET),generic)" \
+       VERSION_NUMBER="$(VERSION_NUMBER)" \
+       VERSION_CODE="$(VERSION_CODE)" \
+       SUPPORTED_DEVICES="$(SUPPORTED_DEVICES)" \
+       $(TOPDIR)/scripts/json_add_image_info.py $$@
 
 endef
 
@@ -612,8 +616,6 @@ define Device/Build/artifact
 endef
 
 define Device/Build
-  $(shell rm -f $(BIN_DIR)/$(IMG_PREFIX)-$(1).json)
-
   $(if $(CONFIG_TARGET_ROOTFS_INITRAMFS),$(call Device/Build/initramfs,$(1)))
   $(call Device/Build/kernel,$(1))
 
@@ -699,6 +701,7 @@ define BuildImage
 
     image_prepare: compile
                mkdir -p $(BIN_DIR) $(KDIR)/tmp
+               rm -rf $(BUILD_DIR)/json_info_files
                $(call Image/Prepare)
 
     legacy-images-prepare-make: image_prepare