diff options
Diffstat (limited to 'build_keyboard.mk')
| -rw-r--r-- | build_keyboard.mk | 50 |
1 files changed, 45 insertions, 5 deletions
diff --git a/build_keyboard.mk b/build_keyboard.mk index fdc17c907..b2a152bb9 100644 --- a/build_keyboard.mk +++ b/build_keyboard.mk | |||
| @@ -90,13 +90,16 @@ ifneq ("$(wildcard $(KEYBOARD_PATH_1)/rules.mk)","") | |||
| 90 | include $(KEYBOARD_PATH_1)/rules.mk | 90 | include $(KEYBOARD_PATH_1)/rules.mk |
| 91 | endif | 91 | endif |
| 92 | 92 | ||
| 93 | |||
| 94 | MAIN_KEYMAP_PATH_1 := $(KEYBOARD_PATH_1)/keymaps/$(KEYMAP) | 93 | MAIN_KEYMAP_PATH_1 := $(KEYBOARD_PATH_1)/keymaps/$(KEYMAP) |
| 95 | MAIN_KEYMAP_PATH_2 := $(KEYBOARD_PATH_2)/keymaps/$(KEYMAP) | 94 | MAIN_KEYMAP_PATH_2 := $(KEYBOARD_PATH_2)/keymaps/$(KEYMAP) |
| 96 | MAIN_KEYMAP_PATH_3 := $(KEYBOARD_PATH_3)/keymaps/$(KEYMAP) | 95 | MAIN_KEYMAP_PATH_3 := $(KEYBOARD_PATH_3)/keymaps/$(KEYMAP) |
| 97 | MAIN_KEYMAP_PATH_4 := $(KEYBOARD_PATH_4)/keymaps/$(KEYMAP) | 96 | MAIN_KEYMAP_PATH_4 := $(KEYBOARD_PATH_4)/keymaps/$(KEYMAP) |
| 98 | MAIN_KEYMAP_PATH_5 := $(KEYBOARD_PATH_5)/keymaps/$(KEYMAP) | 97 | MAIN_KEYMAP_PATH_5 := $(KEYBOARD_PATH_5)/keymaps/$(KEYMAP) |
| 99 | 98 | ||
| 99 | # Pull in rules from info.json | ||
| 100 | INFO_RULES_MK = $(shell bin/qmk generate-rules-mk --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/rules.mk) | ||
| 101 | include $(INFO_RULES_MK) | ||
| 102 | |||
| 100 | # Check for keymap.json first, so we can regenerate keymap.c | 103 | # Check for keymap.json first, so we can regenerate keymap.c |
| 101 | include build_json.mk | 104 | include build_json.mk |
| 102 | 105 | ||
| @@ -136,9 +139,7 @@ ifeq ($(strip $(CTPC)), yes) | |||
| 136 | endif | 139 | endif |
| 137 | 140 | ||
| 138 | ifeq ($(strip $(CONVERT_TO_PROTON_C)), yes) | 141 | ifeq ($(strip $(CONVERT_TO_PROTON_C)), yes) |
| 139 | TARGET := $(TARGET)_proton_c | 142 | include platforms/chibios/QMK_PROTON_C/convert_to_proton_c.mk |
| 140 | include platforms/chibios/GENERIC_STM32_F303XC/configs/proton_c.mk | ||
| 141 | OPT_DEFS += -DCONVERT_TO_PROTON_C | ||
| 142 | endif | 143 | endif |
| 143 | 144 | ||
| 144 | ifneq ($(FORCE_LAYOUT),) | 145 | ifneq ($(FORCE_LAYOUT),) |
| @@ -272,6 +273,36 @@ ifneq ("$(wildcard $(KEYBOARD_PATH_5)/post_config.h)","") | |||
| 272 | POST_CONFIG_H += $(KEYBOARD_PATH_5)/post_config.h | 273 | POST_CONFIG_H += $(KEYBOARD_PATH_5)/post_config.h |
| 273 | endif | 274 | endif |
| 274 | 275 | ||
| 276 | # Pull in stuff from info.json | ||
| 277 | INFO_JSON_FILES := | ||
| 278 | ifneq ("$(wildcard $(KEYBOARD_PATH_1)/info.json)","") | ||
| 279 | INFO_JSON_FILES += $(KEYBOARD_PATH_1)/info.json | ||
| 280 | endif | ||
| 281 | ifneq ("$(wildcard $(KEYBOARD_PATH_2)/info.json)","") | ||
| 282 | INFO_JSON_FILES += $(KEYBOARD_PATH_2)/info.json | ||
| 283 | endif | ||
| 284 | ifneq ("$(wildcard $(KEYBOARD_PATH_3)/info.json)","") | ||
| 285 | INFO_JSON_FILES += $(KEYBOARD_PATH_3)/info.json | ||
| 286 | endif | ||
| 287 | ifneq ("$(wildcard $(KEYBOARD_PATH_4)/info.json)","") | ||
| 288 | INFO_JSON_FILES += $(KEYBOARD_PATH_4)/info.json | ||
| 289 | endif | ||
| 290 | ifneq ("$(wildcard $(KEYBOARD_PATH_5)/info.json)","") | ||
| 291 | INFO_JSON_FILES += $(KEYBOARD_PATH_5)/info.json | ||
| 292 | endif | ||
| 293 | |||
| 294 | CONFIG_H += $(KEYBOARD_OUTPUT)/src/info_config.h $(KEYBOARD_OUTPUT)/src/layouts.h | ||
| 295 | |||
| 296 | $(KEYBOARD_OUTPUT)/src/info_config.h: $(INFO_JSON_FILES) | ||
| 297 | bin/qmk generate-config-h --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/info_config.h | ||
| 298 | |||
| 299 | $(KEYBOARD_OUTPUT)/src/layouts.h: $(INFO_JSON_FILES) | ||
| 300 | bin/qmk generate-layouts --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/layouts.h | ||
| 301 | |||
| 302 | generated-files: $(KEYBOARD_OUTPUT)/src/info_config.h $(KEYBOARD_OUTPUT)/src/layouts.h | ||
| 303 | |||
| 304 | .INTERMEDIATE : generated-files | ||
| 305 | |||
| 275 | # Userspace setup and definitions | 306 | # Userspace setup and definitions |
| 276 | ifeq ("$(USER_NAME)","") | 307 | ifeq ("$(USER_NAME)","") |
| 277 | USER_NAME := $(KEYMAP) | 308 | USER_NAME := $(KEYMAP) |
| @@ -282,6 +313,9 @@ USER_PATH := users/$(USER_NAME) | |||
| 282 | ifneq ("$(wildcard $(USER_PATH)/config.h)","") | 313 | ifneq ("$(wildcard $(USER_PATH)/config.h)","") |
| 283 | CONFIG_H += $(USER_PATH)/config.h | 314 | CONFIG_H += $(USER_PATH)/config.h |
| 284 | endif | 315 | endif |
| 316 | ifneq ("$(wildcard $(USER_PATH)/post_config.h)","") | ||
| 317 | POST_CONFIG_H += $(USER_PATH)/post_config.h | ||
| 318 | endif | ||
| 285 | 319 | ||
| 286 | # Disable features that a keyboard doesn't support | 320 | # Disable features that a keyboard doesn't support |
| 287 | -include disable_features.mk | 321 | -include disable_features.mk |
| @@ -351,7 +385,7 @@ ALL_CONFIGS := $(PROJECT_CONFIG) $(CONFIG_H) | |||
| 351 | OUTPUTS := $(KEYMAP_OUTPUT) $(KEYBOARD_OUTPUT) | 385 | OUTPUTS := $(KEYMAP_OUTPUT) $(KEYBOARD_OUTPUT) |
| 352 | $(KEYMAP_OUTPUT)_SRC := $(SRC) | 386 | $(KEYMAP_OUTPUT)_SRC := $(SRC) |
| 353 | $(KEYMAP_OUTPUT)_DEFS := $(OPT_DEFS) $(GFXDEFS) \ | 387 | $(KEYMAP_OUTPUT)_DEFS := $(OPT_DEFS) $(GFXDEFS) \ |
| 354 | -DQMK_KEYBOARD=\"$(KEYBOARD)\" -DQMK_KEYBOARD_H=\"$(QMK_KEYBOARD_H)\" -DQMK_KEYBOARD_CONFIG_H=\"$(KEYBOARD_PATH_1)/config.h\" \ | 388 | -DQMK_KEYBOARD=\"$(KEYBOARD)\" -DQMK_KEYBOARD_H=\"$(QMK_KEYBOARD_H)\" \ |
| 355 | -DQMK_KEYMAP=\"$(KEYMAP)\" -DQMK_KEYMAP_H=\"$(KEYMAP).h\" -DQMK_KEYMAP_CONFIG_H=\"$(KEYMAP_PATH)/config.h\" \ | 389 | -DQMK_KEYMAP=\"$(KEYMAP)\" -DQMK_KEYMAP_H=\"$(KEYMAP).h\" -DQMK_KEYMAP_CONFIG_H=\"$(KEYMAP_PATH)/config.h\" \ |
| 356 | -DQMK_SUBPROJECT -DQMK_SUBPROJECT_H -DQMK_SUBPROJECT_CONFIG_H | 390 | -DQMK_SUBPROJECT -DQMK_SUBPROJECT_H -DQMK_SUBPROJECT_CONFIG_H |
| 357 | $(KEYMAP_OUTPUT)_INC := $(VPATH) $(EXTRAINCDIRS) | 391 | $(KEYMAP_OUTPUT)_INC := $(VPATH) $(EXTRAINCDIRS) |
| @@ -376,3 +410,9 @@ objs-size: build | |||
| 376 | 410 | ||
| 377 | include show_options.mk | 411 | include show_options.mk |
| 378 | include $(TMK_PATH)/rules.mk | 412 | include $(TMK_PATH)/rules.mk |
| 413 | |||
| 414 | # Ensure we have generated files available for each of the objects | ||
| 415 | define GEN_FILES | ||
| 416 | $1: generated-files | ||
| 417 | endef | ||
| 418 | $(foreach O,$(OBJ),$(eval $(call GEN_FILES,$(patsubst %.a,%.o,$(O))))) | ||
