Dear RIOT developers, board contributors,
as agreed in https://github.com/RIOT-OS/RIOT/pull/11478 `CPU` and `CPU_MODEL` variables will be moved from board `Makefile.include` to `Makefile.features` files.
This migration will start after 2019.07 release will have been finalized. The tracking pull request following this is available at https://github.com/RIOT-OS/RIOT/pull/11477 Some issues/board specific handling are still unresolved and will have to be tackled along the way. I will come to ask for help when I cannot chose a solution myself.
I wanted to inform you of this change that will affect open pull requests and current practices. Please update your pull requests and take it into account during reviews after the release.
Update of `CPU_FAM`, `CPU_ARCH` and related variables should also follow the same migration in `cpu` in following steps.
The mid-term goal is to allow parsing dependencies in a consistent and independent step removing the need for the current workarounds. The long term goal, is that having a consistent state, could help trying new ideas on how to define the dependencies with a way to verify regressions.
The reason behind this is that the board/cpu `Makefile.include` files need to allow different configuration depending on the used modules.
However, in the current parsing, `Makefile.dep` is evaluated after `Makefile.include` so leads to using value before being correctly defined. The plan is to move the parsing before.
As dependencies resolution depend on the `CPU` or `CPU_MODEL` variables they need to have the value moved out of `Makefile.include` and it will be to `Makefile.features.
It will remove duplication as boards `Makefile.features` were already including `CPU/Makefile.features` by hardwriting the cpu value. `Makefie.dep` was doing it too due to the next issue. It will fix the inconsistency that the evaluation of supported boards used by CI was ignoring board and cpu `Makefile.include` so led to ignoring dependencies defined in board and cpu `Makefile.include` and also the value of `CPU` and `CPU_MODEL`. This led to hacks to filter on `BOARD` instead of `CPU_MODEL` in the `Makefile.dep`.
I will do my best to prevent regressions and do a smooth transition. As it can still happen, please notify if you find any issues caused by this.
Thank you for your comprehension
Regards, Gaëtan - @cladmi