]> xenbits.xensource.com Git - libvirt.git/commitdiff
* configure.in libvirt.spec.in docs/Makefile.am docs/devhelp/*:
authorDaniel Veillard <veillard@redhat.com>
Wed, 22 Feb 2006 10:54:54 +0000 (10:54 +0000)
committerDaniel Veillard <veillard@redhat.com>
Wed, 22 Feb 2006 10:54:54 +0000 (10:54 +0000)
  added devhelp docs support, based on libxml2 stylesheets
Daniel

12 files changed:
ChangeLog
configure.in
docs/Makefile.am
docs/devhelp/Makefile.am [new file with mode: 0644]
docs/devhelp/devhelp.xsl [new file with mode: 0644]
docs/devhelp/home.png [new file with mode: 0644]
docs/devhelp/html.xsl [new file with mode: 0644]
docs/devhelp/left.png [new file with mode: 0644]
docs/devhelp/right.png [new file with mode: 0644]
docs/devhelp/style.css [new file with mode: 0644]
docs/devhelp/up.png [new file with mode: 0644]
libvirt.spec.in

index 9584af80e7fe501d91167700e0dcf622a4b74ea0..6c9a671be2aff8bf314f5568c009c81046090385 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Wed Feb 22 11:53:45 CET 2006 Daniel Veillard <veillard@redhat.com>
+
+       * configure.in libvirt.spec.in docs/Makefile.am docs/devhelp/*:
+         added devhelp docs support, based on libxml2 stylesheets
+
 Wed Feb 22 09:57:11 CET 2006 Daniel Veillard <veillard@redhat.com>
 
        * TODO: updated
index 75d62ce280b706345f6159ece5c00bd1188298ac..9086c317e99359f0781263887a2b6575271a9380 100644 (file)
@@ -236,6 +236,6 @@ rm -f COPYING
 cp COPYING.LIB COPYING
 
 AC_OUTPUT(Makefile src/Makefile include/Makefile docs/Makefile \
-          docs/examples/Makefile \
+          docs/examples/Makefile docs/devhelp/Makefile \
           libvirt.pc libvirt.spec include/libvirt.h \
          python/Makefile python/tests/Makefile)
index ad1a2f1f5e0f28e0465173d5c4c06407ed838743..e488ba0e1afdd791cfdd720a15cb03b97d771de5 100644 (file)
@@ -1,5 +1,5 @@
 ## Process this file with automake to produce Makefile.in
-SUBDIRS=examples
+SUBDIRS= . examples devhelp
 
 # The directory containing the source code (if it contains documentation).
 DOC_SOURCE_DIR=../src
diff --git a/docs/devhelp/Makefile.am b/docs/devhelp/Makefile.am
new file mode 100644 (file)
index 0000000..c599989
--- /dev/null
@@ -0,0 +1,27 @@
+DEVHELP_DIR=$(datadir)/gtk-doc/html/libvirt
+HTML_FILES=index.html general.html $(HTML_MODULES)
+HTML_MODULES=                          \
+       libvirt-libvirt.html
+
+EXTRA_FORMAT=                          \
+       home.png                        \
+       left.png                        \
+       right.png                       \
+       up.png                          \
+       style.css
+
+EXTRA_DIST=devhelp.xsl html.xsl libvirt.devhelp $(HTML_FILES) $(EXTRA_FORMAT)
+
+all: libvirt.devhelp $(HTML_FILES)
+
+libvirt.devhelp $(HTML_FILES): devhelp.xsl html.xsl $(top_srcdir)/docs/libvirt-api.xml
+       -@(echo Rebuilding devhelp files)
+       -@(if [ -x $(XSLTPROC) ] ; then \
+         $(XSLTPROC) --nonet -o $(srcdir)/libvirt.devhelp devhelp.xsl $(top_srcdir)/docs/libvirt-api.xml ; fi );
+
+install-data-local: 
+       $(mkinstalldirs) $(DESTDIR)$(DEVHELP_DIR)
+       -@INSTALL@ -m 0644 libvirt.devhelp $(DESTDIR)$(DEVHELP_DIR)
+       -@INSTALL@ -m 0644 $(EXTRA_FORMAT) $(DESTDIR)$(DEVHELP_DIR)
+       -@INSTALL@ -m 0644 $(HTML_FILES) $(DESTDIR)$(DEVHELP_DIR)
+
diff --git a/docs/devhelp/devhelp.xsl b/docs/devhelp/devhelp.xsl
new file mode 100644 (file)
index 0000000..ce67a50
--- /dev/null
@@ -0,0 +1,127 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
+               xmlns="http://www.devhelp.net/book"
+               xmlns:exsl="http://exslt.org/common"
+               xmlns:str="http://exslt.org/strings"
+               extension-element-prefixes="exsl str"
+               exclude-result-prefixes="exsl str">
+  <!-- The stylesheet for the html pages -->
+  <xsl:import href="html.xsl"/>
+
+  <xsl:output method="xml" encoding="UTF-8" indent="yes"/>
+
+  <!-- Build keys for all symbols -->
+  <xsl:key name="symbols" match="/api/symbols/*" use="@name"/>
+
+  <xsl:template match="/api">
+    <book title="{@name} Reference Manual" link="index.html" author="" name="{@name}">
+      <xsl:apply-templates select="files"/>
+      <xsl:apply-templates select="symbols"/>
+    </book>
+    <xsl:call-template name="generate_index"/>
+    <xsl:call-template name="generate_general"/>
+  </xsl:template>
+  <xsl:template match="/api/files">
+    <chapters>
+      <sub name="API" link="general.html">
+        <xsl:apply-templates select="file"/>
+      </sub>
+    </chapters>
+  </xsl:template>
+  <xsl:template match="/api/files/file">
+    <xsl:variable name="module" select="@name"/>
+    <xsl:variable name="prev" select="string(preceding-sibling::file[position()=1]/@name)"/>
+    <xsl:variable name="next" select="string(following-sibling::file[position()=1]/@name)"/>
+    <sub name="{@name}" link="libvirt-{@name}.html"/>
+    <xsl:document xmlns="" href="libvirt-{@name}.html" method="xml" indent="yes" encoding="UTF-8">
+      <html>
+        <head>
+         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+         <title><xsl:value-of select="concat(@name, ': ', summary)"/></title>
+         <meta name="generator" content="Libvirt devhelp stylesheet"/>
+         <link rel="start" href="index.html" title="libvirt Reference Manual"/>
+         <link rel="up" href="general.html" title="API"/>
+         <link rel="stylesheet" href="style.css" type="text/css"/>
+         <link rel="chapter" href="general.html" title="API"/>
+        </head>
+       <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+
+          <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+           <tr valign="middle">
+             <xsl:if test="$prev != ''">
+               <td><a accesskey="p" href="libvirt-{$prev}.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"/></a></td>
+             </xsl:if>
+              <td><a accesskey="u" href="general.html"><img src="up.png" width="24" height="24" border="0" alt="Up"/></a></td>
+              <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"/></a></td>
+             <xsl:if test="$next != ''">
+               <td><a accesskey="n" href="libvirt-{$next}.html"><img src="right.png" width="24" height="24" border="0" alt="Next"/></a></td>
+             </xsl:if>
+              <th width="100%" align="center">libvirt Reference Manual</th>
+            </tr>
+         </table>
+         <h2><span class="refentrytitle"><xsl:value-of select="@name"/></span></h2>
+         <p><xsl:value-of select="@name"/> - <xsl:value-of select="summary"/></p>
+         <p><xsl:value-of select="description"/></p>
+         <xsl:if test="deprecated">
+           <p> WARNING: this module is deprecated !</p>
+         </xsl:if>
+         <p>Author(s): <xsl:value-of select="author"/></p>
+         <div class="refsynopsisdiv">
+         <h2>Synopsis</h2>
+         <pre class="synopsis">
+           <xsl:apply-templates mode="synopsis" select="exports"/>
+         </pre>
+         </div>
+         <div class="refsect1" lang="en">
+         <h2>Description</h2>
+         </div>
+         <div class="refsect1" lang="en">
+         <h2>Details</h2>
+         <div class="refsect2" lang="en">
+           <xsl:apply-templates mode="details" select="/api/symbols/macro[@file=$module]"/>
+           <xsl:apply-templates mode="details" select="/api/symbols/typedef[@file=$module] | /api/symbols/struct[@file=$module]"/>
+           <xsl:apply-templates mode="details" select="/api/symbols/functype[@file=$module]"/>
+           <xsl:apply-templates mode="details" select="/api/symbols/variable[@file=$module]"/>
+           <xsl:apply-templates mode="details" select="/api/symbols/function[@file=$module]"/>
+         </div>
+         </div>
+       </body>
+      </html>
+    </xsl:document>
+  </xsl:template>
+  <xsl:template match="/api/symbols">
+    <functions>
+      <xsl:apply-templates select="macro"/>
+      <xsl:apply-templates select="enum"/>
+      <xsl:apply-templates select="typedef"/>
+      <xsl:apply-templates select="struct"/>
+      <xsl:apply-templates select="functype"/>
+      <xsl:apply-templates select="variable"/>
+      <xsl:apply-templates select="function"/>
+    </functions>
+  </xsl:template>
+  <xsl:template match="/api/symbols/functype">
+    <function name="{@name}" link="libvirt-{@file}.html#{@name}"/>
+  </xsl:template>
+  <xsl:template match="/api/symbols/function">
+    <function name="{@name} ()" link="libvirt-{@file}.html#{@name}"/>
+  </xsl:template>
+  <xsl:template match="/api/symbols/typedef">
+    <function name="{@name}" link="libvirt-{@file}.html#{@name}"/>
+  </xsl:template>
+  <xsl:template match="/api/symbols/enum">
+    <function name="{@name}" link="libvirt-{@file}.html#{@name}"/>
+  </xsl:template>
+  <xsl:template match="/api/symbols/struct">
+    <function name="{@name}" link="libvirt-{@file}.html#{@name}"/>
+  </xsl:template>
+  <xsl:template match="/api/symbols/macro">
+    <function name="{@name}" link="libvirt-{@file}.html#{@name}"/>
+  </xsl:template>
+  <xsl:template match="/api/symbols/variable">
+    <function name="{@name}" link="libvirt-{@file}.html#{@name}"/>
+  </xsl:template>
+
+</xsl:stylesheet>
+
+
diff --git a/docs/devhelp/home.png b/docs/devhelp/home.png
new file mode 100644 (file)
index 0000000..1700361
Binary files /dev/null and b/docs/devhelp/home.png differ
diff --git a/docs/devhelp/html.xsl b/docs/devhelp/html.xsl
new file mode 100644 (file)
index 0000000..1efcc7c
--- /dev/null
@@ -0,0 +1,579 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
+               xmlns:exsl="http://exslt.org/common"
+               xmlns:str="http://exslt.org/strings"
+               extension-element-prefixes="exsl str"
+               exclude-result-prefixes="exsl str">
+  <xsl:output method="xml" encoding="UTF-8" indent="yes"/>
+
+  <!-- This is convoluted but needed to force the current document to
+       be the API one and not the result tree from the tokenize() result,
+       because the keys are only defined on the main document -->
+  <xsl:template mode="dumptoken" match='*'>
+    <xsl:param name="token"/>
+    <xsl:variable name="ref" select="key('symbols', $token)"/>
+    <xsl:choose>
+      <xsl:when test="$ref">
+        <a href="libvirt-{$ref/@file}.html#{$ref/@name}"><xsl:value-of select="$token"/></a>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$token"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <!-- dumps a string, making cross-reference links -->
+  <xsl:template name="dumptext">
+    <xsl:param name="text"/>
+    <xsl:variable name="ctxt" select='.'/>
+    <!-- <xsl:value-of select="$text"/> -->
+    <xsl:for-each select="str:tokenize($text, ' &#9;')">
+      <xsl:apply-templates select="$ctxt" mode='dumptoken'>
+        <xsl:with-param name="token" select="string(.)"/>
+      </xsl:apply-templates>
+      <xsl:if test="position() != last()">
+        <xsl:text> </xsl:text>
+      </xsl:if>
+    </xsl:for-each>
+  </xsl:template>
+
+<!--
+
+             The following builds the Synopsis section
+
+-->
+  <xsl:template mode="synopsis" match="function">
+    <xsl:variable name="name" select="string(@name)"/>
+    <xsl:variable name="nlen" select="string-length($name)"/>
+    <xsl:variable name="tlen" select="string-length(return/@type)"/>
+    <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/>
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="return/@type"/>
+    </xsl:call-template>
+    <xsl:text>&#9;</xsl:text>
+    <a href="#{@name}"><xsl:value-of select="@name"/></a>
+    <xsl:if test="$blen - 40 &lt; -8">
+      <xsl:text>&#9;</xsl:text>
+    </xsl:if>
+    <xsl:if test="$blen - 40 &lt; 0">
+      <xsl:text>&#9;</xsl:text>
+    </xsl:if>
+    <xsl:text>&#9;(</xsl:text>
+    <xsl:if test="not(arg)">
+      <xsl:text>void</xsl:text>
+    </xsl:if>
+    <xsl:for-each select="arg">
+      <xsl:call-template name="dumptext">
+        <xsl:with-param name="text" select="@type"/>
+      </xsl:call-template>
+      <xsl:text> </xsl:text>
+      <xsl:value-of select="@name"/>
+      <xsl:if test="position() != last()">
+        <xsl:text>, </xsl:text><br/>
+       <xsl:if test="$blen - 40 &gt; 8">
+         <xsl:text>&#9;</xsl:text>
+       </xsl:if>
+       <xsl:if test="$blen - 40 &gt; 0">
+         <xsl:text>&#9;</xsl:text>
+       </xsl:if>
+       <xsl:text>&#9;&#9;&#9;&#9;&#9; </xsl:text>
+      </xsl:if>
+    </xsl:for-each>
+    <xsl:text>);</xsl:text>
+    <xsl:text>
+</xsl:text>
+  </xsl:template>
+
+  <xsl:template mode="synopsis" match="functype">
+    <xsl:variable name="name" select="string(@name)"/>
+    <xsl:variable name="nlen" select="string-length($name)"/>
+    <xsl:variable name="tlen" select="string-length(return/@type)"/>
+    <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/>
+    <xsl:text>typedef </xsl:text>
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="return/@type"/>
+    </xsl:call-template>
+    <xsl:text> </xsl:text>
+    <a href="#{@name}"><xsl:value-of select="@name"/></a>
+    <xsl:if test="$blen - 40 &lt; -8">
+      <xsl:text>&#9;</xsl:text>
+    </xsl:if>
+    <xsl:if test="$blen - 40 &lt; 0">
+      <xsl:text>&#9;</xsl:text>
+    </xsl:if>
+    <xsl:text>&#9;(</xsl:text>
+    <xsl:if test="not(arg)">
+      <xsl:text>void</xsl:text>
+    </xsl:if>
+    <xsl:for-each select="arg">
+      <xsl:call-template name="dumptext">
+        <xsl:with-param name="text" select="@type"/>
+      </xsl:call-template>
+      <xsl:text> </xsl:text>
+      <xsl:value-of select="@name"/>
+      <xsl:if test="position() != last()">
+        <xsl:text>, </xsl:text><br/>
+       <xsl:if test="$blen - 40 &gt; 8">
+         <xsl:text>&#9;</xsl:text>
+       </xsl:if>
+       <xsl:if test="$blen - 40 &gt; 0">
+         <xsl:text>&#9;</xsl:text>
+       </xsl:if>
+       <xsl:text>&#9;&#9;&#9;&#9;&#9; </xsl:text>
+      </xsl:if>
+    </xsl:for-each>
+    <xsl:text>);</xsl:text>
+    <xsl:text>
+</xsl:text>
+  </xsl:template>
+
+  <xsl:template mode="synopsis" match="exports[@type='function']">
+    <xsl:variable name="def" select="key('symbols',@symbol)"/>
+    <xsl:apply-templates mode="synopsis" select="$def"/>
+  </xsl:template>
+
+  <xsl:template mode="synopsis" match="exports[@type='typedef']">
+    <xsl:text>typedef </xsl:text>
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="string(key('symbols',@symbol)/@type)"/>
+    </xsl:call-template>
+    <xsl:text> </xsl:text>
+    <a href="#{@symbol}"><xsl:value-of select="@symbol"/></a>
+    <xsl:text>;
+</xsl:text>
+  </xsl:template>
+
+  <xsl:template mode="synopsis" match="exports[@type='macro']">
+    <xsl:variable name="def" select="key('symbols',@symbol)"/>
+    <xsl:text>#define </xsl:text>
+    <a href="#{@symbol}"><xsl:value-of select="@symbol"/></a>
+    <xsl:if test="$def/arg">
+      <xsl:text>(</xsl:text>
+      <xsl:for-each select="$def/arg">
+        <xsl:value-of select="@name"/>
+       <xsl:if test="position() != last()">
+         <xsl:text>, </xsl:text>
+       </xsl:if>
+      </xsl:for-each>
+      <xsl:text>)</xsl:text>
+    </xsl:if>
+    <xsl:text>;
+</xsl:text>
+  </xsl:template>
+  <xsl:template mode="synopsis" match="exports[@type='enum']">
+  </xsl:template>
+  <xsl:template mode="synopsis" match="exports[@type='struct']">
+  </xsl:template>
+
+<!--
+
+             The following builds the Details section
+
+-->
+  <xsl:template mode="details" match="struct">
+    <xsl:variable name="name" select="string(@name)"/>
+    <div class="refsect2" lang="en">
+    <h3><a name="{$name}">Structure </a><xsl:value-of select="$name"/></h3>
+    <pre class="programlisting">
+    <xsl:value-of select="@type"/><xsl:text> {
+</xsl:text>
+    <xsl:if test="not(field)">
+      <xsl:text>The content of this structure is not made public by the API.
+</xsl:text>
+    </xsl:if>
+    <xsl:for-each select="field">
+        <xsl:text>    </xsl:text>
+       <xsl:call-template name="dumptext">
+         <xsl:with-param name="text" select="@type"/>
+       </xsl:call-template>
+       <xsl:text>&#9;</xsl:text>
+       <xsl:value-of select="@name"/>
+       <xsl:if test="@info != ''">
+         <xsl:text>&#9;: </xsl:text>
+         <xsl:call-template name="dumptext">
+           <xsl:with-param name="text" select="substring(@info, 1, 70)"/>
+         </xsl:call-template>
+       </xsl:if>
+       <xsl:text>
+</xsl:text>
+    </xsl:for-each>
+    <xsl:text>} </xsl:text>
+    <xsl:value-of select="$name"/>
+    <xsl:text>;
+</xsl:text>
+    </pre>
+    <p>
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="info"/>
+    </xsl:call-template>
+    </p><xsl:text>
+</xsl:text>
+    </div><hr/>
+  </xsl:template>
+
+  <xsl:template mode="details" match="typedef[@type != 'enum']">
+    <xsl:variable name="name" select="string(@name)"/>
+    <div class="refsect2" lang="en">
+    <h3><a name="{$name}">Typedef </a><xsl:value-of select="$name"/></h3>
+    <pre class="programlisting">
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="string(@type)"/>
+    </xsl:call-template>
+    <xsl:text> </xsl:text>
+    <xsl:value-of select="$name"/>
+    <xsl:text>;
+</xsl:text>
+    </pre>
+    <p>
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="info"/>
+    </xsl:call-template>
+    </p><xsl:text>
+</xsl:text>
+    </div><hr/>
+  </xsl:template>
+
+  <xsl:template mode="details" match="variable">
+    <xsl:variable name="name" select="string(@name)"/>
+    <div class="refsect2" lang="en">
+    <h3><a name="{$name}">Variable </a><xsl:value-of select="$name"/></h3>
+    <pre class="programlisting">
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="string(@type)"/>
+    </xsl:call-template>
+    <xsl:text> </xsl:text>
+    <xsl:value-of select="$name"/>
+    <xsl:text>;
+</xsl:text>
+    </pre>
+    <p>
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="info"/>
+    </xsl:call-template>
+    </p><xsl:text>
+</xsl:text>
+    </div><hr/>
+  </xsl:template>
+
+  <xsl:template mode="details" match="typedef[@type = 'enum']">
+    <xsl:variable name="name" select="string(@name)"/>
+    <div class="refsect2" lang="en">
+    <h3><a name="{$name}">Enum </a><xsl:value-of select="$name"/></h3>
+    <pre class="programlisting">
+    <xsl:text>enum </xsl:text>
+    <a href="#{$name}"><xsl:value-of select="$name"/></a>
+    <xsl:text> {
+</xsl:text>
+    <xsl:for-each select="/api/symbols/enum[@type=$name]">
+      <xsl:sort select="@value" data-type="number" order="ascending"/>
+      <xsl:text>    </xsl:text>
+      <a name="{@name}"><xsl:value-of select="@name"/></a>
+      <xsl:if test="@value">
+        <xsl:text> = </xsl:text>
+       <xsl:value-of select="@value"/>
+      </xsl:if>
+      <xsl:if test="@info">
+        <xsl:text> /* </xsl:text>
+       <xsl:value-of select="@info"/>
+        <xsl:text> */</xsl:text>
+      </xsl:if>
+      <xsl:text>
+</xsl:text>
+    </xsl:for-each>
+    <xsl:text>};
+</xsl:text>
+    </pre>
+    <p>
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="info"/>
+    </xsl:call-template>
+    </p><xsl:text>
+</xsl:text>
+    </div><hr/>
+  </xsl:template>
+
+  <xsl:template mode="details" match="macro">
+    <xsl:variable name="name" select="string(@name)"/>
+    <div class="refsect2" lang="en">
+    <h3><a name="{$name}">Macro </a><xsl:value-of select="$name"/></h3>
+    <pre class="programlisting">
+    <xsl:text>#define </xsl:text>
+    <a href="#{$name}"><xsl:value-of select="$name"/></a>
+    <xsl:if test="arg">
+      <xsl:text>(</xsl:text>
+      <xsl:for-each select="arg">
+        <xsl:value-of select="@name"/>
+       <xsl:if test="position() != last()">
+         <xsl:text>, </xsl:text>
+       </xsl:if>
+      </xsl:for-each>
+      <xsl:text>)</xsl:text>
+    </xsl:if>
+    <xsl:text>;
+</xsl:text>
+    </pre>
+    <p>
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="info"/>
+    </xsl:call-template>
+    </p>
+    <xsl:if test="arg">
+      <div class="variablelist"><table border="0"><col align="left"/><tbody>
+      <xsl:for-each select="arg">
+        <tr>
+          <td><span class="term"><i><tt><xsl:value-of select="@name"/></tt></i>:</span></td>
+         <td>
+           <xsl:call-template name="dumptext">
+             <xsl:with-param name="text" select="@info"/>
+           </xsl:call-template>
+         </td>
+        </tr>
+      </xsl:for-each>
+      </tbody></table></div>
+    </xsl:if>
+    <xsl:text>
+</xsl:text>
+    </div><hr/>
+  </xsl:template>
+
+  <xsl:template mode="details" match="function">
+    <xsl:variable name="name" select="string(@name)"/>
+    <xsl:variable name="nlen" select="string-length($name)"/>
+    <xsl:variable name="tlen" select="string-length(return/@type)"/>
+    <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/>
+    <div class="refsect2" lang="en">
+    <h3><a name="{$name}"></a><xsl:value-of select="$name"/> ()</h3>
+    <pre class="programlisting">
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="return/@type"/>
+    </xsl:call-template>
+    <xsl:text>&#9;</xsl:text>
+    <xsl:value-of select="@name"/>
+    <xsl:if test="$blen - 40 &lt; -8">
+      <xsl:text>&#9;</xsl:text>
+    </xsl:if>
+    <xsl:if test="$blen - 40 &lt; 0">
+      <xsl:text>&#9;</xsl:text>
+    </xsl:if>
+    <xsl:text>&#9;(</xsl:text>
+    <xsl:if test="not(arg)">
+      <xsl:text>void</xsl:text>
+    </xsl:if>
+    <xsl:for-each select="arg">
+      <xsl:call-template name="dumptext">
+        <xsl:with-param name="text" select="@type"/>
+      </xsl:call-template>
+      <xsl:text> </xsl:text>
+      <xsl:value-of select="@name"/>
+      <xsl:if test="position() != last()">
+        <xsl:text>, </xsl:text><br/>
+       <xsl:if test="$blen - 40 &gt; 8">
+         <xsl:text>&#9;</xsl:text>
+       </xsl:if>
+       <xsl:if test="$blen - 40 &gt; 0">
+         <xsl:text>&#9;</xsl:text>
+       </xsl:if>
+       <xsl:text>&#9;&#9;&#9;&#9;&#9; </xsl:text>
+      </xsl:if>
+    </xsl:for-each>
+    <xsl:text>)</xsl:text><br/>
+    <xsl:text>
+</xsl:text>
+    </pre>
+    <p>
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="info"/>
+    </xsl:call-template>
+    </p><xsl:text>
+</xsl:text>
+    <xsl:if test="arg | return/@info">
+      <div class="variablelist"><table border="0"><col align="left"/><tbody>
+      <xsl:for-each select="arg">
+        <tr>
+          <td><span class="term"><i><tt><xsl:value-of select="@name"/></tt></i>:</span></td>
+         <td>
+           <xsl:call-template name="dumptext">
+             <xsl:with-param name="text" select="@info"/>
+           </xsl:call-template>
+         </td>
+        </tr>
+      </xsl:for-each>
+      <xsl:if test="return/@info">
+        <tr>
+          <td><span class="term"><i><tt>Returns</tt></i>:</span></td>
+         <td>
+           <xsl:call-template name="dumptext">
+             <xsl:with-param name="text" select="return/@info"/>
+           </xsl:call-template>
+         </td>
+        </tr>
+      </xsl:if>
+      </tbody></table></div>
+    </xsl:if>
+    </div><hr/>
+  </xsl:template>
+
+  <xsl:template mode="details" match="functype">
+    <xsl:variable name="name" select="string(@name)"/>
+    <xsl:variable name="nlen" select="string-length($name)"/>
+    <xsl:variable name="tlen" select="string-length(return/@type)"/>
+    <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/>
+    <div class="refsect2" lang="en">
+    <h3><a name="{$name}"></a>Function type <xsl:value-of select="$name"/> </h3>
+    <pre class="programlisting">
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="return/@type"/>
+    </xsl:call-template>
+    <xsl:text>&#9;</xsl:text>
+    <xsl:value-of select="@name"/>
+    <xsl:if test="$blen - 40 &lt; -8">
+      <xsl:text>&#9;</xsl:text>
+    </xsl:if>
+    <xsl:if test="$blen - 40 &lt; 0">
+      <xsl:text>&#9;</xsl:text>
+    </xsl:if>
+    <xsl:text>&#9;(</xsl:text>
+    <xsl:if test="not(arg)">
+      <xsl:text>void</xsl:text>
+    </xsl:if>
+    <xsl:for-each select="arg">
+      <xsl:call-template name="dumptext">
+        <xsl:with-param name="text" select="@type"/>
+      </xsl:call-template>
+      <xsl:text> </xsl:text>
+      <xsl:value-of select="@name"/>
+      <xsl:if test="position() != last()">
+        <xsl:text>, </xsl:text><br/>
+       <xsl:if test="$blen - 40 &gt; 8">
+         <xsl:text>&#9;</xsl:text>
+       </xsl:if>
+       <xsl:if test="$blen - 40 &gt; 0">
+         <xsl:text>&#9;</xsl:text>
+       </xsl:if>
+       <xsl:text>&#9;&#9;&#9;&#9;&#9; </xsl:text>
+      </xsl:if>
+    </xsl:for-each>
+    <xsl:text>)</xsl:text><br/>
+    <xsl:text>
+</xsl:text>
+    </pre>
+    <p>
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="info"/>
+    </xsl:call-template>
+    </p><xsl:text>
+</xsl:text>
+    <xsl:if test="arg | return/@info">
+      <div class="variablelist"><table border="0"><col align="left"/><tbody>
+      <xsl:for-each select="arg">
+        <tr>
+          <td><span class="term"><i><tt><xsl:value-of select="@name"/></tt></i>:</span></td>
+         <td>
+           <xsl:call-template name="dumptext">
+             <xsl:with-param name="text" select="@info"/>
+           </xsl:call-template>
+         </td>
+        </tr>
+      </xsl:for-each>
+      <xsl:if test="return/@info">
+        <tr>
+          <td><span class="term"><i><tt>Returns</tt></i>:</span></td>
+         <td>
+           <xsl:call-template name="dumptext">
+             <xsl:with-param name="text" select="return/@info"/>
+           </xsl:call-template>
+         </td>
+        </tr>
+      </xsl:if>
+      </tbody></table></div>
+    </xsl:if>
+    </div><hr/>
+  </xsl:template>
+
+<!--
+
+             The following builds the general.html page
+
+-->
+  <xsl:template name="generate_general">
+    <xsl:variable name="next" select="string(/api/files/file[position()=1]/@name)"/>
+    <xsl:document xmlns="" href="general.html" method="xml" indent="yes" encoding="UTF-8">
+      <html>
+        <head>
+         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+         <title><xsl:value-of select="concat(@name, ': ', summary)"/></title>
+         <meta name="generator" content="Libvirt devhelp stylesheet"/>
+         <link rel="start" href="index.html" title="libvirt Reference Manual"/>
+         <link rel="up" href="index.html" title="libvirt Reference Manual"/>
+         <link rel="stylesheet" href="style.css" type="text/css"/>
+         <link rel="chapter" href="index.html" title="libvirt Reference Manual"/>
+        </head>
+       <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+
+          <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+           <tr valign="middle">
+              <td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up"/></a></td>
+              <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"/></a></td>
+             <xsl:if test="$next != ''">
+               <td><a accesskey="n" href="libvirt-{$next}.html"><img src="right.png" width="24" height="24" border="0" alt="Next"/></a></td>
+             </xsl:if>
+              <th width="100%" align="center">libvirt Reference Manual</th>
+            </tr>
+         </table>
+         <h2><span class="refentrytitle">libvirt API Modules</span></h2>
+         <p>
+         <xsl:for-each select="/api/files/file">
+           <a href="libvirt-{@name}.html"><xsl:value-of select="@name"/></a> - <xsl:value-of select="summary"/><br/>
+         </xsl:for-each>
+         </p>
+       </body>
+      </html>
+    </xsl:document>
+  </xsl:template>
+
+<!--
+
+             The following builds the index.html page
+
+-->
+  <xsl:template name="generate_index">
+    <xsl:document xmlns="" href="index.html" method="xml" indent="yes" encoding="UTF-8">
+      <html>
+        <head>
+         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+         <title>libvirt Reference Manual</title>
+         <meta name="generator" content="Libvirt devhelp stylesheet"/>
+         <link rel="stylesheet" href="style.css" type="text/css"/>
+        </head>
+       <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+
+          <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+           <tr valign="middle">
+              <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"/></a></td>
+             <td><a accesskey="n" href="general.html"><img src="right.png" width="24" height="24" border="0" alt="Next"/></a></td>
+              <th width="100%" align="center">libvirt Reference Manual</th>
+            </tr>
+         </table>
+         <h2><span class="refentrytitle">libvirt Reference Manual</span></h2>
+<p>Libvir is a C toolkit to interract with the virtualization capabilities of
+recent versions of Linux (and other OSes). It is free software available
+under the <a href="http://www.opensource.org/licenses/lgpl-license.html">GNU
+Lesser General Public License</a>. Virtualization of the Linux Operating
+System means the ability to run multiple instances of Operating Systems
+concurently on a single hardware system where the basic resources are driven
+by a Linux instance. The library aim at providing long term stable C API
+initially for the <a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen
+paravirtualization</a> but should be able to integrate other virtualization
+mechanisms if needed.</p>
+<p> If you get lost searching for some specific API use, try
+<a href="http://libvirt.org/search.php">the online search
+engine</a> hosted on <a href="http://libvirt.org/">libvirt.org</a>
+it indexes the project page, the APIs as well as the mailing-list archives. </p>
+       </body>
+      </html>
+    </xsl:document>
+  </xsl:template>
+
+</xsl:stylesheet>
+
+
diff --git a/docs/devhelp/left.png b/docs/devhelp/left.png
new file mode 100644 (file)
index 0000000..2d05b3d
Binary files /dev/null and b/docs/devhelp/left.png differ
diff --git a/docs/devhelp/right.png b/docs/devhelp/right.png
new file mode 100644 (file)
index 0000000..92832e3
Binary files /dev/null and b/docs/devhelp/right.png differ
diff --git a/docs/devhelp/style.css b/docs/devhelp/style.css
new file mode 100644 (file)
index 0000000..c9cabe7
--- /dev/null
@@ -0,0 +1,66 @@
+.synopsis, .classsynopsis 
+{
+  background: #eeeeee;
+  border: solid 1px #aaaaaa;
+  padding: 0.5em;
+}
+.programlisting 
+{
+  background: #eeeeff;
+  border: solid 1px #aaaaff;
+  padding: 0.5em;
+}
+.variablelist 
+{
+  padding: 4px;
+  margin-left: 3em;
+}
+.variablelist td:first-child
+{
+  vertical-align: top;
+}
+table.navigation 
+{
+  background: #ffeeee;
+  border: solid 1px #ffaaaa;
+  margin-top: 0.5em;
+  margin-bottom: 0.5em;
+}
+.navigation a 
+{
+  color: #770000;
+}
+.navigation a:visited 
+{
+  color: #550000;
+}
+.navigation .title 
+{
+  font-size: 200%;
+}
+div.refnamediv 
+{
+  margin-top: 2em;
+}
+div.gallery-float 
+{
+  float: left;
+  padding: 10px;
+}
+div.gallery-float img 
+{
+  border-style: none;
+}
+div.gallery-spacer 
+{
+  clear: both;
+}
+a
+{
+  text-decoration: none;
+}
+a:hover
+{
+  text-decoration: underline;
+  color: #FF0000;
+}
diff --git a/docs/devhelp/up.png b/docs/devhelp/up.png
new file mode 100644 (file)
index 0000000..85b3e2a
Binary files /dev/null and b/docs/devhelp/up.png differ
index efb47abc519ea65c4068a1ad8dc0095501b7e352..69830100209385791727e81ed9b2919291ebc853 100644 (file)
@@ -77,6 +77,10 @@ rm -fr %{buildroot}
 %{_libdir}/lib*.so
 %{_includedir}/libvirt/*.h
 %{_libdir}/pkgconfig/libvirt.pc
+%doc %{_datadir}/gtk-doc/html/libvirt/*.devhelp
+%doc %{_datadir}/gtk-doc/html/libvirt/*.html
+%doc %{_datadir}/gtk-doc/html/libvirt/*.png
+%doc %{_datadir}/gtk-doc/html/libvirt/*.css
 
 %doc docs/*.html docs/html docs/*.gif
 %doc docs/examples