summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen Warren <swarren@nvidia.com>2013-07-24 10:09:16 -0700
committerTom Rini <trini@ti.com>2013-08-02 18:29:32 -0400
commit501ebdf28666b3142a27c4b4fe6b76a159564ffd (patch)
tree2d1b7cd2ee1ba1ec3469e7d48c6748fbf43d0b02
parent245d65b6e503f3a159cffb3392ac3b2c25606d8e (diff)
Validate dtc is new enough
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>
-rw-r--r--Makefile8
-rw-r--r--config.mk1
-rwxr-xr-xtools/dtc-version.sh20
3 files changed, 28 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index 7206abac1f..d545d306fd 100644
--- 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)
#
diff --git a/config.mk b/config.mk
index 499eed1348..3e84f36d83 100644
--- 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
index 0000000000..e8c94d390b
--- /dev/null
+++ b/tools/dtc-version.sh
@@ -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