diff --git a/Makefile.include b/Makefile.include
index c59a6699299bd8fcd1e44f2ec61bd1b1ed8c2fc7..5146e599ef72ba55e58c8fee8f8c615cede0c1e8 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;