mirror of
https://github.com/qmk/qmk_firmware
synced 2024-11-11 06:29:15 +00:00
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
This commit is contained in:
parent
e4c842de02
commit
8732265928
2 changed files with 38 additions and 16 deletions
50
Makefile
50
Makefile
|
@ -2,6 +2,16 @@ ifndef VERBOSE
|
|||
.SILENT:
|
||||
endif
|
||||
|
||||
ifdef silent
|
||||
SILENT = $(silent)
|
||||
endif
|
||||
|
||||
ifdef SILENT
|
||||
SUB_IS_SILENT := $(silent)
|
||||
endif
|
||||
|
||||
override SILENT = false
|
||||
|
||||
STARTING_MAKEFILE := $(firstword $(MAKEFILE_LIST))
|
||||
ROOT_MAKEFILE := $(lastword $(MAKEFILE_LIST))
|
||||
ROOT_DIR := $(dir $(ROOT_MAKEFILE))
|
||||
|
@ -59,10 +69,10 @@ ifdef keymap
|
|||
KEYMAP := $(keymap)
|
||||
endif
|
||||
|
||||
$(info Keyboard: $(KEYBOARD))
|
||||
$(info Keymap: $(KEYMAP))
|
||||
$(info Subproject: $(SUBPROJECT))
|
||||
$(info Keyboards: $(KEYBOARDS))
|
||||
#$(info Keyboard: $(KEYBOARD))
|
||||
#$(info Keymap: $(KEYMAP))
|
||||
#$(info Subproject: $(SUBPROJECT))
|
||||
#$(info Keyboards: $(KEYBOARDS))
|
||||
|
||||
.DEFAULT_GOAL := all
|
||||
ifneq ($(KEYMAP),)
|
||||
|
@ -229,11 +239,14 @@ define PARSE_KEYMAP
|
|||
endif
|
||||
KB_SP := $(BOLD)$$(KB_SP)$(NO_COLOR)
|
||||
MAKE_VARS := KEYBOARD=$$(CURRENT_KB) SUBPROJECT=$$(CURRENT_SP) KEYMAP=$$(CURRENT_KM)
|
||||
MAKE_VARS += VERBOSE=$(VERBOSE) COLOR=$(COLOR) SILENT=false
|
||||
COMMAND_$$(COMMAND) := \
|
||||
printf "Compiling $$(KB_SP) with $(BOLD)$$(CURRENT_KM)$(NO_COLOR)" | \
|
||||
$(AWK) '{ printf "%-118s", $$$$0;}'; \
|
||||
LOG=$$$$($$(MAKE) -r -R -C $(ROOT_DIR) -f build_keyboard.mk $$(MAKE_VARS) 2>&1) ; \
|
||||
MAKE_VARS += VERBOSE=$(VERBOSE) COLOR=$(COLOR)
|
||||
MAKE_COMMAND := $$(MAKE) -r -R -C $(ROOT_DIR) -f build_keyboard.mk
|
||||
MAKE_MSG := Compiling $$(KB_SP) with $(BOLD)$$(CURRENT_KM)$(NO_COLOR)
|
||||
MAKE_MSG_FORMAT := $(AWK) '{ printf "%-118s", $$$$0;}'
|
||||
COMMAND_true_$$(COMMAND) := \
|
||||
printf "$$(MAKE_MSG)" | \
|
||||
$$(MAKE_MSG_FORMAT); \
|
||||
LOG=$$$$($$(MAKE_COMMAND) $$(MAKE_VARS) SILENT=true 2>&1) ; \
|
||||
if [ $$$$? -gt 0 ]; \
|
||||
then $$(PRINT_ERROR_PLAIN); \
|
||||
elif [ "$$$$LOG" != "" ] ; \
|
||||
|
@ -241,18 +254,30 @@ define PARSE_KEYMAP
|
|||
else \
|
||||
$$(PRINT_OK); \
|
||||
fi;
|
||||
COMMAND_false_$$(COMMAND) := \
|
||||
printf "$$(MAKE_MSG)\n" | \
|
||||
$$(MAKE_MSG_FORMAT); \
|
||||
$$(MAKE_COMMAND) $$(MAKE_VARS) SILENT=false;
|
||||
endef
|
||||
|
||||
define PARSE_ALL_KEYMAPS
|
||||
$$(eval $$(call PARSE_ALL_IN_LIST,PARSE_KEYMAP,$$(KEYMAPS)))
|
||||
endef
|
||||
|
||||
define SET_SILENT_MODE
|
||||
ifdef SUB_IS_SILENT
|
||||
SILENT_MODE := $(SUB_IS_SILENT)
|
||||
else ifeq ($$(words $$(COMMANDS)),1)
|
||||
SILENT_MODE := false
|
||||
else
|
||||
SILENT_MODE := true
|
||||
endif
|
||||
endef
|
||||
|
||||
include $(ROOT_DIR)/message.mk
|
||||
|
||||
#RUN_COMMAND = echo "Running": $(COMMAND_$(COMMAND));
|
||||
RUN_COMMAND = \
|
||||
$(COMMAND_$(COMMAND))
|
||||
#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; \
|
||||
$(COMMAND_$(SILENT_MODE)_$(COMMAND))
|
||||
|
||||
# Allow specifying just the subproject, in the keyboard directory, which will compile all keymaps
|
||||
SUBPROJECTS := $(notdir $(patsubst %/Makefile,%,$(wildcard ./*/Makefile)))
|
||||
|
@ -270,6 +295,7 @@ $(SUBPROJECTS): %: %-allkm
|
|||
esac \
|
||||
done
|
||||
$(eval $(call PARSE_RULE,$@))
|
||||
$(eval $(call SET_SILENT_MODE))
|
||||
+$(foreach COMMAND,$(COMMANDS),$(RUN_COMMAND))
|
||||
|
||||
|
||||
|
|
|
@ -19,10 +19,6 @@ OK_STRING=$(OK_COLOR)[OK]$(NO_COLOR)\n
|
|||
ERROR_STRING=$(ERROR_COLOR)[ERRORS]$(NO_COLOR)\n
|
||||
WARN_STRING=$(WARN_COLOR)[WARNINGS]$(NO_COLOR)\n
|
||||
|
||||
ifndef $(SILENT)
|
||||
SILENT = false
|
||||
endif
|
||||
|
||||
TAB_LOG = printf "\n$$LOG\n\n" | $(AWK) '{ sub(/^/," | "); print }'
|
||||
TAB_LOG_PLAIN = printf "$$LOG\n"
|
||||
AWK_STATUS = $(AWK) '{ printf " %-10s\n", $$1; }'
|
||||
|
|
Loading…
Reference in a new issue