From 8e348c427d2b8dc670a2967e6cb8d2de4f897f7a Mon Sep 17 00:00:00 2001
From: fauxpark <fauxpark@gmail.com>
Date: Fri, 12 Jul 2019 05:05:13 +1000
Subject: [PATCH] Display firmware size percentage (#6307)

---
 message.mk        | 4 ++--
 tmk_core/rules.mk | 1 +
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/message.mk b/message.mk
index 734de86457..ec9bacbf49 100644
--- a/message.mk
+++ b/message.mk
@@ -79,8 +79,8 @@ MSG_TEST = Testing $(BOLD)$(TEST_NAME)$(NO_COLOR)
 MSG_CHECK_FILESIZE = Checking file size of $(TARGET).hex
 MSG_FILE_TOO_BIG = $(ERROR_COLOR)The firmware is too large!$(NO_COLOR) $(CURRENT_SIZE)/$(MAX_SIZE) ($(OVER_SIZE) bytes over)\n
 MSG_FILE_TOO_SMALL = The firmware is too small! $(CURRENT_SIZE)/$(MAX_SIZE)\n
-MSG_FILE_JUST_RIGHT = The firmware size is fine - $(CURRENT_SIZE)/$(MAX_SIZE) ($(FREE_SIZE) bytes free)\n
-MSG_FILE_NEAR_LIMIT = The firmware size is approaching the maximum - $(CURRENT_SIZE)/$(MAX_SIZE) ($(FREE_SIZE) bytes free)\n
+MSG_FILE_JUST_RIGHT = The firmware size is fine - $(CURRENT_SIZE)/$(MAX_SIZE) ($(PERCENT_SIZE)%%, $(FREE_SIZE) bytes free)\n
+MSG_FILE_NEAR_LIMIT = The firmware size is approaching the maximum - $(CURRENT_SIZE)/$(MAX_SIZE) ($(PERCENT_SIZE)%%, $(FREE_SIZE) bytes free)\n
 MSG_PYTHON_MISSING = $(WARN_COLOR)WARNING:$(NO_COLOR)\n \
 	Python 3 is not installed. It will be required by a future version\n\
 	of qmk_firmware.\n\n\
diff --git a/tmk_core/rules.mk b/tmk_core/rules.mk
index 8f876a383c..96b6e3a271 100644
--- a/tmk_core/rules.mk
+++ b/tmk_core/rules.mk
@@ -398,6 +398,7 @@ check-size:
 	$(eval CURRENT_SIZE=$(shell if [ -f $(BUILD_DIR)/$(TARGET).hex ]; then $(SIZE) --target=$(FORMAT) $(BUILD_DIR)/$(TARGET).hex | $(AWK) 'NR==2 {print $$4}'; else printf 0; fi))
 	$(eval FREE_SIZE=$(shell expr $(MAX_SIZE) - $(CURRENT_SIZE)))
 	$(eval OVER_SIZE=$(shell expr $(CURRENT_SIZE) - $(MAX_SIZE)))
+	$(eval PERCENT_SIZE=$(shell expr $(CURRENT_SIZE) \* 100 / $(MAX_SIZE)))
 	if [ $(MAX_SIZE) -gt 0 ] && [ $(CURRENT_SIZE) -gt 0 ]; then \
 		$(SILENT) || printf "$(MSG_CHECK_FILESIZE)" | $(AWK_CMD); \
 		if [ $(CURRENT_SIZE) -gt $(MAX_SIZE) ]; then \