Commit | Line | Data |
---|---|---|
1c0fe956 FS |
1 | # Copyright 2017 Fred Sundvik |
2 | # | |
3 | # This program is free software: you can redistribute it and/or modify | |
4 | # it under the terms of the GNU General Public License as published by | |
5 | # the Free Software Foundation, either version 2 of the License, or | |
6 | # (at your option) any later version. | |
7 | # | |
8 | # This program is distributed in the hope that it will be useful, | |
9 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
10 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
11 | # GNU General Public License for more details. | |
12 | # | |
13 | # You should have received a copy of the GNU General Public License | |
14 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | |
15 | ||
1c0fe956 | 16 | SERIAL_PATH := $(QUANTUM_PATH)/serial_link |
5f9f62fb JC |
17 | |
18 | QUANTUM_SRC += \ | |
19 | $(QUANTUM_DIR)/quantum.c \ | |
20 | $(QUANTUM_DIR)/keymap_common.c \ | |
21 | $(QUANTUM_DIR)/keycode_config.c | |
1c0fe956 FS |
22 | |
23 | ifeq ($(strip $(API_SYSEX_ENABLE)), yes) | |
24 | OPT_DEFS += -DAPI_SYSEX_ENABLE | |
1c0fe956 | 25 | OPT_DEFS += -DAPI_ENABLE |
1c0fe956 | 26 | MIDI_ENABLE=yes |
5f9f62fb JC |
27 | SRC += $(QUANTUM_DIR)/api/api_sysex.c |
28 | SRC += $(QUANTUM_DIR)/api.c | |
1c0fe956 FS |
29 | endif |
30 | ||
1c0fe956 FS |
31 | ifeq ($(strip $(AUDIO_ENABLE)), yes) |
32 | OPT_DEFS += -DAUDIO_ENABLE | |
5f9f62fb | 33 | MUSIC_ENABLE = yes |
1c0fe956 | 34 | SRC += $(QUANTUM_DIR)/process_keycode/process_audio.c |
33fdd1d2 | 35 | SRC += $(QUANTUM_DIR)/process_keycode/process_clicky.c |
d96380e6 | 36 | SRC += $(QUANTUM_DIR)/audio/audio_$(PLATFORM_KEY).c |
1c0fe956 FS |
37 | SRC += $(QUANTUM_DIR)/audio/voices.c |
38 | SRC += $(QUANTUM_DIR)/audio/luts.c | |
39 | endif | |
40 | ||
41 | ifeq ($(strip $(MIDI_ENABLE)), yes) | |
42 | OPT_DEFS += -DMIDI_ENABLE | |
5f9f62fb | 43 | MUSIC_ENABLE = yes |
1c0fe956 FS |
44 | SRC += $(QUANTUM_DIR)/process_keycode/process_midi.c |
45 | endif | |
46 | ||
5f9f62fb JC |
47 | MUSIC_ENABLE ?= no |
48 | ifeq ($(MUSIC_ENABLE), yes) | |
1c0fe956 FS |
49 | SRC += $(QUANTUM_DIR)/process_keycode/process_music.c |
50 | endif | |
51 | ||
5987f679 JW |
52 | ifeq ($(strip $(STENO_ENABLE)), yes) |
53 | OPT_DEFS += -DSTENO_ENABLE | |
d11238f7 | 54 | VIRTSER_ENABLE ?= yes |
fdd0f915 | 55 | SRC += $(QUANTUM_DIR)/process_keycode/process_steno.c |
5987f679 JW |
56 | endif |
57 | ||
1c0fe956 FS |
58 | ifeq ($(strip $(VIRTSER_ENABLE)), yes) |
59 | OPT_DEFS += -DVIRTSER_ENABLE | |
60 | endif | |
61 | ||
62 | ifeq ($(strip $(FAUXCLICKY_ENABLE)), yes) | |
63 | OPT_DEFS += -DFAUXCLICKY_ENABLE | |
64 | SRC += $(QUANTUM_DIR)/fauxclicky.c | |
65 | endif | |
66 | ||
ee132284 | 67 | ifeq ($(strip $(POINTING_DEVICE_ENABLE)), yes) |
fdd0f915 | 68 | OPT_DEFS += -DPOINTING_DEVICE_ENABLE |
69 | OPT_DEFS += -DMOUSE_ENABLE | |
70 | SRC += $(QUANTUM_DIR)/pointing_device.c | |
ee132284 S |
71 | endif |
72 | ||
d13ada11 NB |
73 | VALID_EEPROM_DRIVER_TYPES := vendor custom transient i2c |
74 | EEPROM_DRIVER ?= vendor | |
75 | ifeq ($(filter $(EEPROM_DRIVER),$(VALID_EEPROM_DRIVER_TYPES)),) | |
76 | $(error EEPROM_DRIVER="$(EEPROM_DRIVER)" is not a valid EEPROM driver) | |
77 | else | |
78 | OPT_DEFS += -DEEPROM_ENABLE | |
79 | ifeq ($(strip $(EEPROM_DRIVER)), custom) | |
80 | OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_CUSTOM | |
81 | COMMON_VPATH += $(DRIVER_PATH)/eeprom | |
82 | SRC += eeprom_driver.c | |
83 | else ifeq ($(strip $(EEPROM_DRIVER)), i2c) | |
84 | OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_I2C | |
85 | COMMON_VPATH += $(DRIVER_PATH)/eeprom | |
86 | QUANTUM_LIB_SRC += i2c_master.c | |
87 | SRC += eeprom_driver.c eeprom_i2c.c | |
88 | else ifeq ($(strip $(EEPROM_DRIVER)), transient) | |
89 | OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_TRANSIENT | |
90 | COMMON_VPATH += $(DRIVER_PATH)/eeprom | |
91 | SRC += eeprom_driver.c eeprom_transient.c | |
92 | else ifeq ($(strip $(EEPROM_DRIVER)), vendor) | |
93 | OPT_DEFS += -DEEPROM_VENDOR | |
94 | ifeq ($(PLATFORM),AVR) | |
95 | # Automatically provided by avr-libc, nothing required | |
96 | else ifeq ($(PLATFORM),CHIBIOS) | |
97 | ifeq ($(MCU_SERIES), STM32F3xx) | |
98 | SRC += $(PLATFORM_COMMON_DIR)/eeprom_stm32.c | |
99 | SRC += $(PLATFORM_COMMON_DIR)/flash_stm32.c | |
100 | OPT_DEFS += -DEEPROM_EMU_STM32F303xC | |
101 | OPT_DEFS += -DSTM32_EEPROM_ENABLE | |
102 | else ifeq ($(MCU_SERIES), STM32F1xx) | |
103 | SRC += $(PLATFORM_COMMON_DIR)/eeprom_stm32.c | |
104 | SRC += $(PLATFORM_COMMON_DIR)/flash_stm32.c | |
105 | OPT_DEFS += -DEEPROM_EMU_STM32F103xB | |
106 | OPT_DEFS += -DSTM32_EEPROM_ENABLE | |
107 | else ifeq ($(MCU_SERIES)_$(MCU_LDSCRIPT), STM32F0xx_STM32F072xB) | |
108 | SRC += $(PLATFORM_COMMON_DIR)/eeprom_stm32.c | |
109 | SRC += $(PLATFORM_COMMON_DIR)/flash_stm32.c | |
110 | OPT_DEFS += -DEEPROM_EMU_STM32F072xB | |
111 | OPT_DEFS += -DSTM32_EEPROM_ENABLE | |
f2f2afe1 NB |
112 | else ifneq ($(filter $(MCU_SERIES),STM32L0xx STM32L1xx),) |
113 | OPT_DEFS += -DEEPROM_DRIVER | |
114 | COMMON_VPATH += $(DRIVER_PATH)/eeprom | |
115 | SRC += eeprom_driver.c eeprom_stm32_L0_L1.c | |
d13ada11 NB |
116 | else |
117 | # This will effectively work the same as "transient" if not supported by the chip | |
118 | SRC += $(PLATFORM_COMMON_DIR)/eeprom_teensy.c | |
119 | endif | |
120 | else ifeq ($(PLATFORM),ARM_ATSAM) | |
121 | SRC += $(PLATFORM_COMMON_DIR)/eeprom.c | |
122 | else ifeq ($(PLATFORM),TEST) | |
123 | SRC += $(PLATFORM_COMMON_DIR)/eeprom.c | |
124 | endif | |
125 | endif | |
126 | endif | |
127 | ||
1c0fe956 | 128 | ifeq ($(strip $(RGBLIGHT_ENABLE)), yes) |
7e67bd79 | 129 | POST_CONFIG_H += $(QUANTUM_DIR)/rgblight_post_config.h |
1c0fe956 | 130 | OPT_DEFS += -DRGBLIGHT_ENABLE |
22ba36a4 | 131 | SRC += $(QUANTUM_DIR)/color.c |
024f0455 | 132 | SRC += $(QUANTUM_DIR)/rgblight.c |
320822d7 | 133 | CIE1931_CURVE := yes |
320822d7 | 134 | RGB_KEYCODES_ENABLE := yes |
d5486265 LR |
135 | ifeq ($(strip $(RGBLIGHT_CUSTOM_DRIVER)), yes) |
136 | OPT_DEFS += -DRGBLIGHT_CUSTOM_DRIVER | |
137 | else | |
320822d7 | 138 | WS2812_DRIVER_REQUIRED := yes |
d5486265 | 139 | endif |
1c0fe956 FS |
140 | endif |
141 | ||
5fcd744d | 142 | VALID_MATRIX_TYPES := yes IS31FL3731 IS31FL3733 IS31FL3737 WS2812 custom |
fd698c43 | 143 | |
144 | LED_MATRIX_ENABLE ?= no | |
145 | ifneq ($(strip $(LED_MATRIX_ENABLE)), no) | |
cc738e32 | 146 | ifeq ($(filter $(LED_MATRIX_ENABLE),$(VALID_MATRIX_TYPES)),) |
147 | $(error LED_MATRIX_ENABLE="$(LED_MATRIX_ENABLE)" is not a valid matrix type) | |
148 | else | |
9a0245b7 JC |
149 | BACKLIGHT_ENABLE = yes |
150 | BACKLIGHT_DRIVER = custom | |
151 | OPT_DEFS += -DLED_MATRIX_ENABLE | |
cc738e32 | 152 | SRC += $(QUANTUM_DIR)/led_matrix.c |
153 | SRC += $(QUANTUM_DIR)/led_matrix_drivers.c | |
154 | endif | |
fd698c43 | 155 | endif |
156 | ||
157 | ifeq ($(strip $(LED_MATRIX_ENABLE)), IS31FL3731) | |
158 | OPT_DEFS += -DIS31FL3731 | |
159 | COMMON_VPATH += $(DRIVER_PATH)/issi | |
160 | SRC += is31fl3731-simple.c | |
6cccc22b | 161 | QUANTUM_LIB_SRC += i2c_master.c |
fd698c43 | 162 | endif |
163 | ||
164 | RGB_MATRIX_ENABLE ?= no | |
fa4052c2 | 165 | |
f70f45ee JLW |
166 | ifneq ($(strip $(RGB_MATRIX_ENABLE)), no) |
167 | ifeq ($(filter $(RGB_MATRIX_ENABLE),$(VALID_MATRIX_TYPES)),) | |
168 | $(error RGB_MATRIX_ENABLE="$(RGB_MATRIX_ENABLE)" is not a valid matrix type) | |
169 | endif | |
14b7602a | 170 | OPT_DEFS += -DRGB_MATRIX_ENABLE |
14b7602a JH |
171 | SRC += $(QUANTUM_DIR)/color.c |
172 | SRC += $(QUANTUM_DIR)/rgb_matrix.c | |
f70f45ee | 173 | SRC += $(QUANTUM_DIR)/rgb_matrix_drivers.c |
320822d7 W |
174 | CIE1931_CURVE := yes |
175 | RGB_KEYCODES_ENABLE := yes | |
14b7602a JH |
176 | endif |
177 | ||
f70f45ee | 178 | ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes) |
320822d7 | 179 | RGB_MATRIX_ENABLE := IS31FL3731 |
f70f45ee JLW |
180 | endif |
181 | ||
fdd0f915 | 182 | ifeq ($(strip $(RGB_MATRIX_ENABLE)), IS31FL3731) |
fa4052c2 | 183 | OPT_DEFS += -DIS31FL3731 -DSTM32_I2C -DHAL_USE_I2C=TRUE |
fdd0f915 | 184 | COMMON_VPATH += $(DRIVER_PATH)/issi |
185 | SRC += is31fl3731.c | |
6cccc22b | 186 | QUANTUM_LIB_SRC += i2c_master.c |
fdd0f915 | 187 | endif |
188 | ||
189 | ifeq ($(strip $(RGB_MATRIX_ENABLE)), IS31FL3733) | |
fa4052c2 | 190 | OPT_DEFS += -DIS31FL3733 -DSTM32_I2C -DHAL_USE_I2C=TRUE |
fdd0f915 | 191 | COMMON_VPATH += $(DRIVER_PATH)/issi |
192 | SRC += is31fl3733.c | |
6cccc22b | 193 | QUANTUM_LIB_SRC += i2c_master.c |
fdd0f915 | 194 | endif |
195 | ||
fa4052c2 JH |
196 | ifeq ($(strip $(RGB_MATRIX_ENABLE)), IS31FL3737) |
197 | OPT_DEFS += -DIS31FL3737 -DSTM32_I2C -DHAL_USE_I2C=TRUE | |
198 | COMMON_VPATH += $(DRIVER_PATH)/issi | |
199 | SRC += is31fl3737.c | |
6cccc22b | 200 | QUANTUM_LIB_SRC += i2c_master.c |
fa4052c2 JH |
201 | endif |
202 | ||
5fcd744d X |
203 | ifeq ($(strip $(RGB_MATRIX_ENABLE)), WS2812) |
204 | OPT_DEFS += -DWS2812 | |
320822d7 | 205 | WS2812_DRIVER_REQUIRED := yes |
5fcd744d X |
206 | endif |
207 | ||
1d784f0f DP |
208 | ifeq ($(strip $(RGB_MATRIX_CUSTOM_KB)), yes) |
209 | OPT_DEFS += -DRGB_MATRIX_CUSTOM_KB | |
210 | endif | |
211 | ||
212 | ifeq ($(strip $(RGB_MATRIX_CUSTOM_USER)), yes) | |
213 | OPT_DEFS += -DRGB_MATRIX_CUSTOM_USER | |
214 | endif | |
215 | ||
ae40fc49 JC |
216 | ifeq ($(strip $(RGB_KEYCODES_ENABLE)), yes) |
217 | SRC += $(QUANTUM_DIR)/process_keycode/process_rgb.c | |
218 | endif | |
219 | ||
1c0fe956 FS |
220 | ifeq ($(strip $(PRINTING_ENABLE)), yes) |
221 | OPT_DEFS += -DPRINTING_ENABLE | |
222 | SRC += $(QUANTUM_DIR)/process_keycode/process_printer.c | |
223 | SRC += $(TMK_DIR)/protocol/serial_uart.c | |
224 | endif | |
225 | ||
226 | ifeq ($(strip $(SERIAL_LINK_ENABLE)), yes) | |
5f9f62fb JC |
227 | SERIAL_SRC := $(wildcard $(SERIAL_PATH)/protocol/*.c) |
228 | SERIAL_SRC += $(wildcard $(SERIAL_PATH)/system/*.c) | |
229 | SERIAL_DEFS += -DSERIAL_LINK_ENABLE | |
230 | COMMON_VPATH += $(SERIAL_PATH) | |
231 | ||
1c0fe956 FS |
232 | SRC += $(patsubst $(QUANTUM_PATH)/%,%,$(SERIAL_SRC)) |
233 | OPT_DEFS += $(SERIAL_DEFS) | |
234 | VAPTH += $(SERIAL_PATH) | |
235 | endif | |
236 | ||
237 | ifneq ($(strip $(VARIABLE_TRACE)),) | |
238 | SRC += $(QUANTUM_DIR)/variable_trace.c | |
239 | OPT_DEFS += -DNUM_TRACED_VARIABLES=$(strip $(VARIABLE_TRACE)) | |
240 | ifneq ($(strip $(MAX_VARIABLE_TRACE_SIZE)),) | |
241 | OPT_DEFS += -DMAX_VARIABLE_TRACE_SIZE=$(strip $(MAX_VARIABLE_TRACE_SIZE)) | |
242 | endif | |
243 | endif | |
244 | ||
245 | ifeq ($(strip $(LCD_ENABLE)), yes) | |
320822d7 | 246 | CIE1931_CURVE := yes |
1c0fe956 FS |
247 | endif |
248 | ||
38aefaf7 JC |
249 | # backward compat |
250 | ifeq ($(strip $(BACKLIGHT_CUSTOM_DRIVER)), yes) | |
320822d7 | 251 | BACKLIGHT_DRIVER := custom |
38aefaf7 JC |
252 | endif |
253 | ||
d4c23d88 | 254 | VALID_BACKLIGHT_TYPES := pwm software custom |
38aefaf7 JC |
255 | |
256 | BACKLIGHT_ENABLE ?= no | |
d4c23d88 | 257 | BACKLIGHT_DRIVER ?= pwm |
258 | ifeq ($(strip $(BACKLIGHT_ENABLE)), yes) | |
259 | ifeq ($(filter $(BACKLIGHT_DRIVER),$(VALID_BACKLIGHT_TYPES)),) | |
260 | $(error BACKLIGHT_DRIVER="$(BACKLIGHT_DRIVER)" is not a valid backlight type) | |
38aefaf7 JC |
261 | endif |
262 | ||
abfd6ed9 JC |
263 | COMMON_VPATH += $(QUANTUM_DIR)/backlight |
264 | SRC += $(QUANTUM_DIR)/backlight/backlight.c | |
3a303bd2 | 265 | SRC += $(QUANTUM_DIR)/process_keycode/process_backlight.c |
abfd6ed9 JC |
266 | OPT_DEFS += -DBACKLIGHT_ENABLE |
267 | ||
b89e35bd JC |
268 | ifeq ($(strip $(BACKLIGHT_DRIVER)), custom) |
269 | OPT_DEFS += -DBACKLIGHT_CUSTOM_DRIVER | |
38aefaf7 | 270 | else |
3a303bd2 JC |
271 | SRC += $(QUANTUM_DIR)/backlight/backlight_driver_common.c |
272 | ifeq ($(strip $(BACKLIGHT_DRIVER)), pwm) | |
d96380e6 | 273 | SRC += $(QUANTUM_DIR)/backlight/backlight_$(PLATFORM_KEY).c |
4531cc87 | 274 | else |
3a303bd2 | 275 | SRC += $(QUANTUM_DIR)/backlight/backlight_$(strip $(BACKLIGHT_DRIVER)).c |
4531cc87 | 276 | endif |
38aefaf7 | 277 | endif |
1c0fe956 FS |
278 | endif |
279 | ||
64b7cfe7 JC |
280 | VALID_WS2812_DRIVER_TYPES := bitbang pwm spi i2c |
281 | ||
282 | WS2812_DRIVER ?= bitbang | |
283 | ifeq ($(strip $(WS2812_DRIVER_REQUIRED)), yes) | |
284 | ifeq ($(filter $(WS2812_DRIVER),$(VALID_WS2812_DRIVER_TYPES)),) | |
285 | $(error WS2812_DRIVER="$(WS2812_DRIVER)" is not a valid WS2812 driver) | |
286 | endif | |
287 | ||
61cd1801 JC |
288 | OPT_DEFS += -DWS2812_DRIVER_$(strip $(shell echo $(WS2812_DRIVER) | tr '[:lower:]' '[:upper:]')) |
289 | ||
64b7cfe7 JC |
290 | ifeq ($(strip $(WS2812_DRIVER)), bitbang) |
291 | SRC += ws2812.c | |
292 | else | |
293 | SRC += ws2812_$(strip $(WS2812_DRIVER)).c | |
294 | endif | |
295 | ||
296 | # add extra deps | |
297 | ifeq ($(strip $(WS2812_DRIVER)), i2c) | |
298 | QUANTUM_LIB_SRC += i2c_master.c | |
299 | endif | |
300 | endif | |
301 | ||
9a0245b7 JC |
302 | ifeq ($(strip $(VISUALIZER_ENABLE)), yes) |
303 | CIE1931_CURVE := yes | |
304 | endif | |
305 | ||
1c0fe956 FS |
306 | ifeq ($(strip $(CIE1931_CURVE)), yes) |
307 | OPT_DEFS += -DUSE_CIE1931_CURVE | |
320822d7 | 308 | LED_TABLES := yes |
1c0fe956 FS |
309 | endif |
310 | ||
1c0fe956 FS |
311 | ifeq ($(strip $(LED_TABLES)), yes) |
312 | SRC += $(QUANTUM_DIR)/led_tables.c | |
313 | endif | |
314 | ||
7ad924ba JH |
315 | ifeq ($(strip $(TERMINAL_ENABLE)), yes) |
316 | SRC += $(QUANTUM_DIR)/process_keycode/process_terminal.c | |
317 | OPT_DEFS += -DTERMINAL_ENABLE | |
40313cfa | 318 | OPT_DEFS += -DUSER_PRINT |
7ad924ba JH |
319 | endif |
320 | ||
800ec55d JH |
321 | ifeq ($(strip $(USB_HID_ENABLE)), yes) |
322 | include $(TMK_DIR)/protocol/usb_hid.mk | |
323 | endif | |
324 | ||
bfb2f8e0 | 325 | ifeq ($(strip $(WPM_ENABLE)), yes) |
326 | SRC += $(QUANTUM_DIR)/wpm.c | |
327 | OPT_DEFS += -DWPM_ENABLE | |
328 | endif | |
329 | ||
85688e5b JH |
330 | ifeq ($(strip $(ENCODER_ENABLE)), yes) |
331 | SRC += $(QUANTUM_DIR)/encoder.c | |
332 | OPT_DEFS += -DENCODER_ENABLE | |
333 | endif | |
334 | ||
c1c5922a CL |
335 | ifeq ($(strip $(VELOCIKEY_ENABLE)), yes) |
336 | OPT_DEFS += -DVELOCIKEY_ENABLE | |
337 | SRC += $(QUANTUM_DIR)/velocikey.c | |
338 | endif | |
339 | ||
320822d7 W |
340 | ifeq ($(strip $(VIA_ENABLE)), yes) |
341 | DYNAMIC_KEYMAP_ENABLE := yes | |
342 | RAW_ENABLE := yes | |
343 | BOOTMAGIC_ENABLE := lite | |
344 | SRC += $(QUANTUM_DIR)/via.c | |
345 | OPT_DEFS += -DVIA_ENABLE | |
346 | endif | |
347 | ||
48a992f1 W |
348 | ifeq ($(strip $(DYNAMIC_KEYMAP_ENABLE)), yes) |
349 | OPT_DEFS += -DDYNAMIC_KEYMAP_ENABLE | |
350 | SRC += $(QUANTUM_DIR)/dynamic_keymap.c | |
351 | endif | |
352 | ||
393937b4 | 353 | ifeq ($(strip $(DIP_SWITCH_ENABLE)), yes) |
5f9f62fb JC |
354 | OPT_DEFS += -DDIP_SWITCH_ENABLE |
355 | SRC += $(QUANTUM_DIR)/dip_switch.c | |
393937b4 JC |
356 | endif |
357 | ||
dcb7ca3f JC |
358 | VALID_CUSTOM_MATRIX_TYPES:= yes lite no |
359 | ||
360 | CUSTOM_MATRIX ?= no | |
361 | ||
28929ad0 | 362 | ifneq ($(strip $(CUSTOM_MATRIX)), yes) |
dcb7ca3f JC |
363 | ifeq ($(filter $(CUSTOM_MATRIX),$(VALID_CUSTOM_MATRIX_TYPES)),) |
364 | $(error CUSTOM_MATRIX="$(CUSTOM_MATRIX)" is not a valid custom matrix type) | |
365 | endif | |
366 | ||
367 | # Include common stuff for all non custom matrix users | |
368 | QUANTUM_SRC += $(QUANTUM_DIR)/matrix_common.c | |
369 | ||
370 | # if 'lite' then skip the actual matrix implementation | |
371 | ifneq ($(strip $(CUSTOM_MATRIX)), lite) | |
372 | # Include the standard or split matrix code if needed | |
373 | ifeq ($(strip $(SPLIT_KEYBOARD)), yes) | |
374 | QUANTUM_SRC += $(QUANTUM_DIR)/split_common/matrix.c | |
375 | else | |
376 | QUANTUM_SRC += $(QUANTUM_DIR)/matrix.c | |
377 | endif | |
929065b1 | 378 | endif |
28929ad0 JC |
379 | endif |
380 | ||
d32edf80 PA |
381 | # Support for translating old names to new names: |
382 | ifeq ($(strip $(DEBOUNCE_TYPE)),sym_g) | |
383 | DEBOUNCE_TYPE:=sym_defer_g | |
384 | else ifeq ($(strip $(DEBOUNCE_TYPE)),eager_pk) | |
385 | DEBOUNCE_TYPE:=sym_eager_pk | |
386 | else ifeq ($(strip $(DEBOUNCE_TYPE)),sym_pk) | |
387 | DEBOUNCE_TYPE:=sym_defer_pk | |
388 | else ifeq ($(strip $(DEBOUNCE_TYPE)),eager_pr) | |
389 | DEBOUNCE_TYPE:=sym_eager_pr | |
390 | endif | |
391 | ||
d0b691df | 392 | DEBOUNCE_DIR:= $(QUANTUM_DIR)/debounce |
c7c4937e | 393 | # Debounce Modules. Set DEBOUNCE_TYPE=custom if including one manually. |
d32edf80 | 394 | DEBOUNCE_TYPE?= sym_defer_g |
c7c4937e JC |
395 | ifneq ($(strip $(DEBOUNCE_TYPE)), custom) |
396 | QUANTUM_SRC += $(DEBOUNCE_DIR)/$(strip $(DEBOUNCE_TYPE)).c | |
28929ad0 JC |
397 | endif |
398 | ||
399 | ifeq ($(strip $(SPLIT_KEYBOARD)), yes) | |
7e67bd79 | 400 | POST_CONFIG_H += $(QUANTUM_DIR)/split_common/post_config.h |
0fab3bbd | 401 | OPT_DEFS += -DSPLIT_KEYBOARD |
28929ad0 JC |
402 | |
403 | # Include files used by all split keyboards | |
37932c29 | 404 | QUANTUM_SRC += $(QUANTUM_DIR)/split_common/split_util.c |
28929ad0 JC |
405 | |
406 | # Determine which (if any) transport files are required | |
407 | ifneq ($(strip $(SPLIT_TRANSPORT)), custom) | |
408 | QUANTUM_SRC += $(QUANTUM_DIR)/split_common/transport.c | |
409 | # Functions added via QUANTUM_LIB_SRC are only included in the final binary if they're called. | |
37932c29 | 410 | # Unused functions are pruned away, which is why we can add multiple drivers here without bloat. |
6efcfaa2 | 411 | ifeq ($(PLATFORM),AVR) |
412 | QUANTUM_LIB_SRC += i2c_master.c \ | |
413 | i2c_slave.c | |
414 | endif | |
e4a0f841 JC |
415 | |
416 | SERIAL_DRIVER ?= bitbang | |
417 | ifeq ($(strip $(SERIAL_DRIVER)), bitbang) | |
418 | QUANTUM_LIB_SRC += serial.c | |
419 | else | |
420 | QUANTUM_LIB_SRC += serial_$(strip $(SERIAL_DRIVER)).c | |
421 | endif | |
28929ad0 | 422 | endif |
7f0def77 | 423 | COMMON_VPATH += $(QUANTUM_PATH)/split_common |
8e1be7c7 | 424 | endif |
0a645225 | 425 | |
5f9f62fb JC |
426 | HAPTIC_ENABLE ?= no |
427 | ifneq ($(strip $(HAPTIC_ENABLE)),no) | |
428 | COMMON_VPATH += $(DRIVER_PATH)/haptic | |
429 | SRC += haptic.c | |
430 | OPT_DEFS += -DHAPTIC_ENABLE | |
431 | endif | |
432 | ||
433 | ifneq ($(filter DRV2605L, $(HAPTIC_ENABLE)), ) | |
434 | SRC += DRV2605L.c | |
435 | QUANTUM_LIB_SRC += i2c_master.c | |
436 | OPT_DEFS += -DDRV2605L | |
437 | endif | |
438 | ||
439 | ifneq ($(filter SOLENOID, $(HAPTIC_ENABLE)), ) | |
440 | SRC += solenoid.c | |
441 | OPT_DEFS += -DSOLENOID_ENABLE | |
442 | endif | |
443 | ||
444 | ifeq ($(strip $(HD44780_ENABLE)), yes) | |
445 | SRC += drivers/avr/hd44780.c | |
446 | OPT_DEFS += -DHD44780_ENABLE | |
447 | endif | |
448 | ||
0a645225 RC |
449 | ifeq ($(strip $(OLED_DRIVER_ENABLE)), yes) |
450 | OPT_DEFS += -DOLED_DRIVER_ENABLE | |
451 | COMMON_VPATH += $(DRIVER_PATH)/oled | |
452 | QUANTUM_LIB_SRC += i2c_master.c | |
453 | SRC += oled_driver.c | |
454 | endif | |
c745d9b8 | 455 | |
5f9f62fb JC |
456 | include $(DRIVER_PATH)/qwiic/qwiic.mk |
457 | ||
458 | ifeq ($(strip $(UCIS_ENABLE)), yes) | |
459 | OPT_DEFS += -DUCIS_ENABLE | |
460 | UNICODE_COMMON := yes | |
461 | SRC += $(QUANTUM_DIR)/process_keycode/process_ucis.c | |
462 | endif | |
463 | ||
464 | ifeq ($(strip $(UNICODEMAP_ENABLE)), yes) | |
465 | OPT_DEFS += -DUNICODEMAP_ENABLE | |
466 | UNICODE_COMMON := yes | |
467 | SRC += $(QUANTUM_DIR)/process_keycode/process_unicodemap.c | |
468 | endif | |
469 | ||
470 | ifeq ($(strip $(UNICODE_ENABLE)), yes) | |
471 | OPT_DEFS += -DUNICODE_ENABLE | |
472 | UNICODE_COMMON := yes | |
473 | SRC += $(QUANTUM_DIR)/process_keycode/process_unicode.c | |
474 | endif | |
475 | ||
476 | ifeq ($(strip $(UNICODE_COMMON)), yes) | |
477 | SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c | |
478 | endif | |
479 | ||
c745d9b8 X |
480 | SPACE_CADET_ENABLE ?= yes |
481 | ifeq ($(strip $(SPACE_CADET_ENABLE)), yes) | |
5f9f62fb JC |
482 | SRC += $(QUANTUM_DIR)/process_keycode/process_space_cadet.c |
483 | OPT_DEFS += -DSPACE_CADET_ENABLE | |
c745d9b8 | 484 | endif |
dab4967f | 485 | |
d598f01c JC |
486 | MAGIC_ENABLE ?= yes |
487 | ifeq ($(strip $(MAGIC_ENABLE)), yes) | |
488 | SRC += $(QUANTUM_DIR)/process_keycode/process_magic.c | |
489 | OPT_DEFS += -DMAGIC_KEYCODE_ENABLE | |
dab4967f | 490 | endif |
542cb0a8 | 491 | |
393937b4 JC |
492 | GRAVE_ESC_ENABLE ?= yes |
493 | ifeq ($(strip $(GRAVE_ESC_ENABLE)), yes) | |
494 | SRC += $(QUANTUM_DIR)/process_keycode/process_grave_esc.c | |
495 | OPT_DEFS += -DGRAVE_ESC_ENABLE | |
496 | endif | |
497 | ||
542cb0a8 DJ |
498 | ifeq ($(strip $(DYNAMIC_MACRO_ENABLE)), yes) |
499 | SRC += $(QUANTUM_DIR)/process_keycode/process_dynamic_macro.c | |
500 | OPT_DEFS += -DDYNAMIC_MACRO_ENABLE | |
501 | endif | |
5f9f62fb JC |
502 | |
503 | ifeq ($(strip $(COMBO_ENABLE)), yes) | |
504 | SRC += $(QUANTUM_DIR)/process_keycode/process_combo.c | |
505 | OPT_DEFS += -DCOMBO_ENABLE | |
506 | endif | |
507 | ||
508 | ifeq ($(strip $(TAP_DANCE_ENABLE)), yes) | |
509 | SRC += $(QUANTUM_DIR)/process_keycode/process_tap_dance.c | |
510 | OPT_DEFS += -DTAP_DANCE_ENABLE | |
511 | endif | |
512 | ||
513 | ifeq ($(strip $(KEY_LOCK_ENABLE)), yes) | |
514 | SRC += $(QUANTUM_DIR)/process_keycode/process_key_lock.c | |
515 | OPT_DEFS += -DKEY_LOCK_ENABLE | |
516 | endif | |
517 | ||
518 | ifeq ($(strip $(LEADER_ENABLE)), yes) | |
519 | SRC += $(QUANTUM_DIR)/process_keycode/process_leader.c | |
520 | OPT_DEFS += -DLEADER_ENABLE | |
521 | endif | |
522 | ||
523 | ifeq ($(strip $(AUTO_SHIFT_ENABLE)), yes) | |
524 | SRC += $(QUANTUM_DIR)/process_keycode/process_auto_shift.c | |
525 | OPT_DEFS += -DAUTO_SHIFT_ENABLE | |
526 | ifeq ($(strip $(AUTO_SHIFT_MODIFIERS)), yes) | |
527 | OPT_DEFS += -DAUTO_SHIFT_MODIFIERS | |
528 | endif | |
529 | endif |