[libvirt] [PATCH] docs: fix generation of docs from VPATH build

Daniel P. Berrange berrange at redhat.com
Wed Jan 20 12:24:42 UTC 2016


When generating docs in a VPATH build we get a failure to
create a file due to the 'internals' subdir not existing:

  Generating internals/locking.html.tmp
  /bin/sh: line 3: internals/locking.html.tmp: No such file or directory
  rm: cannot remove ‘internals/locking.html.tmp’: No such file or directory
  Makefile:2229: recipe for target 'internals/locking.html.tmp' failed
  make: *** [internals/locking.html.tmp] Error 1

For some reason, make has decided to run the target

  %.html.tmp: %.html.in site.xsl page.xsl sitemap.html.in $(acl_generated)

instead of the target

  internals/%.html.tmp: internals/%.html.in subsite.xsl page.xsl sitemap.html.in

Removing '$(acl_generated)' from the first target, inexplicably
causes make to now run the correct target for the internals/
files.

Rather than figure this out, lets just combine the two targets
into one.

Signed-off-by: Daniel P. Berrange <berrange at redhat.com>
---
 docs/Makefile.am | 21 ++++++++++-----------
 1 file changed, 10 insertions(+), 11 deletions(-)

diff --git a/docs/Makefile.am b/docs/Makefile.am
index fb53a45..231aa4e 100644
--- a/docs/Makefile.am
+++ b/docs/Makefile.am
@@ -220,21 +220,20 @@ $(srcdir)/hvsupport.html.in: $(srcdir)/hvsupport.pl $(api_DATA) \
 %.png: %.fig
 	convert -rotate 90 $< $@
 
-internals/%.html.tmp: internals/%.html.in subsite.xsl page.xsl sitemap.html.in
+%.html.tmp: %.html.in site.xsl subsite.xsl page.xsl sitemap.html.in $(acl_generated)
 	@if [ -x $(XSLTPROC) ] ; then \
 	  echo "Generating $@"; \
-	  $(MKDIR_P) internals; \
 	  name=`echo $@ | sed -e 's/.tmp//'`; \
+	  dir=`dirname $@` ; \
+	  if test "$$dir" = "."; \
+	  then \
+	    style=site.xsl; \
+	  else \
+	    $(MKDIR_P) $$dir; \
+	    style=subsite.xsl; \
+	  fi; \
 	  $(XSLTPROC) --stringparam pagename $$name --nonet \
-	    $(top_srcdir)/docs/subsite.xsl $< > $@ \
-	    || { rm $@ && exit 1; }; fi
-
-%.html.tmp: %.html.in site.xsl page.xsl sitemap.html.in $(acl_generated)
-	@if [ -x $(XSLTPROC) ] ; then \
-	  echo "Generating $@"; \
-	  name=`echo $@ | sed -e 's/.tmp//'`; \
-	  $(XSLTPROC) --stringparam pagename $$name --nonet \
-	    $(top_srcdir)/docs/site.xsl $< > $@ \
+	    $(top_srcdir)/docs/$$style $< > $@ \
 	    || { rm $@ && exit 1; }; fi
 
 %.html: %.html.tmp
-- 
2.5.0




More information about the libvir-list mailing list