Add support for summarising JFFS2 images. With support in the kernel this improves...
authorHamish Moffatt <hamish@cloud.net.au>
Tue, 12 Feb 2008 05:39:32 +0000 (05:39 -0000)
committerHamish Moffatt <hamish@cloud.net.au>
Tue, 12 Feb 2008 05:39:32 +0000 (05:39 -0000)
package/mtd/20050122/mtd.mk
package/mtd/20061007/mtd.mk
package/mtd/mtd-utils/mtd.mk
target/jffs2/Config.in
target/jffs2/jffs2root.mk

index 72832fa598c83625018f2bf9c3f82e5f47c9f88b..443b5c459f3f9a3eb93ea048a7fff39c067c6bd0 100644 (file)
@@ -25,11 +25,12 @@ endif
 
 #############################################################
 #
-# Build mkfs.jffs2 for use on the local host system if
+# Build mkfs.jffs2 and sumtool for use on the local host system if
 # needed by target/jffs2root.
 #
 #############################################################
 MKFS_JFFS2 := $(MTD_HOST_DIR)/util/mkfs.jffs2
+SUMTOOL := $(MTD_HOST_DIR)/util/sumtool
 
 ifeq ($(strip $(BR2_PACKAGE_MTD_SNAPSHOT)),y)
 $(DL_DIR)/$(MTD_SOURCE):
@@ -55,11 +56,15 @@ $(MTD_HOST_DIR)/.unpacked: $(DL_DIR)/$(MTD_SOURCE)
        touch $@
 endif
 
-$(MTD_HOST_DIR)/util/mkfs.jffs2: $(MTD_HOST_DIR)/.unpacked
+$(MKFS_JFFS2): $(MTD_HOST_DIR)/.unpacked
        CFLAGS=-I$(LINUX_HEADERS_DIR)/include $(MAKE) CC="$(HOSTCC)" CROSS= \
                LINUXDIR=$(LINUX_DIR) -C $(MTD_HOST_DIR)/util mkfs.jffs2
 
-mtd-host: $(MKFS_JFFS2)
+$(SUMTOOL): $(MTD_HOST_DIR)/.unpacked
+       CFLAGS=-I$(LINUX_HEADERS_DIR)/include $(MAKE) CC="$(HOSTCC)" CROSS= \
+               LINUXDIR=$(LINUX_DIR) -C $(MTD_HOST_DIR)/util sumtool
+
+mtd-host: $(MKFS_JFFS2) $(SUMTOOL)
 
 mtd-host-source: $(DL_DIR)/$(MTD_SOURCE)
 
index bda366dde5dd0128bd35d7f3a91a1292d9d02e4e..fdd7bb0c7ea2a0cd1d3cefd116ea25813d1d9d93 100644 (file)
@@ -12,11 +12,12 @@ MTD_DATE:=20061007
 
 #############################################################
 #
-# Build mkfs.jffs2 for use on the local host system if
+# Build mkfs.jffs2 and sumtool for use on the local host system if
 # needed by target/jffs2root.
 #
 #############################################################
 MKFS_JFFS2 := $(MTD_HOST_DIR)/mkfs.jffs2
+SUMTOOL := $(MTD_HOST_DIR)/sumtool
 
 $(DL_DIR)/$(MTD_SOURCE):
        $(WGET) -P $(DL_DIR) $(MTD_SITE)/$(MTD_SOURCE)
@@ -29,11 +30,15 @@ $(MTD_HOST_DIR)/.unpacked: $(DL_DIR)/$(MTD_SOURCE)
                package/mtd/$(MTD_DATE) \*.patch
        touch $@
 
-$(MTD_HOST_DIR)/mkfs.jffs2: $(MTD_HOST_DIR)/.unpacked
+$(MKFS_JFFS2): $(MTD_HOST_DIR)/.unpacked
        CC="$(HOSTCC)" CROSS= CFLAGS=-I$(LINUX_HEADERS_DIR)/include \
                $(MAKE) LINUXDIR=$(LINUX_DIR) -C $(MTD_HOST_DIR) mkfs.jffs2
 
-mtd-host: $(MKFS_JFFS2)
+$(SUMTOOL): $(MTD_HOST_DIR)/.unpacked
+       CC="$(HOSTCC)" CROSS= CFLAGS=-I$(LINUX_HEADERS_DIR)/include \
+               $(MAKE) LINUXDIR=$(LINUX_DIR) -C $(MTD_HOST_DIR) sumtool
+
+mtd-host: $(MKFS_JFFS2) $(SUMTOOL)
 
 mtd-host-source: $(DL_DIR)/$(MTD_SOURCE)
 
index 2274de92362551922b33e9fbe8aba5a6ac449f6b..86acc93bd5753aba543633669c828e928b9acc6c 100644 (file)
@@ -13,11 +13,12 @@ MTD_NAME:=mtd-utils-$(MTD_VERSION)
 
 #############################################################
 #
-# Build mkfs.jffs2 for use on the local host system if
+# Build mkfs.jffs2 and sumtool for use on the local host system if
 # needed by target/jffs2root.
 #
 #############################################################
 MKFS_JFFS2 := $(MTD_HOST_DIR)/mkfs.jffs2
+SUMTOOL := $(MTD_HOST_DIR)/sumtool
 
 $(DL_DIR)/$(MTD_SOURCE):
        $(WGET) -P $(DL_DIR) $(MTD_SITE)/$(MTD_SOURCE)
@@ -33,13 +34,19 @@ $(MTD_HOST_DIR)/.unpacked: $(DL_DIR)/$(MTD_SOURCE)
        touch $@
 
 
-$(MTD_HOST_DIR)/mkfs.jffs2: $(MTD_HOST_DIR)/.unpacked
+$(MKFS_JFFS2): $(MTD_HOST_DIR)/.unpacked
        CC="$(HOSTCC)" CROSS= CFLAGS=-I$(LINUX_HEADERS_DIR)/include \
                $(MAKE) LINUXDIR=$(LINUX_DIR) \
                BUILDDIR=$(MTD_HOST_DIR) \
                -C $(MTD_HOST_DIR) mkfs.jffs2
 
-mtd-host: $(MKFS_JFFS2)
+$(SUMTOOL): $(MTD_HOST_DIR)/.unpacked
+       CC="$(HOSTCC)" CROSS= CFLAGS=-I$(LINUX_HEADERS_DIR)/include \
+               $(MAKE) LINUXDIR=$(LINUX_DIR) \
+               BUILDDIR=$(MTD_HOST_DIR) \
+               -C $(MTD_HOST_DIR) sumtool
+
+mtd-host: $(MKFS_JFFS2) $(SUMTOOL)
 
 mtd-host-source: $(DL_DIR)/$(MTD_SOURCE)
 
index 45fa646e9a5c2fdfae617d87cfe5c4ae8ab1c5a8..e4d463cf051368efd17d71d2fef667c08ed8fd0c 100644 (file)
@@ -114,6 +114,13 @@ config BR2_TARGET_ROOTFS_JFFS2_SQUASH
        bool "Make all files be owned by root"
        depends on BR2_TARGET_ROOTFS_JFFS2
 
+config BR2_TARGET_ROOTFS_JFFS2_SUMMARY
+       bool "Produce a summarized JFFS2 image"
+       depends on BR2_TARGET_ROOTFS_JFFS2
+    help
+      A summarised image can be mounted faster if support is
+      enabled in the kernel (CONFIG_JFFS2_SUMMARY)
+
 config BR2_TARGET_ROOTFS_JFFS2_OUTPUT
        string "Output File"
        depends on BR2_TARGET_ROOTFS_JFFS2
index 6937b8f9d8bbc2be7e9e761ef39b99df2058ef0f..404c678aa2a1ab19d41f38eab0111eae2f9bf4ad 100644 (file)
@@ -5,6 +5,7 @@
 #############################################################
 
 JFFS2_OPTS := -e $(strip $(BR2_TARGET_ROOTFS_JFFS2_EBSIZE))
+SUMTOOL_OPTS := $(JFFS2_OPTS)
 
 ifeq ($(strip $(BR2_TARGET_ROOTFS_JFFS2_PAD)),y)
 ifneq ($(strip $(BR2_TARGET_ROOTFS_JFFS2_PADSIZE)),0x0)
@@ -12,6 +13,7 @@ JFFS2_OPTS += --pad=$(strip $(BR2_TARGET_ROOTFS_JFFS2_PADSIZE))
 else
 JFFS2_OPTS += -p
 endif
+SUMTOOLS_OPTS += -p
 endif
 
 ifeq ($(BR2_TARGET_ROOTFS_JFFS2_SQUASH),y)
@@ -20,16 +22,19 @@ endif
 
 ifeq ($(BR2_TARGET_ROOTFS_JFFS2_LE),y)
 JFFS2_OPTS += -l
+SUMTOOLS_OPTS += -l
 endif
 
 ifeq ($(BR2_TARGET_ROOTFS_JFFS2_BE),y)
 JFFS2_OPTS += -b
+SUMTOOL_OPTS += -b
 endif
 
 ifneq ($(BR2_TARGET_ROOTFS_JFFS2_DEFAULT_PAGESIZE),y)
 JFFS2_OPTS += -s $(BR2_TARGET_ROOTFS_JFFS2_PAGESIZE)
 ifeq ($(BR2_TARGET_ROOTFS_JFFS2_NOCLEANMARKER),y)
 JFFS2_OPTS += -n
+SUMTOOL_OPTS += -n
 endif
 endif
 
@@ -70,8 +75,15 @@ ifneq ($(TARGET_DEVICE_TABLE),)
                >> $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(JFFS2_TARGET))
 endif
        # Use fakeroot so mkfs.jffs2 believes the previous fakery
+ifneq ($(BR2_TARGET_ROOTFS_JFFS2_SUMMARY),)
+       echo "$(MKFS_JFFS2) $(JFFS2_OPTS) -d $(TARGET_DIR) -o $(JFFS2_TARGET).nosummary && " \
+               "$(SUMTOOL) $(SUMTOOL_OPTS) -i $(JFFS2_TARGET).nosummary -o $(JFFS2_TARGET) && " \
+               "rm $(JFFS2_TARGET).nosummary" \
+               >> $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(JFFS2_TARGET))
+else
        echo "$(MKFS_JFFS2) $(JFFS2_OPTS) -d $(TARGET_DIR) -o $(JFFS2_TARGET)" \
                >> $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(JFFS2_TARGET))
+endif
        chmod a+x $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(JFFS2_TARGET))
        $(STAGING_DIR)/usr/bin/fakeroot -- $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(JFFS2_TARGET))
        -@rm -f $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(JFFS2_TARGET))