summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZach White <skullydazed@gmail.com>2021-01-30 13:08:58 -0800
committerGitHub <noreply@github.com>2021-01-30 13:08:58 -0800
commitd02c4c5241b92396c883b9efa6f140236e74fa2d (patch)
tree22493acec4fc67a4623d9b3d49deb21e63abb722
parent92a787ca4cdecbbb7e2c1394d5192d5fa3dabf6d (diff)
Add a <FEATURE>_SUPPORTED flag (#9058)
* Initial attempt at allowing keyboards to indicate what features they do not support * try to use a for loop instead * Update disable_features.mk Co-authored-by: Drashna Jaelre <drashna@live.com> * add a few more features * remove my test fixture * disable things that make all:all suggested" Co-authored-by: Zach White <skullydazed@users.noreply.github.com> Co-authored-by: Drashna Jaelre <drashna@live.com>
-rw-r--r--build_keyboard.mk3
-rw-r--r--disable_features.mk31
-rw-r--r--keyboards/40percentclub/4x4/rules.mk5
-rw-r--r--keyboards/40percentclub/gherkin/rules.mk4
-rw-r--r--keyboards/40percentclub/nori/rules.mk3
-rw-r--r--keyboards/acheron/shark/rules.mk5
-rw-r--r--keyboards/amjkeyboard/amj66/rules.mk4
-rw-r--r--keyboards/boardsource/4x12/rules.mk5
-rw-r--r--keyboards/boardsource/5x12/rules.mk5
-rw-r--r--keyboards/chimera_ls/rules.mk5
-rw-r--r--keyboards/clueboard/66_hotswap/gen1/rules.mk4
-rwxr-xr-xkeyboards/contra/rules.mk5
-rw-r--r--keyboards/crkbd/rev1/legacy/rules.mk3
-rw-r--r--keyboards/dm9records/plaid/rules.mk5
-rw-r--r--keyboards/dm9records/tartan/rules.mk5
-rw-r--r--keyboards/efreet/rules.mk4
-rw-r--r--keyboards/ergodox_ez/rules.mk4
-rw-r--r--keyboards/evyd13/eon40/rules.mk5
-rw-r--r--keyboards/evyd13/nt660/rules.mk5
-rw-r--r--keyboards/evyd13/pockettype/rules.mk5
-rwxr-xr-xkeyboards/fractal/rules.mk5
-rw-r--r--keyboards/jj40/rules.mk3
-rw-r--r--keyboards/jnao/rules.mk4
-rw-r--r--keyboards/kbdfans/kbd4x/rules.mk3
-rw-r--r--keyboards/keebio/levinson/rev3/rules.mk4
-rw-r--r--keyboards/keebio/wavelet/rules.mk3
-rw-r--r--keyboards/lazydesigners/dimple/rules.mk4
-rw-r--r--keyboards/lets_split/rev2/rules.mk2
-rw-r--r--keyboards/lets_split/sockets/rules.mk3
-rw-r--r--keyboards/lets_split_eh/eh/rules.mk3
-rw-r--r--keyboards/mechstudio/ud_40_ortho/rules.mk4
-rw-r--r--keyboards/meira/promicro/rules.mk4
-rw-r--r--keyboards/montsinger/rebound/rev4/rules.mk4
-rw-r--r--keyboards/niu_mini/rules.mk4
-rw-r--r--keyboards/quark/rules.mk4
-rw-r--r--keyboards/redox/rules.mk4
-rw-r--r--keyboards/rgbkb/zygomorph/rules.mk4
-rw-r--r--keyboards/signum/3_0/elitec/rules.mk5
-rw-r--r--keyboards/spaceman/pancake/feather/rules.mk5
-rw-r--r--keyboards/spaceman/pancake/promicro/rules.mk5
-rw-r--r--keyboards/telophase/rules.mk5
-rw-r--r--keyboards/vitamins_included/rev2/rules.mk3
-rwxr-xr-xkeyboards/zlant/rules.mk4
-rw-r--r--keyboards/zvecr/split_blackpill/rules.mk4
-rw-r--r--keyboards/zvecr/zv48/f401/rules.mk4
45 files changed, 211 insertions, 1 deletions
diff --git a/build_keyboard.mk b/build_keyboard.mk
index 2b725ea68d..fdc17c907d 100644
--- a/build_keyboard.mk
+++ b/build_keyboard.mk
@@ -283,6 +283,9 @@ ifneq ("$(wildcard $(USER_PATH)/config.h)","")
CONFIG_H += $(USER_PATH)/config.h
endif
+# Disable features that a keyboard doesn't support
+-include disable_features.mk
+
# Object files directory
# To put object files in current directory, use a dot (.), do NOT make
# this an empty or blank macro!
diff --git a/disable_features.mk b/disable_features.mk
new file mode 100644
index 0000000000..84d8316eac
--- /dev/null
+++ b/disable_features.mk
@@ -0,0 +1,31 @@
+# Unconditionally disable features that a keyboard advertises it doesn't support
+
+FEATURE_NAMES :=
+FEATURE_NAMES += ADAFRUIT_BLE
+FEATURE_NAMES += AUDIO
+FEATURE_NAMES += BACKLIGHT
+FEATURE_NAMES += BLUETOOTH
+FEATURE_NAMES += DIP_SWITCH
+FEATURE_NAMES += DYNAMIC_KEYMAP
+FEATURE_NAMES += ENCODER
+FEATURE_NAMES += HAPTIC
+FEATURE_NAMES += HD44780
+FEATURE_NAMES += IOS_DEVICE
+FEATURE_NAMES += LCD_BACKLIGHT
+FEATURE_NAMES += LCD
+FEATURE_NAMES += OLED
+FEATURE_NAMES += POINTING_DEVICE
+FEATURE_NAMES += PRINTING
+FEATURE_NAMES += PS2_MOUSE
+FEATURE_NAMES += RGBLIGHT
+FEATURE_NAMES += RGB_MATRIX
+FEATURE_NAMES += SLEEP_LED
+FEATURE_NAMES += SERIAL_LINK
+FEATURE_NAMES += STENO
+FEATURE_NAMES += SWAP_HANDS
+FEATURE_NAMES += VISUALIZER
+FEATURE_NAMES += WATCHDOG
+FEATURE_NAMES += XT
+
+$(foreach AFEATURE,$(FEATURE_NAMES),\
+ $(if $(filter $($(AFEATURE)_SUPPORTED),no),$(eval $(AFEATURE)_ENABLE=no)))
diff --git a/keyboards/40percentclub/4x4/rules.mk b/keyboards/40percentclub/4x4/rules.mk
index 08d4b4a40c..e092372d7d 100644
--- a/keyboards/40percentclub/4x4/rules.mk
+++ b/keyboards/40percentclub/4x4/rules.mk
@@ -31,3 +31,8 @@ AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
LAYOUTS = ortho_4x4 ortho_4x8 ortho_4x12 ortho_4x16
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
diff --git a/keyboards/40percentclub/gherkin/rules.mk b/keyboards/40percentclub/gherkin/rules.mk
index d8c4894a85..db971e00ef 100644
--- a/keyboards/40percentclub/gherkin/rules.mk
+++ b/keyboards/40percentclub/gherkin/rules.mk
@@ -26,3 +26,7 @@ AUDIO_ENABLE = no
RGBLIGHT_ENABLE = no
LAYOUTS = ortho_3x10
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
diff --git a/keyboards/40percentclub/nori/rules.mk b/keyboards/40percentclub/nori/rules.mk
index 5fbdb3ac0b..df09b0bdee 100644
--- a/keyboards/40percentclub/nori/rules.mk
+++ b/keyboards/40percentclub/nori/rules.mk
@@ -32,3 +32,6 @@ AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
LAYOUTS = ortho_4x4 ortho_4x8 ortho_4x12
+
+# Disable unsupported hardware
+AUDIO_SUPPORTED = no
diff --git a/keyboards/acheron/shark/rules.mk b/keyboards/acheron/shark/rules.mk
index 1bd963c817..71305883b5 100644
--- a/keyboards/acheron/shark/rules.mk
+++ b/keyboards/acheron/shark/rules.mk
@@ -22,3 +22,8 @@ AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
LAYOUTS = ortho_4x12
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
diff --git a/keyboards/amjkeyboard/amj66/rules.mk b/keyboards/amjkeyboard/amj66/rules.mk
index b5d3f1ee35..e65c6c1c73 100644
--- a/keyboards/amjkeyboard/amj66/rules.mk
+++ b/keyboards/amjkeyboard/amj66/rules.mk
@@ -31,3 +31,7 @@ AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
LAYOUTS = 66_ansi 66_iso
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
diff --git a/keyboards/boardsource/4x12/rules.mk b/keyboards/boardsource/4x12/rules.mk
index 0999b9d62b..dea0aa2a91 100644
--- a/keyboards/boardsource/4x12/rules.mk
+++ b/keyboards/boardsource/4x12/rules.mk
@@ -30,3 +30,8 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
LAYOUTS = ortho_4x12
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
diff --git a/keyboards/boardsource/5x12/rules.mk b/keyboards/boardsource/5x12/rules.mk
index f26c7fa800..de6f7bd3cf 100644
--- a/keyboards/boardsource/5x12/rules.mk
+++ b/keyboards/boardsource/5x12/rules.mk
@@ -31,3 +31,8 @@ AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
LAYOUTS = ortho_5x12
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
diff --git a/keyboards/chimera_ls/rules.mk b/keyboards/chimera_ls/rules.mk
index ecab7133a4..162e06aaf7 100644
--- a/keyboards/chimera_ls/rules.mk
+++ b/keyboards/chimera_ls/rules.mk
@@ -38,3 +38,8 @@ CHIMERA_LS_UPLOAD_COMMAND = while [ ! -r $(USB) ]; do sleep 1; done; \
SRC = matrix.c
LAYOUTS = ortho_4x12
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
diff --git a/keyboards/clueboard/66_hotswap/gen1/rules.mk b/keyboards/clueboard/66_hotswap/gen1/rules.mk
index 0f5f71ac6d..a582144d3a 100644
--- a/keyboards/clueboard/66_hotswap/gen1/rules.mk
+++ b/keyboards/clueboard/66_hotswap/gen1/rules.mk
@@ -18,4 +18,6 @@ NKRO_ENABLE = yes # USB Nkey Rollover
AUDIO_ENABLE = yes
# SERIAL_LINK_ENABLE = yes
-LAYOUTS = 66_ansi
+# project specific files
+SRC = led.c
+LAYOUTS += 66_ansi
diff --git a/keyboards/contra/rules.mk b/keyboards/contra/rules.mk
index de553f57dd..5894ca1326 100755
--- a/keyboards/contra/rules.mk
+++ b/keyboards/contra/rules.mk
@@ -29,3 +29,8 @@ AUDIO_ENABLE = no # Audio output on port C6
LAYOUTS = planck_mit ortho_4x12
LAYOUTS_HAS_RGB = no
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
diff --git a/keyboards/crkbd/rev1/legacy/rules.mk b/keyboards/crkbd/rev1/legacy/rules.mk
index 2bef242977..94c5fe0242 100644
--- a/keyboards/crkbd/rev1/legacy/rules.mk
+++ b/keyboards/crkbd/rev1/legacy/rules.mk
@@ -5,3 +5,6 @@ SRC += matrix.c \
split_scomm.c
QUANTUM_LIB_SRC += i2c.c serial.c
+
+# Disable unsupported hardware
+BACKLIGHT_SUPPORTED = no
diff --git a/keyboards/dm9records/plaid/rules.mk b/keyboards/dm9records/plaid/rules.mk
index 84075f0f02..315af26930 100644
--- a/keyboards/dm9records/plaid/rules.mk
+++ b/keyboards/dm9records/plaid/rules.mk
@@ -33,3 +33,8 @@ FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
LAYOUTS = ortho_4x12 planck_mit
LAYOUTS_HAS_RGB = no
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
diff --git a/keyboards/dm9records/tartan/rules.mk b/keyboards/dm9records/tartan/rules.mk
index de2f52d421..241f8404f6 100644
--- a/keyboards/dm9records/tartan/rules.mk
+++ b/keyboards/dm9records/tartan/rules.mk
@@ -33,3 +33,8 @@ FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
LAYOUTS = 60_ansi 60_ansi_split_bs_rshift 60_iso 60_iso_split_bs_rshift
LAYOUTS_HAS_RGB = no
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
diff --git a/keyboards/efreet/rules.mk b/keyboards/efreet/rules.mk
index a9a438746e..eeacc5199b 100644
--- a/keyboards/efreet/rules.mk
+++ b/keyboards/efreet/rules.mk
@@ -22,3 +22,7 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output
LAYOUTS = ortho_4x12 planck_mit
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
diff --git a/keyboards/ergodox_ez/rules.mk b/keyboards/ergodox_ez/rules.mk
index b94990a96f..1000ef7863 100644
--- a/keyboards/ergodox_ez/rules.mk
+++ b/keyboards/ergodox_ez/rules.mk
@@ -41,3 +41,7 @@ SRC += matrix.c \
QUANTUM_LIB_SRC += i2c_master.c
LAYOUTS = ergodox
+
+# Disable unsupported hardware
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
diff --git a/keyboards/evyd13/eon40/rules.mk b/keyboards/evyd13/eon40/rules.mk
index a1a2f76d4f..f4ab408eb3 100644
--- a/keyboards/evyd13/eon40/rules.mk
+++ b/keyboards/evyd13/eon40/rules.mk
@@ -34,3 +34,8 @@ ENCODER_ENABLE = yes
LAYOUTS = ortho_4x12 planck_mit
LAYOUTS_HAS_RGB = no
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
diff --git a/keyboards/evyd13/nt660/rules.mk b/keyboards/evyd13/nt660/rules.mk
index 9f8f0cd896..9fad888855 100644
--- a/keyboards/evyd13/nt660/rules.mk
+++ b/keyboards/evyd13/nt660/rules.mk
@@ -31,3 +31,8 @@ AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
LAYOUTS = 66_ansi 66_iso
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
diff --git a/keyboards/evyd13/pockettype/rules.mk b/keyboards/evyd13/pockettype/rules.mk
index 164bf9cef5..2b3dc6fc22 100644
--- a/keyboards/evyd13/pockettype/rules.mk
+++ b/keyboards/evyd13/pockettype/rules.mk
@@ -29,3 +29,8 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output
LAYOUTS = ortho_4x12
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
diff --git a/keyboards/fractal/rules.mk b/keyboards/fractal/rules.mk
index e5d540e0ad..d83deb4223 100755
--- a/keyboards/fractal/rules.mk
+++ b/keyboards/fractal/rules.mk
@@ -29,3 +29,8 @@ AUDIO_ENABLE = no # Audio output on port C6
LAYOUTS = ortho_5x12 # preonic_mit
LAYOUTS_HAS_RGB = no
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
diff --git a/keyboards/jj40/rules.mk b/keyboards/jj40/rules.mk
index 0a912cfadc..579c432206 100644
--- a/keyboards/jj40/rules.mk
+++ b/keyboards/jj40/rules.mk
@@ -33,3 +33,6 @@ AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
LAYOUTS = ortho_4x12 planck_mit
+
+# Disable unsupported hardware
+AUDIO_SUPPORTED = no
diff --git a/keyboards/jnao/rules.mk b/keyboards/jnao/rules.mk
index ac8bb366e3..6e620b56a5 100644
--- a/keyboards/jnao/rules.mk
+++ b/keyboards/jnao/rules.mk
@@ -33,3 +33,7 @@ FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
LAYOUTS = ortho_5x12 ortho_4x12
LAYOUTS_HAS_RGB = no
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
diff --git a/keyboards/kbdfans/kbd4x/rules.mk b/keyboards/kbdfans/kbd4x/rules.mk
index 1e20969241..f4664f8f51 100644
--- a/keyboards/kbdfans/kbd4x/rules.mk
+++ b/keyboards/kbdfans/kbd4x/rules.mk
@@ -32,3 +32,6 @@ AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
LAYOUTS = ortho_4x12 planck_mit
+
+# Disable unsupported hardware
+AUDIO_SUPPORTED = no
diff --git a/keyboards/keebio/levinson/rev3/rules.mk b/keyboards/keebio/levinson/rev3/rules.mk
index bd518d8f27..176c9b97df 100644
--- a/keyboards/keebio/levinson/rev3/rules.mk
+++ b/keyboards/keebio/levinson/rev3/rules.mk
@@ -1 +1,5 @@
BACKLIGHT_ENABLE = yes
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
diff --git a/keyboards/keebio/wavelet/rules.mk b/keyboards/keebio/wavelet/rules.mk
index b00535b7b4..cf4cab56e4 100644
--- a/keyboards/keebio/wavelet/rules.mk
+++ b/keyboards/keebio/wavelet/rules.mk
@@ -32,3 +32,6 @@ RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
LAYOUTS = ortho_4x12
+
+# Disable unsupported hardware
+AUDIO_SUPPORTED = no
diff --git a/keyboards/lazydesigners/dimple/rules.mk b/keyboards/lazydesigners/dimple/rules.mk
index 395cd8e9a6..5460d74733 100644
--- a/keyboards/lazydesigners/dimple/rules.mk
+++ b/keyboards/lazydesigners/dimple/rules.mk
@@ -20,3 +20,7 @@ EXTRAKEY_ENABLE = yes # Audio control and System control
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
+
+# Disable unsupported hardware
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
diff --git a/keyboards/lets_split/rev2/rules.mk b/keyboards/lets_split/rev2/rules.mk
index e69de29bb2..271780b75e 100644
--- a/keyboards/lets_split/rev2/rules.mk
+++ b/keyboards/lets_split/rev2/rules.mk
@@ -0,0 +1,2 @@
+# Disable unsupported hardware
+AUDIO_SUPPORTED = no
diff --git a/keyboards/lets_split/sockets/rules.mk b/keyboards/lets_split/sockets/rules.mk
index 7ca5886150..4174af2d0b 100644
--- a/keyboards/lets_split/sockets/rules.mk
+++ b/keyboards/lets_split/sockets/rules.mk
@@ -3,3 +3,6 @@ AUDIO_ENABLE = yes
RGBLIGHT_ENABLE = yes #Don't enable this along with I2C
LTO_ENABLE = yes
+
+# Disable unsupported hardware
+BACKLIGHT_SUPPORTED = no
diff --git a/keyboards/lets_split_eh/eh/rules.mk b/keyboards/lets_split_eh/eh/rules.mk
index 31077066a3..0c7e1cb04e 100644
--- a/keyboards/lets_split_eh/eh/rules.mk
+++ b/keyboards/lets_split_eh/eh/rules.mk
@@ -1,2 +1,5 @@
BACKLIGHT_ENABLE = yes
RGBLIGHT_ENABLE = yes
+
+# Disable unsupported hardware
+AUDIO_SUPPORTED = no
diff --git a/keyboards/mechstudio/ud_40_ortho/rules.mk b/keyboards/mechstudio/ud_40_ortho/rules.mk
index 8ae52f196f..4593fbf96e 100644
--- a/keyboards/mechstudio/ud_40_ortho/rules.mk
+++ b/keyboards/mechstudio/ud_40_ortho/rules.mk
@@ -22,3 +22,7 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output
LAYOUTS = ortho_4x12
+
+# Disable unsupported hardware
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
diff --git a/keyboards/meira/promicro/rules.mk b/keyboards/meira/promicro/rules.mk
index 3c81f1b344..bbb8bda6b5 100644
--- a/keyboards/meira/promicro/rules.mk
+++ b/keyboards/meira/promicro/rules.mk
@@ -1 +1,5 @@
BLUETOOTH_ENABLE = no
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
diff --git a/keyboards/montsinger/rebound/rev4/rules.mk b/keyboards/montsinger/rebound/rev4/rules.mk
index 0759709231..f51017db49 100644
--- a/keyboards/montsinger/rebound/rev4/rules.mk
+++ b/keyboards/montsinger/rebound/rev4/rules.mk
@@ -31,3 +31,7 @@ ENCODER_ENABLE = yes
LAYOUTS = ortho_4x12
LAYOUTS_HAS_RGB = no
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
diff --git a/keyboards/niu_mini/rules.mk b/keyboards/niu_mini/rules.mk
index 67548a448c..1059ed2f70 100644
--- a/keyboards/niu_mini/rules.mk
+++ b/keyboards/niu_mini/rules.mk
@@ -34,3 +34,7 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
LAYOUTS = ortho_4x12 planck_mit
LAYOUTS_HAS_RGB = no
+
+# Disable unsupported hardware
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
diff --git a/keyboards/quark/rules.mk b/keyboards/quark/rules.mk
index 41e815be5f..2fd5d44f99 100644
--- a/keyboards/quark/rules.mk
+++ b/keyboards/quark/rules.mk
@@ -23,3 +23,7 @@ AUDIO_ENABLE = no # Audio output
UNICODE_ENABLE = yes # Unicode
LAYOUTS = ortho_4x12 planck_mit
+
+# Disable unsupported hardware
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
diff --git a/keyboards/redox/rules.mk b/keyboards/redox/rules.mk
index 8ee269a141..7e91f23536 100644
--- a/keyboards/redox/rules.mk
+++ b/keyboards/redox/rules.mk
@@ -34,3 +34,7 @@ RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
SPLIT_KEYBOARD = yes
DEFAULT_FOLDER = redox/rev1
+
+# Disable unsupported hardware
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
diff --git a/keyboards/rgbkb/zygomorph/rules.mk b/keyboards/rgbkb/zygomorph/rules.mk
index 1b27af2ede..fac2e784ff 100644
--- a/keyboards/rgbkb/zygomorph/rules.mk
+++ b/keyboards/rgbkb/zygomorph/rules.mk
@@ -36,3 +36,7 @@ SPLIT_KEYBOARD = yes
LAYOUTS = ortho_4x12 ortho_5x12
DEFAULT_FOLDER = rgbkb/zygomorph/rev1
+
+# Disable unsupported hardware
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
diff --git a/keyboards/signum/3_0/elitec/rules.mk b/keyboards/signum/3_0/elitec/rules.mk
index 436c5f0ce2..6d7266c1a2 100644
--- a/keyboards/signum/3_0/elitec/rules.mk
+++ b/keyboards/signum/3_0/elitec/rules.mk
@@ -28,3 +28,8 @@ RGBLIGHT_ENABLE = no
UNICODEMAP_ENABLE = no
LAYOUTS = ortho_4x12
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
diff --git a/keyboards/spaceman/pancake/feather/rules.mk b/keyboards/spaceman/pancake/feather/rules.mk
index a7331959c8..f9f1726952 100644
--- a/keyboards/spaceman/pancake/feather/rules.mk
+++ b/keyboards/spaceman/pancake/feather/rules.mk
@@ -30,3 +30,8 @@ AUDIO_ENABLE = no # This can be enabled if a speaker is connected to the expans
RGBLIGHT_ENABLE = no # This can be enabled if a ws2812 strip is connected to the expansion port.
LAYOUTS = ortho_4x12 planck_mit
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
diff --git a/keyboards/spaceman/pancake/promicro/rules.mk b/keyboards/spaceman/pancake/promicro/rules.mk
index 09daaf4daf..407ae090f0 100644
--- a/keyboards/spaceman/pancake/promicro/rules.mk
+++ b/keyboards/spaceman/pancake/promicro/rules.mk
@@ -26,3 +26,8 @@ AUDIO_ENABLE = no # This can be enabled if a speaker is connected to the expans
RGBLIGHT_ENABLE = no # This can be enabled if a ws2812 strip is connected to the expansion port.
LAYOUTS = ortho_4x12 planck_mit
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
diff --git a/keyboards/telophase/rules.mk b/keyboards/telophase/rules.mk
index 240a89e85b..f2ac0adb6c 100644
--- a/keyboards/telophase/rules.mk
+++ b/keyboards/telophase/rules.mk
@@ -39,3 +39,8 @@ MITOSIS_UPLOAD_COMMAND = while [ ! -r $(USB) ]; do sleep 1; done; \
# # project specific files
SRC = matrix.c
+
+# Disable unsupported hardware
+RGBLIGHT_SUPPORTED = no
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
diff --git a/keyboards/vitamins_included/rev2/rules.mk b/keyboards/vitamins_included/rev2/rules.mk
index bacfbea396..3d4caba9ca 100644
--- a/keyboards/vitamins_included/rev2/rules.mk
+++ b/keyboards/vitamins_included/rev2/rules.mk
@@ -9,3 +9,6 @@
BOOTLOADER = qmk-dfu
SPLIT_KEYBOARD = yes
+
+# Disable unsupported hardware
+BACKLIGHT_SUPPORTED = no
diff --git a/keyboards/zlant/rules.mk b/keyboards/zlant/rules.mk
index 5221b4e33e..5daad3db23 100755
--- a/keyboards/zlant/rules.mk
+++ b/keyboards/zlant/rules.mk
@@ -26,3 +26,7 @@ AUDIO_ENABLE = no
RGBLIGHT_ENABLE = yes
LAYOUTS = ortho_4x12 planck_mit
+
+# Disable unsupported hardware
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
diff --git a/keyboards/zvecr/split_blackpill/rules.mk b/keyboards/zvecr/split_blackpill/rules.mk
index 55bca894ef..822dd246dc 100644
--- a/keyboards/zvecr/split_blackpill/rules.mk
+++ b/keyboards/zvecr/split_blackpill/rules.mk
@@ -28,3 +28,7 @@ SERIAL_DRIVER = usart
WS2812_DRIVER = pwm
LAYOUTS = ortho_4x12
+
+# Disable unsupported hardware
+AUDIO_SUPPORTED = no
+BACKLIGHT_SUPPORTED = no
diff --git a/keyboards/zvecr/zv48/f401/rules.mk b/keyboards/zvecr/zv48/f401/rules.mk
index 950442af96..a087a1cc78 100644
--- a/