]> git.donarmstrong.com Git - qmk_firmware.git/commitdiff
Add makefile option to break on errors
authorFred Sundvik <fsundvik@gmail.com>
Sun, 9 Apr 2017 17:04:12 +0000 (20:04 +0300)
committerFred Sundvik <fsundvik@gmail.com>
Thu, 13 Apr 2017 13:00:29 +0000 (16:00 +0300)
Makefile

index 9d9c9629d543a6992c960502e685fc7f29dc4b56..297de0cafbdaaaeec5de093ce589c3a4c06f97d3 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -21,6 +21,8 @@ override SILENT := false
 
 ON_ERROR := error_occurred=1
 
+BREAK_ON_ERRORS = no
+
 STARTING_MAKEFILE := $(firstword $(MAKEFILE_LIST))
 ROOT_MAKEFILE := $(lastword $(MAKEFILE_LIST))
 ROOT_DIR := $(dir $(ROOT_MAKEFILE))
@@ -462,20 +464,25 @@ endef
 
 include $(ROOT_DIR)/message.mk
 
+ifeq ($(strip $(BREAK_ON_ERRORS)), yes)
+HANDLE_ERROR = exit 1
+else
+HANDLE_ERROR = echo $$error_occurred > $(ERROR_FILE)
+endif
+
 # The empty line is important here, as it will force a new shell to be created for each command
 # Otherwise the command line will become too long with a lot of keyboards and keymaps
 define RUN_COMMAND
 +error_occurred=0;\
 $(COMMAND_$(SILENT_MODE)_$(COMMAND))\
-if [ $$error_occurred -gt 0 ]; then echo $$error_occurred > $(ERROR_FILE); fi;
+if [ $$error_occurred -gt 0 ]; then $(HANDLE_ERROR); fi;
 
 
 endef
 define RUN_TEST
 +error_occurred=0;\
 $($(TEST)_COMMAND)\
-if [ $$error_occurred -gt 0 ]; then echo $$error_occurred > $(ERROR_FILE); fi;
-
+if [ $$error_occurred -gt 0 ]; then $(HANDLE_ERROR); fi;
 endef
 
 # Allow specifying just the subproject, in the keyboard directory, which will compile all keymaps