build: add target_params variable for getting root filesystem image parameters
[openwrt/staging/chunkeey.git] / include / image.mk
index 9bb2daaaafb7680d74e76ca25c199cfb8fe8712f..8cc6a91373ab6eef3038551cb91ca84ac1962c86 100644 (file)
@@ -16,10 +16,13 @@ include $(INCLUDE_DIR)/image-legacy.mk
 override MAKE:=$(_SINGLE)$(SUBMAKE)
 override NO_TRACE_MAKE:=$(_SINGLE)$(NO_TRACE_MAKE)
 
+target_params = $(subst +,$(space),$*)
 param_get = $(patsubst $(1)=%,%,$(filter $(1)=%,$(2)))
 param_mangle = $(subst $(space),_,$(strip $(1)))
 param_unmangle = $(subst _,$(space),$(1))
 
+mkfs_target_dir = $(TARGET_DIR)
+
 KDIR=$(KERNEL_BUILD_DIR)
 KDIR_TMP=$(KDIR)/tmp
 DTS_DIR:=$(LINUX_DIR)/arch/$(LINUX_KARCH)/boot/dts
@@ -145,26 +148,30 @@ define Image/BuildDTB
        $(RM) $(2).tmp
 endef
 
-define Image/mkfs/jffs2/sub
-               $(STAGING_DIR_HOST)/bin/mkfs.jffs2 $(3) --pad -e $(patsubst %k,%KiB,$(1)) -o $(KDIR)/root.jffs2-$(2) -d $(TARGET_DIR) -v 2>&1 1>/dev/null | awk '/^.+$$$$/'
-               $(call add_jffs2_mark,$(KDIR)/root.jffs2-$(2))
+define Image/mkfs/jffs2/sub-raw
+       $(STAGING_DIR_HOST)/bin/mkfs.jffs2 \
+               $(2) \
+               -e $(patsubst %k,%KiB,$(1)) \
+               -o $@ -d $(call mkfs_target_dir,$(3)) \
+               -v 2>&1 1>/dev/null | awk '/^.+$$$$/'
 endef
 
-define Image/mkfs/jffs2/sub-raw
-               $(STAGING_DIR_HOST)/bin/mkfs.jffs2 $(3) -e $(patsubst %k,%KiB,$(1)) -o $(KDIR)/root.jffs2-$(2)-raw -d $(TARGET_DIR) -v 2>&1 1>/dev/null | awk '/^.+$$$$/'
+define Image/mkfs/jffs2/sub
+       $(call Image/mkfs/jffs2/sub-raw,$(1),--pad $(2),$(3))
+       $(call add_jffs2_mark,$@)
 endef
 
 define Image/mkfs/jffs2/template
-  Image/mkfs/jffs2-$(1) = $$(call Image/mkfs/jffs2/sub,$(1),$(1),$(JFFS2OPTS))
-  Image/mkfs/jffs2-$(1)-raw = $$(call Image/mkfs/jffs2/sub-raw,$(1),$(1),$(JFFS2OPTS))
+  Image/mkfs/jffs2-$(1) = $$(call Image/mkfs/jffs2/sub,$(1),$(JFFS2OPTS),$$(1))
+  Image/mkfs/jffs2-$(1)-raw = $$(call Image/mkfs/jffs2/sub-raw,$(1),$(JFFS2OPTS),$$(1))
 
 endef
 
 define Image/mkfs/jffs2-nand/template
   Image/mkfs/jffs2-nand-$(1) = \
        $$(call Image/mkfs/jffs2/sub, \
-               $(word 2,$(subst -, ,$(1))),nand-$(1), \
-                       $(JFFS2OPTS) --no-cleanmarkers --pagesize=$(word 1,$(subst -, ,$(1))))
+               $(word 2,$(subst -, ,$(1))), \
+                       $(JFFS2OPTS) --no-cleanmarkers --pagesize=$(word 1,$(subst -, ,$(1))),$$(1))
 
 endef
 
@@ -172,7 +179,11 @@ $(eval $(foreach S,$(JFFS2_BLOCKSIZE),$(call Image/mkfs/jffs2/template,$(S))))
 $(eval $(foreach S,$(NAND_BLOCKSIZE),$(call Image/mkfs/jffs2-nand/template,$(S))))
 
 define Image/mkfs/squashfs
-       $(STAGING_DIR_HOST)/bin/mksquashfs4 $(TARGET_DIR) $(KDIR)/root.squashfs -nopad -noappend -root-owned -comp $(SQUASHFSCOMP) $(SQUASHFSOPT) -processors $(if $(CONFIG_PKG_BUILD_JOBS),$(CONFIG_PKG_BUILD_JOBS),1) $(if $(SOURCE_DATE_EPOCH),-fixed-time $(SOURCE_DATE_EPOCH))
+       $(STAGING_DIR_HOST)/bin/mksquashfs4 $(call mkfs_target_dir,$(1)) $@ \
+               -nopad -noappend -root-owned \
+               -comp $(SQUASHFSCOMP) $(SQUASHFSOPT) \
+               -processors $(if $(CONFIG_PKG_BUILD_JOBS),$(CONFIG_PKG_BUILD_JOBS),1) \
+               $(if $(SOURCE_DATE_EPOCH),-fixed-time $(SOURCE_DATE_EPOCH))
 endef
 
 # $(1): board name
@@ -212,7 +223,7 @@ define Image/mkfs/ubifs
                $(if $(CONFIG_TARGET_UBIFS_COMPRESSION_ZLIB),--force-compr=zlib) \
                $(if $(shell echo $(CONFIG_TARGET_UBIFS_JOURNAL_SIZE)),--jrn-size=$(CONFIG_TARGET_UBIFS_JOURNAL_SIZE)) \
                --squash-uids \
-               -o $@ -d $(TARGET_DIR)
+               -o $@ -d $(call mkfs_target_dir,$(1))
 endef
 
 E2SIZE=$(shell echo $$(($(CONFIG_TARGET_ROOTFS_PARTSIZE)*1024*1024)))
@@ -224,7 +235,7 @@ define Image/mkfs/ext4
                -m $(CONFIG_TARGET_EXT4_RESERVED_PCT) \
                $(if $(CONFIG_TARGET_EXT4_JOURNAL),,-J) \
                $(if $(SOURCE_DATE_EPOCH),-T $(SOURCE_DATE_EPOCH)) \
-               $(KDIR)/root.ext4 $(TARGET_DIR)/
+               $@ $(call mkfs_target_dir,$(1))/
 endef
 
 define Image/mkfs/prepare/default
@@ -262,7 +273,7 @@ ifdef CONFIG_TARGET_ROOTFS_CPIOGZ
 endif
 
 $(KDIR)/root.%: kernel_prepare
-       $(call Image/mkfs/$(word 1,$(subst +,$(space),$*)),$(subst +,$(space),$*))
+       $(call Image/mkfs/$(word 1,$(target_params)),$(target_params))
 
 define Device/InitProfile
   PROFILES := $(PROFILE)