From: Eric Andersen Date: Sat, 12 Feb 2005 04:32:17 +0000 (-0000) Subject: We need to calculate filesystem size right when we run genext2fs. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=66adf26aa4ff9d4033e748f74377576f7aab6d79;p=buildroot.git We need to calculate filesystem size right when we run genext2fs. As was, size was calculated right when 'make' was run, at which point the rootfs may well be empty... --- diff --git a/target/ext2/ext2root.mk b/target/ext2/ext2root.mk index 2d80999fef..61aedddce7 100644 --- a/target/ext2/ext2root.mk +++ b/target/ext2/ext2root.mk @@ -39,32 +39,20 @@ genext2fs: $(GENEXT2_DIR)/genext2fs # ############################################################# -# How much KB we want to add to the calculated size for slack space -GENEXT2_REALSIZE=$(subst total,, $(shell LANG=C du $(TARGET_DIR) -s -c -k | grep total )) -GENEXT2_ADDTOROOTSIZE=$(shell if [ $(GENEXT2_REALSIZE) -ge 20000 ] ; then echo 16384; else echo 16; fi) -GENEXT2_SIZE=$(shell expr $(GENEXT2_REALSIZE) + $(GENEXT2_ADDTOROOTSIZE) + 200) -# We currently add about 400 device nodes, so add that into the total -GENEXT2_INODES=$(shell expr $(shell find $(TARGET_DIR) | wc -l) + 400) -#GENEXT2_SIZE=100000 +EXT2_OPTS := -EXT2_OPTS := +ifeq ($(strip $(BR2_TARGET_ROOTFS_EXT2_SQUASH)),y) +EXT2_OPTS += -q +endif -ifeq ($(strip $(BR2_TARGET_ROOTFS_EXT2_BLOCKS)),0) -EXT2_OPTS += -b $(GENEXT2_SIZE) -else +ifneq ($(strip $(BR2_TARGET_ROOTFS_EXT2_BLOCKS)),0) EXT2_OPTS += -b $(strip $(BR2_TARGET_ROOTFS_EXT2_BLOCKS)) endif -ifeq ($(strip $(BR2_TARGET_ROOTFS_EXT2_INODES)),0) -EXT2_OPTS += -i $(GENEXT2_INODES) -else +ifneq ($(strip $(BR2_TARGET_ROOTFS_EXT2_INODES)),0) EXT2_OPTS += -i $(strip $(BR2_TARGET_ROOTFS_EXT2_INODES)) endif -ifeq ($(strip $(BR2_TARGET_ROOTFS_EXT2_SQUASH)),y) -EXT2_OPTS += -q -endif - ifneq ($(strip $(BR2_TARGET_ROOTFS_EXT2_RESBLKS)),0) EXT2_OPTS += -r $(strip $(BR2_TARGET_ROOTFS_EXT2_RESBLKS)) endif @@ -87,21 +75,35 @@ $(EXT2_BASE): genext2fs @rm -rf $(TARGET_DIR)/usr/man @rm -rf $(TARGET_DIR)/usr/share/man @rm -rf $(TARGET_DIR)/usr/info +ifeq ($(strip $(BR2_TARGET_ROOTFS_EXT2_BLOCKS)),0) + GENEXT2_REALSIZE=`LANG=C du -l -s -c -k $(TARGET_DIR) | grep total | sed -e "s/total//"`; \ + GENEXT2_ADDTOROOTSIZE=`if [ $$GENEXT2_REALSIZE -ge 20000 ] ; then echo 16384; else echo 1200; fi`; \ + GENEXT2_SIZE=`expr $$GENEXT2_REALSIZE + $$GENEXT2_ADDTOROOTSIZE`; \ + GENEXT2_ADDTOINODESIZE=`find $(TARGET_DIR) | wc -l`; \ + GENEXT2_INODES=`expr $$GENEXT2_ADDTOINODESIZE + 400`; \ + set -x; \ + $(GENEXT2_DIR)/genext2fs \ + -b $$GENEXT2_SIZE \ + -i $$GENEXT2_INODES \ + -d $(TARGET_DIR) \ + $(EXT2_OPTS) $(EXT2_BASE) +else $(GENEXT2_DIR)/genext2fs \ -d $(TARGET_DIR) \ $(EXT2_OPTS) \ $(EXT2_BASE) - +endif + $(EXT2_BASE).gz: $(EXT2_BASE) @gzip --best -fv $(EXT2_BASE) - + EXT2_COPYTO := $(strip $(subst ",,$(BR2_TARGET_ROOTFS_EXT2_COPYTO))) - + ext2root: $(EXT2_TARGET) @ls -l $(EXT2_TARGET) ifneq ($(EXT2_COPYTO),) @cp -f $(EXT2_TARGET) $(EXT2_COPYTO) -endif +endif ext2root-source: $(DL_DIR)/$(GENEXT2_SOURCE)