diff options
author | fredizzimo <fsundvik@gmail.com> | 2016-06-21 20:31:26 +0300 |
---|---|---|
committer | Jack Humbert <jack.humb@gmail.com> | 2016-06-21 13:31:26 -0400 |
commit | a69d002506d822fef9713b844cd512cefcffd4fc (patch) | |
tree | dd0558e2730101c28a8eb6c407584fa3602acd31 | |
parent | 80c87054193b9243670aeb85adefbe1aa6c0fda0 (diff) | |
download | qmk_firmware-a69d002506d822fef9713b844cd512cefcffd4fc.tar.gz qmk_firmware-a69d002506d822fef9713b844cd512cefcffd4fc.zip |
Fix the make all-keyboards command (#422)
Unfortunately the supported targets, like "quick", "all", "clean",
and so on has to be repeated two extra times, but this is the best
I can do with my makefile skills.
-rw-r--r-- | tmk_core/rules.mk | 35 |
1 files changed, 26 insertions, 9 deletions
diff --git a/tmk_core/rules.mk b/tmk_core/rules.mk index d9a0fd33f..e9ef5ca7b 100644 --- a/tmk_core/rules.mk +++ b/tmk_core/rules.mk | |||
@@ -632,17 +632,34 @@ all-keyboards-defaults-%: | |||
632 | all-keyboards-defaults: all-keyboards-defaults-all | 632 | all-keyboards-defaults: all-keyboards-defaults-all |
633 | 633 | ||
634 | KEYBOARDS := $(SUBDIRS:$(TOP_DIR)/keyboard/%/=/keyboard/%) | 634 | KEYBOARDS := $(SUBDIRS:$(TOP_DIR)/keyboard/%/=/keyboard/%) |
635 | all-keyboards-%: $(KEYBOARDS) | 635 | all-keyboards-all: $(addsuffix -all,$(KEYBOARDS)) |
636 | /keyboard/%: | 636 | all-keyboards-quick: $(addsuffix -quick,$(KEYBOARDS)) |
637 | $(eval KEYBOARD=$(patsubst /keyboard/%,%,$@)) | 637 | all-keyboards-clean: $(addsuffix -clean,$(KEYBOARDS)) |
638 | $(eval KEYMAPS=$(notdir $(patsubst %/.,%,$(wildcard $(TOP_DIR)$@/keymaps/*/.)))) | ||
639 | @for x in $(KEYMAPS) ; do \ | ||
640 | printf "Compiling $(BOLD)$(KEYBOARD)$(NO_COLOR) with $(BOLD)$$x$(NO_COLOR)" | $(AWK) '{ printf "%-88s", $$0; }'; \ | ||
641 | LOG=$$($(MAKE) -C $(TOP_DIR)$@ $(subst all-keyboards-,,$@) keymap=$$x 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; \ | ||
642 | done | ||
643 | |||
644 | all-keyboards: all-keyboards-all | 638 | all-keyboards: all-keyboards-all |
645 | 639 | ||
640 | define make_keyboard | ||
641 | $(eval KEYBOARD=$(patsubst /keyboard/%,%,$1)) | ||
642 | $(eval KEYMAPS=$(notdir $(patsubst %/.,%,$(wildcard $(TOP_DIR)$1/keymaps/*/.)))) | ||
643 | @for x in $(KEYMAPS) ; do \ | ||
644 | printf "Compiling $(BOLD)$(KEYBOARD)$(NO_COLOR) with $(BOLD)$$x$(NO_COLOR)" | $(AWK) '{ printf "%-88s", $$0; }'; \ | ||
645 | LOG=$$($(MAKE) -C $(TOP_DIR)$1 $2 keymap=$$x 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; \ | ||
646 | done | ||
647 | endef | ||
648 | |||
649 | define make_keyboard_helper | ||
650 | # Just remove the -quick, -all and so on from the first argument and pass it forward | ||
651 | $(call make_keyboard,$(subst -$2,,$1),$2) | ||
652 | endef | ||
653 | |||
654 | /keyboard/%-quick: | ||
655 | $(call make_keyboard_helper,$@,quick) | ||
656 | /keyboard/%-all: | ||
657 | $(call make_keyboard_helper,$@,all) | ||
658 | /keyboard/%-clean: | ||
659 | $(call make_keyboard_helper,$@,clean) | ||
660 | /keyboard/%: | ||
661 | $(call make_keyboard_helper,$@,all) | ||
662 | |||
646 | all-keymaps-%: | 663 | all-keymaps-%: |
647 | $(eval MAKECONFIG=$(call get_target,all-keymaps,$@)) | 664 | $(eval MAKECONFIG=$(call get_target,all-keymaps,$@)) |
648 | $(eval KEYMAPS=$(notdir $(patsubst %/.,%,$(wildcard $(TOP_DIR)/keyboard/$(KEYBOARD)/keymaps/*/.)))) | 665 | $(eval KEYMAPS=$(notdir $(patsubst %/.,%,$(wildcard $(TOP_DIR)/keyboard/$(KEYBOARD)/keymaps/*/.)))) |