# Copyright (c) 2022 Takeshi Ishii (mtei@github) # SPDX-License-Identifier: GPL-2.0-or-later # # make USROPT=,,... : # options: # dispoff: OLED, RGBLIGHT disable # oled: OLED enable # no-oled: OLED disable # rgblight: RGBLIGHT enable # no-rgblight: RGBLIGHT disable # no_ani: RGBLIGHT ANIMATIONS disable # mini-ani: RGBLIGHT ANIMATIONS mini set # ani: RGBLIGHT ANIMATIONS enable # scan: DEBUG_MATRIX_SCAN_RATE enable # scan-api: DEBUG_MATRIX_SCAN_RATE api enable # mdelay= MATRIX_IO_DELAY set # mdelay_type= use custom matrix_output_unselect_delay() # type=no,ondemand # enc: ENCODER enable # no-enc: ENCODER disable # ifneq ($(strip $(USROPT)),) define USER_OPTION_PARSE # parse 'debug', 'no-debug', 'dispoff', 'consle', 'scan', 'no-scan', 'scan-api', # 'mdelay=?', 'mdelay0', 'colemak', 'dvorak', 'eucalyn', 'lto', 'no-lto' $(if $(SHOW_PARSE),$(info parse .$1.)) #for debug 'make SHOW_PARSE=y ...' ifeq ($(strip $1),debug) DEBUG_CONFIG = yes endif ifneq ($(filter nodebug no-debug no_debug,$(strip $1)),) DEBUG_CONFIG = no endif ifeq ($(strip $1),dispoff) OLED_ENABLE = no RGBLIGHT_ENABLE = no LED_BACK_ENABLE = no LED_UNDERGLOW_ENABLE = no endif ifneq ($(filter rgblight,$(strip $1)),) RGBLIGHT_ENABLE = yes LED_BACK_ENABLE = yes endif ifneq ($(filter norgblight no-rgblight,$(strip $1)),) RGBLIGHT_ENABLE = no LED_BACK_ENABLE = no LED_UNDERGLOW_ENABLE = no endif ifneq ($(filter na no_ani no-ani,$(strip $1)),) LED_ANIMATIONS = no endif ifneq ($(filter mini-ani mini_ani,$(strip $1)),) LED_ANIMATIONS = mini endif ifneq ($(filter ani animation,$(strip $1)),) LED_ANIMATIONS = yes endif ifneq ($(filter nooled no-oled,$(strip $1)),) OLED_ENABLE = no endif ifeq ($(strip $1),oled) OLED_ENABLE = yes endif ifeq ($(strip $1),console) CONSOLE_ENABLE = yes endif ifeq ($(strip $1),scan) # use DEBUG_MATRIX_SCAN_RATE # see docs/newbs_testing_debugging.md DEBUG_MATRIX_SCAN_RATE_ENABLE = yes endif ifeq ($(strip $1),no-scan) DEBUG_MATRIX_SCAN_RATE_ENABLE = no endif ifeq ($(strip $1),scan-api) # use DEBUG_MATRIX_SCAN_RATE # see docs/newbs_testing_debugging.md DEBUG_MATRIX_SCAN_RATE_ENABLE = api endif ifneq ($(filter stimer sync-timer,$(strip $1)),) SYNC_TIMER_ENABLE = yes endif ifneq ($(filter nostimer no-sync-timer,$(strip $1)),) SYNC_TIMER_ENABLE = no endif ifeq ($(filter mdelay_type=%,$1),mdelay_type=no) CUSTOM_MATRIX_DELAY = no endif ifeq ($(filter mdelay_type=%,$1),mdelay_type=demand) CUSTOM_MATRIX_DELAY = on-demand endif ifneq ($(filter mdelay=%,$1),) MDELAY = $(patsubst mdelay=%,%,$1) endif ifeq ($(strip $1),mdelay0) MDELAY = 0 endif ifeq ($(strip $1),colemak) ENABLE_COLEMAK = yes endif ifeq ($(strip $1),dvorak) ENABLE_DVORAK = yes endif ifeq ($(strip $1),eucalyn) ENABLE_EUCALYN = yes endif ifeq ($(strip $1),lto) LTO_ENABLE = yes endif ifneq ($(filter nolto no-lto no_lto,$(strip $1)),) LTO_ENABLE = no endif ifneq ($(filter enc,$(strip $1)),) ENCODER_ENABLE = yes endif ifneq ($(filter noenc no-enc no_enc,$(strip $1)),) ENCODER_ENABLE = no endif ifneq ($(filter debugenc debug-enc debug_enc,$(strip $1)),) DEBUG_ENCODER = yes endif endef # end of USER_OPTION_PARSE COMMA=, $(eval $(foreach A_OPTION_NAME,$(subst $(COMMA), ,$(USROPT)), \ $(call USER_OPTION_PARSE,$(A_OPTION_NAME)))) endif