# $Source$
# $Author: xmldoc $
# $Date: 2007-03-24 06:57:22 +0900 (Sat, 24 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)
