fs/ext2: fix blocks/inodes calculation

With the ROOTFS_TARGET conversion, EXT2_OPTS gets evaluated very early
(before TARGET_DIR is populated with files), so the calculated
blocks/inodes numbers are wrong.

Fix it by moving the calculation to a shell script wrapper around
genext2fs, so it only gets executed just before genext2fs runs.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
This commit is contained in:
Peter Korsgaard
2010-04-19 14:24:11 +02:00
parent f7f01e18e7
commit fb951b9342
2 changed files with 41 additions and 11 deletions

View File

@@ -24,17 +24,8 @@ endif
ROOTFS_EXT2_DEPENDENCIES = host-genext2fs
ifeq ($(strip $(BR2_TARGET_ROOTFS_EXT2_BLOCKS)),0)
GENEXT2_REALSIZE=$(shell LC_ALL=C du -s -c -k $(TARGET_DIR) | grep total | sed -e "s/total//")
GENEXT2_ADDTOROOTSIZE=$(shell if [ $(GENEXT2_REALSIZE) -ge 20000 ]; then echo 16384; else echo 2400; fi)
GENEXT2_SIZE=$(shell expr $(GENEXT2_REALSIZE) + $(GENEXT2_ADDTOROOTSIZE))
GENEXT2_ADDTOINODESIZE=$(shell find $(TARGET_DIR) | wc -l)
GENEXT2_INODES=$(shell expr $(GENEXT2_ADDTOINODESIZE) + 400)
EXT2_OPTS += -b $(GENEXT2_SIZE) -N $(GENEXT2_INODES)
endif
define ROOTFS_EXT2_CMD
$(HOST_DIR)/usr/bin/genext2fs -d $(TARGET_DIR) $(EXT2_OPTS) $$@
PATH=$(TARGET_PATH) fs/ext2/genext2fs.sh -d $(TARGET_DIR) $(EXT2_OPTS) $$@
endef
$(eval $(call ROOTFS_TARGET,ext2))
$(eval $(call ROOTFS_TARGET,ext2))