summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2019-02-20 09:45:32 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2019-02-27 09:20:20 +0100
commit0293f7489686b9838185a38f2eb0125a9a95f5e0 (patch)
treeaaaccd2c67b64beb4d6abd4fa8f47f774b459286
parent9d9b87ef9c4bfbd56a49f1f0e7be212718d6d289 (diff)
downloadbarebox-0293f7489686b9838185a38f2eb0125a9a95f5e0.tar.gz
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 <s.hauer@pengutronix.de>
-rw-r--r--defaultenv/Makefile4
-rw-r--r--scripts/Makefile.lib4
2 files changed, 6 insertions, 2 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") > $@; \
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
index 7b8643b..f5dcec4 100644
--- a/scripts/Makefile.lib
+++ b/scripts/Makefile.lib
@@ -324,8 +324,10 @@ $(obj)/%.bbenv$(DEFAULT_COMPRESSION_SUFFIX).S: $(src)/%.bbenv$(DEFAULT_COMPRESSI
quiet_cmd_env = ENV $@
cmd_env=$(srctree)/scripts/genenv $(srctree) $(objtree) $@ $<
+# genenv is always called, but only generates output when the file actually
+# changes, so that the dependent targets are not unnecessarily rebuilt
%.bbenv$(DEFAULT_COMPRESSION_SUFFIX): % FORCE
- $(call if_changed,env)
+ $(call cmd,env)
# Bzip2
# ---------------------------------------------------------------------------