aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Takeshi ISHII <2170248+mtei@users.noreply.github.com>2020-01-03 07:47:27 +0900
committerGravatar James Young <18669334+noroadsleft@users.noreply.github.com>2020-01-02 14:47:27 -0800
commit3fd8f160c3b3394f2e06643347143e46d880aa69 (patch)
tree34a9e264a4bbbd28d47d9b7b9297a7124c7ee25c
parent474f7f399c707a61448b353c5d614cefa47ff69a (diff)
downloadqmk_firmware-3fd8f160c3b3394f2e06643347143e46d880aa69.tar.gz
[Docs] Added description of LIB_SRC to docs/config_options.md (#7765)
And LINK_TIME_OPTIMIZATION_ENABLE move to 'Build Options' section.
-rw-r--r--docs/config_options.md22
1 files changed, 19 insertions, 3 deletions
diff --git a/docs/config_options.md b/docs/config_options.md
index 0cf3fb78a..ea5a89295 100644
--- a/docs/config_options.md
+++ b/docs/config_options.md
@@ -287,8 +287,27 @@ This is a [make](https://www.gnu.org/software/make/manual/make.html) file that i
* Defines which format (bin, hex) is copied to the root `qmk_firmware` folder after building.
* `SRC`
* Used to add files to the compilation/linking list.
+* `LIB_SRC`
+ * Used to add files as a library to the compilation/linking list.
+ The files specified by `LIB_SRC` is linked after the files specified by `SRC`.
+ For example, if you specify:
+ ```
+ SRC += a.c
+ LIB_SRC += lib_b.c
+ SRC += c.c
+ LIB_SRC += lib_d.c
+ ```
+ The link order is as follows.
+ ```
+ ... a.o c.o ... lib_b.a lib_d.a ...
+ ```
* `LAYOUTS`
* A list of [layouts](feature_layouts.md) this keyboard supports.
+* `LINK_TIME_OPTIMIZATION_ENABLE`
+ * Enables Link Time Optimization (`LTO`) when compiling the keyboard. This makes the process take longer, but can significantly reduce the compiled size (and since the firmware is small, the added time is not noticeable). However, this will automatically disable the old Macros and Functions features automatically, as these break when `LTO` is enabled.
+ It does this by automatically defining `NO_ACTION_MACRO` and `NO_ACTION_FUNCTION`
+* `LTO_ENABLE`
+ * It has the same meaning as LINK_TIME_OPTIMIZATION_ENABLE. You can use `LTO_ENABLE` instead of `LINK_TIME_OPTIMIZATION_ENABLE`.
## AVR MCU Options
* `MCU = atmega32u4`
@@ -347,9 +366,6 @@ Use these to enable or disable building certain features. The more you have enab
* Forces the keyboard to wait for a USB connection to be established before it starts up
* `NO_USB_STARTUP_CHECK`
* Disables usb suspend check after keyboard startup. Usually the keyboard waits for the host to wake it up before any tasks are performed. This is useful for split keyboards as one half will not get a wakeup call but must send commands to the master.
-* `LINK_TIME_OPTIMIZATION_ENABLE`
- * Enables Link Time Optimization (`LTO`) when compiling the keyboard. This makes the process take longer, but can significantly reduce the compiled size (and since the firmware is small, the added time is not noticeable). However, this will automatically disable the old Macros and Functions features automatically, as these break when `LTO` is enabled. It does this by automatically defining `NO_ACTION_MACRO` and `NO_ACTION_FUNCTION`
- * Alternatively, you can use `LTO_ENABLE` instead of `LINK_TIME_OPTIMIZATION_ENABLE`.
## USB Endpoint Limitations