While it is possible to validate all generated dtb files against the schema, it typically results in huge pile of warnings. While working on a platform it is quite useful to validate just a single file against schema. Allow specifying CHECK_DTBS=1 on a make command line to enable validation while building dtb files. This reuses the infrastructure existing for `make dtbs_check`, making dtbs_check a shortcut for `make CHECK_DTBS=1 dt_binding_check dtbs`. Cc: Bjorn Andersson <bjorn.andersson@xxxxxxxxxx> Cc: Tom Rini <trini@xxxxxxxxxxxx> Cc: Masahiro Yamada <masahiroy@xxxxxxxxxx> Cc: linux-kbuild@xxxxxxxxxxxxxxx Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx> --- Makefile | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 9aa7de1ca58f..f28507d2ee03 100644 --- a/Makefile +++ b/Makefile @@ -1464,10 +1464,14 @@ endif ifneq ($(dtstree),) -%.dtb: include/config/kernel.release scripts_dtc +ifneq ($(CHECK_DTBS),) +DT_TMP_BINDING := dt_binding +endif + +%.dtb: include/config/kernel.release scripts_dtc $(DT_TMP_BINDING) $(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@ -%.dtbo: include/config/kernel.release scripts_dtc +%.dtbo: include/config/kernel.release scripts_dtc $(DT_TMP_BINDING) $(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@ PHONY += dtbs dtbs_install dtbs_check @@ -1498,8 +1502,10 @@ ifneq ($(filter dt_binding_check, $(MAKECMDGOALS)),) export CHECK_DT_BINDING=y endif -PHONY += dt_binding_check -dt_binding_check: scripts_dtc +dt_binding_check: dt_binding + +PHONY += dt_binding +dt_binding: scripts_dtc $(Q)$(MAKE) $(build)=Documentation/devicetree/bindings # --------------------------------------------------------------------------- @@ -1774,6 +1780,10 @@ help: @echo ' 3: more obscure warnings, can most likely be ignored' @echo ' e: warnings are being treated as errors' @echo ' Multiple levels can be combined with W=12 or W=123' + @$(if $(dtstree), \ + echo ' make CHECK_DTBS=1 [targets] Check all generated dtb files against schema'; \ + echo ' This can be applied both to "dtbs" and to individual "foo.dtb" targets' ; \ + ) @echo '' @echo 'Execute "make" or "make all" to build all targets marked with [*] ' @echo 'For further info see the ./README file' -- 2.35.1