]> xenbits.xensource.com Git - libvirt.git/commitdiff
docs: generate files into build dir and stop distributing them
authorPavel Hrdina <phrdina@redhat.com>
Fri, 18 Oct 2019 15:21:06 +0000 (17:21 +0200)
committerPavel Hrdina <phrdina@redhat.com>
Wed, 23 Oct 2019 12:46:26 +0000 (14:46 +0200)
Historically we did not support VPATH builds and everything was
generated into source directory.  The introduction of VPATH builds did
not changed the way how our documentation is handled.

This patch changes the rules to generate everything into build
directory and stops distributing generated files in order to have
properly separated VPATH builds.

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
docs/Makefile.am
docs/apibuild.py
docs/hvsupport.pl

index 5b2896bbe5110e400b2a21cf84c5355531f91b1f..0311bbedd8196220fd4ad4329898f5e2ad60ee51 100644 (file)
@@ -116,15 +116,15 @@ kbase_html_in = \
   $(patsubst $(srcdir)/%,%,$(wildcard $(srcdir)/kbase/*.html.in))
 kbase_html = $(kbase_html_in:%.html.in=%.html)
 
-# Since we ship pre-built html in the tarball, we must also
-# ship the sources, even when those sources are themselves
-# generated.
 # Generate hvsupport.html and news.html first, since they take one extra step.
-dot_html_in = \
+dot_html_generated_in = \
   hvsupport.html.in \
-  news.html.in \
+  news.html.in
+dot_html_in = \
   $(notdir $(wildcard $(srcdir)/*.html.in))
-dot_html = $(dot_html_in:%.html.in=%.html)
+dot_html = \
+  $(dot_html_generated_in:%.html.in=%.html) \
+  $(dot_html_in:%.html.in=%.html)
 
 xml = \
   libvirt-api.xml \
@@ -166,27 +166,32 @@ EXTRA_DIST= \
   apibuild.py genaclperms.pl \
   site.xsl subsite.xsl newapi.xsl page.xsl \
   wrapstring.xsl \
-  $(dot_html) $(dot_html_in) $(gif) $(apihtml) $(apipng) \
-  $(xml) $(qemu_xml) $(lxc_xml) $(admin_xml) $(fig) $(png) $(css) \
+  $(dot_html_in) $(gif) $(apipng) \
+  $(fig) $(png) $(css) \
   $(javascript) $(logofiles) \
-  $(internals_html_in) $(internals_html) $(fonts) \
-  $(kbase_html_in) $(kbase_html) \
+  $(internals_html_in) $(fonts) \
+  $(kbase_html_in) \
   aclperms.htmlinc \
   hvsupport.pl \
   $(schema_DATA)
 
 acl_generated = aclperms.htmlinc
 
-$(srcdir)/aclperms.htmlinc: $(top_srcdir)/src/access/viraccessperm.h \
+aclperms.htmlinc: $(top_srcdir)/src/access/viraccessperm.h \
         $(srcdir)/genaclperms.pl Makefile.am
        $(AM_V_GEN)$(PERL) $(srcdir)/genaclperms.pl $< > $@
 
-MAINTAINERCLEANFILES = \
-  $(addprefix $(srcdir)/,$(dot_html)) \
-  $(addprefix $(srcdir)/,$(apihtml)) \
-  $(addprefix $(srcdir)/,$(internals_html)) \
-  $(addprefix $(srcdir)/,$(kbase_html)) \
-  $(srcdir)/hvsupport.html.in $(srcdir)/aclperms.htmlinc
+CLEANFILES = \
+  $(dot_html) \
+  $(apihtml) \
+  $(internals_html) \
+  $(kbase_html) \
+  $(xml) \
+  $(qemu_xml) \
+  $(lxc_xml) \
+  $(admin_xml) \
+  $(dot_html_generated_in) \
+  aclperms.htmlinc
 
 timestamp="$(shell if test -n "$$SOURCE_DATE_EPOCH"; \
                   then \
@@ -197,21 +202,21 @@ timestamp="$(shell if test -n "$$SOURCE_DATE_EPOCH"; \
 
 all-am: web
 
-api: $(srcdir)/libvirt-api.xml $(srcdir)/libvirt-refs.xml
-qemu_api: $(srcdir)/libvirt-qemu-api.xml $(srcdir)/libvirt-qemu-refs.xml
-lxc_api: $(srcdir)/libvirt-lxc-api.xml $(srcdir)/libvirt-lxc-refs.xml
-admin_api: $(srcdir)/libvirt-admin-api.xml $(srcdir)/libvirt-admin-refs.xml
+api: libvirt-api.xml libvirt-refs.xml
+qemu_api: libvirt-qemu-api.xml libvirt-qemu-refs.xml
+lxc_api: libvirt-lxc-api.xml libvirt-lxc-refs.xml
+admin_api: libvirt-admin-api.xml libvirt-admin-refs.xml
 
 web: $(dot_html) $(internals_html) $(kbase_html) \
        html/index.html
 
-hvsupport.html: $(srcdir)/hvsupport.html.in
+hvsupport.html: hvsupport.html.in
 
-$(srcdir)/hvsupport.html.in: $(srcdir)/hvsupport.pl $(api_DATA) \
+hvsupport.html.in: $(srcdir)/hvsupport.pl $(api_DATA) \
                $(top_srcdir)/src/libvirt_public.syms \
        $(top_srcdir)/src/libvirt_qemu.syms $(top_srcdir)/src/libvirt_lxc.syms \
        $(top_srcdir)/src/driver.h
-       $(AM_V_GEN)$(PERL) $(srcdir)/hvsupport.pl $(top_srcdir)/src > $@ \
+       $(AM_V_GEN)$(PERL) $(srcdir)/hvsupport.pl $(top_srcdir) $(top_builddir) > $@ \
                || { rm $@ && exit 1; }
 
 news.html.in: \
@@ -226,8 +231,6 @@ EXTRA_DIST += \
        $(srcdir)/news.xml \
        $(srcdir)/news.rng \
        $(srcdir)/news-html.xsl
-MAINTAINERCLEANFILES += \
-       $(srcdir)/news.html.in
 
 %.png: %.fig
        convert -rotate 90 $< $@
@@ -249,36 +252,36 @@ MAINTAINERCLEANFILES += \
            || { rm $@ && exit 1; }
 
 %.html: %.html.tmp
-       $(AM_V_GEN)$(XMLLINT) --nonet --format $< > $(srcdir)/$@ \
-         || { rm $(srcdir)/$@ && exit 1; }
+       $(AM_V_GEN)$(XMLLINT) --nonet --format $< > $@ \
+         || { rm $@ && exit 1; }
 
 $(apihtml_generated): html/index.html
 
 html/index.html: libvirt-api.xml newapi.xsl page.xsl $(APIBUILD_STAMP)
-       $(AM_V_GEN)$(XSLTPROC) --nonet -o $(srcdir)/ \
+       $(AM_V_GEN)$(XSLTPROC) --nonet -o ./ \
          --stringparam builddir '$(abs_top_builddir)' \
          --stringparam timestamp $(timestamp) \
-         $(srcdir)/newapi.xsl $(srcdir)/libvirt-api.xml && \
-         $(XMLLINT) --nonet --noout $(srcdir)/html/*.html
+         $(srcdir)/newapi.xsl libvirt-api.xml && \
+         $(XMLLINT) --nonet --noout html/*.html
 
 python_generated_files = \
-               $(srcdir)/html/libvirt-libvirt-lxc.html \
-               $(srcdir)/html/libvirt-libvirt-qemu.html \
-               $(srcdir)/html/libvirt-libvirt-admin.html \
-               $(srcdir)/html/libvirt-virterror.html \
-               $(srcdir)/libvirt-api.xml \
-               $(srcdir)/libvirt-refs.xml \
-               $(srcdir)/libvirt-lxc-api.xml \
-               $(srcdir)/libvirt-lxc-refs.xml \
-               $(srcdir)/libvirt-qemu-api.xml \
-               $(srcdir)/libvirt-qemu-refs.xml \
-               $(srcdir)/libvirt-admin-api.xml \
-               $(srcdir)/libvirt-admin-refs.xml \
+               html/libvirt-libvirt-lxc.html \
+               html/libvirt-libvirt-qemu.html \
+               html/libvirt-libvirt-admin.html \
+               html/libvirt-virterror.html \
+               libvirt-api.xml \
+               libvirt-refs.xml \
+               libvirt-lxc-api.xml \
+               libvirt-lxc-refs.xml \
+               libvirt-qemu-api.xml \
+               libvirt-qemu-refs.xml \
+               libvirt-admin-api.xml \
+               libvirt-admin-refs.xml \
                $(NULL)
 
 APIBUILD=$(srcdir)/apibuild.py
-APIBUILD_STAMP=$(APIBUILD).stamp
-EXTRA_DIST += $(APIBUILD_STAMP)
+APIBUILD_STAMP=apibuild.py.stamp
+CLEANFILES += $(APIBUILD_STAMP)
 
 $(python_generated_files): $(APIBUILD_STAMP)
 
@@ -327,22 +330,14 @@ $(APIBUILD_STAMP): $(srcdir)/apibuild.py \
 check-local: all
 dist-local: all
 
-clean-local:
-       rm -f *~ *.bak *.hierarchy *.signals *-unused.txt *.html html/*.html
-
-maintainer-clean-local: clean-local
-       rm -rf $(srcdir)/libvirt-api.xml $(srcdir)/libvirt-refs.xml
-       rm -rf $(srcdir)/libvirt-qemu-api.xml $(srcdir)/libvirt-qemu-refs.xml
-       rm -rf $(srcdir)/libvirt-lxc-api.xml $(srcdir)/libvirt-lxc-refs.xml
-       rm -rf $(srcdir)/libvirt-admin-api.xml $(srcdir)/libvirt-admin-refs.xml
-       rm -rf $(APIBUILD_STAMP)
-
 rebuild: api qemu_api lxc_api admin_api all
 
 install-data-local:
        $(mkinstalldirs) $(DESTDIR)$(HTML_DIR)
-       for f in $(css) $(dot_html) $(gif) $(png); do \
+       for f in $(css) $(gif) $(png); do \
          $(INSTALL) -m 0644 $(srcdir)/$$f $(DESTDIR)$(HTML_DIR); done
+       for f in $(dot_html); do \
+         $(INSTALL) -m 0644 $$f $(DESTDIR)$(HTML_DIR); done
        $(mkinstalldirs) $(DESTDIR)$(HTML_DIR)/js
        for f in $(javascript); do \
          $(INSTALL) -m 0644 $(srcdir)/$$f $(DESTDIR)$(HTML_DIR)/js/; done
@@ -351,15 +346,15 @@ install-data-local:
          $(INSTALL) -m 0644 $(srcdir)/$$f $(DESTDIR)$(HTML_DIR)/logos; done
        $(mkinstalldirs) $(DESTDIR)$(HTML_DIR)/html
        for h in $(apihtml); do \
-         $(INSTALL) -m 0644 $(srcdir)/$$h $(DESTDIR)$(HTML_DIR)/html; done
+         $(INSTALL) -m 0644 $$h $(DESTDIR)$(HTML_DIR)/html; done
        for p in $(apipng); do \
          $(INSTALL) -m 0644 $(srcdir)/$$p $(DESTDIR)$(HTML_DIR)/html; done
        $(mkinstalldirs) $(DESTDIR)$(HTML_DIR)/internals
        for f in $(internals_html); do \
-         $(INSTALL) -m 0644 $(srcdir)/$$f $(DESTDIR)$(HTML_DIR)/internals; done
+         $(INSTALL) -m 0644 $$f $(DESTDIR)$(HTML_DIR)/internals; done
        $(mkinstalldirs) $(DESTDIR)$(HTML_DIR)/kbase
        for f in $(kbase_html); do \
-         $(INSTALL) -m 0644 $(srcdir)/$$f $(DESTDIR)$(HTML_DIR)/kbase; done
+         $(INSTALL) -m 0644 $$f $(DESTDIR)$(HTML_DIR)/kbase; done
        $(mkinstalldirs) $(DESTDIR)$(HTML_DIR)/fonts
        for f in $(fonts); do \
          $(INSTALL) -m 0644 $(srcdir)/$$f $(DESTDIR)$(HTML_DIR)/fonts; \
index d3d0be2d836918daf24a9cd42424da4e2055f1ae..af8595083cd1977f2dee097f6a14b1ecb1c4cb85 100755 (executable)
@@ -2551,7 +2551,7 @@ class app:
                     srcdir + "/../src/util",
                     srcdir + "/../include/libvirt",
                     builddir + "/../include/libvirt"]
-            builder = docBuilder(name, srcdir, dirs, [])
+            builder = docBuilder(name, builddir, dirs, [])
         else:
             self.warning("rebuild() failed, unable to guess the module")
             return None
index 494b8a27ecfb91af8b9f85e9d101fd593db01aae..0977098eacb929219fc0b88d3f068281455c7bbe 100755 (executable)
@@ -5,23 +5,24 @@ use warnings;
 
 use File::Find;
 
-die "syntax: $0 SRCDIR\n" unless int(@ARGV) == 1;
+die "syntax: $0 SRCDIR BUILDDIR\n" unless int(@ARGV) == 2;
 
 my $srcdir = shift @ARGV;
+my $builddir = shift @ARGV;
 
-my $symslibvirt = "$srcdir/libvirt_public.syms";
-my $symsqemu = "$srcdir/libvirt_qemu.syms";
-my $symslxc = "$srcdir/libvirt_lxc.syms";
+my $symslibvirt = "$srcdir/src/libvirt_public.syms";
+my $symsqemu = "$srcdir/src/libvirt_qemu.syms";
+my $symslxc = "$srcdir/src/libvirt_lxc.syms";
 my @drivertable = (
-    "$srcdir/driver-hypervisor.h",
-    "$srcdir/driver-interface.h",
-    "$srcdir/driver-network.h",
-    "$srcdir/driver-nodedev.h",
-    "$srcdir/driver-nwfilter.h",
-    "$srcdir/driver-secret.h",
-    "$srcdir/driver-state.h",
-    "$srcdir/driver-storage.h",
-    "$srcdir/driver-stream.h",
+    "$srcdir/src/driver-hypervisor.h",
+    "$srcdir/src/driver-interface.h",
+    "$srcdir/src/driver-network.h",
+    "$srcdir/src/driver-nodedev.h",
+    "$srcdir/src/driver-nwfilter.h",
+    "$srcdir/src/driver-secret.h",
+    "$srcdir/src/driver-state.h",
+    "$srcdir/src/driver-storage.h",
+    "$srcdir/src/driver-stream.h",
     );
 
 my %groupheaders = (
@@ -38,10 +39,10 @@ my %groupheaders = (
 my @srcs;
 find({
     wanted => sub {
-        if (m!$srcdir/.*/\w+_(driver|common|tmpl|monitor|hal|udev)\.c$!) {
+        if (m!$srcdir/src/.*/\w+_(driver|common|tmpl|monitor|hal|udev)\.c$!) {
             push @srcs, $_ if $_ !~ /vbox_driver\.c/;
         }
-    }, no_chdir => 1}, $srcdir);
+    }, no_chdir => 1}, "$srcdir/src");
 
 # Map API functions to the header and documentation files they're in
 # so that we can generate proper hyperlinks to their documentation.
@@ -120,13 +121,13 @@ sub parseSymsFile {
 
 my %apis;
 # Get the list of all public APIs and their corresponding version
-parseSymsFile(\%apis, "LIBVIRT", $symslibvirt, "$srcdir/../docs/libvirt-api.xml");
+parseSymsFile(\%apis, "LIBVIRT", $symslibvirt, "$builddir/docs/libvirt-api.xml");
 
 # And the same for the QEMU specific APIs
-parseSymsFile(\%apis, "LIBVIRT_QEMU", $symsqemu, "$srcdir/../docs/libvirt-qemu-api.xml");
+parseSymsFile(\%apis, "LIBVIRT_QEMU", $symsqemu, "$builddir/docs/libvirt-qemu-api.xml");
 
 # And the same for the LXC specific APIs
-parseSymsFile(\%apis, "LIBVIRT_LXC", $symslxc, "$srcdir/../docs/libvirt-lxc-api.xml");
+parseSymsFile(\%apis, "LIBVIRT_LXC", $symslxc, "$builddir/docs/libvirt-lxc-api.xml");
 
 
 # Some special things which aren't public APIs,