summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFred Sundvik <fsundvik@gmail.com>2016-08-16 08:42:08 +0300
committerFred Sundvik <fsundvik@gmail.com>2016-08-20 03:56:43 +0300
commit03e31ef8b9752220d092a1950030cf7942e002eb (patch)
treeadd6ed9124ac87d9f575566233e28842fac3cbc0
parent3442e216dcec3ce6c8ba1c755b0d647a7f384f01 (diff)
downloadqmk_firmware-03e31ef8b9752220d092a1950030cf7942e002eb.tar.gz
qmk_firmware-03e31ef8b9752220d092a1950030cf7942e002eb.zip
Continue on error
-rw-r--r--Makefile6
-rw-r--r--message.mk7
2 files changed, 10 insertions, 3 deletions
diff --git a/Makefile b/Makefile
index ed89b07337..f80d4e99c8 100644
--- a/Makefile
+++ b/Makefile
@@ -12,6 +12,8 @@ endif
override SILENT = false
+ON_ERROR := error_occured=1
+
STARTING_MAKEFILE := $(firstword $(MAKEFILE_LIST))
ROOT_MAKEFILE := $(lastword $(MAKEFILE_LIST))
ROOT_DIR := $(dir $(ROOT_MAKEFILE))
@@ -302,7 +304,9 @@ $(SUBPROJECTS): %: %-allkm
done
$(eval $(call PARSE_RULE,$@))
$(eval $(call SET_SILENT_MODE))
- +$(foreach COMMAND,$(COMMANDS),$(RUN_COMMAND))
+ +error_occured=0; \
+ $(foreach COMMAND,$(COMMANDS),$(RUN_COMMAND)) \
+ if [ $$error_occured -gt 0 ]; then printf "$(MSG_ERRORS)" & exit $$error_occured; fi
.PHONY: all
diff --git a/message.mk b/message.mk
index 6abc782152..f8fd387121 100644
--- a/message.mk
+++ b/message.mk
@@ -15,6 +15,8 @@ else
AWK=cat && test
endif
+ON_ERROR ?= exit 1
+
OK_STRING=$(OK_COLOR)[OK]$(NO_COLOR)\n
ERROR_STRING=$(ERROR_COLOR)[ERRORS]$(NO_COLOR)\n
WARN_STRING=$(WARN_COLOR)[WARNINGS]$(NO_COLOR)\n
@@ -23,9 +25,9 @@ TAB_LOG = printf "\n$$LOG\n\n" | $(AWK) '{ sub(/^/," | "); print }'
TAB_LOG_PLAIN = printf "$$LOG\n"
AWK_STATUS = $(AWK) '{ printf " %-10s\n", $$1; }'
AWK_CMD = $(AWK) '{ printf "%-99s", $$0; }'
-PRINT_ERROR = ($(SILENT) ||printf " $(ERROR_STRING)" | $(AWK_STATUS)) && $(TAB_LOG) && exit 1
+PRINT_ERROR = ($(SILENT) ||printf " $(ERROR_STRING)" | $(AWK_STATUS)) && $(TAB_LOG) && $(ON_ERROR)
PRINT_WARNING = ($(SILENT) || printf " $(WARN_STRING)" | $(AWK_STATUS)) && $(TAB_LOG)
-PRINT_ERROR_PLAIN = ($(SILENT) ||printf " $(ERROR_STRING)" | $(AWK_STATUS)) && $(TAB_LOG_PLAIN) && exit 1
+PRINT_ERROR_PLAIN = ($(SILENT) ||printf " $(ERROR_STRING)" | $(AWK_STATUS)) && $(TAB_LOG_PLAIN) && $(ON_ERROR)
PRINT_WARNING_PLAIN = ($(SILENT) || printf " $(WARN_STRING)" | $(AWK_STATUS)) && $(TAB_LOG_PLAIN)
PRINT_OK = $(SILENT) || printf " $(OK_STRING)" | $(AWK_STATUS)
BUILD_CMD = LOG=$$($(CMD) 2>&1) ; if [ $$? -gt 0 ]; then $(PRINT_ERROR); elif [ "$$LOG" != "" ] ; then $(PRINT_WARNING); else $(PRINT_OK); fi;
@@ -34,6 +36,7 @@ MSG_NO_CMP = $(ERROR_COLOR)Error:$(NO_COLOR)$(BOLD) cmp command not found, pleas
# Define Messages
# English
MSG_ERRORS_NONE = Errors: none
+MSG_ERRORS = $(ERROR_COLOR)Make finished with errors\n$(NO_COLOR)
MSG_BEGIN = -------- begin --------
MSG_END = -------- end --------
MSG_SIZE_BEFORE = Size before: