diff --git a/doc/doxygen/riot.doxyfile b/doc/doxygen/riot.doxyfile
index 6ca9d7fd2ae0144e675bb96f37e3db6c0c18a4f3..0e07440cd378e444273114fc12bde6a302a00527 100644
--- a/doc/doxygen/riot.doxyfile
+++ b/doc/doxygen/riot.doxyfile
@@ -765,6 +765,7 @@ INPUT                  = ../../doc.txt \
                          src/creating-modules.md \
                          src/creating-an-application.md \
                          src/getting-started.md \
+                         src/advanced-build-system-tricks.md \
                          src/changelog.md \
                          ../../LOSTANDFOUND.md
 
diff --git a/doc/doxygen/src/advanced-build-system-tricks.md b/doc/doxygen/src/advanced-build-system-tricks.md
new file mode 100644
index 0000000000000000000000000000000000000000..9c3d13c9e0d04f3328fecf09df0d8c1e2ff390ad
--- /dev/null
+++ b/doc/doxygen/src/advanced-build-system-tricks.md
@@ -0,0 +1,40 @@
+Advanced build system tricks                    {#advanced-build-system-tricks}
+============================
+
+[TOC]
+
+Introduction                                                    {#introduction}
+============
+
+This page describes some build systems tricks that can help developers but are
+not part of the standard workflow.
+
+They are low level commands that should not be taken as part of a stable API
+but better have a documentation than only having a description in the build
+system code.
+
+
+Customize the build system                            {#customize-build-system}
+==========================
+
++ `RIOT_MAKEFILES_GLOBAL_PRE`: files parsed before the body of
+  `$RIOTBASE/Makefile.include`
++ `RIOT_MAKEFILES_GLOBAL_POST`: files parsed after the body of
+  `$RIOTBASE/Makefile.include`
+
+The variables are a list of files that will be included by
+`$RIOTBASE/Makefile.include`.
+They will be handled as relative to the application directory if the path is
+relative.
+
+
+Usage
+-----
+
+You can configure your own files that will be parsed by the build system main
+`Makefile.include` file before or after its main body, examples usages can be:
+
+* Globally overwrite a variable, like `TERMPROG`
+* Specify a hard written `PORT` / `DEBUG_ADAPTER_ID` for some BOARD values
+* Define your custom targets
+* Override default targets
diff --git a/doc/doxygen/src/mainpage.md b/doc/doxygen/src/mainpage.md
index a3ae57898fee2c70063950fbdbf40ed9c874cdc6..c2788cbb86b9aa7380e654e3de84f429530c1997 100644
--- a/doc/doxygen/src/mainpage.md
+++ b/doc/doxygen/src/mainpage.md
@@ -235,6 +235,7 @@ Further information                                      {#further-information}
  - @ref getting-started
  - @ref creating-an-application
  - @ref creating-modules
+ - @ref advanced-build-system-tricks
 
 <!--
 Idea for this section: just name each of RIOT's main features/concepts and link