~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/Makefile

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 # SPDX-License-Identifier: GPL-2.0
  2 DT_DOC_CHECKER ?= dt-doc-validate
  3 DT_EXTRACT_EX ?= dt-extract-example
  4 DT_MK_SCHEMA ?= dt-mk-schema
  5 
  6 DT_SCHEMA_LINT = $(shell which yamllint || \
  7   echo "warning: python package 'yamllint' not installed, skipping" >&2)
  8 
  9 DT_SCHEMA_MIN_VERSION = 2023.9
 10 
 11 PHONY += check_dtschema_version
 12 check_dtschema_version:
 13         @which $(DT_DOC_CHECKER) >/dev/null || \
 14                 { echo "Error: '$(DT_DOC_CHECKER)' not found!" >&2; \
 15                   echo "Ensure dtschema python package is installed and in your PATH." >&2; \
 16                   echo "Current PATH is:" >&2; \
 17                   echo "$$PATH" >&2; false; }
 18         @{ echo $(DT_SCHEMA_MIN_VERSION); \
 19         $(DT_DOC_CHECKER) --version 2>/dev/null || echo 0; } | sort -Vc >/dev/null || \
 20         { echo "ERROR: dtschema minimum version is v$(DT_SCHEMA_MIN_VERSION)" >&2; false; }
 21 
 22 quiet_cmd_extract_ex = DTEX    $@
 23       cmd_extract_ex = $(DT_EXTRACT_EX) $< > $@
 24 
 25 $(obj)/%.example.dts: $(src)/%.yaml check_dtschema_version FORCE
 26         $(call if_changed,extract_ex)
 27 
 28 find_all_cmd = find $(src) \( -name '*.yaml' ! \
 29                 -name 'processed-schema*' \)
 30 
 31 find_cmd = $(find_all_cmd) | \
 32                 sed 's|^$(srctree)/||' | \
 33                 grep -F -e "$(subst :," -e ",$(DT_SCHEMA_FILES))" | \
 34                 sed 's|^|$(srctree)/|'
 35 CHK_DT_EXAMPLES := $(patsubst $(srctree)/%.yaml,%.example.dtb, $(shell $(find_cmd)))
 36 
 37 quiet_cmd_yamllint = LINT    $(src)
 38       cmd_yamllint = ($(find_cmd) | \
 39                      xargs -n200 -P$$(nproc) \
 40                      $(DT_SCHEMA_LINT) -f parsable -c $(src)/.yamllint >&2) \
 41                      && touch $@ || true
 42 
 43 quiet_cmd_chk_bindings = CHKDT   $(src)
 44       cmd_chk_bindings = ($(find_cmd) | \
 45                           xargs -n200 -P$$(nproc) $(DT_DOC_CHECKER) -u $(src)) \
 46                           && touch $@ || true
 47 
 48 quiet_cmd_mk_schema = SCHEMA  $@
 49       cmd_mk_schema = f=$$(mktemp) ; \
 50                       $(find_all_cmd) > $$f ; \
 51                       $(DT_MK_SCHEMA) -j $(DT_MK_SCHEMA_FLAGS) @$$f > $@ ; \
 52                       rm -f $$f
 53 
 54 DT_DOCS = $(patsubst $(srctree)/%,%,$(shell $(find_all_cmd)))
 55 
 56 override DTC_FLAGS := \
 57         -Wno-avoid_unnecessary_addr_size \
 58         -Wno-graph_child_address \
 59         -Wno-interrupt_provider \
 60         -Wno-unique_unit_address \
 61         -Wunique_unit_address_if_enabled
 62 
 63 $(obj)/processed-schema.json: $(DT_DOCS) check_dtschema_version FORCE
 64         $(call if_changed,mk_schema)
 65 
 66 targets += .dt-binding.checked .yamllint.checked
 67 $(obj)/.yamllint.checked: $(DT_DOCS) $(src)/.yamllint FORCE
 68         $(if $(DT_SCHEMA_LINT),$(call if_changed,yamllint),)
 69 
 70 $(obj)/.dt-binding.checked: $(DT_DOCS) FORCE
 71         $(call if_changed,chk_bindings)
 72 
 73 always-y += processed-schema.json
 74 targets += $(patsubst $(obj)/%,%, $(CHK_DT_EXAMPLES))
 75 targets += $(patsubst $(obj)/%.dtb,%.dts, $(CHK_DT_EXAMPLES))
 76 
 77 # Hack: avoid 'Argument list too long' error for 'make clean'. Remove most of
 78 # build artifacts here before they are processed by scripts/Makefile.clean
 79 clean-files = $(shell find $(obj) \( -name '*.example.dts' -o \
 80                         -name '*.example.dtb' \) -delete 2>/dev/null)
 81 
 82 dt_compatible_check: $(obj)/processed-schema.json
 83         $(Q)$(srctree)/scripts/dtc/dt-extract-compatibles $(srctree) | xargs dt-check-compatible -v -s $<
 84 
 85 PHONY += dt_binding_check
 86 dt_binding_check: $(obj)/.dt-binding.checked $(obj)/.yamllint.checked $(CHK_DT_EXAMPLES)

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php