Re: [PATCH 4/4] docs/html/: Arrange for automatic build of hypercall docs

Ian Campbell
Tue, 29 Nov 2011 15:27:22 -0000

On Tue, 2011-11-29 at 15:01 +0000, Ian Jackson wrote:
> - Use index.html rather than a stamp file.
> - Automatically generate dependencies.
> - Wire into the docs build system
>
> Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>

Looks good.

Let me know if you want me to rebase my docs series on this. I
suspect/hope the conflicts will be trivial...

Acked-by: Ian Campbell <ian.campbell@citrix.com>

> ---
>  docs/Makefile    |    9 ++++++---
>  docs/xen-headers |   14 ++++++++++++++
>  2 files changed, 20 insertions(+), 3 deletions(-)
>
> diff --git a/docs/Makefile b/docs/Makefile
> index a2bbf2d..413c1a2 100644
> --- a/docs/Makefile
> +++ b/docs/Makefile
> @@ -15,7 +15,8 @@ DOC_MARKDOWN	:= $(wildcard misc/*.markdown)
>  DOC_PS		:= $(patsubst src/%.tex,ps/%.ps,$(DOC_TEX))
>  DOC_PDF		:= $(patsubst src/%.tex,pdf/%.pdf,$(DOC_TEX))
>  DOC_HTML	:= $(patsubst src/%.tex,html/%/index.html,$(DOC_TEX)) \
> -		   $(patsubst %.markdown,html/%.html,$(DOC_MARKDOWN))
> +		   $(patsubst %.markdown,html/%.html,$(DOC_MARKDOWN)) \
> +		   html/hypercall/index.html
>  DOC_TXT         := $(patsubst %.txt,txt/%.txt,$(wildcard misc/*.txt)) \
>  		   $(patsubst %.markdown,txt/%.txt,$(DOC_MARKDOWN))
>
> @@ -129,13 +130,15 @@ html/%.html: %.markdown
>  	$(MARKDOWN) $< > $@.tmp ; \
>  	$(call move-if-changed,$@.tmp,$@) ; fi
>
> -html/hypercall/stamp:
> +html/hypercall/index.html: ./xen-headers
> +	rm -rf $(@D)
>  	@$(INSTALL_DIR) $(@D)
>  	./xen-headers -O $(@D) \
>  		-T ''arch-x86_64 - Xen public headers'' \
>  		-X arch-ia64 -X arch-x86_32 -X xen-x86_32 \
>  		../xen include/public include/xen/errno.h
> -	touch $@
> +
> +-include html/hypercall/.deps
>
>  txt/%.txt: %.txt
>  	$(INSTALL_DIR) $(@D)
> diff --git a/docs/xen-headers b/docs/xen-headers
> index dcf673e..8226d73 100755
> --- a/docs/xen-headers
> +++ b/docs/xen-headers
> @@ -325,6 +325,12 @@ END
>  }
>
>  foreach $pass (qw(1 2)) {
> +    my $depspath = "$outdir/.deps";
> +    my $depsout;
> +    if ($pass==2) {
> +	$depsout = new IO::File "$depspath.new", ''w''
or die $!;
> +    }
> +
>      find({ wanted =>
>  	       sub {
>  		   return unless m/\.h$/;
> @@ -341,11 +347,19 @@ foreach $pass (qw(1 2)) {
>  		   $leaf_opath = $leaf;
>  		   $leaf_opath =~ s#/#,#g;
>  		   $leaf_opath .= ".html";
> +		   print $depsout "$outdir/index.html: $File::Find::name\n"
> +		       or die $!
> +		       if $pass==2;
>  		   process_file($File::Find::name,
$outdir.''/''.$leaf_opath);
>  	   },
>  	   no_chdir => 1,
>  	 },
>  	 map { "$basedir/$_" } @indirs);
> +
> +    if ($pass==2) {
> +	close $depsout or die $!;
> +	rename "$depspath.new", "$depspath" or die $!;
> +    }
>  }
>
>  output_index();