mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-01 00:58:39 +02:00 
			
		
		
		
	dt-bindings: kbuild: Add separate target/dependency for processed-schema.json
Running dtbs_check and dt_compatible_check targets really only depend on processed-schema.json, but the dependency is 'dt_binding_check'. That was sort worked around with the CHECK_DT_BINDING variable in order to skip some of the work that 'dt_binding_check' does. It still runs the full checks of the schemas which is not necessary and adds 10s of seconds to the build time. That's significant when checking only a few DTBs and with recent changes that have improved the validation time by 6-7x. Add a new target, dt_binding_schema, which just builds processed-schema.json and can be used as the dependency for other targets. The scripts_dtc dependency isn't needed either as the examples aren't built for it. Signed-off-by: Rob Herring <robh@kernel.org> Tested-by: Conor Dooley <conor.dooley@microchip.com> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
This commit is contained in:
		
							parent
							
								
									6552b72c3a
								
							
						
					
					
						commit
						604a57ba97
					
				
					 3 changed files with 20 additions and 13 deletions
				
			
		|  | @ -63,7 +63,7 @@ override DTC_FLAGS := \ | ||||||
| $(obj)/processed-schema.json: $(DT_DOCS) check_dtschema_version FORCE | $(obj)/processed-schema.json: $(DT_DOCS) check_dtschema_version FORCE | ||||||
| 	$(call if_changed,mk_schema) | 	$(call if_changed,mk_schema) | ||||||
| 
 | 
 | ||||||
| always-$(CHECK_DT_BINDING) += .dt-binding.checked .yamllint.checked | targets += .dt-binding.checked .yamllint.checked | ||||||
| $(obj)/.yamllint.checked: $(DT_DOCS) $(src)/.yamllint FORCE | $(obj)/.yamllint.checked: $(DT_DOCS) $(src)/.yamllint FORCE | ||||||
| 	$(if $(DT_SCHEMA_LINT),$(call if_changed,yamllint),) | 	$(if $(DT_SCHEMA_LINT),$(call if_changed,yamllint),) | ||||||
| 
 | 
 | ||||||
|  | @ -71,8 +71,8 @@ $(obj)/.dt-binding.checked: $(DT_DOCS) FORCE | ||||||
| 	$(call if_changed,chk_bindings) | 	$(call if_changed,chk_bindings) | ||||||
| 
 | 
 | ||||||
| always-y += processed-schema.json | always-y += processed-schema.json | ||||||
| always-$(CHECK_DT_BINDING) += $(patsubst $(obj)/%,%, $(CHK_DT_EXAMPLES)) | targets += $(patsubst $(obj)/%,%, $(CHK_DT_EXAMPLES)) | ||||||
| always-$(CHECK_DT_BINDING) += $(patsubst $(obj)/%.dtb,%.dts, $(CHK_DT_EXAMPLES)) | targets += $(patsubst $(obj)/%.dtb,%.dts, $(CHK_DT_EXAMPLES)) | ||||||
| 
 | 
 | ||||||
| # Hack: avoid 'Argument list too long' error for 'make clean'. Remove most of
 | # Hack: avoid 'Argument list too long' error for 'make clean'. Remove most of
 | ||||||
| # build artifacts here before they are processed by scripts/Makefile.clean
 | # build artifacts here before they are processed by scripts/Makefile.clean
 | ||||||
|  | @ -81,3 +81,6 @@ clean-files = $(shell find $(obj) \( -name '*.example.dts' -o \ | ||||||
| 
 | 
 | ||||||
| dt_compatible_check: $(obj)/processed-schema.json | dt_compatible_check: $(obj)/processed-schema.json | ||||||
| 	$(Q)$(srctree)/scripts/dtc/dt-extract-compatibles $(srctree) | xargs dt-check-compatible -v -s $< | 	$(Q)$(srctree)/scripts/dtc/dt-extract-compatibles $(srctree) | xargs dt-check-compatible -v -s $< | ||||||
|  | 
 | ||||||
|  | PHONY += dt_binding_check | ||||||
|  | dt_binding_check: $(obj)/.dt-binding.checked $(obj)/.yamllint.checked $(CHK_DT_EXAMPLES) | ||||||
|  |  | ||||||
							
								
								
									
										22
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								Makefile
									
									
									
									
									
								
							|  | @ -1403,7 +1403,7 @@ export CHECK_DTBS=y | ||||||
| endif | endif | ||||||
| 
 | 
 | ||||||
| ifneq ($(CHECK_DTBS),) | ifneq ($(CHECK_DTBS),) | ||||||
| dtbs_prepare: dt_binding_check | dtbs_prepare: dt_binding_schemas | ||||||
| endif | endif | ||||||
| 
 | 
 | ||||||
| dtbs_check: dtbs | dtbs_check: dtbs | ||||||
|  | @ -1422,15 +1422,18 @@ scripts_dtc: scripts_basic | ||||||
| 	$(Q)$(MAKE) $(build)=scripts/dtc | 	$(Q)$(MAKE) $(build)=scripts/dtc | ||||||
| 
 | 
 | ||||||
| ifneq ($(filter dt_binding_check, $(MAKECMDGOALS)),) | ifneq ($(filter dt_binding_check, $(MAKECMDGOALS)),) | ||||||
| export CHECK_DT_BINDING=y | export CHECK_DTBS=y | ||||||
| endif | endif | ||||||
| 
 | 
 | ||||||
| PHONY += dt_binding_check | PHONY += dt_binding_check dt_binding_schemas | ||||||
| dt_binding_check: scripts_dtc | dt_binding_check: dt_binding_schemas scripts_dtc | ||||||
|  | 	$(Q)$(MAKE) $(build)=Documentation/devicetree/bindings $@ | ||||||
|  | 
 | ||||||
|  | dt_binding_schemas: | ||||||
| 	$(Q)$(MAKE) $(build)=Documentation/devicetree/bindings | 	$(Q)$(MAKE) $(build)=Documentation/devicetree/bindings | ||||||
| 
 | 
 | ||||||
| PHONY += dt_compatible_check | PHONY += dt_compatible_check | ||||||
| dt_compatible_check: dt_binding_check | dt_compatible_check: dt_binding_schemas | ||||||
| 	$(Q)$(MAKE) $(build)=Documentation/devicetree/bindings $@ | 	$(Q)$(MAKE) $(build)=Documentation/devicetree/bindings $@ | ||||||
| 
 | 
 | ||||||
| # ---------------------------------------------------------------------------
 | # ---------------------------------------------------------------------------
 | ||||||
|  | @ -1626,10 +1629,11 @@ help: | ||||||
| 	@echo  '' | 	@echo  '' | ||||||
| 	@$(if $(dtstree), \
 | 	@$(if $(dtstree), \
 | ||||||
| 		echo 'Devicetree:'; \
 | 		echo 'Devicetree:'; \
 | ||||||
| 		echo '* dtbs             - Build device tree blobs for enabled boards'; \
 | 		echo '* dtbs               - Build device tree blobs for enabled boards'; \
 | ||||||
| 		echo '  dtbs_install     - Install dtbs to $(INSTALL_DTBS_PATH)'; \
 | 		echo '  dtbs_install       - Install dtbs to $(INSTALL_DTBS_PATH)'; \
 | ||||||
| 		echo '  dt_binding_check - Validate device tree binding documents'; \
 | 		echo '  dt_binding_check   - Validate device tree binding documents and examples'; \
 | ||||||
| 		echo '  dtbs_check       - Validate device tree source files';\
 | 		echo '  dt_binding_schema  - Build processed device tree binding schemas'; \
 | ||||||
|  | 		echo '  dtbs_check         - Validate device tree source files';\
 | ||||||
| 		echo '') | 		echo '') | ||||||
| 
 | 
 | ||||||
| 	@echo 'Userspace tools targets:' | 	@echo 'Userspace tools targets:' | ||||||
|  |  | ||||||
|  | @ -410,7 +410,7 @@ $(multi-dtb-y): FORCE | ||||||
| 	$(call if_changed,fdtoverlay) | 	$(call if_changed,fdtoverlay) | ||||||
| $(call multi_depend, $(multi-dtb-y), .dtb, -dtbs) | $(call multi_depend, $(multi-dtb-y), .dtb, -dtbs) | ||||||
| 
 | 
 | ||||||
| ifneq ($(CHECK_DTBS)$(CHECK_DT_BINDING),) | ifneq ($(CHECK_DTBS),) | ||||||
| DT_CHECKER ?= dt-validate | DT_CHECKER ?= dt-validate | ||||||
| DT_CHECKER_FLAGS ?= $(if $(DT_SCHEMA_FILES),-l $(DT_SCHEMA_FILES),-m) | DT_CHECKER_FLAGS ?= $(if $(DT_SCHEMA_FILES),-l $(DT_SCHEMA_FILES),-m) | ||||||
| DT_BINDING_DIR := Documentation/devicetree/bindings | DT_BINDING_DIR := Documentation/devicetree/bindings | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Rob Herring
						Rob Herring