<spanclass="line"><span>LIB_SRC += lib_d.c</span></span></code></pre></div>The link order is as follows.<divclass="language- vp-adaptive-theme"><buttontitle="Copy Code"class="copy"></button><spanclass="lang"></span><preclass="shiki shiki-themes github-light github-dark vp-code"><code><spanclass="line"><span> ... a.o c.o ... lib_b.a lib_d.a ...</span></span></code></pre></div></li></ul></li><li><code>LAYOUTS</code><ul><li>A list of <ahref="./feature_layouts">layouts</a> this keyboard supports.</li></ul></li><li><code>LTO_ENABLE</code><ul><li>Enables Link Time Optimization (LTO) when compiling the keyboard. This makes the process take longer, but it can significantly reduce the compiled size (and since the firmware is small, the added time is not noticeable).</li></ul></li></ul><h2id="avr-mcu-options"tabindex="-1">AVR MCU Options <aclass="header-anchor"href="#avr-mcu-options"aria-label="Permalink to "AVR MCU Options""></a></h2><ul><li><code>MCU = atmega32u4</code></li><li><code>F_CPU = 16000000</code></li><li><code>ARCH = AVR8</code></li><li><code>F_USB = $(F_CPU)</code></li><li><code>OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT</code></li><li><code>BOOTLOADER = atmel-dfu</code> with the following options: <ul><li><code>atmel-dfu</code></li><li><code>lufa-dfu</code></li><li><code>qmk-dfu</code></li><li><code>halfkay</code></li><li><code>caterina</code></li><li><code>bootloadhid</code></li><li><code>usbasploader</code></li></ul></li></ul><h2id="feature-options"tabindex="-1">Feature Options <aclass="header-anchor"href="#feature-options"aria-label="Permalink to "Feature Options {#feature-options}""></a></h2><p>Use these to enable or disable building certain features. The more you have enabled the bigger your firmware will be, and you run the risk of building a firmware too large for your MCU.</p><ul><li><code>MAGIC_ENABLE</code><ul><li>MAGIC actions (BOOTMAGIC without the boot)</li></ul></li><li><code>BOOTMAGIC_ENABLE</code><ul><li>Enable Bootmagic Lite</li></ul></li><li><code>MOUSEKEY_ENABLE</code><ul><li>Mouse keys</li></ul></li><li><code>EXTRAKEY_ENABLE</code><ul><li>Audio control and System control</li></ul></li><li><code>CONSOLE_ENABLE</code><ul><li>Console for debug</li></ul></li><li><code>COMMAND_ENABLE</code><ul><li>Commands for debug and configuration</li></ul></li><li><code>COMBO_ENABLE</code><ul><li>Key combo feature</li></ul></li><li><code>NKRO_ENABLE</code><ul><li>USB N-Key Rollover - if this doesn't work, see here: <ahref="https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work"target="_blank"rel="noreferrer">https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work</a></li></ul></li><li><code>RING_BUFFERED_6KRO_REPORT_ENABLE</code><ul><li>USB 6-Key Rollover - Instead of stopping any new input once 6 keys are pressed, the oldest key is released and the new key is pressed.</li></ul></li><li><code>AUDIO_ENABLE</code><ul><li>Enable the audio subsystem.</li></ul></li><li><code>KEY_OVERRIDE_ENABLE</code><ul><li>Enable the key override feature</li></ul></li><li><code>RGBLIGHT_ENABLE</code><ul><li>Enable keyboard underlight functionality</li></ul></li><li><code>LEADER_ENABLE</code><ul><li>Enable leader key chording</li></ul></li><li><code>MIDI_ENABLE</code><ul><li>MIDI controls</li></ul></li><li><code>UNICODE_ENABLE</code><ul><li>Unicode</li></ul></li><li><code>BLUETOOTH_ENABLE</code><ul><li>Current options are bluefruit_le, rn42</li></ul></li><li><code>SPLIT_KEYBOARD</code><ul><li>Enables split keyboard support (dual MCU like the let's split and bakingpy's boards) and includes all necessary files located at quantum/split_common</li></ul></li><li><code>CUSTOM_MATRIX</code><ul><li>Allows replacing the standard matrix scanning routine with a custom one.</li></ul></li><li><code>DEBOUNCE_TYPE</code><ul><li>Allows replacing the standard key debouncing routine with an alternative or custom one.</li></ul></li><li><code>USB_WAIT_FOR_ENUMERATION</code><ul><li>Forces the keyboard to wait for a USB connection to be established before it starts up</li></ul></li>