kbuild: allow to run dt_binding_check without kernel configuration
authorMasahiro Yamada <masahiroy@kernel.org>
Wed, 4 Mar 2020 03:20:38 +0000 (12:20 +0900)
committerMasahiro Yamada <masahiroy@kernel.org>
Fri, 13 Mar 2020 01:04:36 +0000 (10:04 +0900)
The dt_binding_check target is located outside of the
'ifneq ($(dtstree),) ... endif' block.

So, you can run 'make dt_binding_check' on any architecture.
This makes a perfect sense because the dt-schema is arch-agnostic.

The only one problem I see is that scripts/dtc/dtc is not always built.
For example, ARCH=x86 defconfig does not define CONFIG_DTC. Kbuild
descends into scripts/dtc/ with doing nothing. Then, it fails to build
*.example.dt.yaml files.

Let's build scripts/dtc/dtc forcibly when running dt_binding_check.

The dt-schema does not depend on any CONFIG option either, so you
should be able to run dt_binding_check without the .config file.

Going forward, you can directly run 'make dt_binding_check' in a
pristine source tree.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Reviewed-by: Rob Herring <robh@kernel.org>
Makefile
scripts/dtc/Makefile

index 9387c96ec874c432d8fc1d3c85476b12fe6c17fb..96f6ca3004cf4ca818512fe378c00dd7b5f1627f 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -255,7 +255,7 @@ clean-targets := %clean mrproper cleandocs
 no-dot-config-targets := $(clean-targets) \
                         cscope gtags TAGS tags help% %docs check% coccicheck \
                         $(version_h) headers headers_% archheaders archscripts \
-                        %asm-generic kernelversion %src-pkg
+                        %asm-generic kernelversion %src-pkg dt_binding_check
 no-sync-config-targets := $(no-dot-config-targets) install %install \
                           kernelrelease
 single-targets := %.a %.i %.ko %.lds %.ll %.lst %.mod %.o %.s %.symtypes %/
index 3acbb410904c899bd0fc848e736820cf21932dff..2f3c3a7e1620fb205767ae2f7d8dd32100f92547 100644 (file)
@@ -1,8 +1,9 @@
 # SPDX-License-Identifier: GPL-2.0
 # scripts/dtc makefile
 
-hostprogs              := dtc
-always-$(CONFIG_DTC)   := $(hostprogs)
+hostprogs                      := dtc
+always-$(CONFIG_DTC)           += $(hostprogs)
+always-$(CHECK_DT_BINDING)     += $(hostprogs)
 
 dtc-objs       := dtc.o flattree.o fstree.o data.o livetree.o treesource.o \
                   srcpos.o checks.o util.o