aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/BUILD_GUIDE.md1
-rw-r--r--tmk_core/rules.mk22
2 files changed, 16 insertions, 7 deletions
diff --git a/doc/BUILD_GUIDE.md b/doc/BUILD_GUIDE.md
index 505ba4de6..d7a1e2935 100644
--- a/doc/BUILD_GUIDE.md
+++ b/doc/BUILD_GUIDE.md
@@ -67,6 +67,7 @@ Below is a list of the useful `make` commands in QMK:
67* `make all-keyboards` - builds all keymaps for all keyboards and outputs status of each (use in root) 67* `make all-keyboards` - builds all keymaps for all keyboards and outputs status of each (use in root)
68* `make all-keyboards-default` - builds all default keymaps for all keyboards and outputs status of each (use in root) 68* `make all-keyboards-default` - builds all default keymaps for all keyboards and outputs status of each (use in root)
69* `make all-keymaps [keyboard=<keyboard>]` - builds all of the keymaps for whatever keyboard folder you're in, or specified by `<keyboard>` 69* `make all-keymaps [keyboard=<keyboard>]` - builds all of the keymaps for whatever keyboard folder you're in, or specified by `<keyboard>`
70* `make all-keyboards-quick`, `make all-keyboards-default-quick` and `make all-keymaps-quick [keyboard=<keyboard>]` - like the normal "make-all-*" commands, but they skip the clean steps
70 71
71Other, less useful functionality: 72Other, less useful functionality:
72 73
diff --git a/tmk_core/rules.mk b/tmk_core/rules.mk
index 99ae91b63..2b703e057 100644
--- a/tmk_core/rules.mk
+++ b/tmk_core/rules.mk
@@ -661,29 +661,36 @@ show_path:
661 @echo SRC=$(SRC) 661 @echo SRC=$(SRC)
662 662
663SUBDIRS := $(sort $(dir $(wildcard $(TOP_DIR)/keyboard/*/.))) 663SUBDIRS := $(sort $(dir $(wildcard $(TOP_DIR)/keyboard/*/.)))
664all-keyboards-defaults: 664all-keyboards-defaults-%:
665 @for x in $(SUBDIRS) ; do \ 665 @for x in $(SUBDIRS) ; do \
666 printf "Compiling with default: $$x" | $(AWK_CMD); \ 666 printf "Compiling with default: $$x" | $(AWK_CMD); \
667 LOG=$$($(MAKE) -C $$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; \ 667 LOG=$$($(MAKE) -C $$x $(subst all-keyboards-defaults-,,$@) 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; \
668 done 668 done
669 669
670all-keyboards-defaults: all-keyboards-defaults-all
671
670KEYBOARDS := $(SUBDIRS:$(TOP_DIR)/keyboard/%/=/keyboard/%) 672KEYBOARDS := $(SUBDIRS:$(TOP_DIR)/keyboard/%/=/keyboard/%)
671all-keyboards: $(KEYBOARDS) 673all-keyboards-%: $(KEYBOARDS)
672/keyboard/%: 674/keyboard/%:
673 $(eval KEYBOARD=$(patsubst /keyboard/%,%,$@)) 675 $(eval KEYBOARD=$(patsubst /keyboard/%,%,$@))
674 $(eval KEYMAPS=$(notdir $(patsubst %/.,%,$(wildcard $(TOP_DIR)$@/keymaps/*/.)))) 676 $(eval KEYMAPS=$(notdir $(patsubst %/.,%,$(wildcard $(TOP_DIR)$@/keymaps/*/.))))
675 @for x in $(KEYMAPS) ; do \ 677 @for x in $(KEYMAPS) ; do \
676 printf "Compiling $(BOLD)$(KEYBOARD)$(NO_COLOR) with $(BOLD)$$x$(NO_COLOR)" | $(AWK) '{ printf "%-88s", $$0; }'; \ 678 printf "Compiling $(BOLD)$(KEYBOARD)$(NO_COLOR) with $(BOLD)$$x$(NO_COLOR)" | $(AWK) '{ printf "%-88s", $$0; }'; \
677 LOG=$$($(MAKE) -C $(TOP_DIR)$@ 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; \ 679 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; \
678 done 680 done
679 681
680all-keymaps: 682all-keyboards: all-keyboards-all
683
684all-keymaps-%:
685 $(eval MAKECONFIG=$(call get_target,all-keymaps,$@))
681 $(eval KEYMAPS=$(notdir $(patsubst %/.,%,$(wildcard $(TOP_DIR)/keyboard/$(KEYBOARD)/keymaps/*/.)))) 686 $(eval KEYMAPS=$(notdir $(patsubst %/.,%,$(wildcard $(TOP_DIR)/keyboard/$(KEYBOARD)/keymaps/*/.))))
682 @for x in $(KEYMAPS) ; do \ 687 @for x in $(KEYMAPS) ; do \
683 printf "Compiling $(BOLD)$(KEYBOARD)$(NO_COLOR) with $(BOLD)$$x$(NO_COLOR)" | $(AWK) '{ printf "%-88s", $$0; }'; \ 688 printf "Compiling $(BOLD)$(KEYBOARD)$(NO_COLOR) with $(BOLD)$$x$(NO_COLOR)" | $(AWK) '{ printf "%-88s", $$0; }'; \
684 LOG=$$($(MAKE) keyboard=$(KEYBOARD) 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; \ 689 LOG=$$($(MAKE) $(subst all-keymaps-,,$@) keyboard=$(KEYBOARD) 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; \
685 done 690 done
686 691
692all-keymaps: all-keymaps-all
693
687# Create build directory 694# Create build directory
688$(shell mkdir $(BUILD_DIR) 2>/dev/null) 695$(shell mkdir $(BUILD_DIR) 2>/dev/null)
689 696
@@ -700,4 +707,5 @@ $(shell mkdir $(OBJDIR) 2>/dev/null)
700build elf hex eep lss sym coff extcoff \ 707build elf hex eep lss sym coff extcoff \
701clean clean_list debug gdb-config show_path \ 708clean clean_list debug gdb-config show_path \
702program teensy dfu flip dfu-ee flip-ee dfu-start \ 709program teensy dfu flip dfu-ee flip-ee dfu-start \
703all-keyboards-defaults all-keyboards all-keymaps 710all-keyboards-defaults all-keyboards all-keymaps \
711all-keyboards-defaults-% all-keyboards-% all-keymaps-%