skylark-qmk/show_options.mk
Drashna Jaelre 7e655a207e Add option to enable LTO easily (#5674)
* Add option to enable LTO easily and disable features that cause compiling errors with LTO

* Add documentation about LTO option

* Add to show_options
2019-05-02 08:03:42 -07:00

137 lines
3.1 KiB
Makefile

BUILD_OPTION_NAMES = \
BOOTMAGIC_ENABLE \
MOUSEKEY_ENABLE \
EXTRAKEY_ENABLE \
CONSOLE_ENABLE \
COMMAND_ENABLE \
NKRO_ENABLE \
TERMINAL_ENABLE \
CUSTOM_MATRIX \
DEBOUNCE_TYPE \
SPLIT_KEYBOARD \
DYNAMIC_KEYMAP_ENABLE \
USB_HID_ENABLE
HARDWARE_OPTION_NAMES = \
SLEEP_LED_ENABLE \
BACKLIGHT_ENABLE \
BACKLIGHT_CUSTOM_DRIVER \
RGBLIGHT_ENABLE \
RGBLIGHT_CUSTOM_DRIVER \
RGB_MATRIX_ENABLE \
SERIAL_LINK_ENABLE \
CIE1931_CURVE \
MIDI_ENABLE \
BLUETOOTH_ENABLE \
AUDIO_ENABLE \
FAUXCLICKY_ENABLE \
HD44780_ENABLE \
ENCODER_ENABLE \
LCD_ENABLE \
LED_BREATHING_TABLE \
LED_TABLES \
POINTING_DEVICE_ENABLE \
VISUALIZER_ENABLE
OTHER_OPTION_NAMES = \
UNICODE_ENABLE \
UCIS_ENABLE \
UNICODEMAP_ENABLE \
UNICODE_COMMON \
API_SYSEX_ENABLE \
AUTO_SHIFT_ENABLE \
AUTO_SHIFT_MODIFIERS \
COMBO_ENABLE \
KEY_LOCK_ENABLE \
LEADER_ENABLE \
PRINTING_ENABLE \
STENO_ENABLE \
TAP_DANCE_ENABLE \
VIRTSER_ENABLE \
OLED_ENABLE \
LED_BACK_ENABLE \
LED_UNDERGLOW_ENABLE \
LED_ANIMATIONS \
IOS_DEVICE_ENABLE \
HELIX ZINC \
ADAFRUIT_BLE_ENABLE \
AUTOLOG_ENABLE \
BREATHING_LED_ENABLE \
DEBUG_ENABLE \
ENCODER_ENABLE_CUSTOM \
FADING_LED_ENABLE \
GERMAN_ENABLE \
HAPTIC_ENABLE \
HHKB_RN42_ENABLE \
ISSI_ENABLE \
KEYBOARD_LOCK_ENABLE \
KEYLOGGER_ENABLE \
KEYMAP_IN_EEPROM_ENABLE \
KEYMAP_SECTION_ENABLE \
LCD_BACKLIGHT_ENABLE \
LEDMAP_ENABLE \
LEDMAP_IN_EEPROM_ENABLE \
MACROS_ENABLED \
ONEHAND_ENABLE \
PS2_MOUSE_ENABLE \
RAW_ENABLE \
SOFTPWM_LED_ENABLE \
SWAP_HANDS_ENABLE \
USB_6KRO_ENABLE \
WATCHDOG_ENABLE \
XT_ENABLE \
ERGOINU \
NO_USB_STARTUP_CHECK \
DISABLE_PROMICRO_LEDs \
MITOSIS_DATAGROK_BOTTOMSPACE \
MITOSIS_DATAGROK_SLOWUART \
RGB_MATRIX_KEYPRESSES \
LED_MIRRORED \
RGBLIGHT_FULL_POWER \
Link_Time_Optimization \
LINK_TIME_OPTIMIZATION_ENABLE
define NAME_ECHO
@echo " $1 = $($1) # $(origin $1)"
endef
.PHONY: show_build_options0 show_build_options
show_build_options0:
@echo " KEYBOARD = $(KEYBOARD)"
@echo " KEYMAP = $(KEYMAP)"
@echo " MCU = $(MCU)"
@echo " MCU_SERIES = $(MCU_SERIES)"
@echo " PLATFORM = $(PLATFORM)"
@echo " FIRMWARE_FORMAT = $(FIRMWARE_FORMAT)"
@echo
@echo "Build Options:"
$(foreach A_OPTION_NAME,$(sort $(BUILD_OPTION_NAMES)),\
$(call NAME_ECHO,$(A_OPTION_NAME)))
show_build_options: show_build_options0
@echo
@echo "If you want to know more, please try 'show_all_features' or 'show_full_features'"
@echo
.PHONY: show_all_features
show_all_features: show_build_options0
@echo
@echo "Hardware Options:"
$(foreach A_OPTION_NAME,$(sort $(HARDWARE_OPTION_NAMES)),\
$(if $($(A_OPTION_NAME)),$(call NAME_ECHO,$(A_OPTION_NAME))))
@echo
@echo "Other Options:"
$(foreach A_OPTION_NAME,$(sort $(OTHER_OPTION_NAMES)),\
$(if $($(A_OPTION_NAME)),$(call NAME_ECHO,$(A_OPTION_NAME))))
.PHONY: show_full_features
show_full_features: show_build_options0
@echo
@echo "Hardware Options:"
$(foreach A_OPTION_NAME,$(sort $(HARDWARE_OPTION_NAMES)),\
$(call NAME_ECHO,$(A_OPTION_NAME)))
@echo
@echo "Other Options:"
$(foreach A_OPTION_NAME,$(sort $(OTHER_OPTION_NAMES)),\
$(call NAME_ECHO,$(A_OPTION_NAME)))