From: Michael Tremer Date: Fri, 13 Mar 2026 14:22:20 +0000 (+0000) Subject: Makefile: Generate favicons in all designs, too X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5fe6332f71700e2d319c09ff49d3c395a503fe73;p=artwork.git Makefile: Generate favicons in all designs, too The file has also been stripped from all the repetition so that it will be much shorter to add additional stuff. Signed-off-by: Michael Tremer --- diff --git a/Makefile b/Makefile index bff88d3..5f8c57a 100644 --- a/Makefile +++ b/Makefile @@ -8,126 +8,131 @@ OBJECTS = \ standard/favicon-64x64.png \ standard/favicon-128x128.png \ standard/favicon-256x256.png \ + standard/favicon-512x512.png \ \ monochrome/logo.svg \ monochrome/logo.pdf \ monochrome/logo-512x512.png \ monochrome/logo-1024x1024.png \ monochrome/logo-2048x2048.png \ + monochrome/favicon-32x32.png \ + monochrome/favicon-64x64.png \ + monochrome/favicon-128x128.png \ + monochrome/favicon-256x256.png \ + monochrome/favicon-512x512.png \ \ inverted/logo.svg \ inverted/logo.pdf \ inverted/logo-512x512.png \ inverted/logo-1024x1024.png \ - inverted/logo-2048x2048.png + inverted/logo-2048x2048.png \ + inverted/favicon-32x32.png \ + inverted/favicon-64x64.png \ + inverted/favicon-128x128.png \ + inverted/favicon-256x256.png \ + inverted/favicon-512x512.png + +# Colors +PRIMARY = ff2e52 +DARK = 363636 +WHITE = ffffff # Inkscape command line INKSCAPE = inkscape $< --export-filename=$@ +# Macro to render fonts to paths so that we won't need to load the font +define TO_PATHS + mkdir -p $(dir $@) && \ + $(INKSCAPE) \ + --batch-process \ + --actions="select-all;object-to-path;export-plain-svg" +endef + +define TO_INVERTED + mkdir -p $(dir $@) && \ + sed \ + -e "s/fill=\"#$(DARK)\"/fill=\"#$(WHITE)\"/g" \ + -e "s/fill:#$(DARK)/fill:#$(WHITE)/g" \ + -e "s/stroke:[^;\"]*/stroke:none/g" \ + < $< > $@ +endef + +define TO_MONOCHROME + mkdir -p $(dir $@) && \ + sed \ + -e "s/fill:[^;\"]*/fill:#$(DARK)/g" \ + -e "s/fill=\"[^\"]*\"/fill=\"#$(DARK)\"/g" \ + -e "s/stroke:[^;\"]*/stroke:none/g" \ + < $< > $@ +endef + .PHONY: all all: $(OBJECTS) # Converts the logo to a plain SVG file without requiring the font standard/logo.svg: logo.svg - mkdir -p $(dir $@) - $(INKSCAPE) \ - --batch-process \ - --actions="select-all;object-to-path;export-plain-svg" + $(TO_PATHS) + +# Converts the logo to a plain SVG file without requiring the font +%/logo.svg: logo-%.svg + $(TO_PATHS) + +# Converts the favicon to a plain SVG file without requiring the font +standard/favicon.svg: favicon.svg + $(TO_PATHS) + +%/favicon.svg: favicon-%.svg + $(TO_PATHS) # Converts the logo to PDF -standard/logo.pdf: logo.svg +%/logo.pdf: %/logo.svg mkdir -p $(dir $@) $(INKSCAPE) -# Converts the logo to a transparent PNG image with 512x512 pixels -standard/logo-512x512.png: logo.svg - mkdir -p $(dir $@) +# Converts the logo to PNG +%/logo-512x512.png: %/logo.svg + mkdir -p $(dir $@) && \ $(INKSCAPE) --export-width=512 -standard/logo-1024x1024.png: logo.svg - mkdir -p $(dir $@) +%/logo-1024x1024.png: %/logo.svg + mkdir -p $(dir $@) && \ $(INKSCAPE) --export-width=1024 -standard/logo-2048x2048.png: logo.svg - mkdir -p $(dir $@) +%/logo-2048x2048.png: %/logo.svg + mkdir -p $(dir $@) && \ $(INKSCAPE) --export-width=2048 -standard/favicon-32x32.png: favicon.svg - mkdir -p $(dir $@) +# Converts the favicon to PNG +%/favicon-32x32.png: %/favicon.svg + mkdir -p $(dir $@) && \ $(INKSCAPE) --export-width=32 -standard/favicon-64x64.png: favicon.svg - mkdir -p $(dir $@) +%/favicon-64x64.png: %/favicon.svg + mkdir -p $(dir $@) && \ $(INKSCAPE) --export-width=64 -standard/favicon-128x128.png: favicon.svg - mkdir -p $(dir $@) +%/favicon-128x128.png: %/favicon.svg + mkdir -p $(dir $@) && \ $(INKSCAPE) --export-width=128 -standard/favicon-256x256.png: favicon.svg - mkdir -p $(dir $@) +%/favicon-256x256.png: %/favicon.svg + mkdir -p $(dir $@) && \ $(INKSCAPE) --export-width=256 -# Convert the logo to monochome only -logo-monochrome.svg: logo.svg - sed "s/fill:[^;\"]*/fill:#000000/g; s/stroke:[^;\"]*/stroke:none/g" < $< > $@ - -# Converts the logo to a plain SVG file without requiring the font -monochrome/logo.svg: logo-monochrome.svg - mkdir -p $(dir $@) - $(INKSCAPE) \ - --batch-process \ - --actions="select-all;object-to-path;export-plain-svg" - -# Converts the logo to PDF -monochrome/logo.pdf: logo-monochrome.svg - mkdir -p $(dir $@) - $(INKSCAPE) - -# Converts the logo to a transparent PNG image with 512x512 pixels -monochrome/logo-512x512.png: logo-monochrome.svg - mkdir -p $(dir $@) +%/favicon-512x512.png: %/favicon.svg + mkdir -p $(dir $@) && \ $(INKSCAPE) --export-width=512 -monochrome/logo-1024x1024.png: logo-monochrome.svg - mkdir -p $(dir $@) - $(INKSCAPE) --export-width=1024 - -monochrome/logo-2048x2048.png: logo-monochrome.svg - mkdir -p $(dir $@) - $(INKSCAPE) --export-width=1024 - -# Convert the logo to use white only -logo-inverted.svg: logo.svg - sed "s/fill:[^;\"]*/fill:#ffffff/g; s/stroke:[^;\"]*/stroke:none/g" < $< > $@ +# Convert the logo and favicon to monochome only +%-monochrome.svg: %.svg + $(TO_MONOCHROME) -# Converts the logo to a plain SVG file without requiring the font -inverted/logo.svg: logo-inverted.svg - mkdir -p $(dir $@) - $(INKSCAPE) \ - --batch-process \ - --actions="select-all;object-to-path;export-plain-svg" - -# Converts the logo to PDF -inverted/logo.pdf: logo-inverted.svg - mkdir -p $(dir $@) - $(INKSCAPE) - -# Converts the logo to a transparent PNG image with 512x512 pixels -inverted/logo-512x512.png: logo-inverted.svg - mkdir -p $(dir $@) - $(INKSCAPE) --export-width=512 - -inverted/logo-1024x1024.png: logo-inverted.svg - mkdir -p $(dir $@) - $(INKSCAPE) --export-width=1024 - -inverted/logo-2048x2048.png: logo-inverted.svg - mkdir -p $(dir $@) - $(INKSCAPE) --export-width=1024 +# Convert the logo and favicon to use white only +%-inverted.svg: %.svg + $(TO_INVERTED) .PHONY: clean clean: # Remove all generated objects rm -vf $(OBJECTS) - rm -vf logo-inverted.svg logo-monochrome.svg + rm -vf logo-inverted.svg logo-monochrome.svg favicon-inverted.svg favicon-monochrome.svg