summaryrefslogtreecommitdiff
path: root/buildlib/docbook.mak
blob: 6aa3ca0d293e2e90399685ca3205f73171ba752c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# -*- make -*-

# This processes DocBook XML to produce html and plain text output

# Input
# $(SOURCE) - The documents to use

# All output is written to files in the build doc directory

# See defaults.mak for information about LOCAL

# Some local definitions
LOCAL := docbook-$(firstword $(SOURCE))
$(LOCAL)-HTML := $(addsuffix .html,$(addprefix $(DOC)/,$(basename $(SOURCE))))
$(LOCAL)-TEXT := $(addsuffix .text,$(addprefix $(DOC)/,$(basename $(SOURCE))))
INCLUDES = apt.ent apt-verbatim.ent apt-vendor.ent

docbook:


#---------

# Rules to build HTML documentations
ifdef XSLTPROC

DOCBOOK_HTML_STYLESHEET := docbook-html-style.xsl

# Install generation hooks
docbook: $($(LOCAL)-HTML)
veryclean: veryclean/html/$(LOCAL)

vpath %.dbk $(SUBDIRS)
vpath $(DOCBOOK_HTML_STYLESHEET) $(SUBDIRS)
$(DOC)/%.html: %.dbk $(DOCBOOK_HTML_STYLESHEET) $(INCLUDES)
	echo Creating html for $< to $@
	-rm -rf $@
	mkdir -p $@
	$(DOCBOOK) \
		--stringparam base.dir $@/ \
		--stringparam l10n.gentext.default.language $(LC) \
		$(<D)/$(DOCBOOK_HTML_STYLESHEET) $< || exit 199

# Clean rule
.PHONY: veryclean/html/$(LOCAL)
veryclean/html/$(LOCAL):
	-rm -rf $($(@F)-HTML)

endif

#---------

# Rules to build Text documentations
ifdef XSLTPROC

DOCBOOK_TEXT_STYLESHEET := docbook-text-style.xsl

# Install generation hooks
docbook: $($(LOCAL)-TEXT)
veryclean: veryclean/text/$(LOCAL)

vpath %.dbk $(SUBDIRS)
vpath $(DOCBOOK_TEXT_STYLESHEET) $(SUBDIRS)
$(DOC)/%.text: %.dbk $(DOCBOOK_TEXT_STYLESHEET) $(INCLUDES)
	echo Creating text for $< to $@
	$(DOCBOOK) \
		--stringparam l10n.gentext.default.language $(LC) \
		$(<D)/$(DOCBOOK_TEXT_STYLESHEET) $< | \
		LC_ALL=C.UTF-8 $(DOCBOOK2TEXT) > $@ || exit 198

# Clean rule
.PHONY: veryclean/text/$(LOCAL)
veryclean/text/$(LOCAL):
	-rm -rf $($(@F)-TEXT)

endif