-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
42 lines (31 loc) · 1.08 KB
/
Makefile
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
W3C_SUITE = https://www.w3.org/Voice/2013/scxml-irp
SAXON = https://downloads.sourceforge.net/project/saxon/Saxon-HE/9.7/SaxonHE9-7-0-14J.zip
TXML = $(shell find w3c -type f -iname '*.txml')
W3C_SCXML = $(TXML:.txml=.scxml)
PB_SCXML = $(TXML:.txml=.pb)
generate: w3c/.manifest saxon/saxon9he.jar
@$(MAKE) w3c.tar.gz
w3c.tar.gz: $(W3C_SCXML) $(PB_SCXML)
@find w3c \( -name '*.scxml' -o -name '*.description' -o -name '*.pb' \) -print \
| tar -cf $@ --files-from -
%.pb: %.scxml
@statechart-scxml $< > $@
@echo $@
%.scxml: %.txml w3c/conf_ecmascript.xsl
@java -jar saxon/saxon9he.jar --suppressXsltNamespaceCheck:on -s:$< -xsl:w3c/conf_ecmascript.xsl -o:$@
@echo $@
w3c/.manifest: w3c/manifest.xml w3c_manifest.exs
@mix run w3c_manifest.exs w3c/manifest.xml $@ $(W3C_SUITE)
w3c/manifest.xml:
@mkdir -p w3c
@curl -L $(W3C_SUITE)/manifest.xml -o $@
w3c/conf_ecmascript.xsl:
@curl -L $(W3C_SUITE)/confEcma.xsl -o $@
saxon/saxon9he.jar:
@mkdir -p saxon
@curl -L $(SAXON) -o saxon/saxon.zip
@unzip -o saxon/saxon.zip -d saxon
clean:
@rm -rf w3c
@rm -rf saxon
.PHONY: clean generate