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