]> git.sur5r.net Git - u-boot/commitdiff
Validate dtc is new enough
authorStephen Warren <swarren@nvidia.com>
Wed, 24 Jul 2013 17:09:16 +0000 (10:09 -0700)
committerTom Rini <trini@ti.com>
Fri, 2 Aug 2013 22:29:32 +0000 (18:29 -0400)
Subsequent patches assume that dtc supports various recent features.
These are available in dtc 1.4.0. Validate that dtc is at least that
version.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Simon Glass <sjg@chromium.org>
Makefile
config.mk
tools/dtc-version.sh [new file with mode: 0755]

index 7206abac1f3dc1d65fc0eda03fdd5a8a96506cee..d545d306fde14faae567cb65c7706933ee04fe93 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -413,7 +413,7 @@ endif
 
 all:           $(ALL-y) $(SUBDIR_EXAMPLES)
 
-$(obj)u-boot.dtb:      $(obj)u-boot
+$(obj)u-boot.dtb:      checkdtc $(obj)u-boot
                $(MAKE) -C dts binary
                mv $(obj)dts/dt.dtb $@
 
@@ -667,6 +667,12 @@ checkgcc4:
                false; \
        fi
 
+checkdtc:
+       @if test $(call dtc-version) -lt 0104; then \
+               echo '*** Your dtc is too old, please upgrade to dtc 1.4 or newer'; \
+               false; \
+       fi
+
 #
 # Auto-generate the autoconf.mk file (which is included by all makefiles)
 #
index 499eed134868d1494e2f40fa6a46719d45eda71f..3e84f36d836e96b2e732590395d57e7a39decaab 100644 (file)
--- a/config.mk
+++ b/config.mk
@@ -119,6 +119,7 @@ endif
 # Usage gcc-ver := $(call cc-version)
 cc-version = $(shell $(SHELL) $(SRCTREE)/tools/gcc-version.sh $(CC))
 binutils-version = $(shell $(SHELL) $(SRCTREE)/tools/binutils-version.sh $(AS))
+dtc-version = $(shell $(SHELL) $(SRCTREE)/tools/dtc-version.sh $(DTC))
 
 #
 # Include the make variables (CC, etc...)
diff --git a/tools/dtc-version.sh b/tools/dtc-version.sh
new file mode 100755 (executable)
index 0000000..e8c94d3
--- /dev/null
@@ -0,0 +1,20 @@
+#!/bin/sh
+#
+# dtc-version dtc-command
+#
+# Prints the dtc version of `dtc-command' in a canonical 4-digit form
+# such as `0222' for binutils 2.22
+#
+
+dtc="$*"
+
+if [ ${#dtc} -eq 0 ]; then
+       echo "Error: No dtc command specified."
+       printf "Usage:\n\t$0 <dtc-command>\n"
+       exit 1
+fi
+
+MAJOR=$($dtc -v | head -1 | awk '{print $NF}' | cut -d . -f 1)
+MINOR=$($dtc -v | head -1 | awk '{print $NF}' | cut -d . -f 2)
+
+printf "%02d%02d\\n" $MAJOR $MINOR