.SHELLFLAGS := -eu -o pipefail -c .ONESHELL: .DELETE_ON_ERROR: brotli := brotli --force gzip := gzip --best --keep --force zstd := zstd --force --no-pass-through -19 --quiet build: zola build to_compress := $(shell fd . public --type=file -e html -e xml -e txt -e asc) brotli_files := $(patsubst %, %.br, $(to_compress)) gzip_files := $(patsubst %, %.gz, $(to_compress)) zstd_files := $(patsubst %, %.zst, $(to_compress)) public/%.html.br: public/%.html $(brotli) $< public/%.xml.br: public/%.xml $(brotli) $< public/%.txt.br: public/%.txt $(brotli) $< public/%.asc.br: public/%.asc $(brotli) $< public/%.html.gz: public/%.html $(gzip) $< public/%.xml.gz: public/%.xml $(gzip) $< public/%.txt.gz: public/%.txt $(gzip) $< public/%.asc.gz: public/%.asc $(gzip) $< public/%.html.zst: public/%.html $(zstd) $< public/%.xml.zst: public/%.xml $(zstd) $< public/%.txt.zst: public/%.txt $(zstd) $< public/%.asc.zst: public/%.asc $(zstd) $< compress: $(brotli_files) $(gzip_files) $(zstd_files) .PHONY: all build compress