diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2012-09-27 10:29:48 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2012-09-28 16:21:44 +0200 |
commit | c8c49c14aef009a86f238c4bdaf78b1d01b7bdcf (patch) | |
tree | b582446b8139c8b1e94373e272443a0f5420f6cc /common/Makefile | |
parent | 1bc0a261885396671cb28ff01f2e56f0d0e4cbde (diff) | |
download | barebox-c8c49c14aef009a86f238c4bdaf78b1d01b7bdcf.tar.gz barebox-c8c49c14aef009a86f238c4bdaf78b1d01b7bdcf.tar.xz |
environment generation: Fix dependencies
The dependencies for generating the environment do not work properly:
- If files are removed from the defaultenv, a subsequent make will not
update the default environment.
- If CONFIG_DEFAULT_ENVIRONMENT_PATH changes, the default environment
also will not be regenerated.
This patch fixes this by introducing a cmd_env which has the content of
$(ENV_FILES) in the command so that the if_changed mechanism recognizes
a change when $(ENV_FILE) changes. This also results in a nice " ENV "
string in the build process.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'common/Makefile')
-rw-r--r-- | common/Makefile | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/common/Makefile b/common/Makefile index 88580a235d..c091b7350c 100644 --- a/common/Makefile +++ b/common/Makefile @@ -38,6 +38,7 @@ obj-$(CONFIG_PASSWORD) += password.o obj-$(CONFIG_MODULES) += module.o obj-$(CONFIG_FLEXIBLE_BOOTARGS) += bootargs.o extra-$(CONFIG_MODULES) += module.lds +extra-y += barebox_default_env ifdef CONFIG_DEFAULT_ENVIRONMENT $(obj)/startup.o: include/generated/barebox_default_env.h @@ -62,8 +63,19 @@ ENV_FILES := $(shell cd $(srctree); for i in $(DEFAULT_ENVIRONMENT_PATH); do fin endif # ifdef CONFIG_DEFAULT_ENVIRONMENT -barebox_default_env: $(ENV_FILES) - $(Q)$(srctree)/scripts/genenv $(srctree) $(objtree) $(DEFAULT_ENVIRONMENT_PATH) +# +# Generate a barebox envfs image. +# +# echo $(ENV_FILES) > /dev/null is just for letting if_changed +# recognize that something has changed when the environment has +# other files, +# +quiet_cmd_env = ENV $@ +cmd_env = ($(srctree)/scripts/genenv $(srctree) $(objtree) $@ $(DEFAULT_ENVIRONMENT_PATH)) || \ + (echo $(ENV_FILES) > /dev/null; rm -f $@ ; false) + +$(obj)/barebox_default_env: $(ENV_FILES) FORCE + $(call if_changed,env) barebox_default_env_comp = ifeq ($(CONFIG_DEFAULT_ENVIRONMENT_COMPRESSED_GZIP),y) @@ -76,18 +88,18 @@ ifeq ($(CONFIG_DEFAULT_ENVIRONMENT_COMPRESSED_LZO),y) barebox_default_env_comp = .lzo endif -barebox_default_env.gz: barebox_default_env +$(obj)/barebox_default_env.gz: $(obj)/barebox_default_env $(call if_changed,gzip) -barebox_default_env.bz2: barebox_default_env +$(obj)/barebox_default_env.bz2: $(obj)/barebox_default_env $(call if_changed,bzip2) -barebox_default_env.lzo: barebox_default_env +$(obj)/barebox_default_env.lzo: $(obj)/barebox_default_env $(call if_changed,lzo) -include/generated/barebox_default_env.h: barebox_default_env$(barebox_default_env_comp) - $(Q)cat $< | $(objtree)/scripts/bin2c default_environment > $@ - $(Q)echo "const int default_environment_uncompress_size=`stat -c%s barebox_default_env`;" >> $@ +include/generated/barebox_default_env.h: $(obj)/barebox_default_env$(barebox_default_env_comp) + $(Q)cat $< | (cd $(obj) && $(objtree)/scripts/bin2c default_environment) > $@ + $(Q)echo "const int default_environment_uncompress_size=`stat -c%s $(obj)/barebox_default_env`;" >> $@ # dependencies on generated files need to be listed explicitly $(obj)/version.o: include/generated/compile.h |