all::

# Output directory (outputs here will get checked in),
OUTDIR=out

# Working/temporary directory.  Not checked in and not published/visible.
WORKDIR=.tmp

# DHW schematic base name.
DHWS=DHW-schematic
# Plan source.
DHWSSRC=${DHWS}.tex
# Plan (intermediate) DVI output.
DHWSDVI=${WORKDIR}/${DHWS}.dvi
# Plan final SVG output.
DHWSSVG=${OUTDIR}/${DHWS}.svg

${WORKDIR}:
	mkdir $@
${OUTDIR}:
	mkdir $@
all:: ${WORKDIR} ${OUTDIR}

${DHWSDVI}: ${WORKDIR} ${DHWSSRC}
	@mkdir -p ${WORKDIR}
	latex -output-directory=${WORKDIR} ${DHWSSRC}

all:: ${DHWSSVG}
${DHWSSVG}: ${OUTDIR} ${DHWSDVI}
	@-rm -f $@.tmp
	dvisvgm --no-fonts -O --stdout ${DHWSDVI} | svgo --multipass -i - -o $@.tmp
	@chmod a+r $@.tmp
	@[ -s $@.tmp ]
	@-chmod -f u+w $@
	@mv $@.tmp $@

# Make super-compressed SVG variants, because we can!
all:: ${DHWSSVG}gz
${DHWSSVG}gz: ${DHWSSVG}
	@-rm $@
	@zopfli ${DHWSSVG} -c > $@
all:: ${DHWSSVG}br
${DHWSSVG}br: ${DHWSSVG}
	@-rm $@
	@brotli < ${DHWSSVG} > $@
