The duplication happened already in the initial version, and when
[17504] had the `--locked` added, the opportunity to remove the
duplication was missed.
[17504]: https://github.com/RIOT-OS/RIOT/pull/17504
The `--locked` is required since dependencies increased their MSRV to
something later than C2Rust's fixed nightly. That was already reflected
in the riotdocker installation steps, but not here where the line was
taken from upstream's docs.
Closes: https://github.com/RIOT-OS/RIOT/issues/17492
If we get a large (e.g. /62) prefix from e.g. DHCPv6, we can split it
into subnets automatically to configure downstream interfaces.
This allows for automatic configuration of daisy-chained nodes or
nodes connected in a tree topology.
To enable the feature, a new pseudo-module `gnrc_ipv6_auto_subnets` is
provided.
Previously, external modules had to be individually added to both
EXTERNAL_MODULE_DIRS and USEMODULE. If those where not in sync, this
resulted in build errors.
With this commit, search folders for external modules are added to
EXTERNAL_MODULE_DIRS instead. So lets say the file system structure is
like this
```
└── /path/to/external/modules
├── mod_a
│ ├── Makefile
│ ├── Makefile.dep
│ ├── Makefile.include
│ ├── foo.c
│ └── include
│ └── external_module.h
└── mod_b
├── Makefile
└── bar.c
```
One now adds `/path/to/external/modules` to EXTERNAL_MODULES and only
with `USEMODULE += mod_a` the corresponding module, dependencies and
include settings are actually used. Hence, it is possible to configure
`EXTERNAL_MODULE_DIRS` from `~/.profile` or `~/.bashrc` once and never
needs to worry about them again.
By running make compile-commands a `compile_commands.json` in the RIOT base
directory. With the environment variable `COMPILE_COMMANDS` the path of
this file can be changed to a custom location.
The `compile_commands.json` will contain the exact compile command, but
as additional flag `-I/usr/$(TARGET)/include` is added to work around
`clangd` not being able to locate the newlib system headers. The
additional includes can be overwritten using the environment variable
`COMPILE_COMMANDS_EXTRA_INCLUDES`.