[ANNOUNCE] Kconfiglib menuconfig and documentation generation updates

From: Ulf Magnusson
Date: Thu Sep 27 2018 - 18:44:18 EST


Hello,

Here's two small Kconfiglib (https://github.com/ulfalizer/kconfiglib) updates.

First, I've made it a lot easier to try out the menuconfig implementation on
the kernel. This will work now, in the kernel root:

$ git clone https://github.com/ulfalizer/Kconfiglib.git
$ git am Kconfiglib/makefile.patch
$ make kmenuconfig

Here's an animation that demonstrates various menuconfig features:
https://raw.githubusercontent.com/ulfalizer/Kconfiglib/screenshots/screenshots/menuconfig.gif

Secondly, there's now a handy cross-referenced documentation generation script
available.

Example documentation output (warning: heavy page, lots of symbols):
https://docs.zephyrproject.org/latest/reference/kconfig/index.html

The script that generates the documentation:
https://github.com/zephyrproject-rtos/zephyr/blob/master/doc/scripts/genrest.py

The recently added Kconfig preprocessor has been implemented for a while now,
along with an extension that allows preprocessor functions to be defined in
Python.

I've also fixed some broken/incomplete behavior from the C tools, like not
being able to add symbols to choices by giving them a name and defining them in
multiple locations (though I think projects sometimes overdo multiple
definitions :). This is actually just a menuconfig hack that aggregates the
menu nodes from all choice definition locations when you enter a choice.

Zephyr and several smaller projects now use Kconfiglib exclusively.

Feedback appreciated!

Cheers,
Ulf