From f2e73863cbee2a7bff0bfb954e747979822f5525 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ren=C3=A9=20Kijewski?= <rene.kijewski@fu-berlin.de>
Date: Fri, 18 Apr 2014 18:23:27 +0200
Subject: [PATCH] make: comprehensive list of the boards' filesizes

---
 Makefile.include | 28 +++++++++++++++++++++++++++-
 1 file changed, 27 insertions(+), 1 deletion(-)

diff --git a/Makefile.include b/Makefile.include
index c59a669929..5146e599ef 100644
--- a/Makefile.include
+++ b/Makefile.include
@@ -82,7 +82,7 @@ BASELIBS += $(BINDIR)$(BOARD)_base.a
 BASELIBS += $(BINDIR)${PROJECT}.a
 BASELIBS += $(USEPKG:%=${BINDIR}%.a)
 
-.PHONY: all clean flash doc term
+.PHONY: all clean flash doc term buildsize buildsizes
 
 ## make script for your application. Build RIOT-base here!
 all: $(BINDIR)$(PROJECT).a
@@ -199,3 +199,29 @@ buildtest:
 	if [ "$${BUILDTESTFAILED}" = "1" ]; then \
 		exit 1; \
 	fi
+
+buildsize:
+	@$(SIZE) -dB $(BINDIR)$(PROJECT).elf
+
+buildsizes: SHELL=bash
+buildsizes:
+	@if [[ -z "$(BOARD_WHITELIST)" ]]; then \
+		BOARDS=$$(find $(RIOTBOARD) -mindepth 1 -maxdepth 1 -type d \! -name \*-common -printf '%f\n' ); \
+	else \
+		BOARDS="$(BOARD_WHITELIST)"; \
+	fi; \
+	for BOARD in $(BOARD_BLACKLIST); do \
+		BOARDS=$$(sed -e "s/ $${BOARD} / /" <<< " $${BOARDS} "); \
+	done; \
+	\
+	echo -e "   text\t   data\t    bss\t    dec\tboard"; \
+	for BOARD in $${BOARDS}; do \
+		echo "$$(env -i \
+			HOME=$${HOME} \
+			PATH=$${PATH} \
+			BOARD=$${BOARD} \
+			RIOTBASE=$${RIOTBASE} \
+			RIOTBOARD=$${RIOTBOARD} \
+			RIOTCPU=$${RIOTCPU} \
+			$(MAKE) buildsize 2>/dev/null | tail -n-1 | cut -f-4)" "$${BOARD}"; \
+	done;
-- 
GitLab