OUTPUTS = default-4096.webp default-4096.png default-4096.avif default-2048.webp default-2048.png default-2048.avif default-1024.webp default-1024.png default-1024.avif default-512.webp default-512.png default-512.avif default-256.webp default-256.png default-256.avif default-128.webp default-128.png default-128.avif default-64.webp default-64.png default-64.avif default-32.webp default-32.png default-32.avif default-16.webp default-16.png default-16.avif default-16.ico pride-4096.webp pride-4096.png pride-4096.avif pride-2048.webp pride-2048.png pride-2048.avif pride-1024.webp pride-1024.png pride-1024.avif pride-512.webp pride-512.png pride-512.avif pride-256.webp pride-256.png pride-256.avif pride-128.webp pride-128.png pride-128.avif pride-64.webp pride-64.png pride-64.avif pride-32.webp pride-32.png pride-32.avif pride-16.webp pride-16.png pride-16.avif pride-16.ico chrismas-4096.webp chrismas-4096.png chrismas-4096.avif chrismas-2048.webp chrismas-2048.png chrismas-2048.avif chrismas-1024.webp chrismas-1024.png chrismas-1024.avif chrismas-512.webp chrismas-512.png chrismas-512.avif chrismas-256.webp chrismas-256.png chrismas-256.avif chrismas-128.webp chrismas-128.png chrismas-128.avif chrismas-64.webp chrismas-64.png chrismas-64.avif chrismas-32.webp chrismas-32.png chrismas-32.avif chrismas-16.webp chrismas-16.png chrismas-16.avif chrismas-16.ico secondary-4096.webp secondary-4096.png secondary-4096.avif secondary-2048.webp secondary-2048.png secondary-2048.avif secondary-1024.webp secondary-1024.png secondary-1024.avif secondary-512.webp secondary-512.png secondary-512.avif secondary-256.webp secondary-256.png secondary-256.avif secondary-128.webp secondary-128.png secondary-128.avif secondary-64.webp secondary-64.png secondary-64.avif secondary-32.webp secondary-32.png secondary-32.avif secondary-16.webp secondary-16.png secondary-16.avif secondary-16.ico
SOURCES = LICENCE makefile gen_makefile.py $(wildcard *.blend)

.PHONY: all
all: $(OUTPUTS) bundle-all.tar.zst bundle-sources.tar.zst bundle-output.tar.zst

.PHONY: clean
clean:
	rm *.webp *.png *.blend1 *.ico *.tar.zst

bundle-all.tar.zst: $(OUTPUTS) $(SOURCES)
	tar --zstd --create --file $@ $^
bundle-sources.tar.zst: $(SOURCES)
	tar --zstd --create --file $@ $^
bundle-output.tar.zst: $(OUTPUTS)
	tar --zstd --create --file $@ $^

%.webp: %.png
	ffmpeg -y -i $< $@
%.avif: %.png
	ffmpeg -y -i $< $@
%.ico: %.png
	ffmpeg -y -i $< $@

default.png: default.blend
	blender --background $^ --render-format PNG --render-output default --render-frame 0
	mv default0000.png $@

pride.png: pride.blend
	blender --background $^ --render-format PNG --render-output pride --render-frame 0
	mv pride0000.png $@

chrismas.png: chrismas.blend
	blender --background $^ --render-format PNG --render-output chrismas --render-frame 0
	mv chrismas0000.png $@

secondary.png: secondary.blend
	blender --background $^ --render-format PNG --render-output secondary --render-frame 0
	mv secondary0000.png $@

default-4096.png: default.png
	ffmpeg -y -i default.png -vf scale=4096x4096 default-4096.png
default-2048.png: default.png
	ffmpeg -y -i default.png -vf scale=2048x2048 default-2048.png
default-1024.png: default.png
	ffmpeg -y -i default.png -vf scale=1024x1024 default-1024.png
default-512.png: default.png
	ffmpeg -y -i default.png -vf scale=512x512 default-512.png
default-256.png: default.png
	ffmpeg -y -i default.png -vf scale=256x256 default-256.png
default-128.png: default.png
	ffmpeg -y -i default.png -vf scale=128x128 default-128.png
default-64.png: default.png
	ffmpeg -y -i default.png -vf scale=64x64 default-64.png
default-32.png: default.png
	ffmpeg -y -i default.png -vf scale=32x32 default-32.png
default-16.png: default.png
	ffmpeg -y -i default.png -vf scale=16x16 default-16.png
pride-4096.png: pride.png
	ffmpeg -y -i pride.png -vf scale=4096x4096 pride-4096.png
pride-2048.png: pride.png
	ffmpeg -y -i pride.png -vf scale=2048x2048 pride-2048.png
pride-1024.png: pride.png
	ffmpeg -y -i pride.png -vf scale=1024x1024 pride-1024.png
pride-512.png: pride.png
	ffmpeg -y -i pride.png -vf scale=512x512 pride-512.png
pride-256.png: pride.png
	ffmpeg -y -i pride.png -vf scale=256x256 pride-256.png
pride-128.png: pride.png
	ffmpeg -y -i pride.png -vf scale=128x128 pride-128.png
pride-64.png: pride.png
	ffmpeg -y -i pride.png -vf scale=64x64 pride-64.png
pride-32.png: pride.png
	ffmpeg -y -i pride.png -vf scale=32x32 pride-32.png
pride-16.png: pride.png
	ffmpeg -y -i pride.png -vf scale=16x16 pride-16.png
chrismas-4096.png: chrismas.png
	ffmpeg -y -i chrismas.png -vf scale=4096x4096 chrismas-4096.png
chrismas-2048.png: chrismas.png
	ffmpeg -y -i chrismas.png -vf scale=2048x2048 chrismas-2048.png
chrismas-1024.png: chrismas.png
	ffmpeg -y -i chrismas.png -vf scale=1024x1024 chrismas-1024.png
chrismas-512.png: chrismas.png
	ffmpeg -y -i chrismas.png -vf scale=512x512 chrismas-512.png
chrismas-256.png: chrismas.png
	ffmpeg -y -i chrismas.png -vf scale=256x256 chrismas-256.png
chrismas-128.png: chrismas.png
	ffmpeg -y -i chrismas.png -vf scale=128x128 chrismas-128.png
chrismas-64.png: chrismas.png
	ffmpeg -y -i chrismas.png -vf scale=64x64 chrismas-64.png
chrismas-32.png: chrismas.png
	ffmpeg -y -i chrismas.png -vf scale=32x32 chrismas-32.png
chrismas-16.png: chrismas.png
	ffmpeg -y -i chrismas.png -vf scale=16x16 chrismas-16.png
secondary-4096.png: secondary.png
	ffmpeg -y -i secondary.png -vf scale=4096x4096 secondary-4096.png
secondary-2048.png: secondary.png
	ffmpeg -y -i secondary.png -vf scale=2048x2048 secondary-2048.png
secondary-1024.png: secondary.png
	ffmpeg -y -i secondary.png -vf scale=1024x1024 secondary-1024.png
secondary-512.png: secondary.png
	ffmpeg -y -i secondary.png -vf scale=512x512 secondary-512.png
secondary-256.png: secondary.png
	ffmpeg -y -i secondary.png -vf scale=256x256 secondary-256.png
secondary-128.png: secondary.png
	ffmpeg -y -i secondary.png -vf scale=128x128 secondary-128.png
secondary-64.png: secondary.png
	ffmpeg -y -i secondary.png -vf scale=64x64 secondary-64.png
secondary-32.png: secondary.png
	ffmpeg -y -i secondary.png -vf scale=32x32 secondary-32.png
secondary-16.png: secondary.png
	ffmpeg -y -i secondary.png -vf scale=16x16 secondary-16.png
