1# 2# Makefile for converting svg files 3# to something else: png, pdf, eps 4# 5# 25-nov-2020 - Philippe Chauvat / Bacula Systems 6# Porting what is done in covers to images to let them be including variables/parameters 7# 22-oct-2020 - Philippe Chauvat / Bacula Systems 8# Improvements to handle Inkscape version 9# 10-Oct-2012 - Philippe Chauvat / Bacula Systems 10# 11INKSCAPE=inkscape 12VERSION=$(shell $(INKSCAPE) -V 2>/dev/null|cut -d ' ' -f2|cut -d'.' -f1) 13VERBOSE=FALSE 14ifeq ($(VERBOSE),TRUE) 15 HIDE= 16else 17 HIDE=@ 18endif 19 20# 21# Traitement de la compilation à partir de la version 1 d'Inkscape 22ifeq ($(VERSION),1) 23 INKSCAPE_FLAGS=-o 24 SVG_TO_PDF=--export-type=pdf -C --export-pdf-version=1.5 -T $(INKSCAPE_FLAGS) 25 SVG_TO_EPS=--export-type=eps -C -T $(INKSCAPE_FLAGS) 26 SVG_TO_PNG=--export-type=png -C -T --export-dpi=120 $(INKSCAPE_FLAGS) 27# 28# Version 0.x 29else 30 INKSCAPE_FLAGS=-z -T -C 31 SVG_TO_PDF=$(INKSCAPE_FLAGS) -A 32 SVG_TO_EPS=$(INKSCAPE_FLAGS) -E 33 SVG_TO_PNG=$(INKSCAPE_FLAGS) -e 34endif 35 36PDFDIR=../pdf 37PNGDIR=../png 38EPSDIR=../eps 39 40TPLSVGS=$(shell grep -l '__' *.svg) 41SVGS=$(shell grep -L '__' *.svg) 42TPLS=$(TPLSVGS:.svg=.tpl) 43PDFS=$(addprefix $(PDFDIR)/,$(SVGS:.svg=.pdf)) $(addprefix $(PDFDIR)/,$(TPLS:.tpl=.pdf)) 44EPSS=$(addprefix $(EPSDIR)/,$(SVGS:.svg=.eps)) $(addprefix $(EPSDIR)/,$(TPLS:.tpl=.eps)) 45PNGS=$(addprefix $(PNGDIR)/,$(SVGS:.svg=.png)) $(addprefix $(PNGDIR)/,$(TPLS:.tpl=.png)) 46 47BDATE := $(shell date +%Y-%m-%d) 48 49first_rule: all 50 51all: check tpl pdf png 52 53.SUFFIXES: 54.PHONY: 55.DONTCARE: 56 57check: 58 $(HIDE)echo "Template SVG files: $(TPLSVGS)" 59 $(HIDE)echo "Regular SVG files: $(SVGS)" 60 $(HIDE)echo "TPL files to be generated: $(TPLS)" 61 $(HIDE)echo "PDFDIR: $(PDFDIR)" 62 $(HIDE)echo "PDFs $(PDFS)" 63 $(HIDE)echo "EPSDIR: $(EPSDIR)" 64 $(HIDE)echo "EPSs: $(EPSS)" 65 $(HIDE)echo "PNGDIR: $(PNGDIR)" 66 $(HIDE)echo "PNGs: $(PNGS)" 67# 68# PDF images creation 69pdf: $(TEMPLATES) $(PDFS) 70 71tpl: $(TPLS) 72 73$(TPLS): $(VERSION_TEX) 74 75%.tpl: %.svg 76 $(HIDE)echo "$< : Handling version number and date" 77 $(HIDE)sed "s/__BVERSION__/`awk '{print $$1}' $(VERSION_TEX)`/g" $< > $@ 78 $(HIDE)sed -i 's/__BEDITION__/$(BACULAVERSION)/g' $@ 79 $(HIDE)sed -i 's/__BDATE__/$(BDATE)/g' $@ 80 81 82$(PDFS): | $(PDFDIR) 83$(PDFDIR): 84 $(HIDE)echo "Creating PDF images directory..." 85 $(HIDE)mkdir $(PDFDIR) 86 $(HIDE)echo "Done" 87 88$(PDFDIR)/%.pdf: %.tpl 89 $(HIDE)echo "Converting $< to $@" 90 $(HIDE)$(INKSCAPE) $(SVG_TO_PDF) $@ $< 1>$<.svg_error 2>$<.svg_error 91 92$(PDFDIR)/%.pdf: %.svg 93 $(HIDE)echo "$< : Converting to PDF" 94 $(HIDE)$(INKSCAPE) $(SVG_TO_PDF) $@ $< 95# 96# EPS images creation 97eps: $(TEMPLATES) $(EPSS) 98$(EPSS): | $(EPSDIR) 99$(EPSDIR): 100 $(HIDE)echo "Creating EPS images directory..." 101 $(HIDE)mkdir $(EPSDIR) 102 $(HIDE)echo "Done" 103 104$(EPSDIR)/%.eps: %.tpl 105 $(HIDE)echo "Converting $< to $@" 106 $(HIDE)$(INKSCAPE) $(SVG_TO_EPS) $@ $< 1>$<.svg_error 2>$<.svg_error 107 108$(EPSDIR)/%.eps: %.svg 109 $(HIDE)$(INKSCAPE) $(INKSCAPE_FLAGS) $(SVG_TO_EPS) $(EPSDIR)/$@ $< 110 111# 112# PNG images creation 113png: $(TEMPLATES) $(PNGS) 114$(PNGS): | $(PNGDIR) 115$(PNGDIR): 116 $(HIDE)echo "Creating PNG images directory..." 117 $(HIDE)mkdir $(PNGDIR) 118 $(HIDE)echo "Done" 119 120$(PNGDIR)/%.png: %.tpl 121 $(HIDE)echo "Converting $< to $@" 122 $(HIDE)$(INKSCAPE) $(SVG_TO_PNG) $@ $< 1>$<.svg_error 2>$<.svg_error 123 124$(PNGDIR)/%.png: %.svg 125 $(HIDE)$(INKSCAPE) $(INKSCAPE_FLAGS) $(SVG_TO_PNG) $(PNGDIR)/$@ $< 126 127clean: 128 $(HIDE)rm -f $(TPLS) 129 $(HIDE)(if [ -e $(PDFDIR) ]; then cd $(PDFDIR) ; rm -f $(PDFS); fi) 130 $(HIDE)(if [ -e $(EPSDIR) ]; then cd $(EPSDIR) ; rm -f $(EPSS); fi) 131 $(HIDE)(if [ -e $(PNGDIR) ]; then cd $(PNGDIR) ; rm -f $(PNGS); fi) 132 $(HIDE)rm -f *~ *.svg_error 133 134distclean: clean 135