+
+# List of element IDs that we use in the HTML document.
+PRECIOUS_IDS = \
+ bus \
+ city \
+ citycopy \
+ codebg \
+ codetext \
+ clouds \
+ cloudscopy \
+ train \
+ tram \
+ trees \
+ treescopy \
+ serviceid \
+ servicename \
+ sky \
+ ticket \
+ ticketbg \
+ ticketdate \
+ tickettime \
+ zone
+
+# Optimize our SVG once using XSL, to catch a few things
+# that "scour" misses.
+tableau.min.svg: tableau.svg svgclean.xsl
+ @XSLTPROC@ svgclean.xsl $< > $@
+
+# Optimize our SVG again, and remove its XML prologue so that it can
+# be included directly into the HTML document.
+tableau.min.min.svg: tableau.min.svg
+ @SCOUR@ --protect-ids-list=$$(echo $(PRECIOUS_IDS) | tr ' ' ',') \
+ --enable-id-stripping \
+ --enable-comment-stripping \
+ --remove-descriptive-elements \
+ --no-renderer-workaround \
+ --strip-xml-prolog \
+ --no-line-breaks \
+ --error-on-flowtext \
+ $< > $@
+
+# Use FontForge to convert the sfd source files to woff2.
+.sfd.woff2:
+ @FONTFORGE@ -script sfd2woff.ff $<
+
+# Base64-encode a woff2 (web open font format 2.0) file. We use this
+# to embed fonts directly into the CSS that requires them.
+.woff2.base64:
+ @BASE64@ -w0 $< > $@
+
+# Build index.html by substituting the contents of a few (single
+# line!) files into @PLACEHOLDERS@ within index.html.in. If you put
+# tildes in tableau.svg this will probably break, so please don't do
+# that.
+index.html: index.html.in tableau.min.min.svg CharmBypass-Regular.base64 CharmBypass-Bold.base64
+ sed -e "s~@CBPREGULAR@~$$(cat CharmBypass-Regular.base64)~" \
+ -e "s~@CBPBOLD@~$$(cat CharmBypass-Bold.base64)~" \
+ -e "s~@SVGDATA@~$$(cat tableau.min.min.svg)~" \
+ $< > $@
+
+# If you really want to, we support installing index.html
+# to (say) /usr/share/charm-bypass/index.html.
+dist_pkgdata_DATA = index.html
+
+# Automake doesn't understand our wacky build process so we have to
+# tell it which files are produced by running "make"
+CLEANFILES = $(dist_pkgdata_DATA) \
+ CharmBypass-Regular.base64 \
+ CharmBypass-Bold.base64 \
+ tableau.min.svg \
+ tableau.min.min.svg