# $Source$
# $Author: xmldoc $
# $Date: 2007-03-23 21:57:22 +0000 (Fri, 23 Mar 2007) $
# $Revision: 6759 $
# vim: number
#
# ------------------------------------------------------------------
#  ** Makefile.paramDoc - create param.xsl files w/ embedded doc **
# ------------------------------------------------------------------

PARAMFILES = $(wildcard ../../*/param.xsl)
PARAMFILESDOCD = $(foreach base,$(basename $(PARAMFILES)),$(base).docd.xsl)

XSLT=xsltproc
XSLTFLAGS=

COPYDOC := <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" \
                xmlns:doc="http://docbook.org/ns/docbook" \
                version="1.0"> \
  <xsl:template match="*[local-name() = &apos;param&apos;]"> \
    <xsl:call-template name="copy-xsl-source"/> \
  </xsl:template> \
  <xsl:template match="*[local-name() = &apos;attribute-set&apos;]"> \
    <xsl:call-template name="copy-xsl-source"/> \
  </xsl:template> \
  <xsl:template name="copy-xsl-source"> \
    <xsl:variable \
        name="source" \
        select="concat(&apos;../../params/&apos;,@name,&apos;.xml&apos;)"/> \
    <xsl:apply-templates select="document($$source)/*[local-name() = &apos;refentry&apos;]"/> \
    <xsl:copy> \
      <xsl:apply-templates select="@* | node()"/> \
    </xsl:copy> \
  </xsl:template> \
  <xsl:template match="node() | @*"> \
    <xsl:copy> \
      <xsl:apply-templates select="@* | node()"/> \
    </xsl:copy> \
  </xsl:template> \
  <xsl:template match="*[local-name() = &apos;refentry&apos;]"> \
    <xsl:text>&\#x0a;</xsl:text> \
    <doc:refentry id="{@*[local-name() = &apos;id&apos;]}"> \
      <xsl:apply-templates/> \
    </doc:refentry> \
    <xsl:text>&\#x0a;</xsl:text> \
  </xsl:template> \
  <xsl:template match="*[local-name() = &apos;refsynopsisdiv&apos;]"/> \
</xsl:stylesheet>

all: $(PARAMFILESDOCD)

%.docd.xsl: %.xsl
	@echo '$(COPYDOC)' | $(XSLT) $(XSLTFLAGS) - $< > $@

debug:
	@echo $(PARAMFILESDOCD)

clean:
	$(RM) $(PARAMFILESDOCD)
