barebox proper is usually compressed and this introduces a dependency on an outside host tool depending on the chosen compression algo. So far, we expected the utility to be in PATH, but to allow build systems to place it elsewhere, let's copy what Linux does and adopt a number of Make variable that can be overridden from the outside. Signed-off-by: Ahmad Fatoum <a.fatoum@xxxxxxxxxxxxxx> --- Makefile | 6 ++++++ scripts/Makefile.lib | 12 ++++++------ scripts/xz_wrap.sh | 5 +++-- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/Makefile b/Makefile index 3487aba201b9..81cab701230e 100644 --- a/Makefile +++ b/Makefile @@ -440,6 +440,12 @@ PYTHON3 = python3 CHECK = sparse MKIMAGE = mkimage BASH = bash +KGZIP = gzip +KBZIP2 = bzip2 +KLZOP = lzop +LZMA = lzma +LZ4 = lz4 +XZ = xz CHECKFLAGS := -D__linux__ -Dlinux -D__STDC__ -Dunix -D__unix__ -Wbitwise $(CF) CFLAGS_KERNEL = diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib index f195ddb7e885..d4f202bd48bd 100644 --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib @@ -342,7 +342,7 @@ suffix_$(CONFIG_IMAGE_COMPRESSION_NONE) = comp_copy # --------------------------------------------------------------------------- quiet_cmd_gzip = GZIP $@ -cmd_gzip = (cat $(filter-out FORCE,$^) | gzip -n -f -9 > $@) || \ +cmd_gzip = (cat $(filter-out FORCE,$^) | $(KGZIP) -n -f -9 > $@) || \ (rm -f $@ ; false) %.gz: % @@ -373,7 +373,7 @@ cmd_xzkern = (cat $(filter-out FORCE,$^) | \ quiet_cmd_xzmisc = XZMISC $@ cmd_xzmisc = (cat $(filter-out FORCE,$^) | \ - xz --check=crc32 --lzma2=dict=1MiB) > $@ || \ + $(XZ) --check=crc32 --lzma2=dict=1MiB) > $@ || \ (rm -f $@ ; false) %.xzkern: % @@ -482,7 +482,7 @@ printf "%08x\n" $$dec_size | \ quiet_cmd_bzip2 = BZIP2 $@ cmd_bzip2 = (cat $(filter-out FORCE,$^) | \ - bzip2 -9 && $(call size_append, $(filter-out FORCE,$^))) > $@ || \ + $(KBZIP2) -9 && $(call size_append, $(filter-out FORCE,$^))) > $@ || \ (rm -f $@ ; false) %.bz2: % @@ -493,7 +493,7 @@ cmd_bzip2 = (cat $(filter-out FORCE,$^) | \ quiet_cmd_lzma = LZMA $@ cmd_lzma = (cat $(filter-out FORCE,$^) | \ - lzma -9 && $(call size_append, $(filter-out FORCE,$^))) > $@ || \ + $(LZMA) -9 && $(call size_append, $(filter-out FORCE,$^))) > $@ || \ (rm -f $@ ; false) %.lzma: % @@ -501,7 +501,7 @@ cmd_lzma = (cat $(filter-out FORCE,$^) | \ quiet_cmd_lzo = LZO $@ cmd_lzo = (cat $(filter-out FORCE,$^) | \ - lzop -9 && $(call size_append, $(filter-out FORCE,$^))) > $@ || \ + $(KLZOP) -9 && $(call size_append, $(filter-out FORCE,$^))) > $@ || \ (rm -f $@ ; false) %.lzo: % @@ -512,7 +512,7 @@ cmd_lzo = (cat $(filter-out FORCE,$^) | \ quiet_cmd_lz4 = LZ4 $@ cmd_lz4 = (cat $(filter-out FORCE,$^) | \ - lz4 -l --best stdin stdout && $(call size_append, $(filter-out FORCE,$^))) > $@ || \ + $(LZ4) -l --best stdin stdout && $(call size_append, $(filter-out FORCE,$^))) > $@ || \ (rm -f $@ ; false) %.lz4: % diff --git a/scripts/xz_wrap.sh b/scripts/xz_wrap.sh index 02823bc1df18..a106b1a9e6d2 100755 --- a/scripts/xz_wrap.sh +++ b/scripts/xz_wrap.sh @@ -11,6 +11,7 @@ BCJ= LZMA2OPTS= +XZ=${XZ:-xz} case $SRCARCH in x86) BCJ=--x86 ;; @@ -26,7 +27,7 @@ fi # clear BCJ filter if unsupported if [ -n "${BCJ}" ]; then - xz -H | grep -q -- $BCJ || BCJ= + $XZ -H | grep -q -- $BCJ || BCJ= fi -exec xz --check=crc32 $BCJ --lzma2=$LZMA2OPTS,dict=32MiB +exec $XZ --check=crc32 $BCJ --lzma2=$LZMA2OPTS,dict=32MiB -- 2.39.5