summaryrefslogtreecommitdiffstats
path: root/users/bcat/rules.mk
diff options
context:
space:
mode:
Diffstat (limited to 'users/bcat/rules.mk')
-rw-r--r--users/bcat/rules.mk43
1 files changed, 37 insertions, 6 deletions
diff --git a/users/bcat/rules.mk b/users/bcat/rules.mk
index 12c9a89bf4..bb4bb11d88 100644
--- a/users/bcat/rules.mk
+++ b/users/bcat/rules.mk
@@ -1,7 +1,10 @@
-SRC += bcat.c
-
-# Enable Bootmagic Lite to consistently reset to bootloader and clear EEPROM.
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
+# Enable Bootmagic Lite for keyboards that don't have an easily accessible
+# reset button, but keep it disabled for all others to reduce firmware size.
+ifneq ($(filter $(strip $(KEYBOARD)),ai03/polaris dz60 kbdfans/kbd67/hotswap),)
+ BOOTMAGIC_ENABLE = yes
+else
+ BOOTMAGIC_ENABLE = no
+endif
# Enable media keys on all keyboards.
EXTRAKEY_ENABLE = yes
@@ -16,21 +19,49 @@ NKRO_ENABLE = yes
# Enable link-time optimization to reduce binary size.
LTO_ENABLE = yes
-# Disable unused build options on all keyboards.
+# Include common utilities shared across all our keymaps.
+SRC += bcat.c
+
+# Include additional utilities that extend optional QMK features only enabled
+# on some keyboards.
+ifeq ($(strip $(OLED_ENABLE)), yes)
+ SRC += bcat_oled.c
+ WPM_ENABLE = yes # for WPM and animated "keyboard pet" widgets
+
+ # OLED pets (animated critters that react to typing) take up a lot of
+ # firmware space, so only compile one, and only if requested.
+ BCAT_OLED_PET ?= no
+ ifneq ($(strip $(BCAT_OLED_PET)), no)
+ SRC += bcat_oled_pet_$(strip $(BCAT_OLED_PET)).c
+ OPT_DEFS += -DBCAT_OLED_PET
+ endif
+endif
+
+ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
+ SRC += bcat_rgblight.c
+endif
+
+# Disable unwanted build options on all keyboards. (Mouse keys are turned off
+# due to https://github.com/qmk/qmk_firmware/issues/8323, and the rest are
+# turned off to reduce firmware size.)
COMMAND_ENABLE = no
CONSOLE_ENABLE = no
MOUSEKEY_ENABLE = no
TERMINAL_ENABLE = no
-# Disable unused hardware options on all keyboards.
+# Disable unwanted hardware options on all keyboards. (Some keyboards turn
+# these features on by default even though they aren't actually required.)
MIDI_ENABLE = no
SLEEP_LED_ENABLE = no
# Disable other unused options on all keyboards.
AUTO_SHIFT_ENABLE = no
COMBO_ENABLE = no
+GRAVE_ESC_ENABLE = no
KEY_LOCK_ENABLE = no
LEADER_ENABLE = no
+MAGIC_ENABLE = no
+SPACE_CADET_ENABLE = no
SWAP_HANDS_ENABLE = no
TAP_DANCE_ENABLE = no
UCIS_ENABLE = no