aboutsummaryrefslogtreecommitdiff
path: root/common_features.mk
diff options
context:
space:
mode:
authorJames Young <18669334+noroadsleft@users.noreply.github.com>2020-11-28 12:02:18 -0800
committerGitHub <noreply@github.com>2020-11-28 12:02:18 -0800
commitc66df1664497546f32662409778731143e45a552 (patch)
treeda73a2d532a27685a31d932b3a44a707d4a3af81 /common_features.mk
parent15385d4113414d42bd062c60c9de5df797d3157f (diff)
downloadqmk_firmware-c66df1664497546f32662409778731143e45a552.tar.gz
qmk_firmware-c66df1664497546f32662409778731143e45a552.zip
2020 November 28 Breaking Changes Update (#11053)
* Branch point for 2020 November 28 Breaking Change * Remove matrix_col_t to allow MATRIX_ROWS > 32 (#10183) * Add support for soft serial to ATmega32U2 (#10204) * Change MIDI velocity implementation to allow direct control of velocity value (#9940) * Add ability to build a subset of all keyboards based on platform. * Actually use eeprom_driver_init(). * Make bootloader_jump weak for ChibiOS. (#10417) * Joystick 16-bit support (#10439) * Per-encoder resolutions (#10259) * Share button state from mousekey to pointing_device (#10179) * Add hotfix for chibios keyboards not wake (#10088) * Add advanced/efficient RGB Matrix Indicators (#8564) * Naming change. * Support for STM32 GPIOF,G,H,I,J,K (#10206) * Add milc as a dependency and remove the installed milc (#10563) * ChibiOS upgrade: early init conversions (#10214) * ChibiOS upgrade: configuration file migrator (#9952) * Haptic and solenoid cleanup (#9700) * XD75 cleanup (#10524) * OLED display update interval support (#10388) * Add definition based on currently-selected serial driver. (#10716) * New feature: Retro Tapping per key (#10622) * Allow for modification of output RGB values when using rgblight/rgb_matrix. (#10638) * Add housekeeping task callbacks so that keyboards/keymaps are capable of executing code for each main loop iteration. (#10530) * Rescale both ChibiOS and AVR backlighting. * Reduce Helix keyboard build variation (#8669) * Minor change to behavior allowing display updates to continue between task ticks (#10750) * Some GPIO manipulations in matrix.c change to atomic. (#10491) * qmk cformat (#10767) * [Keyboard] Update the Speedo firmware for v3.0 (#10657) * Maartenwut/Maarten namechange to evyd13/Evy (#10274) * [quantum] combine repeated lines of code (#10837) * Add step sequencer feature (#9703) * aeboards/ext65 refactor (#10820) * Refactor xelus/dawn60 for Rev2 later (#10584) * add DEBUG_MATRIX_SCAN_RATE_ENABLE to common_features.mk (#10824) * [Core] Added `add_oneshot_mods` & `del_oneshot_mods` (#10549) * update chibios os usb for the otg driver (#8893) * Remove HD44780 References, Part 4 (#10735) * [Keyboard] Add Valor FRL TKL (+refactor) (#10512) * Fix cursor position bug in oled_write_raw functions (#10800) * Fixup version.h writing when using SKIP_VERSION=yes (#10972) * Allow for certain code in the codebase assuming length of string. (#10974) * Add AT90USB support for serial.c (#10706) * Auto shift: support repeats and early registration (#9826) * Rename ledmatrix.h to match .c file (#7949) * Split RGB_MATRIX_ENABLE into _ENABLE and _DRIVER (#10231) * Split LED_MATRIX_ENABLE into _ENABLE and _DRIVER (#10840) * Merge point for 2020 Nov 28 Breaking Change
Diffstat (limited to 'common_features.mk')
-rw-r--r--common_features.mk122
1 files changed, 68 insertions, 54 deletions
diff --git a/common_features.mk b/common_features.mk
index ba66c5324..8ac53ec45 100644
--- a/common_features.mk
+++ b/common_features.mk
@@ -21,6 +21,11 @@ QUANTUM_SRC += \
21 $(QUANTUM_DIR)/keymap_common.c \ 21 $(QUANTUM_DIR)/keymap_common.c \
22 $(QUANTUM_DIR)/keycode_config.c 22 $(QUANTUM_DIR)/keycode_config.c
23 23
24ifeq ($(strip $(DEBUG_MATRIX_SCAN_RATE_ENABLE)), yes)
25 OPT_DEFS += -DDEBUG_MATRIX_SCAN_RATE
26 CONSOLE_ENABLE = yes
27endif
28
24ifeq ($(strip $(API_SYSEX_ENABLE)), yes) 29ifeq ($(strip $(API_SYSEX_ENABLE)), yes)
25 OPT_DEFS += -DAPI_SYSEX_ENABLE 30 OPT_DEFS += -DAPI_SYSEX_ENABLE
26 OPT_DEFS += -DAPI_ENABLE 31 OPT_DEFS += -DAPI_ENABLE
@@ -39,6 +44,13 @@ ifeq ($(strip $(AUDIO_ENABLE)), yes)
39 SRC += $(QUANTUM_DIR)/audio/luts.c 44 SRC += $(QUANTUM_DIR)/audio/luts.c
40endif 45endif
41 46
47ifeq ($(strip $(SEQUENCER_ENABLE)), yes)
48 OPT_DEFS += -DSEQUENCER_ENABLE
49 MUSIC_ENABLE = yes
50 SRC += $(QUANTUM_DIR)/sequencer/sequencer.c
51 SRC += $(QUANTUM_DIR)/process_keycode/process_sequencer.c
52endif
53
42ifeq ($(strip $(MIDI_ENABLE)), yes) 54ifeq ($(strip $(MIDI_ENABLE)), yes)
43 OPT_DEFS += -DMIDI_ENABLE 55 OPT_DEFS += -DMIDI_ENABLE
44 MUSIC_ENABLE = yes 56 MUSIC_ENABLE = yes
@@ -156,12 +168,14 @@ ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
156 endif 168 endif
157endif 169endif
158 170
159VALID_MATRIX_TYPES := yes IS31FL3731 IS31FL3733 IS31FL3737 IS31FL3741 WS2812 custom
160 171
161LED_MATRIX_ENABLE ?= no 172LED_MATRIX_ENABLE ?= no
162ifneq ($(strip $(LED_MATRIX_ENABLE)), no) 173VALID_LED_MATRIX_TYPES := IS31FL3731 custom
163 ifeq ($(filter $(LED_MATRIX_ENABLE),$(VALID_MATRIX_TYPES)),) 174# TODO: IS31FL3733 IS31FL3737 IS31FL3741
164 $(error LED_MATRIX_ENABLE="$(LED_MATRIX_ENABLE)" is not a valid matrix type) 175
176ifeq ($(strip $(LED_MATRIX_ENABLE)), yes)
177 ifeq ($(filter $(LED_MATRIX_DRIVER),$(VALID_LED_MATRIX_TYPES)),)
178 $(error LED_MATRIX_DRIVER="$(LED_MATRIX_DRIVER)" is not a valid matrix type)
165 else 179 else
166 BACKLIGHT_ENABLE = yes 180 BACKLIGHT_ENABLE = yes
167 BACKLIGHT_DRIVER = custom 181 BACKLIGHT_DRIVER = custom
@@ -169,21 +183,22 @@ ifneq ($(strip $(LED_MATRIX_ENABLE)), no)
169 SRC += $(QUANTUM_DIR)/led_matrix.c 183 SRC += $(QUANTUM_DIR)/led_matrix.c
170 SRC += $(QUANTUM_DIR)/led_matrix_drivers.c 184 SRC += $(QUANTUM_DIR)/led_matrix_drivers.c
171 endif 185 endif
172endif
173 186
174ifeq ($(strip $(LED_MATRIX_ENABLE)), IS31FL3731) 187 ifeq ($(strip $(LED_MATRIX_DRIVER)), IS31FL3731)
175 OPT_DEFS += -DIS31FL3731 188 OPT_DEFS += -DIS31FL3731 -DSTM32_I2C -DHAL_USE_I2C=TRUE
176 COMMON_VPATH += $(DRIVER_PATH)/issi 189 COMMON_VPATH += $(DRIVER_PATH)/issi
177 SRC += is31fl3731-simple.c 190 SRC += is31fl3731-simple.c
178 QUANTUM_LIB_SRC += i2c_master.c 191 QUANTUM_LIB_SRC += i2c_master.c
192 endif
179endif 193endif
180 194
181RGB_MATRIX_ENABLE ?= no 195RGB_MATRIX_ENABLE ?= no
196VALID_RGB_MATRIX_TYPES := IS31FL3731 IS31FL3733 IS31FL3737 IS31FL3741 WS2812 custom
182 197
183ifneq ($(strip $(RGB_MATRIX_ENABLE)), no) 198ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
184ifeq ($(filter $(RGB_MATRIX_ENABLE),$(VALID_MATRIX_TYPES)),) 199 ifeq ($(filter $(RGB_MATRIX_DRIVER),$(VALID_RGB_MATRIX_TYPES)),)
185 $(error RGB_MATRIX_ENABLE="$(RGB_MATRIX_ENABLE)" is not a valid matrix type) 200 $(error "$(RGB_MATRIX_DRIVER)" is not a valid matrix type)
186endif 201 endif
187 OPT_DEFS += -DRGB_MATRIX_ENABLE 202 OPT_DEFS += -DRGB_MATRIX_ENABLE
188ifneq (,$(filter $(MCU), atmega16u2 atmega32u2)) 203ifneq (,$(filter $(MCU), atmega16u2 atmega32u2))
189 # ATmegaxxU2 does not have hardware MUL instruction - lib8tion must be told to use software multiplication routines 204 # ATmegaxxU2 does not have hardware MUL instruction - lib8tion must be told to use software multiplication routines
@@ -194,51 +209,47 @@ endif
194 SRC += $(QUANTUM_DIR)/rgb_matrix_drivers.c 209 SRC += $(QUANTUM_DIR)/rgb_matrix_drivers.c
195 CIE1931_CURVE := yes 210 CIE1931_CURVE := yes
196 RGB_KEYCODES_ENABLE := yes 211 RGB_KEYCODES_ENABLE := yes
197endif
198
199ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
200 RGB_MATRIX_ENABLE := IS31FL3731
201endif
202 212
203ifeq ($(strip $(RGB_MATRIX_ENABLE)), IS31FL3731) 213 ifeq ($(strip $(RGB_MATRIX_DRIVER)), IS31FL3731)
204 OPT_DEFS += -DIS31FL3731 -DSTM32_I2C -DHAL_USE_I2C=TRUE 214 OPT_DEFS += -DIS31FL3731 -DSTM32_I2C -DHAL_USE_I2C=TRUE
205 COMMON_VPATH += $(DRIVER_PATH)/issi 215 COMMON_VPATH += $(DRIVER_PATH)/issi
206 SRC += is31fl3731.c 216 SRC += is31fl3731.c
207 QUANTUM_LIB_SRC += i2c_master.c 217 QUANTUM_LIB_SRC += i2c_master.c
208endif 218 endif
209 219
210ifeq ($(strip $(RGB_MATRIX_ENABLE)), IS31FL3733) 220 ifeq ($(strip $(RGB_MATRIX_DRIVER)), IS31FL3733)
211 OPT_DEFS += -DIS31FL3733 -DSTM32_I2C -DHAL_USE_I2C=TRUE 221 OPT_DEFS += -DIS31FL3733 -DSTM32_I2C -DHAL_USE_I2C=TRUE
212 COMMON_VPATH += $(DRIVER_PATH)/issi 222 COMMON_VPATH += $(DRIVER_PATH)/issi
213 SRC += is31fl3733.c 223 SRC += is31fl3733.c
214 QUANTUM_LIB_SRC += i2c_master.c 224 QUANTUM_LIB_SRC += i2c_master.c
215endif 225 endif
216 226
217ifeq ($(strip $(RGB_MATRIX_ENABLE)), IS31FL3737) 227 ifeq ($(strip $(RGB_MATRIX_DRIVER)), IS31FL3737)
218 OPT_DEFS += -DIS31FL3737 -DSTM32_I2C -DHAL_USE_I2C=TRUE 228 OPT_DEFS += -DIS31FL3737 -DSTM32_I2C -DHAL_USE_I2C=TRUE
219 COMMON_VPATH += $(DRIVER_PATH)/issi 229 COMMON_VPATH += $(DRIVER_PATH)/issi
220 SRC += is31fl3737.c 230 SRC += is31fl3737.c
221 QUANTUM_LIB_SRC += i2c_master.c 231 QUANTUM_LIB_SRC += i2c_master.c
222endif 232 endif
223 233
224ifeq ($(strip $(RGB_MATRIX_ENABLE)), IS31FL3741) 234 ifeq ($(strip $(RGB_MATRIX_DRIVER)), IS31FL3741)
225 OPT_DEFS += -DIS31FL3741 -DSTM32_I2C -DHAL_USE_I2C=TRUE 235 OPT_DEFS += -DIS31FL3741 -DSTM32_I2C -DHAL_USE_I2C=TRUE
226 COMMON_VPATH += $(DRIVER_PATH)/issi 236 COMMON_VPATH += $(DRIVER_PATH)/issi
227 SRC += is31fl3741.c 237 SRC += is31fl3741.c
228 QUANTUM_LIB_SRC += i2c_master.c 238 QUANTUM_LIB_SRC += i2c_master.c
229endif 239 endif
230 240
231ifeq ($(strip $(RGB_MATRIX_ENABLE)), WS2812) 241 ifeq ($(strip $(RGB_MATRIX_DRIVER)), WS2812)
232 OPT_DEFS += -DWS2812 242 OPT_DEFS += -DWS2812
233 WS2812_DRIVER_REQUIRED := yes 243 WS2812_DRIVER_REQUIRED := yes
234endif 244 endif
235 245
236ifeq ($(strip $(RGB_MATRIX_CUSTOM_KB)), yes) 246 ifeq ($(strip $(RGB_MATRIX_CUSTOM_KB)), yes)
237 OPT_DEFS += -DRGB_MATRIX_CUSTOM_KB 247 OPT_DEFS += -DRGB_MATRIX_CUSTOM_KB
238endif 248 endif
239 249
240ifeq ($(strip $(RGB_MATRIX_CUSTOM_USER)), yes) 250 ifeq ($(strip $(RGB_MATRIX_CUSTOM_USER)), yes)
241 OPT_DEFS += -DRGB_MATRIX_CUSTOM_USER 251 OPT_DEFS += -DRGB_MATRIX_CUSTOM_USER
252 endif
242endif 253endif
243 254
244ifeq ($(strip $(RGB_KEYCODES_ENABLE)), yes) 255ifeq ($(strip $(RGB_KEYCODES_ENABLE)), yes)
@@ -444,11 +455,14 @@ ifeq ($(strip $(SPLIT_KEYBOARD)), yes)
444 # Functions added via QUANTUM_LIB_SRC are only included in the final binary if they're called. 455 # Functions added via QUANTUM_LIB_SRC are only included in the final binary if they're called.
445 # Unused functions are pruned away, which is why we can add multiple drivers here without bloat. 456 # Unused functions are pruned away, which is why we can add multiple drivers here without bloat.
446 ifeq ($(PLATFORM),AVR) 457 ifeq ($(PLATFORM),AVR)
447 QUANTUM_LIB_SRC += i2c_master.c \ 458 ifneq ($(NO_I2C),yes)
448 i2c_slave.c 459 QUANTUM_LIB_SRC += i2c_master.c \
460 i2c_slave.c
461 endif
449 endif 462 endif
450 463
451 SERIAL_DRIVER ?= bitbang 464 SERIAL_DRIVER ?= bitbang
465 OPT_DEFS += -DSERIAL_DRIVER_$(strip $(shell echo $(SERIAL_DRIVER) | tr '[:lower:]' '[:upper:]'))
452 ifeq ($(strip $(SERIAL_DRIVER)), bitbang) 466 ifeq ($(strip $(SERIAL_DRIVER)), bitbang)
453 QUANTUM_LIB_SRC += serial.c 467 QUANTUM_LIB_SRC += serial.c
454 else 468 else