[PATCH 2/6] make: use wc -c instead of stat -c%s to get file sizes

Dirk Hörner dirker at gmail.com
Mon Jun 4 16:40:15 EDT 2012


On OS X, stat does not know about %s. Solaris does not have stat. The
drawback to this wc -c solution is that wc reads all the bytes, but we are
only dealing with small files here, so that not be much of a problem.

Signed-off-by: Dirk Hörner <dirker at gmail.com>
---
 Makefile             |    2 +-
 common/Makefile      |    2 +-
 scripts/Makefile.lib |    2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/Makefile b/Makefile
index bcaae0a..3ac8788 100644
--- a/Makefile
+++ b/Makefile
@@ -536,7 +536,7 @@ quiet_cmd_barebox_version = GEN     .version
 # Check size of a file
 quiet_cmd_check_file_size = CHKSIZE $@
       cmd_check_file_size = set -e;					\
-	size=`stat -c%s $@`;						\
+	size=`wc -c < $@`;						\
 	max_size=`printf "%d" $2`;					\
 	if [ $$size -gt $$max_size ] ;					\
 	then								\
diff --git a/common/Makefile b/common/Makefile
index a58aef9..9c14d7b 100644
--- a/common/Makefile
+++ b/common/Makefile
@@ -77,7 +77,7 @@ barebox_default_env.lzo: barebox_default_env
 
 include/generated/barebox_default_env.h: barebox_default_env$(barebox_default_env_comp)
 	$(Q)cat $< | $(objtree)/scripts/bin2c default_environment > $@
-	$(Q)echo "const int default_environment_uncompress_size=`stat -c%s barebox_default_env`;" >> $@
+	$(Q)echo "const int default_environment_uncompress_size=`wc -c < barebox_default_env`;" >> $@
 
 CLEAN_FILES += include/generated/barebox_default_env.h barebox_default_env
 CLEAN_FILES += barebox_default_env.gz barebox_default_env.bz2
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
index b842c48..9b02b1b 100644
--- a/scripts/Makefile.lib
+++ b/scripts/Makefile.lib
@@ -171,7 +171,7 @@ cmd_gzip = (cat $(filter-out FORCE,$^) | gzip -n -f -9 > $@) || \
 size_append = printf $(shell						\
 dec_size=0;								\
 for F in $1; do								\
-	fsize=$$(stat -c "%s" $$F);					\
+	fsize=$$(wc -c < $$F);					        \
 	dec_size=$$(expr $$dec_size + $$fsize);				\
 done;									\
 printf "%08x\n" $$dec_size |						\
-- 
1.7.10.3




More information about the barebox mailing list