Makefile: Only build dtc if needed

At present U-Boot always builds dtc if CONFIG_OF_CONTROL is defined, even
when DTC is provided. The built dtc is not actually used, so this is a
waste of time.

Update the Makefile logic to build dtc only if one is not provided to the
build with the DTC variable. Add documentation to explain this.

This saves about 3.5 seconds of elapsed time on a clean build of
sandbox_spl for me.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass 2021-09-22 11:34:44 -06:00 committed by Tom Rini
parent d7faa082a5
commit 93b1965322
5 changed files with 55 additions and 8 deletions

View file

@ -10,4 +10,3 @@ always := $(hostprogs-y)
# Let clean descend into subdirs
subdir- += basic kconfig
subdir-$(CONFIG_DTC) += dtc

View file

@ -10,11 +10,16 @@
dtc="$*"
if [ ${#dtc} -eq 0 ]; then
echo "Error: No dtc command specified."
echo "Error: No dtc command specified"
printf "Usage:\n\t$0 <dtc-command>\n"
exit 1
fi
if ! which $dtc >/dev/null ; then
echo "Error: Cannot find dtc: $dtc"
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)
PATCH=$($dtc -v | head -1 | awk '{print $NF}' | cut -d . -f 3 | cut -d - -f 1)