diff options
| -rw-r--r-- | doc/BUILD_GUIDE.md | 1 | ||||
| -rw-r--r-- | tmk_core/rules.mk | 22 |
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 | ||
| 71 | Other, less useful functionality: | 72 | Other, 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 | ||
| 663 | SUBDIRS := $(sort $(dir $(wildcard $(TOP_DIR)/keyboard/*/.))) | 663 | SUBDIRS := $(sort $(dir $(wildcard $(TOP_DIR)/keyboard/*/.))) |
| 664 | all-keyboards-defaults: | 664 | all-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 | ||
| 670 | all-keyboards-defaults: all-keyboards-defaults-all | ||
| 671 | |||
| 670 | KEYBOARDS := $(SUBDIRS:$(TOP_DIR)/keyboard/%/=/keyboard/%) | 672 | KEYBOARDS := $(SUBDIRS:$(TOP_DIR)/keyboard/%/=/keyboard/%) |
| 671 | all-keyboards: $(KEYBOARDS) | 673 | all-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 | ||
| 680 | all-keymaps: | 682 | all-keyboards: all-keyboards-all |
| 683 | |||
| 684 | all-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 | ||
| 692 | all-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) | |||
| 700 | build elf hex eep lss sym coff extcoff \ | 707 | build elf hex eep lss sym coff extcoff \ |
| 701 | clean clean_list debug gdb-config show_path \ | 708 | clean clean_list debug gdb-config show_path \ |
| 702 | program teensy dfu flip dfu-ee flip-ee dfu-start \ | 709 | program teensy dfu flip dfu-ee flip-ee dfu-start \ |
| 703 | all-keyboards-defaults all-keyboards all-keymaps | 710 | all-keyboards-defaults all-keyboards all-keymaps \ |
| 711 | all-keyboards-defaults-% all-keyboards-% all-keymaps-% | ||
