# List of element IDs that we use in the HTML document.
PRECIOUS_IDS = \
bus \
city \
citycopy \
codebg \
codetext \
clouds \
cloudscopy \
destination \
origin \
origindest \
train \
tram \
trees \
treescopy \
serviceid \
servicename \
sky \
ticket \
ticketbg \
ticketdate \
tickettime \
zone
SCOUR = @SCOUR@ --enable-id-stripping \
--enable-comment-stripping \
--remove-descriptive-elements \
--no-renderer-workaround \
--no-line-breaks \
--error-on-flowtext
# Optimize the favicon just like we do the tableau.
favicon.min.svg: favicon.svg
$(SCOUR) $< > $@
# 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 ' ' ',') \
--strip-xml-prolog \
$< > $@
# 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 $< > $@
# Same with the favicon SVG.
.svg.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 favicon.base64
sed -e "s~@CBPREGULAR@~$$(cat CharmBypass-Regular.base64)~" \
-e "s~@CBPBOLD@~$$(cat CharmBypass-Bold.base64)~" \
-e "s~@FAVICON@~$$(cat favicon.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 \
favicon.min.svg \
tableau.min.svg \
tableau.min.min.svg