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