aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorFred Sundvik <fsundvik@gmail.com>2016-08-09 09:52:01 +0300
committerFred Sundvik <fsundvik@gmail.com>2016-08-20 03:56:36 +0300
commit8732265928818dd0b8797fb271e7c7fa9346d025 (patch)
tree11adfbdc06f53f12ba2b9d9585dd91a0aedf6e41 /Makefile
parente4c842de02d95e98f65c7bb4a8406ec6df4944fe (diff)
downloadqmk_firmware-8732265928818dd0b8797fb271e7c7fa9346d025.tar.gz
qmk_firmware-8732265928818dd0b8797fb271e7c7fa9346d025.zip
Options for silent compilation
A single keyboard is always by default compiled in verbose mode. While multiple keyboards are compiled in silent mode. This can be overriden by the silent variable from the command line
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile50
1 files changed, 38 insertions, 12 deletions
diff --git a/Makefile b/Makefile
index 9b534e897..3d4bd589f 100644
--- a/Makefile
+++ b/Makefile
@@ -2,6 +2,16 @@ ifndef VERBOSE
2.SILENT: 2.SILENT:
3endif 3endif
4 4
5ifdef silent
6 SILENT = $(silent)
7endif
8
9ifdef SILENT
10 SUB_IS_SILENT := $(silent)
11endif
12
13override SILENT = false
14
5STARTING_MAKEFILE := $(firstword $(MAKEFILE_LIST)) 15STARTING_MAKEFILE := $(firstword $(MAKEFILE_LIST))
6ROOT_MAKEFILE := $(lastword $(MAKEFILE_LIST)) 16ROOT_MAKEFILE := $(lastword $(MAKEFILE_LIST))
7ROOT_DIR := $(dir $(ROOT_MAKEFILE)) 17ROOT_DIR := $(dir $(ROOT_MAKEFILE))
@@ -59,10 +69,10 @@ ifdef keymap
59 KEYMAP := $(keymap) 69 KEYMAP := $(keymap)
60endif 70endif
61 71
62$(info Keyboard: $(KEYBOARD)) 72#$(info Keyboard: $(KEYBOARD))
63$(info Keymap: $(KEYMAP)) 73#$(info Keymap: $(KEYMAP))
64$(info Subproject: $(SUBPROJECT)) 74#$(info Subproject: $(SUBPROJECT))
65$(info Keyboards: $(KEYBOARDS)) 75#$(info Keyboards: $(KEYBOARDS))
66 76
67.DEFAULT_GOAL := all 77.DEFAULT_GOAL := all
68ifneq ($(KEYMAP),) 78ifneq ($(KEYMAP),)
@@ -229,11 +239,14 @@ define PARSE_KEYMAP
229 endif 239 endif
230 KB_SP := $(BOLD)$$(KB_SP)$(NO_COLOR) 240 KB_SP := $(BOLD)$$(KB_SP)$(NO_COLOR)
231 MAKE_VARS := KEYBOARD=$$(CURRENT_KB) SUBPROJECT=$$(CURRENT_SP) KEYMAP=$$(CURRENT_KM) 241 MAKE_VARS := KEYBOARD=$$(CURRENT_KB) SUBPROJECT=$$(CURRENT_SP) KEYMAP=$$(CURRENT_KM)
232 MAKE_VARS += VERBOSE=$(VERBOSE) COLOR=$(COLOR) SILENT=false 242 MAKE_VARS += VERBOSE=$(VERBOSE) COLOR=$(COLOR)
233 COMMAND_$$(COMMAND) := \ 243 MAKE_COMMAND := $$(MAKE) -r -R -C $(ROOT_DIR) -f build_keyboard.mk
234 printf "Compiling $$(KB_SP) with $(BOLD)$$(CURRENT_KM)$(NO_COLOR)" | \ 244 MAKE_MSG := Compiling $$(KB_SP) with $(BOLD)$$(CURRENT_KM)$(NO_COLOR)
235 $(AWK) '{ printf "%-118s", $$$$0;}'; \ 245 MAKE_MSG_FORMAT := $(AWK) '{ printf "%-118s", $$$$0;}'
236 LOG=$$$$($$(MAKE) -r -R -C $(ROOT_DIR) -f build_keyboard.mk $$(MAKE_VARS) 2>&1) ; \ 246 COMMAND_true_$$(COMMAND) := \
247 printf "$$(MAKE_MSG)" | \
248 $$(MAKE_MSG_FORMAT); \
249 LOG=$$$$($$(MAKE_COMMAND) $$(MAKE_VARS) SILENT=true 2>&1) ; \
237 if [ $$$$? -gt 0 ]; \ 250 if [ $$$$? -gt 0 ]; \
238 then $$(PRINT_ERROR_PLAIN); \ 251 then $$(PRINT_ERROR_PLAIN); \
239 elif [ "$$$$LOG" != "" ] ; \ 252 elif [ "$$$$LOG" != "" ] ; \
@@ -241,18 +254,30 @@ define PARSE_KEYMAP
241 else \ 254 else \
242 $$(PRINT_OK); \ 255 $$(PRINT_OK); \
243 fi; 256 fi;
257 COMMAND_false_$$(COMMAND) := \
258 printf "$$(MAKE_MSG)\n" | \
259 $$(MAKE_MSG_FORMAT); \
260 $$(MAKE_COMMAND) $$(MAKE_VARS) SILENT=false;
244endef 261endef
245 262
246define PARSE_ALL_KEYMAPS 263define PARSE_ALL_KEYMAPS
247 $$(eval $$(call PARSE_ALL_IN_LIST,PARSE_KEYMAP,$$(KEYMAPS))) 264 $$(eval $$(call PARSE_ALL_IN_LIST,PARSE_KEYMAP,$$(KEYMAPS)))
248endef 265endef
249 266
267define SET_SILENT_MODE
268 ifdef SUB_IS_SILENT
269 SILENT_MODE := $(SUB_IS_SILENT)
270 else ifeq ($$(words $$(COMMANDS)),1)
271 SILENT_MODE := false
272 else
273 SILENT_MODE := true
274 endif
275endef
276
250include $(ROOT_DIR)/message.mk 277include $(ROOT_DIR)/message.mk
251 278
252#RUN_COMMAND = echo "Running": $(COMMAND_$(COMMAND));
253RUN_COMMAND = \ 279RUN_COMMAND = \
254$(COMMAND_$(COMMAND)) 280$(COMMAND_$(SILENT_MODE)_$(COMMAND))
255#LOG=$$(echo $(COMMAND) VERBOSE=$(VERBOSE) COLOR=$(COLOR) SILENT=true 2>&1) ; if [ $$? -gt 0 ]; then $(PRINT_ERROR_PLAIN); elif [ "$$LOG" != "" ] ; then $(PRINT_WARNING_PLAIN); else $(PRINT_OK); fi; \
256 281
257# Allow specifying just the subproject, in the keyboard directory, which will compile all keymaps 282# Allow specifying just the subproject, in the keyboard directory, which will compile all keymaps
258SUBPROJECTS := $(notdir $(patsubst %/Makefile,%,$(wildcard ./*/Makefile))) 283SUBPROJECTS := $(notdir $(patsubst %/Makefile,%,$(wildcard ./*/Makefile)))
@@ -270,6 +295,7 @@ $(SUBPROJECTS): %: %-allkm
270 esac \ 295 esac \
271 done 296 done
272 $(eval $(call PARSE_RULE,$@)) 297 $(eval $(call PARSE_RULE,$@))
298 $(eval $(call SET_SILENT_MODE))
273 +$(foreach COMMAND,$(COMMANDS),$(RUN_COMMAND)) 299 +$(foreach COMMAND,$(COMMANDS),$(RUN_COMMAND))
274 300
275 301