Introducing Kconfig to RIOT

Hi everyone,

I'm writing to let you know that the Configuration Task Force will start working on Kconfig[1] integration into RIOT.

With this change we expect to improve the current situation of compile- time configurations by: - Handling dependencies among configuration parameters - Checking types and values - Loading and saving configurations - Improving User's interface

During the first phase of migration, the usage of Kconfig will remain optional, and configuration via CFLAGS will still be the default.

For more detailed information there is a video [2] available where we explain the benefits of this, together with the next steps.

To have an idea of how this could look during migration, there is a branch where you can test this. Currently all GNRC modules that documented their compile-time configurations are migrated to Kconfig, together with Core options. You can run `make menuconfig` in gnrc_networking [3]. There's also a test that shows how to include application-specific configurations[4].

All help will be really appreciated.

Cheers, Leandro.

[1]:https://www.kernel.org/doc/html/latest/kbuild/kconfig-language.html [2] https://www.youtube.com/watch?v=wAXseqiCb3E [3]: https://github.com/leandrolanzieri/RIOT/tree/demo_kconfig/examples/gnrc_networking [4]: https://github.com/leandrolanzieri/RIOT/tree/demo_kconfig/tests/kconfig