From: Ahmad Fatoum <a.fatoum@pengutronix.de>
To: barebox@lists.infradead.org
Cc: Ahmad Fatoum <a.fatoum@pengutronix.de>
Subject: [PATCH 2/2] kbuild: allow overriding compression tools
Date: Thu, 16 Jan 2025 15:09:24 +0100 [thread overview]
Message-ID: <20250116140924.298889-2-a.fatoum@pengutronix.de> (raw)
In-Reply-To: <20250116140924.298889-1-a.fatoum@pengutronix.de>
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@pengutronix.de>
---
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
next prev parent reply other threads:[~2025-01-16 14:11 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-16 14:09 [PATCH 1/2] kbuild: allow overriding mkimage Ahmad Fatoum
2025-01-16 14:09 ` Ahmad Fatoum [this message]
2025-01-21 8:20 ` [PATCH 2/2] kbuild: allow overriding compression tools Sascha Hauer
2025-01-21 8:52 ` Ahmad Fatoum
2025-01-21 9:38 ` Sascha Hauer
2025-01-21 9:39 ` Ahmad Fatoum
2025-01-21 8:59 ` [PATCH 1/2] kbuild: allow overriding mkimage Sascha Hauer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250116140924.298889-2-a.fatoum@pengutronix.de \
--to=a.fatoum@pengutronix.de \
--cc=barebox@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox