+# If you really want to, we support installing index.html
+# to (say) /usr/share/charm-bypass/index.html
+dist_pkgdata_DATA = index.html
+
+# Based on e.g.
+#
+# https://www.gnu.org/software/automake/manual/html_node/Scripts.html
+#
+# this looks like the best way to include "sources" for things that
+# aren't true programs/libraries.
+EXTRA_DIST = \
+ CharmBypass-Regular.sfd \
+ CharmBypass-Bold.sfd \
+ favicon.svg \
+ index.html.in \
+ sfd2woff.ff \
+ svgclean.xsl \
+ tableau.svg
+
# 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 \
+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
+# The base "scour" command used to optimize the tableau and favicon.
+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.
+# Optimize the favicon using scour.
favicon.min.svg: favicon.svg
$(SCOUR) $< > $@
-# Optimize our SVG once using XSL, to catch a few things
-# that "scour" misses.
+# Optimize the tableau once using XSL, to catch a few things that
+# "scour" will miss...
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.
+# Optimize the tableau (again) using scour, removing 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 \
.svg.base64:
@BASE64@ -w0 $< > $@
+# List all of the dependencies of the final index.html that themselves
+# had to be built. We collect them here because they need to be listed
+# in two places, as dependencies of index.html, and in CLEANFILES.
+index_html_BUILTDEPS = \
+ CharmBypass-Regular.base64 \
+ CharmBypass-Bold.base64 \
+ favicon.base64 \
+ tableau.min.min.svg
+
# 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
-
+# tildes in tableau.svg this will break, so please don't do that.
+index.html: index.html.in $(index_html_BUILTDEPS)
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
+# tell it which files are produced by running "make".
+CLEANFILES = \
+ $(dist_pkgdata_DATA) \
+ $(index_html_BUILTDEPS) \
+ favicon.min.svg \
+ tableau.min.svg