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