path: root/defaultenv
diff options
authorSascha Hauer <>2019-02-20 09:45:32 +0100
committerSascha Hauer <>2019-02-27 09:20:20 +0100
commit0293f7489686b9838185a38f2eb0125a9a95f5e0 (patch)
treeaaaccd2c67b64beb4d6abd4fa8f47f774b459286 /defaultenv
parent9d9b87ef9c4bfbd56a49f1f0e7be212718d6d289 (diff)
defaultenv: Fix dependencies
The defaultenv should be rebuilt once a file in it has changed. the genenv script always generates the environment file to a temporary file. Only if it has changed to the last target file the temporary file is moved over the target file. This means we always have to call genenv, thus replace "if_changed" with "cmd". With this dependencies are correctly tracked. New or changed files result in new image builds whereas unchanged environments do not unnecessarily result in new images. Signed-off-by: Sascha Hauer <>
Diffstat (limited to 'defaultenv')
1 files changed, 3 insertions, 1 deletions
diff --git a/defaultenv/Makefile b/defaultenv/Makefile
index f313b04..950ac29 100644
--- a/defaultenv/Makefile
+++ b/defaultenv/Makefile
@@ -13,8 +13,10 @@ $(obj)/defaultenv.o: $(obj)/barebox_default_env.h
quiet_cmd_env_default = ENV $@
cmd_env_default = ($(srctree)/scripts/genenv $(srctree) $(objtree) $@ $(CONFIG_DEFAULT_ENVIRONMENT_PATH))
+# genenv is always called, but only generates output when the file actually
+# changes, so that the dependent targets are not unnecessarily rebuilt
$(obj)/barebox_default_env: FORCE
- $(call if_changed,env_default)
+ $(call cmd,env_default)
quiet_cmd_env_h = ENVH $@
cmd_env_h = cat $< | (cd $(obj) && $(objtree)/scripts/bin2c "__aligned(4) default_environment") > $@; \