bitbake docs: use dblatex to build the pdf bitbake manual
[bitbake.git] / doc / manual / Makefile
1 topdir = .
2 manual = $(topdir)/usermanual.xml
3 # types = pdf txt rtf ps xhtml html man tex texi dvi
4 # types = pdf txt
5 types = $(xmltotypes) $(htmltypes)
6 xmltotypes = pdf txt
7 htmltypes = html xhtml
8 htmlxsl = $(if $(filter $@,$(foreach type,$(htmltypes),$(type)-nochunks)),http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl,http://docbook.sourceforge.net/release/xsl/current/$@/chunk.xsl)
9 htmlcssfile = docbook.css
10 htmlcss = $(topdir)/html.css
11 # htmlcssfile =
12 # htmlcss =
13 cleanfiles = $(foreach i,$(types),$(topdir)/$(i))
14
15 ifdef DEBUG
16 define command
17         $(1)
18 endef
19 else
20 define command
21         @echo $(2) $(3) $(4)
22         @$(1) >/dev/null
23 endef
24 endif
25
26 all: $(types)
27
28 lint: $(manual) FORCE
29         $(call command,xmllint --xinclude --postvalid --noout $(manual),XMLLINT $(manual))
30
31 $(types) $(foreach type,$(htmltypes),$(type)-nochunks): lint FORCE
32
33 $(foreach type,$(htmltypes),$(type)-nochunks): $(if $(htmlcss),$(htmlcss)) $(manual)
34         @mkdir -p $@
35 ifdef htmlcss
36         $(call command,install -m 0644 $(htmlcss) $@/$(htmlcssfile),CP $(htmlcss) $@/$(htmlcssfile))
37 endif
38         $(call command,xsltproc --stringparam base.dir $@/ $(if $(htmlcssfile),--stringparam html.stylesheet $(htmlcssfile)) $(htmlxsl) $(manual) > $@/index.$(patsubst %-nochunks,%,$@),XSLTPROC $@ $(manual))
39
40 $(htmltypes): $(if $(htmlcss),$(htmlcss)) $(manual)
41         @mkdir -p $@
42 ifdef htmlcss
43         $(call command,install -m 0644 $(htmlcss) $@/$(htmlcssfile),CP $(htmlcss) $@/$(htmlcssfile))
44 endif
45         $(call command,xsltproc --stringparam base.dir $@/ $(if $(htmlcssfile),--stringparam html.stylesheet $(htmlcssfile)) $(htmlxsl) $(manual),XSLTPROC $@ $(manual))
46
47 $(xmltotypes): $(manual)
48         $(call command,xmlto --with-dblatex --extensions -o $(topdir)/$@ $@ $(manual),XMLTO $@ $(manual))
49
50 clean:
51         rm -rf $(cleanfiles)
52
53 $(foreach i,$(types) $(foreach type,$(htmltypes),$(type)-nochunks),clean-$(i)):
54         rm -rf $(patsubst clean-%,%,$@)
55
56 FORCE: