]> gitweb.michael.orlitzky.com - charm-bypass.git/blobdiff - Makefile.am
index.html.in: use "*" instead of "+" for input pattern validation
[charm-bypass.git] / Makefile.am
index dfeca2ad9211c06a8c057d93dd66715b827f27e3..3e7137122ee10895ea5f435799ebba439adc9f98 100644 (file)
@@ -1 +1,70 @@
 EXTRA_DIST = doc src
+
+# 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        \
+  ticketdate    \
+  tickettime
+
+# 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