# -*- makefile -*-

PATTERNS=../patterns/patterns.xml
EXAMPLES=../patterns/examples.xml
EXPLANATIONS=explanations.xml
XMLSPEC=../common/xmlspec.xsl
W3CROOT=../../../../../
W3CROOT=http://www.w3.org/

XSLTPROC=xsltproc
XMLINDENT=../common/xmlindent
TIDY=tidy
SAXON=saxon

all: advanced.html 

#
#  normative HTML 
#
advanced.html:	advanced-untidy.html 
	-$(TIDY) -utf8 -quiet -asxhtml advanced-untidy.html > advanced.html 2> tidy.txt 

advanced-untidy.html: $(XMLSPEC) advanced.xsl advanced.xml advanced.xsl $(DATABINDING) $(XMLSPEC)
	$(XSLTPROC) --stringparam w3c.root "$(W3CROOT)" advanced.xsl advanced-source.xml > $@


#
#  non-normative indented and expanded XML copy
#
advanced.xml: advanced-source.xml patterns.xml document-assertion-table.xml implementation-assertion-table.xml pattern-table.xml ../basic/ws-i-conformance.xml ../basic/xpath-idioms.xml ../basic/detecting-patterns.xml
	$(XMLINDENT) advanced-source.xml > $@

#
#  summary of patterns
#
pattern-table.xml:	advanced-source.xml patterns.xml ../common/pattern-table.xsl
	$(XSLTPROC) ../common/pattern-table.xsl advanced-source.xml > $@

#
#  summary of document assertions
#
document-assertion-table.xml:	advanced-source.xml $(PATTERNS)
	$(XSLTPROC) --stringparam class document ../common/assertion-table.xsl advanced-source.xml > $@

#
#  summary of implementation assertions
#
implementation-assertion-table.xml:	advanced-source.xml $(PATTERNS)
	$(XSLTPROC) --stringparam class implementation ../common/assertion-table.xsl advanced-source.xml > $@

#
#  patterns extracted from patterns.xml
#  - examples highlighted using XPath 2.0
#
patterns.xml: $(PATTERNS) examples-tmp.xml ../common/patterns.xsl
	$(XSLTPROC) --stringparam status advanced ../common/patterns.xsl $(PATTERNS)  > $@

examples-tmp.xml:	$(PATTERNS) $(EXAMPLES) examplesbuilder.xsl ../common/example-to-html.xsl
	$(SAXON) $(EXAMPLES) examplesbuilder.xsl  | \
	    sed -e 's/^      //' > $@

examplesbuilder.xsl:	$(PATTERNS) $(EXAMPLES) ../common/patterns2builder.xsl
	$(XSLTPROC) ../common/patterns2builder.xsl $(PATTERNS)  > $@


clean::
	rm -f tidy-output.txt
