aboutsummaryrefslogtreecommitdiff
path: root/build_keyboard.mk
diff options
context:
space:
mode:
Diffstat (limited to 'build_keyboard.mk')
-rw-r--r--build_keyboard.mk50
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
91endif 91endif
92 92
93
94MAIN_KEYMAP_PATH_1 := $(KEYBOARD_PATH_1)/keymaps/$(KEYMAP) 93MAIN_KEYMAP_PATH_1 := $(KEYBOARD_PATH_1)/keymaps/$(KEYMAP)
95MAIN_KEYMAP_PATH_2 := $(KEYBOARD_PATH_2)/keymaps/$(KEYMAP) 94MAIN_KEYMAP_PATH_2 := $(KEYBOARD_PATH_2)/keymaps/$(KEYMAP)
96MAIN_KEYMAP_PATH_3 := $(KEYBOARD_PATH_3)/keymaps/$(KEYMAP) 95MAIN_KEYMAP_PATH_3 := $(KEYBOARD_PATH_3)/keymaps/$(KEYMAP)
97MAIN_KEYMAP_PATH_4 := $(KEYBOARD_PATH_4)/keymaps/$(KEYMAP) 96MAIN_KEYMAP_PATH_4 := $(KEYBOARD_PATH_4)/keymaps/$(KEYMAP)
98MAIN_KEYMAP_PATH_5 := $(KEYBOARD_PATH_5)/keymaps/$(KEYMAP) 97MAIN_KEYMAP_PATH_5 := $(KEYBOARD_PATH_5)/keymaps/$(KEYMAP)
99 98
99# Pull in rules from info.json
100INFO_RULES_MK = $(shell bin/qmk generate-rules-mk --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/rules.mk)
101include $(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
101include build_json.mk 104include build_json.mk
102 105
@@ -136,9 +139,7 @@ ifeq ($(strip $(CTPC)), yes)
136endif 139endif
137 140
138ifeq ($(strip $(CONVERT_TO_PROTON_C)), yes) 141ifeq ($(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
142endif 143endif
143 144
144ifneq ($(FORCE_LAYOUT),) 145ifneq ($(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
273endif 274endif
274 275
276# Pull in stuff from info.json
277INFO_JSON_FILES :=
278ifneq ("$(wildcard $(KEYBOARD_PATH_1)/info.json)","")
279 INFO_JSON_FILES += $(KEYBOARD_PATH_1)/info.json
280endif
281ifneq ("$(wildcard $(KEYBOARD_PATH_2)/info.json)","")
282 INFO_JSON_FILES += $(KEYBOARD_PATH_2)/info.json
283endif
284ifneq ("$(wildcard $(KEYBOARD_PATH_3)/info.json)","")
285 INFO_JSON_FILES += $(KEYBOARD_PATH_3)/info.json
286endif
287ifneq ("$(wildcard $(KEYBOARD_PATH_4)/info.json)","")
288 INFO_JSON_FILES += $(KEYBOARD_PATH_4)/info.json
289endif
290ifneq ("$(wildcard $(KEYBOARD_PATH_5)/info.json)","")
291 INFO_JSON_FILES += $(KEYBOARD_PATH_5)/info.json
292endif
293
294CONFIG_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
302generated-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
276ifeq ("$(USER_NAME)","") 307ifeq ("$(USER_NAME)","")
277 USER_NAME := $(KEYMAP) 308 USER_NAME := $(KEYMAP)
@@ -282,6 +313,9 @@ USER_PATH := users/$(USER_NAME)
282ifneq ("$(wildcard $(USER_PATH)/config.h)","") 313ifneq ("$(wildcard $(USER_PATH)/config.h)","")
283 CONFIG_H += $(USER_PATH)/config.h 314 CONFIG_H += $(USER_PATH)/config.h
284endif 315endif
316ifneq ("$(wildcard $(USER_PATH)/post_config.h)","")
317 POST_CONFIG_H += $(USER_PATH)/post_config.h
318endif
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)
351OUTPUTS := $(KEYMAP_OUTPUT) $(KEYBOARD_OUTPUT) 385OUTPUTS := $(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
377include show_options.mk 411include show_options.mk
378include $(TMK_PATH)/rules.mk 412include $(TMK_PATH)/rules.mk
413
414# Ensure we have generated files available for each of the objects
415define GEN_FILES
416$1: generated-files
417endef
418$(foreach O,$(OBJ),$(eval $(call GEN_FILES,$(patsubst %.a,%.o,$(O)))))