]> gitweb.michael.orlitzky.com - charm-bypass.git/blob - Makefile.am
Makefile.am: base64-encode and substitute the favicon into index.html
[charm-bypass.git] / Makefile.am
1 EXTRA_DIST = doc src
2
3 # List of element IDs that we use in the HTML document.
4 PRECIOUS_IDS = \
5 bus \
6 city \
7 citycopy \
8 codebg \
9 codetext \
10 clouds \
11 cloudscopy \
12 destination \
13 origin \
14 origindest \
15 train \
16 tram \
17 trees \
18 treescopy \
19 serviceid \
20 servicename \
21 sky \
22 ticket \
23 ticketbg \
24 ticketdate \
25 tickettime \
26 zone
27
28 SCOUR = @SCOUR@ --enable-id-stripping \
29 --enable-comment-stripping \
30 --remove-descriptive-elements \
31 --no-renderer-workaround \
32 --no-line-breaks \
33 --error-on-flowtext
34
35 favicon.min.svg: favicon.svg
36 $(SCOUR) $< > $@
37
38 # Optimize our SVG once using XSL, to catch a few things
39 # that "scour" misses.
40 tableau.min.svg: tableau.svg svgclean.xsl
41 @XSLTPROC@ svgclean.xsl $< > $@
42
43 # Optimize our SVG again, and remove its XML prologue so that it can
44 # be included directly into the HTML document.
45 tableau.min.min.svg: tableau.min.svg
46 $(SCOUR) --protect-ids-list=$$(echo $(PRECIOUS_IDS) | tr ' ' ',') \
47 --strip-xml-prolog \
48 $< > $@
49
50 # Use FontForge to convert the sfd source files to woff2.
51 .sfd.woff2:
52 @FONTFORGE@ -script sfd2woff.ff $<
53
54 # Base64-encode a woff2 (web open font format 2.0) file. We use this
55 # to embed fonts directly into the CSS that requires them.
56 .woff2.base64:
57 @BASE64@ -w0 $< > $@
58
59 # Same with the favicon SVG.
60 .svg.base64:
61 @BASE64@ -w0 $< > $@
62
63 # Build index.html by substituting the contents of a few (single
64 # line!) files into @PLACEHOLDERS@ within index.html.in. If you put
65 # tildes in tableau.svg this will probably break, so please don't do
66 # that.
67 index.html: index.html.in tableau.min.min.svg CharmBypass-Regular.base64 CharmBypass-Bold.base64 favicon.base64
68
69 sed -e "s~@CBPREGULAR@~$$(cat CharmBypass-Regular.base64)~" \
70 -e "s~@CBPBOLD@~$$(cat CharmBypass-Bold.base64)~" \
71 -e "s~@FAVICON@~$$(cat favicon.base64)~" \
72 -e "s~@SVGDATA@~$$(cat tableau.min.min.svg)~" \
73 $< > $@
74
75 # If you really want to, we support installing index.html
76 # to (say) /usr/share/charm-bypass/index.html.
77 dist_pkgdata_DATA = index.html
78
79 # Automake doesn't understand our wacky build process so we have to
80 # tell it which files are produced by running "make"
81 CLEANFILES = $(dist_pkgdata_DATA) \
82 CharmBypass-Regular.base64 \
83 CharmBypass-Bold.base64 \
84 favicon.min.svg \
85 tableau.min.svg \
86 tableau.min.min.svg