jw-pkg/make/svg-to-pixmap.mk

59 lines
2 KiB
Makefile
Raw Normal View History

SVG_GENERATE_FORMATS ?= png svg
PIXMAP_TO_SVG_SRC_SVG ?= $(filter-out copied-%,$(wildcard *.svg))
COPIED_SVG = $(addprefix copied-,$(notdir $(PIXMAP_TO_SVG_SRC_SVG)))
INKSCAPE_VERSION = $(shell export -n DISPLAY; inkscape -V 2>&1 | sed '/Inkscape/ !d; s/Inkscape *\([0-9.]\+\) .*/\1/')
INKSCAPE_VERSION_MAJOR = $(word 1,$(subst ., ,$(INKSCAPE_VERSION)))
ifeq ($(INKSCAPE_VERSION_MAJOR),1)
INKSCAPE_EXPORT_PNG = --export-filename
else
INKSCAPE_EXPORT_PNG = --export-png
endif
GENERATED_ICON_WIDTHS += 16 32 48 64 72 96 128 144 168 192
GENERATED_WIDTHS ?= $(GENERATED_ICON_WIDTHS) $(GENERATED_EXTRA_WIDTHS)
ifneq ($(filter png,$(SVG_GENERATE_FORMATS)),)
GENERATED_WIDTHS_PNG ?= $(GENERATED_WIDTHS)
GENERATED_PNG ?= \
$(foreach w, $(GENERATED_WIDTHS_PNG),$(patsubst %.svg,%-$w.png,$(notdir $(PIXMAP_TO_SVG_SRC_SVG))))
GENERATED_IMAGES += $(GENERATED_PNG)
endif
ifneq ($(filter ico,$(SVG_GENERATE_FORMATS)),)
GENERATED_WIDTHS_ICO ?= 16 32
GENERATED_ICO ?= \
$(foreach w, $(GENERATED_WIDTHS_ICO),$(patsubst %.svg,%-$w.ico,$(notdir $(PIXMAP_TO_SVG_SRC_SVG))))
GENERATED_IMAGES += $(GENERATED_ICO)
endif
ifneq ($(filter pdf,$(SVG_GENERATE_FORMATS)),)
GENERATED_PDF ?= $(patsubst %.svg,%.pdf,$(notdir $(PIXMAP_TO_SVG_SRC_SVG)))
GENERATED_IMAGES += $(GENERATED_PDF)
endif
ifneq ($(filter svg,$(SVG_GENERATE_FORMATS)),)
IMAGES += $(notdir $(PIXMAP_TO_SVG_SRC_SVG))
endif
all: $(GENERATED_IMAGES)
install:
clean: clean.images
distclean:
clean.images:
$(RM) -f $(GENERATED_IMAGES) $(COPIED_SVG)
%.png: $(COPIED_SVG)
export -n DISPLAY; inkscape -w $(shell echo $* | sed 's/.*-//') \
$(INKSCAPE_EXPORT_PNG)=$@ copied-$(shell echo $* | sed 's/-[0-9]\+$$//').svg
%.pdf: copied-%.svg
export -n DISPLAY; inkscape --export-filename="$@" $<
copied-%.svg: $(PIXMAP_TO_SVG_SRC_SVG)
@echo $^
cp $(filter %$*.svg, $^) $@.tmp
mv $@.tmp $@
%.ico: %.png
icotool -o $@ -c $<