# Variables temp_sed_file:=$(shell mktemp).sed temp_svg_file:=$(shell mktemp).svg ifdef dark ifneq ($(wildcard $(dark)),) dark_mime:=$(shell file -bN --mime-type $(dark)) dark_color?=transparent else dark_color:=$(dark) endif endif ifdef light ifneq ($(wildcard $(light)),) light_mime:=$(shell file -bN --mime-type $(light)) light_color?=transparent else light_color:=$(light) endif endif ifdef middle ifneq ($(wildcard $(middle)),) middle_mime:=$(shell file -bN --mime-type $(middle)) middle_color?=transparent else middle_color:=$(middle) endif endif size?=1024 dark_color?=black light_color?=white middle_color?=transparent # Base targets default: build # Build process build: clean logo.svg @cp logo.svg $(temp_svg_file) @echo 's|fill: black|:fill1:|' >> $(temp_sed_file) @echo 's|fill: white|:fill2:|' >> $(temp_sed_file) @echo 's|fill: gray|:fill3:|' >> $(temp_sed_file) @echo 's|:fill1:|fill: $(dark_color)|' >> $(temp_sed_file) @echo 's|:fill2:|fill: $(light_color)|' >> $(temp_sed_file) @echo 's|:fill3:|fill: $(middle_color)|' >> $(temp_sed_file) @echo 's|dark.png|:image1:|' >> $(temp_sed_file) @echo 's|light.png|:image2:|' >> $(temp_sed_file) @echo 's|middle.png|:image3:|' >> $(temp_sed_file) ifdef dark_mime @echo -n 's|:image1:|data:$(dark_mime);base64,' >> $(temp_sed_file) @base64 -w0 < $(dark) >> $(temp_sed_file) @echo '|' >> $(temp_sed_file) else @echo 's|:image1:|$(dark)|' >> $(temp_sed_file) endif ifdef light_mime @echo -n 's|:image2:|data:$(light_mime);base64,' >> $(temp_sed_file) @base64 -w0 < $(light) >> $(temp_sed_file) @echo '|' >> $(temp_sed_file) else @echo 's|:image2:|$(light)|' >> $(temp_sed_file) endif ifdef middle_mime @echo -n 's|:image3:|data:$(middle_mime);base64,' >> $(temp_sed_file) @base64 -w0 < $(middle) >> $(temp_sed_file) @echo '|' >> $(temp_sed_file) else @echo 's|:image3:|$(middle)|' >> $(temp_sed_file) endif sed -i -f $(temp_sed_file) -- $(temp_svg_file) convert -background none -size $(size)x$(size) $(temp_svg_file) logo.png clean: @rm -f logo.png temp.svg # Linting lint: xmllint xmllint: logo.svg xmllint --noout logo.svg