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