make: fix info-boards-supported/-features-missing#6063
make: fix info-boards-supported/-features-missing#6063Kijewski wants to merge 3 commits intoRIOT-OS:masterfrom Kijewski:fix-make-info-boards
Conversation
You cannot suppress `$(info)` messages if you care about any output in stdout. Also it is nice to know where a warning came from without grepping.
Sometimes you need to call `make` recursively with a generated list of goals. You have to make sure that this list is not empty, or otherwise the default goal (all) will be executed. This patch adds a `..noop` goal, that can be used instead. It simply does nothing.
`make info-boards-supported` and `make info-boards-features-missing`
where implemented using a loop and `-include`s in Makefile.buildtest.
The loop "tried to" reset all variables affected by the includes, by
preserving a known list of variables.
This fails if the `-include` affects further variables, depends on
absent declarations, or needs assumes that other Makefiles where
included before.
This PR reimplements `make info-boards-supported` to use recursive make
invocations. For each board the build system will be in a "pristine"
state.
Added helpers:
* `make info-board`: prints `$(BOARD)`
* `make info-boards`: prints all boards that were not disabled by black
or whitelisting.
|
nice, thanks for tackling this! |
|
@kaspar030, is my PR broken or is Murdock a bit moody today?
|
|
Given that your PR is the only red in a field of green I would guess the first is the case ;-) |
|
@miri64, hm, your reasoning seems quite logical to me. :) I'll have a look what's wrong. |
|
@MichelRottleuthner can you check whether this PR helps w.r.t. the issue we discussed yesterday? |
|
@cgundogan Yes this PR solves the issue, thank you for the pointer! (For reference: without this PR conditional USEMODULE statements (like this) caused wrong output from the affected info-boards-* targets) |
|
@Kijewski This is getting more pressing, a couple of PR's are in limbo because of the way Please rebase! |
|
Hm, only problem with this approach is performance. Finding the supported boards is about 30 to 40 times slower than before. Still I think we should consider merging this. |
|
Fixed by #7589. |
make info-boards-supportedandmake info-boards-features-missingwhere implemented using a loop and
-includes in Makefile.buildtest.The loop "tried to" reset all variables affected by the includes, by
preserving a known list of variables.
This fails if the
-includeaffects further variables, depends onabsent declarations, or needs assumes that other Makefiles where
included before.
This PR reimplements
make info-boards-supportedto use recursive makeinvocations. For each board the build system will be in a "pristine"
state.
Added helpers:
make info-board: prints$(BOARD)make info-boards: prints all boards that were not disabled by blackor whitelisting.
Related: #5065 (comment)