Commit | Line | Data |
---|---|---|
98b16b32 | 1 | # Determine what keyboard we are building and setup the build environment. |
2 | # | |
3 | # We support folders up to 5 levels deep below `keyboards/`. This file is | |
4 | # responsible for determining which folder is being used and doing the | |
5 | # corresponding environment setup. | |
6 | ||
86706de0 FS |
7 | ifndef VERBOSE |
8 | .SILENT: | |
9 | endif | |
10 | ||
11 | .DEFAULT_GOAL := all | |
12 | ||
27a673f5 | 13 | include common.mk |
8f164031 | 14 | |
98b16b32 | 15 | # Set the filename for the final firmware binary |
800ec55d | 16 | KEYBOARD_FILESAFE := $(subst /,_,$(KEYBOARD)) |
800ec55d JH |
17 | TARGET ?= $(KEYBOARD_FILESAFE)_$(KEYMAP) |
18 | KEYBOARD_OUTPUT := $(BUILD_DIR)/obj_$(KEYBOARD_FILESAFE) | |
3cf179be | 19 | STM32_PATH := quantum/stm32 |
8f164031 FS |
20 | |
21 | # Force expansion | |
22 | TARGET := $(TARGET) | |
23 | ||
98b16b32 | 24 | # For split boards we need to set a master half. |
86706de0 FS |
25 | MASTER ?= left |
26 | ifdef master | |
1d5567a3 | 27 | MASTER = $(master) |
86706de0 FS |
28 | endif |
29 | ||
b911e196 | 30 | ifeq ($(MASTER),right) |
1d5567a3 | 31 | OPT_DEFS += -DMASTER_IS_ON_RIGHT |
b911e196 | 32 | else |
1d5567a3 | 33 | ifneq ($(MASTER),left) |
c692fd1d | 34 | $(error MASTER does not have a valid value(left/right)) |
1d5567a3 | 35 | endif |
c692fd1d FS |
36 | endif |
37 | ||
8f790948 TI |
38 | ifdef SKIP_VERSION |
39 | OPT_DEFS += -DSKIP_VERSION | |
40 | endif | |
41 | ||
98b16b32 | 42 | # Determine which subfolders exist. |
43 | KEYBOARD_FOLDER_PATH_1 := $(KEYBOARD) | |
44 | KEYBOARD_FOLDER_PATH_2 := $(patsubst %/,%,$(dir $(KEYBOARD_FOLDER_PATH_1))) | |
45 | KEYBOARD_FOLDER_PATH_3 := $(patsubst %/,%,$(dir $(KEYBOARD_FOLDER_PATH_2))) | |
46 | KEYBOARD_FOLDER_PATH_4 := $(patsubst %/,%,$(dir $(KEYBOARD_FOLDER_PATH_3))) | |
47 | KEYBOARD_FOLDER_PATH_5 := $(patsubst %/,%,$(dir $(KEYBOARD_FOLDER_PATH_4))) | |
48 | KEYBOARD_FOLDER_1 := $(notdir $(KEYBOARD_FOLDER_PATH_1)) | |
49 | KEYBOARD_FOLDER_2 := $(notdir $(KEYBOARD_FOLDER_PATH_2)) | |
50 | KEYBOARD_FOLDER_3 := $(notdir $(KEYBOARD_FOLDER_PATH_3)) | |
51 | KEYBOARD_FOLDER_4 := $(notdir $(KEYBOARD_FOLDER_PATH_4)) | |
52 | KEYBOARD_FOLDER_5 := $(notdir $(KEYBOARD_FOLDER_PATH_5)) | |
800ec55d | 53 | KEYBOARD_PATHS := |
800ec55d JH |
54 | KEYBOARD_PATH_1 := keyboards/$(KEYBOARD_FOLDER_PATH_1) |
55 | KEYBOARD_PATH_2 := keyboards/$(KEYBOARD_FOLDER_PATH_2) | |
56 | KEYBOARD_PATH_3 := keyboards/$(KEYBOARD_FOLDER_PATH_3) | |
57 | KEYBOARD_PATH_4 := keyboards/$(KEYBOARD_FOLDER_PATH_4) | |
58 | KEYBOARD_PATH_5 := keyboards/$(KEYBOARD_FOLDER_PATH_5) | |
59 | ||
98b16b32 | 60 | ifneq ("$(wildcard $(KEYBOARD_PATH_5)/)","") |
800ec55d | 61 | KEYBOARD_PATHS += $(KEYBOARD_PATH_5) |
98b16b32 | 62 | endif |
63 | ifneq ("$(wildcard $(KEYBOARD_PATH_4)/)","") | |
64 | KEYBOARD_PATHS += $(KEYBOARD_PATH_4) | |
65 | endif | |
66 | ifneq ("$(wildcard $(KEYBOARD_PATH_3)/)","") | |
67 | KEYBOARD_PATHS += $(KEYBOARD_PATH_3) | |
68 | endif | |
69 | ifneq ("$(wildcard $(KEYBOARD_PATH_2)/)","") | |
70 | KEYBOARD_PATHS += $(KEYBOARD_PATH_2) | |
71 | endif | |
72 | ifneq ("$(wildcard $(KEYBOARD_PATH_1)/)","") | |
73 | KEYBOARD_PATHS += $(KEYBOARD_PATH_1) | |
74 | endif | |
75 | ||
3cf179be | 76 | |
98b16b32 | 77 | # Pull in rules.mk files from all our subfolders |
78 | ifneq ("$(wildcard $(KEYBOARD_PATH_5)/rules.mk)","") | |
800ec55d JH |
79 | include $(KEYBOARD_PATH_5)/rules.mk |
80 | endif | |
81 | ifneq ("$(wildcard $(KEYBOARD_PATH_4)/rules.mk)","") | |
800ec55d JH |
82 | include $(KEYBOARD_PATH_4)/rules.mk |
83 | endif | |
84 | ifneq ("$(wildcard $(KEYBOARD_PATH_3)/rules.mk)","") | |
800ec55d | 85 | include $(KEYBOARD_PATH_3)/rules.mk |
67b294ca | 86 | endif |
800ec55d | 87 | ifneq ("$(wildcard $(KEYBOARD_PATH_2)/rules.mk)","") |
800ec55d JH |
88 | include $(KEYBOARD_PATH_2)/rules.mk |
89 | endif | |
90 | ifneq ("$(wildcard $(KEYBOARD_PATH_1)/rules.mk)","") | |
800ec55d JH |
91 | include $(KEYBOARD_PATH_1)/rules.mk |
92 | endif | |
93 | ||
3cf179be JH |
94 | |
95 | MAIN_KEYMAP_PATH_1 := $(KEYBOARD_PATH_1)/keymaps/$(KEYMAP) | |
96 | MAIN_KEYMAP_PATH_2 := $(KEYBOARD_PATH_2)/keymaps/$(KEYMAP) | |
97 | MAIN_KEYMAP_PATH_3 := $(KEYBOARD_PATH_3)/keymaps/$(KEYMAP) | |
98 | MAIN_KEYMAP_PATH_4 := $(KEYBOARD_PATH_4)/keymaps/$(KEYMAP) | |
99 | MAIN_KEYMAP_PATH_5 := $(KEYBOARD_PATH_5)/keymaps/$(KEYMAP) | |
100 | ||
101 | ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_5)/keymap.c)","") | |
102 | -include $(MAIN_KEYMAP_PATH_5)/rules.mk | |
103 | KEYMAP_C := $(MAIN_KEYMAP_PATH_5)/keymap.c | |
104 | KEYMAP_PATH := $(MAIN_KEYMAP_PATH_5) | |
105 | else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_4)/keymap.c)","") | |
106 | -include $(MAIN_KEYMAP_PATH_4)/rules.mk | |
107 | KEYMAP_C := $(MAIN_KEYMAP_PATH_4)/keymap.c | |
108 | KEYMAP_PATH := $(MAIN_KEYMAP_PATH_4) | |
109 | else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_3)/keymap.c)","") | |
110 | -include $(MAIN_KEYMAP_PATH_3)/rules.mk | |
111 | KEYMAP_C := $(MAIN_KEYMAP_PATH_3)/keymap.c | |
112 | KEYMAP_PATH := $(MAIN_KEYMAP_PATH_3) | |
113 | else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_2)/keymap.c)","") | |
114 | -include $(MAIN_KEYMAP_PATH_2)/rules.mk | |
115 | KEYMAP_C := $(MAIN_KEYMAP_PATH_2)/keymap.c | |
116 | KEYMAP_PATH := $(MAIN_KEYMAP_PATH_2) | |
117 | else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_1)/keymap.c)","") | |
118 | -include $(MAIN_KEYMAP_PATH_1)/rules.mk | |
119 | KEYMAP_C := $(MAIN_KEYMAP_PATH_1)/keymap.c | |
120 | KEYMAP_PATH := $(MAIN_KEYMAP_PATH_1) | |
121 | else ifneq ($(LAYOUTS),) | |
122 | include build_layout.mk | |
123 | else | |
124 | $(error Could not find keymap) | |
125 | # this state should never be reached | |
126 | endif | |
127 | ||
128 | ifeq ($(strip $(CTPC)), yes) | |
129 | CONVERT_TO_PROTON_C=yes | |
130 | endif | |
131 | ||
132 | ifeq ($(strip $(CONVERT_TO_PROTON_C)), yes) | |
133 | TARGET := $(TARGET)_proton_c | |
134 | include $(STM32_PATH)/proton_c.mk | |
135 | OPT_DEFS += -DCONVERT_TO_PROTON_C | |
136 | endif | |
137 | ||
40e67a30 | 138 | ifneq ($(FORCE_LAYOUT),) |
139 | TARGET := $(TARGET)_$(FORCE_LAYOUT) | |
140 | endif | |
141 | ||
3cf179be JH |
142 | include quantum/mcu_selection.mk |
143 | ||
144 | ifdef MCU_FAMILY | |
145 | OPT_DEFS += -DQMK_STM32 | |
146 | KEYBOARD_PATHS += $(STM32_PATH) | |
147 | endif | |
148 | ||
149 | ||
98b16b32 | 150 | # Find all the C source files to be compiled in subfolders. |
800ec55d JH |
151 | KEYBOARD_SRC := |
152 | ||
153 | KEYBOARD_C_1 := $(KEYBOARD_PATH_1)/$(KEYBOARD_FOLDER_1).c | |
154 | KEYBOARD_C_2 := $(KEYBOARD_PATH_2)/$(KEYBOARD_FOLDER_2).c | |
155 | KEYBOARD_C_3 := $(KEYBOARD_PATH_3)/$(KEYBOARD_FOLDER_3).c | |
156 | KEYBOARD_C_4 := $(KEYBOARD_PATH_4)/$(KEYBOARD_FOLDER_4).c | |
157 | KEYBOARD_C_5 := $(KEYBOARD_PATH_5)/$(KEYBOARD_FOLDER_5).c | |
67b294ca | 158 | |
800ec55d JH |
159 | ifneq ("$(wildcard $(KEYBOARD_C_5))","") |
160 | KEYBOARD_SRC += $(KEYBOARD_C_5) | |
161 | endif | |
162 | ifneq ("$(wildcard $(KEYBOARD_C_4))","") | |
163 | KEYBOARD_SRC += $(KEYBOARD_C_4) | |
164 | endif | |
165 | ifneq ("$(wildcard $(KEYBOARD_C_3))","") | |
166 | KEYBOARD_SRC += $(KEYBOARD_C_3) | |
167 | endif | |
168 | ifneq ("$(wildcard $(KEYBOARD_C_2))","") | |
169 | KEYBOARD_SRC += $(KEYBOARD_C_2) | |
170 | endif | |
171 | ifneq ("$(wildcard $(KEYBOARD_C_1))","") | |
172 | KEYBOARD_SRC += $(KEYBOARD_C_1) | |
173 | endif | |
174 | ||
6cf9402c DJ |
175 | # Generate KEYBOARD_name_subname for all levels of the keyboard folder |
176 | KEYBOARD_FILESAFE_1 := $(subst .,,$(subst /,_,$(KEYBOARD_FOLDER_PATH_1))) | |
177 | KEYBOARD_FILESAFE_2 := $(subst .,,$(subst /,_,$(KEYBOARD_FOLDER_PATH_2))) | |
178 | KEYBOARD_FILESAFE_3 := $(subst .,,$(subst /,_,$(KEYBOARD_FOLDER_PATH_3))) | |
179 | KEYBOARD_FILESAFE_4 := $(subst .,,$(subst /,_,$(KEYBOARD_FOLDER_PATH_4))) | |
180 | KEYBOARD_FILESAFE_5 := $(subst .,,$(subst /,_,$(KEYBOARD_FOLDER_PATH_5))) | |
800ec55d | 181 | |
6cf9402c DJ |
182 | ifneq ("$(wildcard $(KEYBOARD_PATH_5)/)","") |
183 | OPT_DEFS += -DKEYBOARD_$(KEYBOARD_FILESAFE_5) | |
184 | endif | |
185 | ifneq ("$(wildcard $(KEYBOARD_PATH_4)/)","") | |
186 | OPT_DEFS += -DKEYBOARD_$(KEYBOARD_FILESAFE_4) | |
187 | endif | |
188 | ifneq ("$(wildcard $(KEYBOARD_PATH_3)/)","") | |
189 | OPT_DEFS += -DKEYBOARD_$(KEYBOARD_FILESAFE_3) | |
190 | endif | |
191 | ifneq ("$(wildcard $(KEYBOARD_PATH_2)/)","") | |
192 | OPT_DEFS += -DKEYBOARD_$(KEYBOARD_FILESAFE_2) | |
193 | endif | |
194 | ifneq ("$(wildcard $(KEYBOARD_PATH_1)/)","") | |
195 | OPT_DEFS += -DKEYBOARD_$(KEYBOARD_FILESAFE_1) | |
196 | endif | |
ec3e065f | 197 | |
98b16b32 | 198 | # Setup the define for QMK_KEYBOARD_H. This is used inside of keymaps so |
199 | # that the same keymap may be used on multiple keyboards. | |
200 | # | |
201 | # We grab the most top-level include file that we can. That file should | |
202 | # use #ifdef statements to include all the neccesary subfolder includes, | |
203 | # as described here: | |
204 | # | |
205 | # https://docs.qmk.fm/#/feature_layouts?id=tips-for-making-layouts-keyboard-agnostic | |
206 | # | |
ec3e065f JH |
207 | ifneq ("$(wildcard $(KEYBOARD_PATH_1)/$(KEYBOARD_FOLDER_1).h)","") |
208 | QMK_KEYBOARD_H = $(KEYBOARD_FOLDER_1).h | |
209 | endif | |
210 | ifneq ("$(wildcard $(KEYBOARD_PATH_2)/$(KEYBOARD_FOLDER_2).h)","") | |
211 | QMK_KEYBOARD_H = $(KEYBOARD_FOLDER_2).h | |
212 | endif | |
213 | ifneq ("$(wildcard $(KEYBOARD_PATH_3)/$(KEYBOARD_FOLDER_3).h)","") | |
214 | QMK_KEYBOARD_H = $(KEYBOARD_FOLDER_3).h | |
215 | endif | |
216 | ifneq ("$(wildcard $(KEYBOARD_PATH_4)/$(KEYBOARD_FOLDER_4).h)","") | |
217 | QMK_KEYBOARD_H = $(KEYBOARD_FOLDER_4).h | |
218 | endif | |
219 | ifneq ("$(wildcard $(KEYBOARD_PATH_5)/$(KEYBOARD_FOLDER_5).h)","") | |
220 | QMK_KEYBOARD_H = $(KEYBOARD_FOLDER_5).h | |
221 | endif | |
222 | ||
98b16b32 | 223 | # Determine and set parameters based on the keyboard's processor family. |
224 | # We can assume a ChibiOS target When MCU_FAMILY is defined since it's | |
225 | # not used for LUFA | |
33fbd3be | 226 | ifdef MCU_FAMILY |
98b16b32 | 227 | FIRMWARE_FORMAT?=bin |
1d5567a3 | 228 | PLATFORM=CHIBIOS |
30680c6e | 229 | else ifdef ARM_ATSAM |
230 | PLATFORM=ARM_ATSAM | |
231 | FIRMWARE_FORMAT=bin | |
33fbd3be | 232 | else |
1d5567a3 | 233 | PLATFORM=AVR |
98b16b32 | 234 | FIRMWARE_FORMAT?=hex |
33fbd3be FS |
235 | endif |
236 | ||
237 | ifeq ($(PLATFORM),CHIBIOS) | |
1d5567a3 FS |
238 | include $(TMK_PATH)/chibios.mk |
239 | OPT_OS = chibios | |
800ec55d JH |
240 | ifneq ("$(wildcard $(KEYBOARD_PATH_5)/bootloader_defs.h)","") |
241 | OPT_DEFS += -include $(KEYBOARD_PATH_5)/bootloader_defs.h | |
242 | else ifneq ("$(wildcard $(KEYBOARD_PATH_5)/boards/$(BOARD)/bootloader_defs.h)","") | |
243 | OPT_DEFS += -include $(KEYBOARD_PATH_5)/boards/$(BOARD)/bootloader_defs.h | |
244 | else ifneq ("$(wildcard $(KEYBOARD_PATH_4)/bootloader_defs.h)","") | |
245 | OPT_DEFS += -include $(KEYBOARD_PATH_4)/bootloader_defs.h | |
246 | else ifneq ("$(wildcard $(KEYBOARD_PATH_4)/boards/$(BOARD)/bootloader_defs.h)","") | |
247 | OPT_DEFS += -include $(KEYBOARD_PATH_4)/boards/$(BOARD)/bootloader_defs.h | |
248 | else ifneq ("$(wildcard $(KEYBOARD_PATH_3)/bootloader_defs.h)","") | |
249 | OPT_DEFS += -include $(KEYBOARD_PATH_3)/bootloader_defs.h | |
250 | else ifneq ("$(wildcard $(KEYBOARD_PATH_3)/boards/$(BOARD)/bootloader_defs.h)","") | |
251 | OPT_DEFS += -include $(KEYBOARD_PATH_3)/boards/$(BOARD)/bootloader_defs.h | |
252 | else ifneq ("$(wildcard $(KEYBOARD_PATH_2)/bootloader_defs.h)","") | |
253 | OPT_DEFS += -include $(KEYBOARD_PATH_2)/bootloader_defs.h | |
254 | else ifneq ("$(wildcard $(KEYBOARD_PATH_2)/boards/$(BOARD)/bootloader_defs.h)","") | |
255 | OPT_DEFS += -include $(KEYBOARD_PATH_2)/boards/$(BOARD)/bootloader_defs.h | |
256 | else ifneq ("$(wildcard $(KEYBOARD_PATH_1)/bootloader_defs.h)","") | |
257 | OPT_DEFS += -include $(KEYBOARD_PATH_1)/bootloader_defs.h | |
258 | else ifneq ("$(wildcard $(KEYBOARD_PATH_1)/boards/$(BOARD)/bootloader_defs.h)","") | |
259 | OPT_DEFS += -include $(KEYBOARD_PATH_1)/boards/$(BOARD)/bootloader_defs.h | |
f6b3c676 KE |
260 | else ifneq ("$(wildcard $(TOP_DIR)/drivers/boards/$(BOARD)/bootloader_defs.h)","") |
261 | OPT_DEFS += -include $(TOP_DIR)/drivers/boards/$(BOARD)/bootloader_defs.h | |
1d5567a3 | 262 | endif |
33fbd3be FS |
263 | endif |
264 | ||
98b16b32 | 265 | # Find all of the config.h files and add them to our CONFIG_H define. |
800ec55d JH |
266 | CONFIG_H := |
267 | ifneq ("$(wildcard $(KEYBOARD_PATH_5)/config.h)","") | |
268 | CONFIG_H += $(KEYBOARD_PATH_5)/config.h | |
269 | endif | |
270 | ifneq ("$(wildcard $(KEYBOARD_PATH_4)/config.h)","") | |
271 | CONFIG_H += $(KEYBOARD_PATH_4)/config.h | |
272 | endif | |
273 | ifneq ("$(wildcard $(KEYBOARD_PATH_3)/config.h)","") | |
274 | CONFIG_H += $(KEYBOARD_PATH_3)/config.h | |
275 | endif | |
276 | ifneq ("$(wildcard $(KEYBOARD_PATH_2)/config.h)","") | |
277 | CONFIG_H += $(KEYBOARD_PATH_2)/config.h | |
278 | endif | |
279 | ifneq ("$(wildcard $(KEYBOARD_PATH_1)/config.h)","") | |
280 | CONFIG_H += $(KEYBOARD_PATH_1)/config.h | |
9028a412 FS |
281 | endif |
282 | ||
7e67bd79 TI |
283 | POST_CONFIG_H := |
284 | ifneq ("$(wildcard $(KEYBOARD_PATH_1)/post_config.h)","") | |
285 | POST_CONFIG_H += $(KEYBOARD_PATH_1)/post_config.h | |
286 | endif | |
287 | ifneq ("$(wildcard $(KEYBOARD_PATH_2)/post_config.h)","") | |
288 | POST_CONFIG_H += $(KEYBOARD_PATH_2)/post_config.h | |
289 | endif | |
290 | ifneq ("$(wildcard $(KEYBOARD_PATH_3)/post_config.h)","") | |
291 | POST_CONFIG_H += $(KEYBOARD_PATH_3)/post_config.h | |
292 | endif | |
293 | ifneq ("$(wildcard $(KEYBOARD_PATH_4)/post_config.h)","") | |
294 | POST_CONFIG_H += $(KEYBOARD_PATH_4)/post_config.h | |
295 | endif | |
296 | ifneq ("$(wildcard $(KEYBOARD_PATH_5)/post_config.h)","") | |
297 | POST_CONFIG_H += $(KEYBOARD_PATH_5)/post_config.h | |
298 | endif | |
299 | ||
b911e196 | 300 | # Save the defines and includes here, so we don't include any keymap specific ones |
3aac4e95 | 301 | PROJECT_DEFS := $(OPT_DEFS) |
800ec55d | 302 | PROJECT_INC := $(VPATH) $(EXTRAINCDIRS) $(KEYBOARD_PATHS) |
9028a412 | 303 | PROJECT_CONFIG := $(CONFIG_H) |
3aac4e95 | 304 | |
98b16b32 | 305 | # Userspace setup and definitions |
5ca9aecf JW |
306 | ifeq ("$(USER_NAME)","") |
307 | USER_NAME := $(KEYMAP) | |
308 | endif | |
309 | USER_PATH := users/$(USER_NAME) | |
310 | ||
06f196c5 | 311 | -include $(USER_PATH)/rules.mk |
508801c9 W |
312 | ifneq ("$(wildcard $(USER_PATH)/config.h)","") |
313 | CONFIG_H += $(USER_PATH)/config.h | |
162a67cb DJ |
314 | endif |
315 | ||
06f196c5 | 316 | |
86706de0 FS |
317 | # Object files directory |
318 | # To put object files in current directory, use a dot (.), do NOT make | |
319 | # this an empty or blank macro! | |
3aac4e95 | 320 | KEYMAP_OUTPUT := $(BUILD_DIR)/obj_$(TARGET) |
86706de0 | 321 | |
86706de0 | 322 | ifneq ("$(wildcard $(KEYMAP_PATH)/config.h)","") |
800ec55d | 323 | CONFIG_H += $(KEYMAP_PATH)/config.h |
86706de0 FS |
324 | endif |
325 | ||
326 | # # project specific files | |
800ec55d | 327 | SRC += $(KEYBOARD_SRC) \ |
1d5567a3 | 328 | $(KEYMAP_C) \ |
1c0fe956 | 329 | $(QUANTUM_SRC) |
86706de0 | 330 | |
86706de0 FS |
331 | # Optimize size but this may cause error "relocation truncated to fit" |
332 | #EXTRALDFLAGS = -Wl,--relax | |
333 | ||
334 | # Search Path | |
335 | VPATH += $(KEYMAP_PATH) | |
27b0f892 | 336 | VPATH += $(USER_PATH) |
800ec55d | 337 | VPATH += $(KEYBOARD_PATHS) |
c692fd1d | 338 | VPATH += $(COMMON_VPATH) |
86706de0 | 339 | |
1c0fe956 | 340 | include common_features.mk |
3be13d1f | 341 | include $(TMK_PATH)/protocol.mk |
86706de0 | 342 | include $(TMK_PATH)/common.mk |
9fdc2762 | 343 | include bootloader.mk |
1c0fe956 | 344 | |
29f68459 | 345 | SRC += $(patsubst %.c,%.clib,$(LIB_SRC)) |
8f790948 | 346 | SRC += $(patsubst %.c,%.clib,$(QUANTUM_LIB_SRC)) |
c692fd1d FS |
347 | SRC += $(TMK_COMMON_SRC) |
348 | OPT_DEFS += $(TMK_COMMON_DEFS) | |
349 | EXTRALDFLAGS += $(TMK_COMMON_LDFLAGS) | |
350 | ||
86706de0 | 351 | ifeq ($(PLATFORM),AVR) |
f7462aaa | 352 | ifeq ($(strip $(PROTOCOL)), VUSB) |
1d5567a3 | 353 | include $(TMK_PATH)/protocol/vusb.mk |
f7462aaa | 354 | else |
1d5567a3 | 355 | include $(TMK_PATH)/protocol/lufa.mk |
f7462aaa | 356 | endif |
1d5567a3 | 357 | include $(TMK_PATH)/avr.mk |
86706de0 FS |
358 | endif |
359 | ||
30680c6e | 360 | ifeq ($(PLATFORM),ARM_ATSAM) |
361 | include $(TMK_PATH)/arm_atsam.mk | |
362 | include $(TMK_PATH)/protocol/arm_atsam.mk | |
363 | endif | |
364 | ||
53ff8a31 | 365 | ifeq ($(PLATFORM),CHIBIOS) |
366 | include $(TMK_PATH)/protocol/chibios.mk | |
367 | endif | |
368 | ||
86706de0 | 369 | ifeq ($(strip $(VISUALIZER_ENABLE)), yes) |
1d5567a3 FS |
370 | VISUALIZER_DIR = $(QUANTUM_DIR)/visualizer |
371 | VISUALIZER_PATH = $(QUANTUM_PATH)/visualizer | |
372 | include $(VISUALIZER_PATH)/visualizer.mk | |
86706de0 FS |
373 | endif |
374 | ||
7e67bd79 | 375 | CONFIG_H += $(POST_CONFIG_H) |
ec3e065f JH |
376 | ALL_CONFIGS := $(PROJECT_CONFIG) $(CONFIG_H) |
377 | ||
3aac4e95 FS |
378 | OUTPUTS := $(KEYMAP_OUTPUT) $(KEYBOARD_OUTPUT) |
379 | $(KEYMAP_OUTPUT)_SRC := $(SRC) | |
d2ff66a9 | 380 | $(KEYMAP_OUTPUT)_DEFS := $(OPT_DEFS) $(GFXDEFS) \ |
ec3e065f | 381 | -DQMK_KEYBOARD=\"$(KEYBOARD)\" -DQMK_KEYBOARD_H=\"$(QMK_KEYBOARD_H)\" -DQMK_KEYBOARD_CONFIG_H=\"$(KEYBOARD_PATH_1)/config.h\" \ |
d2ff66a9 | 382 | -DQMK_KEYMAP=\"$(KEYMAP)\" -DQMK_KEYMAP_H=\"$(KEYMAP).h\" -DQMK_KEYMAP_CONFIG_H=\"$(KEYMAP_PATH)/config.h\" \ |
800ec55d | 383 | -DQMK_SUBPROJECT -DQMK_SUBPROJECT_H -DQMK_SUBPROJECT_CONFIG_H |
c692fd1d | 384 | $(KEYMAP_OUTPUT)_INC := $(VPATH) $(EXTRAINCDIRS) |
9028a412 | 385 | $(KEYMAP_OUTPUT)_CONFIG := $(CONFIG_H) |
f5c89416 FS |
386 | $(KEYBOARD_OUTPUT)_SRC := $(CHIBISRC) $(GFXSRC) |
387 | $(KEYBOARD_OUTPUT)_DEFS := $(PROJECT_DEFS) $(GFXDEFS) | |
388 | $(KEYBOARD_OUTPUT)_INC := $(PROJECT_INC) $(GFXINC) | |
800ec55d | 389 | $(KEYBOARD_OUTPUT)_CONFIG := $(PROJECT_CONFIG) |
3aac4e95 | 390 | |
8a9aac6e | 391 | # Default target. |
9fdc2762 | 392 | all: build check-size |
9bfaf667 | 393 | build: elf cpfirmware |
4082d880 | 394 | check-size: build |
3aac4e95 | 395 | |
d5bc7fc1 | 396 | include show_options.mk |
86706de0 | 397 | include $(TMK_PATH)/rules.mk |