summaryrefslogtreecommitdiff
path: root/Makefile
blob: 8bfe4c6787a311c39bec6762dd0c255164046007 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
suffix = xhtml
version = $(shell git rev-parse --short HEAD)

xsltproc=xsltproc --stringparam stylesheet "$(shell cat style/style.min.css)" --stringparam version $(version)
svg2png=rsvg-convert -f png
fix_doctype=sed 's/ SYSTEM "about:legacy-compat"//'

to_html=$(fix_doctype) | xsltproc xsl/convert-xhtml-to-html.xsl - | $(fix_doctype) | sed -e 's/<br><\/br>/<br>/g' -e 's/<\/img>//g' -e 's/<\/link>//g' -e 's/<\/meta>//g' -e 's/<html xmlns="http:\/\/www.w3.org\/1999\/xhtml"/<html/'

pages=$(shell xsltproc xsl/main_filenames.xsl main.xml)

pages_gen=$(pages:%.xml=%.$(suffix))
pages_gen_html=$(pages:%.xml=%.html)

common_depend=main.xml $(wildcard xsl/*.xsl) Makefile checkmark.svg style/style.min.css

DEFAULT_VERBOSITY=0

# verbosity stuff
V_XSLT = $(v_xslt_$(V))
v_xslt_ = $(v_xslt_$(DEFAULT_VERBOSITY))
v_xslt_0 = @echo "  XSLT  " $@;

V_GEN = $(v_gen_$(V))
v_gen_ = $(v_gen_$(DEFAULT_VERBOSITY))
v_gen_0 = @echo "  GEN   " $@;

V_CSS = $(v_css_$(V))
v_css_ = $(v_css_$(DEFAULT_VERBOSITY))
v_css_0 = @echo "  CSS   " $@;


.PHONY: all html
all: $(pages_gen) checkmark.png style/style.min.css

html: $(pages_gen_html)

%.png: %.svg
	$(V_GEN) $(svg2png) $< > $@

%.$(suffix): %.xml %.xsl $(common_depend)
	$(V_XSLT) $(xsltproc) --stringparam suffix .$(suffix) $< | $(fix_doctype) > $@

%.$(suffix): %.xml $(common_depend)
	$(V_XSLT) $(xsltproc) --stringparam suffix .$(suffix) $< | $(fix_doctype) > $@

%.html: %.xml %.xsl $(common_depend)
	$(V_XSLT) $(xsltproc) --stringparam suffix .html $< | $(to_html) > $@

%.html: %.xml $(common_depend)
	$(V_XSLT) $(xsltproc) --stringparam suffix .html $< | $(to_html) > $@

style/style.min.css: style/style.css style/font.css
	$(V_CSS) node_modules/.bin/postcss -u postcss-import -u postcss-css-variables style/style.css | node_modules/.bin/cleancss > style/style.min.css

clean:
	rm -f $(pages_gen) checkmark.png
	rm -f $(pages_gen_html)