[libvirt] [RESEND PATCHv3 2/3] build: fix VPATH build of docs

Matthias Bolte matthias.bolte at googlemail.com
Fri Jun 25 18:00:02 UTC 2010


2010/6/25 Eric Blake <eblake at redhat.com>:
> The rule of thumb for generated files:
> If they are distributed, they should be generated in $(srcdir);
> otherwise, they should be built by the end user in $(builddir).
> Since our .xml docs are built with python, and we want them
> available even to end users that don't build with python, we
> want them distributed; hence, they must live in $(srcdir).
>
> Tested with 'make distcheck' in both an in-tree build and a
> VPATH build.

> -
> -html/index.html: libvirt-api.xml newapi.xsl page.xsl sitemap.html.in
> +$(srcdir)/html/index.html: $(srcdir)/libvirt-api.xml newapi.xsl page.xsl \
> +               sitemap.html.in
>        - at if [ -x $(XSLTPROC) ] ; then \
>          echo "Rebuilding the HTML pages from the XML API" ; \
> -         $(XSLTPROC) --nonet $(srcdir)/newapi.xsl libvirt-api.xml ; fi
> +         $(XSLTPROC) --nonet -o $(srcdir)/ \
> +           $(srcdir)/newapi.xsl $(srcdir)/libvirt-api.xml; \
> +       fi
>        - at if test -x $(XMLLINT) && test -x $(XMLCATALOG) ; then \
>          if $(XMLCATALOG) /etc/xml/catalog "-//W3C//DTD XHTML 1.0 Strict//EN" \
>            > /dev/null ; then \
> @@ -129,19 +132,24 @@ html/index.html: libvirt-api.xml newapi.xsl page.xsl sitemap.html.in
>          $(XMLLINT) --nonet --valid --noout html/*.html ; \
>          else echo "missing XHTML1 DTD" ; fi ; fi
>
> -$(devhelphtml): libvirt-api.xml $(devhelpxsl)
> +$(addprefix $(srcdir)/,$(devhelphtml)): $(srcdir)/libvirt-api.xml $(devhelpxsl)
>        - at echo Rebuilding devhelp files
>        - at if [ -x $(XSLTPROC) ] ; then \
> -         $(XSLTPROC) --nonet -o devhelp/libvirt.devhelp \
> -         $(top_srcdir)/docs/devhelp/devhelp.xsl libvirt-api.xml ; fi
> -
> -html/%-%.html html/%-virterror.html %-api.xml %-refs.xml: $(srcdir)/apibuild.py
> -       -srcdir=$(srcdir) $(srcdir)/apibuild.py
> -
> -html/%-%.html html/%-virterror.html %-api.xml %-refs.xml: \
> -               $(srcdir)/../include/%/*.h \
> -               $(srcdir)/../src/%.c \
> +         $(XSLTPROC) --nonet -o $(srcdir)/devhelp/ \
> +         $(srcdir)/devhelp/devhelp.xsl $(srcdir)/libvirt-api.xml ; \
> +       fi

This makes xsltproc report and "I/O error : Is a directory" for me. I
think the problem is that we need to specify the output file instead
of the output directory here.

I think the same applies to your change to the xsltproc command some
lines above for $(srcdir)/html/index.html.

> diff --git a/docs/apibuild.py b/docs/apibuild.py
> index 2dda4df..990451c 100755
> --- a/docs/apibuild.py
> +++ b/docs/apibuild.py

> @@ -2109,10 +2116,11 @@ def rebuild():
>        builder = docBuilder("libvirt",
>                              [srcdir + "/../src",
>                               srcdir + "/../src/util",
> -                              srcdir + "/../include/libvirt"],
> +                              srcdir + "/../include/libvirt",
> +                              "../include/libvirt"],
>                              [])

This triggers tons or warnings/errors for me:

  function virDomainResume from ./../include/libvirt/libvirt.h
redeclared in ../include/libvirt/libvirt.h

Adding "./../include/libvirt" instead of "../include/libvirt" as last
item to the list fixes this for me.

Matthias




More information about the libvir-list mailing list