summaryrefslogtreecommitdiffstats
path: root/docs/hardware_keyboard_guidelines.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/hardware_keyboard_guidelines.md')
-rw-r--r--docs/hardware_keyboard_guidelines.md30
1 files changed, 28 insertions, 2 deletions
diff --git a/docs/hardware_keyboard_guidelines.md b/docs/hardware_keyboard_guidelines.md
index 7630b44e0c..be55356b17 100644
--- a/docs/hardware_keyboard_guidelines.md
+++ b/docs/hardware_keyboard_guidelines.md
@@ -144,10 +144,38 @@ The `rules.mk` file can also be placed in a sub-folder, and its reading order is
* `keyboards/top_folder/sub_1/sub_2/sub_3/sub_4/rules.mk`
* `keyboards/top_folder/keymaps/a_keymap/rules.mk`
* `users/a_user_folder/rules.mk`
+ * `keyboards/top_folder/sub_1/sub_2/sub_3/sub_4/post_rules.mk`
+ * `keyboards/top_folder/sub_1/sub_2/sub_3/post_rules.mk`
+ * `keyboards/top_folder/sub_1/sub_2/post_rules.mk`
+ * `keyboards/top_folder/sub_1/post_rules.mk`
+* `keyboards/top_folder/post_rules.mk`
* `common_features.mk`
Many of the settings written in the `rules.mk` file are interpreted by `common_features.mk`, which sets the necessary source files and compiler options.
+The `post_rules.mk` file can interpret `features` of a keyboard-level before `common_features.mk`. For example, when your designed keyboard has the option to implement backlighting or underglow using rgblight.c, writing the following in the `post_rules.mk` makes it easier for the user to configure the `rules.mk`.
+
+* `keyboards/top_folder/keymaps/a_keymap/rules.mk`
+ ```make
+ # Please set the following according to the selection of the hardware implementation option.
+ RGBLED_OPTION_TYPE = backlight ## none, backlight or underglow
+ ```
+* `keyboards/top_folder/post_rules.mk`
+ ```make
+ ifeq ($(filter $(strip $(RGBLED_OPTION_TYPE))x, nonex backlightx underglowx x),)
+ $(error unknown RGBLED_OPTION_TYPE value "$(RGBLED_OPTION_TYPE)")
+ endif
+
+ ifeq ($(strip $(RGBLED_OPTION_TYPE)),backlight)
+ RGBLIGHT_ENABLE = yes
+ OPT_DEFS += -DRGBLED_NUM=30
+ endif
+ ifeq ($(strip $(RGBLED_OPTION_TYPE)),underglow)
+ RGBLIGHT_ENABLE = yes
+ OPT_DEFS += -DRGBLED_NUM=6
+ endif
+ ```
+
?> See `build_keyboard.mk` and `common_features.mk` for more details.
### `<keyboard_name.c>`
@@ -227,8 +255,6 @@ The year should be the first year the file is created. If work was done to that
The core of QMK is licensed under the [GNU General Public License](https://www.gnu.org/licenses/licenses.en.html). If you are shipping binaries for AVR processors you may choose either [GPLv2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) or [GPLv3](https://www.gnu.org/licenses/gpl.html). If you are shipping binaries for ARM processors you must choose [GPL Version 3](https://www.gnu.org/licenses/gpl.html) to comply with the [ChibiOS](https://www.chibios.org) GPLv3 license.
-If your keyboard makes use of the [uGFX](https://ugfx.io) features within QMK you must comply with the [uGFX License](https://ugfx.io/license.html), which requires a separate commercial license before selling a device containing uGFX.
-
## Technical Details
If you're looking for more information on making your keyboard work with QMK, [check out the hardware section](hardware.md)!