summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorRob Herring <robh@kernel.org>2022-12-19 19:32:33 -0600
committerRob Herring <robh@kernel.org>2022-12-26 16:09:29 -0600
commitec201955a53be4b57a467f7160724ff06289cead (patch)
tree33affb33e6e1bb39a32004e8b2c2420939a4b1af /Makefile
parent9e699b8985e62c93cb1ca84b27197b5c1cdbd596 (diff)
downloadlwn-ec201955a53be4b57a467f7160724ff06289cead.tar.gz
lwn-ec201955a53be4b57a467f7160724ff06289cead.zip
kbuild: Optionally enable schema checks for %.dtb targets
While not documented, schema checks for single dtb targets mostly work already by setting 'CHECK_DTBS=1'. However, the dependencies are not handled and it only works if 'make dt_bindings_check' was run first and generated processed-schema.json. In addition, changing a binding file doesn't cause the schema to be rebuilt and dtb to be revalidated. Making this work turns out to be simple. Whenever CHECK_DTBS is set, make 'dt_binding_check' a 'dtbs_prepare' dependency. I reimplemented here what Masahiro had originally come up with a while back. Suggested-by: Masahiro Yamada <masahiroy@kernel.org> Acked-by: Masahiro Yamada <masahiroy@kernel.org> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Tested-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Tested-by: Marek Vasut <marex@denx.de> Link: https://lore.kernel.org/r/20221220013233.2890335-1-robh@kernel.org Signed-off-by: Rob Herring <robh@kernel.org>
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile9
1 files changed, 8 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index d4b6af8c09e9..b74503aec68c 100644
--- a/Makefile
+++ b/Makefile
@@ -1481,7 +1481,10 @@ dtbs_prepare: include/config/kernel.release scripts_dtc
ifneq ($(filter dtbs_check, $(MAKECMDGOALS)),)
export CHECK_DTBS=y
-dtbs: dt_binding_check
+endif
+
+ifneq ($(CHECK_DTBS),)
+dtbs_prepare: dt_binding_check
endif
dtbs_check: dtbs
@@ -1779,6 +1782,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'