linux/Documentation/kbuild
Masahiro Yamada 316d55d55f Documentation: kconfig: document a new Kconfig macro language
Add a document for the macro language introduced to Kconfig.

The motivation of this work is to move the compiler option tests to
Kconfig from Makefile.  A number of kernel features require the
compiler support.  Enabling such features blindly in Kconfig ends up
with a lot of nasty build-time testing in Makefiles.  If a chosen
feature turns out unsupported by the compiler, what the build system
can do is either to disable it (silently!) or to forcibly break the
build, despite Kconfig has let the user to enable it.  By moving the
compiler capability tests to Kconfig, features unsupported by the
compiler will be hidden automatically.

This change was strongly prompted by Linus Torvalds.  You can find
his suggestions [1] [2] in ML.  The original idea was to add a new
attribute with 'option shell=...', but I found more generalized text
expansion would make Kconfig more powerful and lovely.  The basic
ideas are from Make, but there are some differences.

[1]: https://lkml.org/lkml/2016/12/9/577
[2]: https://lkml.org/lkml/2018/2/7/527

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Randy Dunlap <rdunlap@infradead.org>
2018-05-29 03:31:19 +09:00
..
00-INDEX Documentation: headers_install.txt is part of kbuild 2014-08-05 16:08:11 +02:00
headers_install.txt kbuild : Fix documentation of INSTALL_HDR_PATH 2015-06-22 09:56:07 -06:00
kbuild.txt kbuild: remove internally used LDFLAGS_vmlinux from kbuild.txt 2018-03-26 02:01:21 +09:00
kconfig-language.txt kconfig: reference environment variables directly and remove 'option env=' 2018-05-29 03:28:58 +09:00
kconfig-macro-language.txt Documentation: kconfig: document a new Kconfig macro language 2018-05-29 03:31:19 +09:00
Kconfig.recursion-issue-01 kbuild: document recursive dependency limitation / resolution 2015-10-08 15:36:16 +02:00
Kconfig.recursion-issue-02 kbuild: document recursive dependency limitation / resolution 2015-10-08 15:36:16 +02:00
Kconfig.select-break kbuild: document recursive dependency limitation / resolution 2015-10-08 15:36:16 +02:00
kconfig.txt kconfig: rename silentoldconfig to syncconfig 2018-03-26 02:04:00 +09:00
makefiles.txt kbuild: remove command line interface LDFLAGS_MODULE from makefiles.txt 2018-03-26 02:01:20 +09:00
modules.txt kbuild: Fix a typo in documentation 2014-06-10 14:14:29 +02:00