summaryrefslogtreecommitdiff
path: root/README.rst
diff options
context:
space:
mode:
authorUlf Magnusson <ulfalizer@gmail.com>2018-07-03 18:30:06 +0200
committerUlf Magnusson <ulfalizer@gmail.com>2018-07-10 07:56:37 +0200
commit2433deba7889931c4bae679f116887fe49a2ce04 (patch)
tree83aef26c03999becc6df6e7d37bf6880a190d36d /README.rst
parent4200e25c24a4441b36d6ac2d3d30987d88515eb2 (diff)
Add Kconfig preprocessor
Implement the Kconfig preprocessor described in https://github.com/torvalds/linux/blob/master/Documentation/kbuild/kconfig-macro-language.txt (which is now in linux-next and will appear in Linux 4.18). A new Kconfig.variables property holds all the preprocessor variables so that they can be inspected programmatically. Preprocessor variables are represented by a new Variable class. With the preprocessor, environment variables are referenced with $(FOO) instead of $FOO. For backwards compatibility, $FOO is accepted as well for now (and leaves "$FOO" as-is if FOO doesn't exist). The $FOO syntax might be dropped at some point in the future (together with a major version increase). It should be supported for a few months at least. Some internals were cleaned up too, mostly related to parsing. Some outdated documentation was fixed as well.
Diffstat (limited to 'README.rst')
-rw-r--r--README.rst18
1 files changed, 15 insertions, 3 deletions
diff --git a/README.rst b/README.rst
index 3884e7a..e118834 100644
--- a/README.rst
+++ b/README.rst
@@ -18,6 +18,14 @@ should be relatively easy, if needed.
The `Zephyr <https://www.zephyrproject.org/>`_ project uses Kconfiglib
exclusively, with lots of small helper scripts in other projects.
+Kconfiglib implements the recently added `Kconfig preprocessor
+<https://github.com/torvalds/linux/blob/master/Documentation/kbuild/kconfig-macro-language.txt>`_.
+For backwards compatibility, environment variables can be referenced both as
+``$(FOO)`` (the new syntax) and as ``$FOO`` (the old syntax). Support for the
+old syntax might be removed in the future (the major version would be increased
+at the same time). Using the old syntax with an undefined environment variable
+keeps the string as is.
+
Installation
------------
@@ -193,10 +201,14 @@ The following Kconfig extensions are available:
- Environment variables are expanded directly in e.g. ``source``
and ``mainmenu`` statements, meaning ``option env`` symbols
are redundant.
+
+ This is the standard behavior with the new `Kconfig preprocessor
+ <https://github.com/torvalds/linux/blob/master/Documentation/kbuild/kconfig-macro-language.txt>`_,
+ which Kconfiglib implements.
- ``option env`` symbols are still supported for compatibility,
- with the caveat that they must have the same name as the environment
- variables they reference. A warning is printed if the names differ.
+ ``option env`` symbols are supported for backwards compatibility, with the
+ caveat that they must have the same name as the environment variables they
+ reference. A warning is printed if the names differ.
Other features
--------------