[PATCH 2/2] kbuild: allow overriding compression tools

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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





[Index of Archives]     [Linux Embedded]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux