echo -n does not give the intended effect when invoked in macOS through 
/bin/sh, which is the shell make uses by default, see 
"https://stackoverflow.com/questions/11675070/makefile-echo-n-not-working"; for 
a detailed explanation. In this case, it resulted in "-n" being written to 
env.txt and env.in even though they should be empty, which caused compilation 
to fail with "Your board uses a text-file environment, so must not define 
CONFIG_EXTRA_ENV_SETTINGS".

This patch prevents the error by replacing echo -n's with touch, as they are 
used to create empty files in these cases.

diff --git a/Makefile b/Makefile
index 184223ec63..3101aa0132 100644
--- a/Makefile
+++ b/Makefile
@@ -1843,7 +1843,7 @@ quiet_cmd_gen_envp = ENVP    $@
                        -I$(srctree)/arch/$(ARCH)/include \
                        $< -o $@; \
        else \
-               echo -n >$@ ; \
+               touch $@ ; \
        fi
 include/generated/env.in: include/generated/env.txt FORCE
        $(call cmd,gen_envp)
@@ -1860,7 +1860,7 @@ quiet_cmd_envc = ENVC    $@
        elif [ -n "$(ENV_SOURCE_FILE)" ]; then \
                echo "Missing file $(ENV_FILE_CFG)"; \
        else \
-               echo -n >$@ ; \
+               touch $@ ; \
        fi

 include/generated/env.txt: $(wildcard $(ENV_FILE)) FORCE

Reply via email to