[riot-notifications] [RIOT-OS/RIOT] Define requirements for configuration in the build system (#14027)

Kaspar Schleiser notifications at github.com
Tue May 5 22:10:01 CEST 2020

j>     * a clear view of the possible configurations for the target hardware

I guess this means "configuration options". I don't think it is possible to actually show all configurations in a clear way.

> Must not allow circular dependencies

Please elaborate. Module A might not work without Module B and vice versa.

What I think we also need:

Dependency types:

- "provides" (if selected, also satisfies dependency FOO)
- "conflicts" (cannot be selected together with BAR)
- "one of" (depend on A|B|C, if available, in that order)
- "if module A is available, depend on B"
- "if module A is not available, depend on B"

Scoped variables:

defines or options of a module should have different "visibility".
E.g., there's no need to compile ztimer with "-DCONFIG_FATFS_SUPPORT_UTF8", but every dependee that includes ztimer.h needs e.g., "-DCONFIG_ZTIMER_NOINLINE".
Any variables / defines for a module should be either global, local or "exported to all dependees".

External dependencies:

The build system should support external, versioned packages, and also show their configuration.

Nested configuration contexts:

It should be possible to express and configure nested configurations. E.g., there should be a RIOT context, on top of that a Cortex-M context, on top of that a sam0 context, ..., up to the board or application/board. It needs to be possible to configure each of these contexts.

Access to the data:
IMO json/yaml access to the build system (configuration) data is a must.


Other than that I'm missing a bit of a workflow idea.

Let's start with a fresh (empty, new) application. I guess a first step would be sth like `make configure`.

Which options are presented? Is selecting a board the first thing? How do we configure a portable application?    

You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.riot-os.org/pipermail/notifications/attachments/20200505/c9c27595/attachment.htm>

More information about the notifications mailing list