[Buildroot] [PATCH 2/4] manual: provide make targets to build the documentation

Arnout Vandecappelle arnout at mind.be
Tue Oct 11 20:57:10 UTC 2011


On Monday 10 October 2011 10:46:40, Thomas Petazzoni wrote:
> Special thanks for Yann E. Morin for giving input and suggestions to
> implement this.
> 
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
> Acked-by: Luca Ceresoli <luca at lucaceresoli.net>

 Unfortunately not-yet-Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout at mind.be>

> ---
>  Makefile |   45 ++++++++++++++++++++++++++++++++++++++++++++-
>  1 files changed, 44 insertions(+), 1 deletions(-)
> 
> diff --git a/Makefile b/Makefile
> index 8525b7d..d0f947d 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -672,10 +672,19 @@ ifeq ($(BR2_TARGET_BAREBOX),y)
>  	@echo '  barebox-savedefconfig  - Run barebox savedefconfig'
>  endif
>  	@echo
> +	@echo 'Documentation:'
> +	@echo '  manual                 - build manual in HTML, split HTML, PDF and txt'
> +	@echo '  manual-html            - build manual in HTML'
> +	@echo '  manual-split-html      - build manual in split HTML'
> +	@echo '  manual-pdf             - build manual in PDF'
> +	@echo '  manual-txt             - build manual in txt'
> +	@echo '  manual-epub            - build manual in ePub'
> +	@echo
>  	@echo 'Miscellaneous:'
>  	@echo '  source                 - download all sources needed for offline-build'
>  	@echo '  source-check           - check all packages for valid download URLs'
>  	@echo '  external-deps          - list external packages used'
> +	@echo '  manual	                - build the Buildroot manual'
>  	@echo
>  	@echo '  make V=0|1             - 0 => quiet build (default), 1 => verbose build'
>  	@echo '  make O=dir             - Locate all output files in "dir", including .config'
> @@ -683,7 +692,7 @@ endif
>  	@$(foreach b, $(sort $(notdir $(wildcard $(TOPDIR)/configs/*_defconfig))), \
>  	  printf "  %-35s - Build for %s\\n" $(b) $(b:_defconfig=);)
>  	@echo
> -	@echo 'See docs/README and docs/buildroot.html for further details'
> +	@echo 'See docs/README, or generate the Buildroot manual for further details'
>  	@echo
>  
>  release: OUT=buildroot-$(BR2_VERSION)
> @@ -691,5 +700,39 @@ release: OUT=buildroot-$(BR2_VERSION)
>  release:
>  	git archive --format=tar --prefix=$(OUT)/ master|gzip -9 >$(OUT).tar.gz
>  
> +MANUAL_SOURCES = $(wildcard docs/manual/*.txt)

MANUAL_SOURCES = $(wildcard docs/manual/*.txt) $(wildcard docs/images/*)

 although only logo.png is actually used.

> +
> +manual: manual-html manual-split-html manual-pdf manual-txt manual-epub

 All of these should be added to .PHONY, line 390.

> +
> +manual-html: $(MANUAL_SOURCES)

 Does this dependency make sense?  manual-html is a phony target so will 
always be rebuilt.

 It would make more sense to have something like:

manual-html: $(O)/docs/manual/manual.html

$(O)/docs/manual/manual.html: $(MANUAL_SOURCES)
	...

 [This may have been discussed before, but I lost my mail from before Sep 20 
and I'm too lazy to go to gmane...]

> +	@echo "HTML manual..."
> +	$(Q)mkdir -p $(O)/docs/manual
> +	$(Q)a2x -f xhtml -d book -L -r docs/images -D $(O)/docs/manual/ \
> +		docs/manual/manual.txt

 This doesn't work for me (a2x 8.6.5), it needs an absolute path for the 
resource.  The following works:
$(Q)a2x -f xhtml -d book -L -r $(TOPDIR)/docs/images -D $(O)/docs/manual/ \
        docs/manual/manual.txt

> +
> +manual-split-html: $(MANUAL_SOURCES)
> +	@echo "Split HTML manual..."
> +	$(Q)mkdir -p $(O)/docs/manual
> +	$(Q)a2x -f chunked -d book -L -r docs/images -D $(O)/docs/manual/ \
> +		docs/manual/manual.txt

 Idem.

> +
> +manual-pdf: $(MANUAL_SOURCES)
> +	@echo "PDF manual..."
> +	$(Q)mkdir -p $(O)/docs/manual
> +	$(Q)a2x --dblatex-opts "-P latex.output.revhistory=0" -f pdf -d book -L -D $(O)/docs/manual/ \
> +		docs/manual/manual.txt
> +
> +manual-txt: $(MANUAL_SOURCES)
> +	@echo "Text manual..."
> +	$(Q)mkdir -p $(O)/docs/manual
> +	$(Q)a2x -f text -d book -L -D $(O)/docs/manual/ \
> +		docs/manual/manual.txt
> +
> +manual-epub: $(MANUAL_SOURCES)
> +	@echo "EPUB manual..."
> +	$(Q)mkdir -p $(O)/docs/manual
> +	$(Q)a2x -f epub -d book -L -r docs/images/ -D $(O)/docs/manual/ \
> +		docs/manual/manual.txt

 Idem.

> +
>  .PHONY: $(noconfig_targets)
>  
> 

 In addition to the above comments, I would like to see a clean target for
the manual as well.

 Just for the heck of it I've implemented a patch with all of these comments.
It will be posted as a follow-up to this mail.

 Oh, and except for the absolute directory for the -r parameter, you can get
my Acked-by even without all of these changes.

 Regards,
 Arnout

-- 
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  31BB CF53 8660 6F88 345D  54CC A836 5879 20D7 CF43


More information about the buildroot mailing list