x86: added support to generate VHDX images
[openwrt/staging/mkresin.git] / include / image.mk
index d93ce7f233d23973bb86e2316bfeb9f54637a901..275a0adcac9e7581153791c876a565d535450b7a 100644 (file)
@@ -75,6 +75,7 @@ JFFS2OPTS += $(MKFS_DEVTABLE_OPT)
 SQUASHFS_BLOCKSIZE := $(CONFIG_TARGET_SQUASHFS_BLOCK_SIZE)k
 SQUASHFSOPT := -b $(SQUASHFS_BLOCKSIZE)
 SQUASHFSOPT += -p '/dev d 755 0 0' -p '/dev/console c 600 0 0 5 1'
+SQUASHFSOPT += $(if $(CONFIG_SELINUX),-xattrs,-no-xattrs)
 SQUASHFSCOMP := gzip
 LZMA_XZ_OPTIONS := -Xpreset 9 -Xe -Xlc 0 -Xlp 2 -Xpb 2
 ifeq ($(CONFIG_SQUASHFS_XZ),y)
@@ -393,6 +394,7 @@ define Device/Init
 
   DEVICE_DTS :=
   DEVICE_DTS_CONFIG :=
+  DEVICE_DTS_DELIMITER :=
   DEVICE_DTS_DIR :=
   DEVICE_DTS_OVERLAY :=
   DEVICE_FDT_NUM :=
@@ -418,11 +420,11 @@ DEFAULT_DEVICE_VARS := \
   DEVICE_NAME KERNEL KERNEL_INITRAMFS KERNEL_INITRAMFS_IMAGE KERNEL_SIZE \
   CMDLINE UBOOTENV_IN_UBI KERNEL_IN_UBI BLOCKSIZE PAGESIZE SUBPAGESIZE \
   VID_HDR_OFFSET UBINIZE_OPTS UBINIZE_PARTS MKUBIFS_OPTS DEVICE_DTS \
-  DEVICE_DTS_CONFIG DEVICE_DTS_DIR DEVICE_DTS_OVERLAY DEVICE_FDT_NUM \
-  DEVICE_IMG_PREFIX SOC BOARD_NAME UIMAGE_MAGIC UIMAGE_NAME \
+  DEVICE_DTS_CONFIG DEVICE_DTS_DELIMITER DEVICE_DTS_DIR DEVICE_DTS_OVERLAY \
+  DEVICE_FDT_NUM DEVICE_IMG_PREFIX SOC BOARD_NAME UIMAGE_MAGIC UIMAGE_NAME \
   SUPPORTED_DEVICES IMAGE_METADATA KERNEL_ENTRY KERNEL_LOADADDR \
   UBOOT_PATH IMAGE_SIZE \
-  DEVICE_COMPAT_VERSION DEVICE_COMPAT_MESSAGE \
+  DEVICE_PACKAGES DEVICE_COMPAT_VERSION DEVICE_COMPAT_MESSAGE \
   DEVICE_VENDOR DEVICE_MODEL DEVICE_VARIANT \
   DEVICE_ALT0_VENDOR DEVICE_ALT0_MODEL DEVICE_ALT0_VARIANT \
   DEVICE_ALT1_VENDOR DEVICE_ALT1_MODEL DEVICE_ALT1_VARIANT \
@@ -478,7 +480,7 @@ define Device/Build/initramfs
          $$(if $$(CONFIG_JSON_OVERVIEW_IMAGE_INFO), $(BUILD_DIR)/json_info_files/$$(KERNEL_INITRAMFS_IMAGE).json,))
 
   $(KDIR)/$$(KERNEL_INITRAMFS_NAME):: image_prepare
-  $(1)-images: $(BIN_DIR)/$$(KERNEL_INITRAMFS_IMAGE)
+  $(1)-images: $$(if $$(KERNEL_INITRAMFS),$(BIN_DIR)/$$(KERNEL_INITRAMFS_IMAGE))
   $(BIN_DIR)/$$(KERNEL_INITRAMFS_IMAGE): $(KDIR)/tmp/$$(KERNEL_INITRAMFS_IMAGE)
        cp $$^ $$@
 
@@ -493,9 +495,9 @@ define Device/Build/initramfs
        DEVICE_ID="$(1)" \
        BIN_DIR="$(BIN_DIR)" \
        SOURCE_DATE_EPOCH=$(SOURCE_DATE_EPOCH) \
-       DEVICE_IMG_NAME="$$(notdir $$^)" \
-       IMAGE_TYPE="kernel" \
-       IMAGE_FILESYSTEM="initramfs" \
+       FILE_NAME="$$(notdir $$^)" \
+       FILE_TYPE="kernel" \
+       FILE_FILESYSTEM="initramfs" \
        DEVICE_IMG_PREFIX="$$(DEVICE_IMG_PREFIX)" \
        DEVICE_VENDOR="$$(DEVICE_VENDOR)" \
        DEVICE_MODEL="$$(DEVICE_MODEL)" \
@@ -600,9 +602,9 @@ define Device/Build/image
        DEVICE_ID="$(DEVICE_NAME)" \
        BIN_DIR="$(BIN_DIR)" \
        SOURCE_DATE_EPOCH=$(SOURCE_DATE_EPOCH) \
-       DEVICE_IMG_NAME="$(DEVICE_IMG_NAME)" \
-       IMAGE_TYPE=$(word 1,$(subst ., ,$(2))) \
-       IMAGE_FILESYSTEM="$(1)" \
+       FILE_NAME="$(DEVICE_IMG_NAME)" \
+       FILE_TYPE=$(word 1,$(subst ., ,$(2))) \
+       FILE_FILESYSTEM="$(1)" \
        DEVICE_IMG_PREFIX="$(DEVICE_IMG_PREFIX)" \
        DEVICE_VENDOR="$(DEVICE_VENDOR)" \
        DEVICE_MODEL="$(DEVICE_MODEL)" \
@@ -628,7 +630,9 @@ define Device/Build/image
 endef
 
 define Device/Build/artifact
-  $$(_TARGET): $(BIN_DIR)/$(DEVICE_IMG_PREFIX)-$(1)
+  $$(_TARGET): $(if $(CONFIG_JSON_OVERVIEW_IMAGE_INFO), \
+         $(BUILD_DIR)/json_info_files/$(DEVICE_IMG_PREFIX)-$(1).json, \
+         $(BIN_DIR)/$(DEVICE_IMG_PREFIX)-$(1))
   $(eval $(call Device/Export,$(KDIR)/tmp/$(DEVICE_IMG_PREFIX)-$(1)))
   $(KDIR)/tmp/$(DEVICE_IMG_PREFIX)-$(1): $$(KDIR_KERNEL_IMAGE) $(2)-images
        @rm -f $$@
@@ -639,6 +643,35 @@ define Device/Build/artifact
   $(BIN_DIR)/$(DEVICE_IMG_PREFIX)-$(1): $(KDIR)/tmp/$(DEVICE_IMG_PREFIX)-$(1)
        cp $$^ $$@
 
+  $(BUILD_DIR)/json_info_files/$(DEVICE_IMG_PREFIX)-$(1).json: $(BIN_DIR)/$(DEVICE_IMG_PREFIX)-$(1)
+       @mkdir -p $$(shell dirname $$@)
+       DEVICE_ID="$(DEVICE_NAME)" \
+       BIN_DIR="$(BIN_DIR)" \
+       SOURCE_DATE_EPOCH=$(SOURCE_DATE_EPOCH) \
+       FILE_NAME="$(DEVICE_IMG_PREFIX)-$(1)" \
+       FILE_TYPE="$(1)" \
+       DEVICE_IMG_PREFIX="$(DEVICE_IMG_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)" \
+       DEVICE_PACKAGES="$(DEVICE_PACKAGES)" \
+       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
 
 define Device/Build