summaryrefslogtreecommitdiff
path: root/tmk_core/rules.mk
diff options
context:
space:
mode:
Diffstat (limited to 'tmk_core/rules.mk')
-rw-r--r--tmk_core/rules.mk42
1 files changed, 31 insertions, 11 deletions
diff --git a/tmk_core/rules.mk b/tmk_core/rules.mk
index aaaba1c2c9..f8f77e892e 100644
--- a/tmk_core/rules.mk
+++ b/tmk_core/rules.mk
@@ -51,6 +51,13 @@ ifeq ($(COLOR),true)
BOLD=\033[1m
endif
+ifdef quick
+ QUICK = $(quick)
+endif
+
+QUICK ?= false
+AUTOGEN ?= false
+
ifneq ($(shell awk --version 2>/dev/null),)
AWK=awk
else
@@ -68,10 +75,10 @@ endif
TAB_LOG = printf "\n$$LOG\n\n" | $(AWK) '{ sub(/^/," | "); print }'
TAB_LOG_PLAIN = printf "$$LOG\n"
AWK_STATUS = $(AWK) '{ printf " %-10s\n", $$1; }'
-AWK_CMD = $(AWK) '{ printf "%-69s", $$0; }'
+AWK_CMD = $(AWK) '{ printf "%-99s", $$0; }'
PRINT_ERROR = ($(SILENT) ||printf " $(ERROR_STRING)" | $(AWK_STATUS)) && $(TAB_LOG) && false
PRINT_WARNING = ($(SILENT) || printf " $(WARN_STRING)" | $(AWK_STATUS)) && $(TAB_LOG)
-PRINT_ERROR_PLAIN = ($(SILENT) ||printf " $(ERROR_STRING)" | $(AWK_STATUS)) && $(TAB_LOG_PLAIN) && false
+PRINT_ERROR_PLAIN = ($(SILENT) ||printf " $(ERROR_STRING)" | $(AWK_STATUS)) && $(TAB_LOG_PLAIN) && false && break
PRINT_WARNING_PLAIN = ($(SILENT) || printf " $(WARN_STRING)" | $(AWK_STATUS)) && $(TAB_LOG_PLAIN)
PRINT_OK = $(SILENT) || printf " $(OK_STRING)" | $(AWK_STATUS)
BUILD_CMD = LOG=$$($(CMD) 2>&1) ; if [ $$? -gt 0 ]; then $(PRINT_ERROR); elif [ "$$LOG" != "" ] ; then $(PRINT_WARNING); else $(PRINT_OK); fi;
@@ -524,7 +531,12 @@ extcoff: $(BUILD_DIR)/$(TARGET).elf
@$(SILENT) || printf "$(MSG_FLASH) $@" | $(AWK_CMD)
$(eval CMD=$(OBJCOPY) -O $(FORMAT) -R .eeprom -R .fuse -R .lock -R .signature $< $@)
@$(BUILD_CMD)
- @$(COPY) $@ $(TARGET).hex
+ @if $(AUTOGEN); then \
+ $(SILENT) || printf "Copying $(TARGET).hex to keymaps/$(KEYMAP)/$(KEYBOARD)_$(KEYMAP).hex\n"; \
+ $(COPY) $@ $(KEYMAP_PATH)/$(KEYBOARD)_$(KEYMAP).hex; \
+ else \
+ $(COPY) $@ $(TARGET).hex; \
+ fi
%.eep: %.elf
@$(SILENT) || printf "$(MSG_EEPROM) $@" | $(AWK_CMD)
@@ -570,7 +582,7 @@ $(OBJDIR)/%.o : %.c
$(OBJDIR)/%.o : %.cpp
@mkdir -p $(@D)
@$(SILENT) || printf "$(MSG_COMPILING_CPP) $<" | $(AWK_CMD)
- $(CC) -c $(ALL_CPPFLAGS) $< -o $@
+ $(eval CMD=$(CC) -c $(ALL_CPPFLAGS) $< -o $@)
@$(BUILD_CMD)
# Compile: create assembler files from C source files.
@@ -600,15 +612,20 @@ $(OBJDIR)/%.o : %.S
clean: begin clean_list end
clean_list :
- $(REMOVE) -r $(TOP_DIR)/$(BUILD_DIR)
- $(REMOVE) -r $(KEYBOARD_PATH)/$(BUILD_DIR)
- $(REMOVE) -r $(KEYMAP_PATH)/$(BUILD_DIR)
+ @$(REMOVE) -r $(BUILD_DIR)
+ @$(REMOVE) -r $(TOP_DIR)/$(BUILD_DIR)
+ @$(REMOVE) -r $(KEYBOARD_PATH)/$(BUILD_DIR)
+ @if $$SUBPROJECT; then $(REMOVE) -r $(SUBPROJECT_PATH)/$(BUILD_DIR); fi
+ @$(REMOVE) -r $(KEYMAP_PATH)/$(BUILD_DIR)
show_path:
@echo VPATH=$(VPATH)
@echo SRC=$(SRC)
-SUBDIRS := $(sort $(dir $(wildcard $(TOP_DIR)/keyboards/*/.)))
+SUBDIRS := $(filter-out %/util/ %/doc/ %/keymaps/ %/old_keymap_files/,$(dir $(wildcard $(TOP_DIR)/keyboards/**/*/.)))
+SUBDIRS := $(SUBDIRS) $(dir $(wildcard $(TOP_DIR)/keyboards/*/.))
+SUBDIRS := $(sort $(SUBDIRS))
+# $(error $(SUBDIRS))
all-keyboards-defaults-%:
@for x in $(SUBDIRS) ; do \
printf "Compiling with default: $$x" | $(AWK_CMD); \
@@ -625,9 +642,12 @@ all-keyboards: all-keyboards-all
define make_keyboard
$(eval KEYBOARD=$(patsubst /keyboards/%,%,$1))
-$(eval KEYMAPS=$(notdir $(patsubst %/.,%,$(wildcard $(TOP_DIR)$1/keymaps/*/.))))
+$(eval SUBPROJECT=$(lastword $(subst /, ,$(KEYBOARD))))
+$(eval KEYBOARD=$(firstword $(subst /, ,$(KEYBOARD))))
+$(eval KEYMAPS=$(notdir $(patsubst %/.,%,$(wildcard $(TOP_DIR)/keyboards/$(KEYBOARD)/keymaps/*/.))))
+$(eval KEYMAPS+=$(notdir $(patsubst %/.,%,$(wildcard $(TOP_DIR)/keyboards/$(KEYBOARD)/$(SUBPROJECT)/keymaps/*/.))))
@for x in $(KEYMAPS) ; do \
- printf "Compiling $(BOLD)$(KEYBOARD)$(NO_COLOR) with $(BOLD)$$x$(NO_COLOR)" | $(AWK) '{ printf "%-88s", $$0; }'; \
+ printf "Compiling $(BOLD)$(KEYBOARD)/$(SUBPROJECT)$(NO_COLOR) with $(BOLD)$$x$(NO_COLOR)" | $(AWK) '{ printf "%-118s", $$0; }'; \
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; \
done
endef
@@ -650,7 +670,7 @@ all-keymaps-%:
$(eval MAKECONFIG=$(call get_target,all-keymaps,$@))
$(eval KEYMAPS=$(notdir $(patsubst %/.,%,$(wildcard $(TOP_DIR)/keyboards/$(KEYBOARD)/keymaps/*/.))))
@for x in $(KEYMAPS) ; do \
- printf "Compiling $(BOLD)$(KEYBOARD)$(NO_COLOR) with $(BOLD)$$x$(NO_COLOR)" | $(AWK) '{ printf "%-88s", $$0; }'; \
+ printf "Compiling $(BOLD)$(KEYBOARD)$(NO_COLOR) with $(BOLD)$$x$(NO_COLOR)" | $(AWK) '{ printf "%-118s", $$0; }'; \
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; \
done