diff options
| author | Rob Herring (Arm) <robh@kernel.org> | 2025-12-08 16:43:03 -0600 |
|---|---|---|
| committer | Rob Herring (Arm) <robh@kernel.org> | 2025-12-17 09:16:14 -0600 |
| commit | 400fbf4b5870f42b651371303730290ca7a8dd78 (patch) | |
| tree | 5f66278dd87c5f4553cb6e74d0ebd80368b65e77 /Makefile | |
| parent | 1a0c2bf998bb90e1d7450ad6b3b47f9e428375a7 (diff) | |
| download | linux-next-history-400fbf4b5870f42b651371303730290ca7a8dd78.tar.gz | |
dt-bindings: kbuild: Support single binding targets
Running the full 'make dt_binding_check' is slow. A shortcut is to set
DT_SCHEMA_FILES env variable to a substring of DT schema files to test.
It both limits which examples are validated and which schemas are used
to validate the examples. This is a problem because errors from other
schemas are missed. What makes validation slow is checking all examples,
so we really just need a way to test a single example.
Add a %.yaml target to validate the schema and validate the example:
make example-schema.yaml
The behavior for 'make dt_binding_check DT_SCHEMA_FILES=example-schema'
is unchanged. Really it should mirror dtbs_check and validate all the
examples with a subset of schemas, but there are lots of users of
expecting the existing behavior.
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Link: https://patch.msgid.link/20251208224304.2907913-1-robh@kernel.org
Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/Makefile b/Makefile index e404e4767944e..54eb78206d2d9 100644 --- a/Makefile +++ b/Makefile @@ -1506,6 +1506,12 @@ ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/boot/dts/),) dtstree := arch/$(SRCARCH)/boot/dts endif +dtbindingtree := Documentation/devicetree/bindings + +%.yaml: dtbs_prepare + $(Q)$(MAKE) $(build)=$(dtbindingtree) \ + $(dtbindingtree)/$(patsubst %.yaml,%.example.dtb,$@) dt_binding_check_one + ifneq ($(dtstree),) %.dtb: dtbs_prepare @@ -1523,7 +1529,7 @@ dtbs: dtbs_prepare # dtbs_install depend on it as dtbs_install may run as root. dtbs_prepare: include/config/kernel.release scripts_dtc -ifneq ($(filter dtbs_check, $(MAKECMDGOALS)),) +ifneq ($(filter dtbs_check %.yaml, $(MAKECMDGOALS)),) export CHECK_DTBS=y endif @@ -1556,14 +1562,14 @@ endif PHONY += dt_binding_check dt_binding_schemas dt_binding_check: dt_binding_schemas scripts_dtc - $(Q)$(MAKE) $(build)=Documentation/devicetree/bindings $@ + $(Q)$(MAKE) $(build)=$(dtbindingtree) $@ dt_binding_schemas: - $(Q)$(MAKE) $(build)=Documentation/devicetree/bindings + $(Q)$(MAKE) $(build)=$(dtbindingtree) PHONY += dt_compatible_check dt_compatible_check: dt_binding_schemas - $(Q)$(MAKE) $(build)=Documentation/devicetree/bindings $@ + $(Q)$(MAKE) $(build)=$(dtbindingtree) $@ # --------------------------------------------------------------------------- # Modules |
