[FFmpeg-devel] [PATCH v5 2/2] ffbuild/commonmak: Consolidate pattern rules for compression

softworkz ffmpegagent at gmail.com
Wed May 28 00:41:27 EEST 2025


From: softworkz <softworkz at hotmail.com>

This commit simplifies and consolidates all the rules around
ptx and resource file compression.

Signed-off-by: softworkz <softworkz at hotmail.com>
---
 ffbuild/common.mak | 41 +++++++++++++++++------------------------
 1 file changed, 17 insertions(+), 24 deletions(-)

diff --git a/ffbuild/common.mak b/ffbuild/common.mak
index f03b9ca051..f446a12b92 100644
--- a/ffbuild/common.mak
+++ b/ffbuild/common.mak
@@ -115,6 +115,12 @@ COMPILE_LASX = $(call COMPILE,CC,LASXFLAGS)
 $(BIN2CEXE): ffbuild/bin2c_host.o
 	$(HOSTLD) $(HOSTLDFLAGS) $(HOSTLD_O) $^ $(HOSTEXTRALIBS)
 
+RUN_BIN2C = $(BIN2C) $(patsubst $(SRC_PATH)/%,$(SRC_LINK)/%,$<) $@ $(subst .,_,$(basename $(notdir $@)))
+RUN_GZIP  = $(M)gzip -nc9 $(patsubst $(SRC_PATH)/%,$(SRC_LINK)/%,$<) >$@
+RUN_MINIFY = $(M)sed 's!/\\*.*\\*/!!g' $< | tr '\n' ' ' | tr -s ' ' | sed 's/^ //; s/ $$//' > $@
+%.gz: TAG = GZIP
+%.min: TAG = MINIFY
+
 %.metal.air: %.metal
 	$(METALCC) $< -o $@
 
@@ -122,63 +128,50 @@ $(BIN2CEXE): ffbuild/bin2c_host.o
 	$(METALLIB) --split-module-without-linking $< -o $@
 
 %.metallib.c: %.metallib $(BIN2CEXE)
-	$(BIN2C) $< $@ $(subst .,_,$(basename $(notdir $@)))
+	$(RUN_BIN2C)
 
 %.ptx: %.cu $(SRC_PATH)/compat/cuda/cuda_runtime.h
 	$(COMPILE_NVCC)
 
 ifdef CONFIG_PTX_COMPRESSION
-%.ptx.gz: TAG = GZIP
 %.ptx.gz: %.ptx
-	$(M)gzip -nc9 $(patsubst $(SRC_PATH)/%,$(SRC_LINK)/%,$<) >$@
+	$(RUN_GZIP)
 
 %.ptx.c: %.ptx.gz $(BIN2CEXE)
-	$(BIN2C) $(patsubst $(SRC_PATH)/%,$(SRC_LINK)/%,$<) $@ $(subst .,_,$(basename $(notdir $@)))
+	$(RUN_BIN2C)
 else
 %.ptx.c: %.ptx $(BIN2CEXE)
-	$(BIN2C) $(patsubst $(SRC_PATH)/%,$(SRC_LINK)/%,$<) $@ $(subst .,_,$(basename $(notdir $@)))
+	$(RUN_BIN2C)
 endif
 
 %.ptx.o: CCDEP       =
 %.ptx.o: CC_DEPFLAGS =
 
 
-# 1) Preprocess CSS to a minified version
 %.css.min: %.css
-	# Must start with a tab in the real Makefile
-	sed 's!/\\*.*\\*/!!g' $< \
-	| tr '\n' ' ' \
-	| tr -s ' ' \
-	| sed 's/^ //; s/ $$//' \
-	> $@
+	$(RUN_MINIFY)
 
 ifdef CONFIG_RESOURCE_COMPRESSION
 
-# 2) Gzip the minified CSS
 %.css.min.gz: %.css.min
-	$(M)gzip -nc9 $< > $@
+	$(RUN_GZIP)
 
-# 3) Convert the gzipped CSS to a .c array
 %.css.c: %.css.min.gz $(BIN2CEXE)
-	$(BIN2C) $< $@ $(subst .,_,$(basename $(notdir $@)))
+	$(RUN_BIN2C)
 
-# 4) Gzip the HTML file (no minification needed)
 %.html.gz: %.html
-	$(M)gzip -nc9 $< > $@
+	$(RUN_GZIP)
 
-# 5) Convert the gzipped HTML to a .c array
 %.html.c: %.html.gz $(BIN2CEXE)
-	$(BIN2C) $< $@ $(subst .,_,$(basename $(notdir $@)))
+	$(RUN_BIN2C)
 
 else   # NO COMPRESSION
 
-# 2) Convert the minified CSS to a .c array
 %.css.c: %.css.min $(BIN2CEXE)
-	$(BIN2C) $< $@ $(subst .,_,$(basename $(notdir $@)))
+	$(RUN_BIN2C)
 
-# 3) Convert the plain HTML to a .c array
 %.html.c: %.html $(BIN2CEXE)
-	$(BIN2C) $< $@ $(subst .,_,$(basename $(notdir $@)))
+	$(RUN_BIN2C)
 endif
 
 %.html.o %.css.o: CCDEP       =
-- 
ffmpeg-codebot


More information about the ffmpeg-devel mailing list