~bregma/geis/specs

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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#!/bin/make 

docbook_outdir = docbook

all: geis2-api.html

DBLATEX        = dblatex
DBLATEX_FLAGS  = --dump --verbose --pdf 
LINT_FLAGS     = --debug --xinclude --noent --noblanks  --nonet --noout
SCHEMA_FLAGS   = --dtdvalid /usr/share/xml/docbook/schema/dtd/5.0/docbook.dtd
XMLLINT        = xmllint
XMLLINT_FLAGS  = $(LINT_FLAGS) $(SCHEMA_FLAGS)
XSLTPROC       = xsltproc
XSLTPROC_FLAGS = --nonet --xinclude
XSL_HTML_STYLE = xsl/html-chunked.xsl
XSL_HTML_SINGLE_STYLE = xsl/html-single.xsl

%.html: %.txt
	asciidoc -a toc $<

xml_base_sources = set.xml

xml_api_spec_sources = $(wildcard api-spec/*.xml)
xml_c_bindings_sources = $(wildcard c-bindings/*.xml)

xml_sources = \
	$(xml_base_sources) \
	$(xml_api_spec_sources) \
	$(xml_c_bindings_sources)

doc-html: doc-html-single-docbook

doc-pdf: doc-pdf-docbook
	cp ${docbook_outdir}/pdf/geis2.0-spec.pdf .

set.pdf: doc-fo-docbook 
	fop ${docbook_outdir}/fo/set.fo set.pdf

# Validate existing XML structure.
doc-xml-validate-docbook: $(xml_sources)
	@echo "Generating XML validation log..."
	$(XMLLINT) $(XMLLINT_FLAGS) set.xml

# HTML, index plus chapters
doc-html-docbook: $(xml_sources) ${docbook_outdir}/html
	@echo "Generating html files..."
	$(XSLTPROC) $(XSLTPROC_FLAGS) -o ${docbook_outdir}/html/ \
	$(XSL_HTML_STYLE) set.xml

# HTML, all one page
manual_html = ${docbook_outdir}/html/geis2.0-spec-single.html
doc-html-single-docbook: $(xml_sources) ${docbook_outdir}/html
	@echo "Generating html single file..."
	$(XSLTPROC) $(XSLTPROC_FLAGS) -o ${manual_html} \
	$(XSL_HTML_SINGLE_STYLE) set.xml

# FO
doc-fo-docbook: $(xml_sources) ${docbook_outdir}/fo
	@echo "Generating FO files..."
	$(XSLTPROC) $(XSLTPROC_FLAGS) -o ${docbook_outdir}/fo/set.fo \
	xsl/fo.xsl set.xml

# PDF, via dblatex
c-bindings.pdf: $(xml_c_bindings_sources)
	$(XSLTPROC) $(XSLTPROC_FLAGS) -o c-bindings.fo xsl/fo.xsl c-bindings/bindings.xml
	fop c-bindings.fo $@

c-bindings.html: ${docbook_outdir}/html $(xml_c_bindings_sources)
	$(XSLTPROC) $(XSLTPROC_FLAGS) -o ${docbook_outdir}/html/ \
	$(XSL_HTML_STYLE) c-bindings/bindings.xml

# PDF, via dblatex
spec_pdf = ${docbook_outdir}/pdf/geis2.0-spec.pdf
doc-pdf-docbook: doc-pdf-dblatex-docbook

doc-pdf-dblatex-docbook: $(xml_sources) ${docbook_outdir}/pdf
	@echo "Generating pdf dblatex files..."
	$(DBLATEX) $(DBLATEX_FLAGS) -o ${spec_pdf} set.xml

${docbook_outdir}/fo:
	mkdir -p ${docbook_outdir}/fo

${docbook_outdir}/html:
	mkdir -p ${docbook_outdir}/html

${docbook_outdir}/pdf:
	mkdir -p ${docbook_outdir}/pdf

clean:
	-rm -rf docbook
	-rm -rf *.fo
	-rm -rf *.pdf