diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2014-02-17 19:09:03 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2014-02-19 11:30:26 +0100 |
commit | e9241844a8103b62775040cdb35c09002e904fb5 (patch) | |
tree | c79f5d7a93e8d88b9d98c947147048fda3a69bce /common | |
parent | 925e5b4b94ed498be87322f7164d2f34373433b6 (diff) | |
download | barebox-e9241844a8103b62775040cdb35c09002e904fb5.tar.gz barebox-e9241844a8103b62775040cdb35c09002e904fb5.tar.xz |
Kconfig: Select default compression type
Instead of asking explicitly for the default environment compression
type ask for the in-barebox default compression type. This also adds
a DEFAULT_COMPRESSION_SUFFIX make variable which can be used together
with the wildcard rules for compressed files to generate compressed
files without explicitly support each compression type.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'common')
-rw-r--r-- | common/Kconfig | 39 | ||||
-rw-r--r-- | common/Makefile | 13 | ||||
-rw-r--r-- | common/startup.c | 2 |
3 files changed, 23 insertions, 31 deletions
diff --git a/common/Kconfig b/common/Kconfig index 8af7ec1a8d..d6cda8c0c9 100644 --- a/common/Kconfig +++ b/common/Kconfig @@ -535,35 +535,38 @@ config DEFAULT_ENVIRONMENT Enabling this option will give you a default environment when the environment found in the environment sector is invalid -config DEFAULT_ENVIRONMENT_COMPRESSED - bool - depends on DEFAULT_ENVIRONMENT - depends on !IMAGE_COMPRESSION_LZO - depends on !IMAGE_COMPRESSION_GZIP - default y if ZLIB - default y if BZLIB - default y if LZO_DECOMPRESS - -if DEFAULT_ENVIRONMENT_COMPRESSED - choice - prompt "compression" - -config DEFAULT_ENVIRONMENT_COMPRESSED_GZIP + prompt "default compression for in-barebox binaries" + default DEFAULT_COMPRESSION_NONE if PBL_IMAGE + default DEFAULT_COMPRESSION_LZO if LZO_DECOMPRESS + default DEFAULT_COMPRESSION_GZIP if ZLIB + default DEFAULT_COMPRESSION_LZ4 if LZ4_DECOMPRESS + default DEFAULT_COMPRESSION_BZIP2 if BZLIB + help + Select the default compression for in-barebox binary files. Files + compiled into barebox like for example the default environment will + be compressed with this compression type. + +config DEFAULT_COMPRESSION_GZIP bool "gzip" depends on ZLIB -config DEFAULT_ENVIRONMENT_COMPRESSED_BZIP2 +config DEFAULT_COMPRESSION_BZIP2 bool "bzip2" depends on BZLIB -config DEFAULT_ENVIRONMENT_COMPRESSED_LZO +config DEFAULT_COMPRESSION_LZO bool "lzo" depends on LZO_DECOMPRESS -endchoice +config DEFAULT_COMPRESSION_LZ4 + bool "lz4" + depends on LZ4_DECOMPRESS -endif +config DEFAULT_COMPRESSION_NONE + bool "no compression" + +endchoice config HAVE_DEFAULT_ENVIRONMENT_NEW bool diff --git a/common/Makefile b/common/Makefile index 60b0356df4..3cfaae2e72 100644 --- a/common/Makefile +++ b/common/Makefile @@ -76,22 +76,11 @@ cmd_envs = ($(srctree)/scripts/genenv $(srctree) $(objtree) $@ $(DEFAULT_ENVIRON $(obj)/barebox_default_env: FORCE $(call cmd,envs) -barebox_default_env_comp = -ifeq ($(CONFIG_DEFAULT_ENVIRONMENT_COMPRESSED_GZIP),y) -barebox_default_env_comp = .gz -endif -ifeq ($(CONFIG_DEFAULT_ENVIRONMENT_COMPRESSED_BZIP2),y) -barebox_default_env_comp = .bz2 -endif -ifeq ($(CONFIG_DEFAULT_ENVIRONMENT_COMPRESSED_LZO),y) -barebox_default_env_comp = .lzo -endif - quiet_cmd_env_h = ENVH $@ cmd_env_h = cat $< | (cd $(obj) && $(objtree)/scripts/bin2c default_environment) > $@; \ echo "static const int default_environment_uncompress_size=`stat -c%s $(obj)/barebox_default_env`;" >> $@ -$(obj)/barebox_default_env.h: $(obj)/barebox_default_env$(barebox_default_env_comp) FORCE +$(obj)/barebox_default_env.h: $(obj)/barebox_default_env$(DEFAULT_COMPRESSION_SUFFIX) FORCE $(call if_changed,env_h) quiet_cmd_pwd_h = PWDH $@ diff --git a/common/startup.c b/common/startup.c index e8b9ea0216..4bc5628f4a 100644 --- a/common/startup.c +++ b/common/startup.c @@ -52,7 +52,7 @@ static int register_default_env(void) int ret; void *defaultenv; - if (IS_ENABLED(CONFIG_DEFAULT_ENVIRONMENT_COMPRESSED)) { + if (!IS_ENABLED(CONFIG_DEFAULT_COMPRESSION_NONE)) { void *tmp = malloc(default_environment_size); if (!tmp) |