Annotation of /alx-src/trunk/kernel26-alx/linux/Documentation/DocBook/Makefile
Parent Directory | Revision Log
Revision 628 -
(hide annotations)
(download)
Wed Mar 4 10:48:58 2009 UTC (15 years, 2 months ago) by niro
File size: 5962 byte(s)
Wed Mar 4 10:48:58 2009 UTC (15 years, 2 months ago) by niro
File size: 5962 byte(s)
import linux sources based on 2.6.12-alx-r9: -using linux-2.6.12.6 -using 2.6.12-ck6 patch set -using fbsplash-0.9.2-r3 -using vesafb-tng-0.9-rc7 -using squashfs-2.2 -added cddvd-cmdfilter-drop.patch as ck dropped it -added via-epia-dri (cle266) patch -added zd1211-svn-32 wlan driver (http://zd1211.ath.cx/download/) -added debian patches to zd1211 for wep256 etc
1 | niro | 628 | ### |
2 | # This makefile is used to generate the kernel documentation, | ||
3 | # primarily based on in-line comments in various source files. | ||
4 | # See Documentation/kernel-doc-nano-HOWTO.txt for instruction in how | ||
5 | # to ducument the SRC - and how to read it. | ||
6 | # To add a new book the only step required is to add the book to the | ||
7 | # list of DOCBOOKS. | ||
8 | |||
9 | DOCBOOKS := wanbook.xml z8530book.xml mcabook.xml videobook.xml \ | ||
10 | kernel-hacking.xml kernel-locking.xml deviceiobook.xml \ | ||
11 | procfs-guide.xml writing_usb_driver.xml scsidrivers.xml \ | ||
12 | sis900.xml kernel-api.xml journal-api.xml lsm.xml usb.xml \ | ||
13 | gadget.xml libata.xml mtdnand.xml librs.xml | ||
14 | |||
15 | ### | ||
16 | # The build process is as follows (targets): | ||
17 | # (xmldocs) | ||
18 | # file.tmpl --> file.xml +--> file.ps (psdocs) | ||
19 | # +--> file.pdf (pdfdocs) | ||
20 | # +--> DIR=file (htmldocs) | ||
21 | # +--> man/ (mandocs) | ||
22 | |||
23 | ### | ||
24 | # The targets that may be used. | ||
25 | .PHONY: xmldocs sgmldocs psdocs pdfdocs htmldocs mandocs installmandocs | ||
26 | |||
27 | BOOKS := $(addprefix $(obj)/,$(DOCBOOKS)) | ||
28 | xmldocs: $(BOOKS) | ||
29 | sgmldocs: xmldocs | ||
30 | |||
31 | PS := $(patsubst %.xml, %.ps, $(BOOKS)) | ||
32 | psdocs: $(PS) | ||
33 | |||
34 | PDF := $(patsubst %.xml, %.pdf, $(BOOKS)) | ||
35 | pdfdocs: $(PDF) | ||
36 | |||
37 | HTML := $(patsubst %.xml, %.html, $(BOOKS)) | ||
38 | htmldocs: $(HTML) | ||
39 | |||
40 | MAN := $(patsubst %.xml, %.9, $(BOOKS)) | ||
41 | mandocs: $(MAN) | ||
42 | |||
43 | installmandocs: mandocs | ||
44 | mkdir -p /usr/local/man/man9/ | ||
45 | install Documentation/DocBook/man/*.9.gz /usr/local/man/man9/ | ||
46 | |||
47 | ### | ||
48 | #External programs used | ||
49 | KERNELDOC = scripts/kernel-doc | ||
50 | DOCPROC = scripts/basic/docproc | ||
51 | |||
52 | XMLTOFLAGS = -m Documentation/DocBook/stylesheet.xsl | ||
53 | #XMLTOFLAGS += --skip-validation | ||
54 | |||
55 | ### | ||
56 | # DOCPROC is used for two purposes: | ||
57 | # 1) To generate a dependency list for a .tmpl file | ||
58 | # 2) To preprocess a .tmpl file and call kernel-doc with | ||
59 | # appropriate parameters. | ||
60 | # The following rules are used to generate the .xml documentation | ||
61 | # required to generate the final targets. (ps, pdf, html). | ||
62 | quiet_cmd_docproc = DOCPROC $@ | ||
63 | cmd_docproc = SRCTREE=$(srctree)/ $(DOCPROC) doc $< >$@ | ||
64 | define rule_docproc | ||
65 | set -e; \ | ||
66 | $(if $($(quiet)cmd_$(1)),echo ' $($(quiet)cmd_$(1))';) \ | ||
67 | $(cmd_$(1)); \ | ||
68 | ( \ | ||
69 | echo 'cmd_$@ := $(cmd_$(1))'; \ | ||
70 | echo $@: `SRCTREE=$(srctree) $(DOCPROC) depend $<`; \ | ||
71 | ) > $(dir $@).$(notdir $@).cmd | ||
72 | endef | ||
73 | |||
74 | %.xml: %.tmpl FORCE | ||
75 | $(call if_changed_rule,docproc) | ||
76 | |||
77 | ### | ||
78 | #Read in all saved dependency files | ||
79 | cmd_files := $(wildcard $(foreach f,$(BOOKS),$(dir $(f)).$(notdir $(f)).cmd)) | ||
80 | |||
81 | ifneq ($(cmd_files),) | ||
82 | include $(cmd_files) | ||
83 | endif | ||
84 | |||
85 | ### | ||
86 | # Changes in kernel-doc force a rebuild of all documentation | ||
87 | $(BOOKS): $(KERNELDOC) | ||
88 | |||
89 | ### | ||
90 | # procfs guide uses a .c file as example code. | ||
91 | # This requires an explicit dependency | ||
92 | C-procfs-example = procfs_example.xml | ||
93 | C-procfs-example2 = $(addprefix $(obj)/,$(C-procfs-example)) | ||
94 | $(obj)/procfs-guide.xml: $(C-procfs-example2) | ||
95 | |||
96 | ### | ||
97 | # Rules to generate postscript, PDF and HTML | ||
98 | # db2html creates a directory. Generate a html file used for timestamp | ||
99 | |||
100 | quiet_cmd_db2ps = XMLTO $@ | ||
101 | cmd_db2ps = xmlto ps $(XMLTOFLAGS) -o $(dir $@) $< | ||
102 | %.ps : %.xml | ||
103 | @(which xmlto > /dev/null 2>&1) || \ | ||
104 | (echo "*** You need to install xmlto ***"; \ | ||
105 | exit 1) | ||
106 | $(call cmd,db2ps) | ||
107 | |||
108 | quiet_cmd_db2pdf = XMLTO $@ | ||
109 | cmd_db2pdf = xmlto pdf $(XMLTOFLAGS) -o $(dir $@) $< | ||
110 | %.pdf : %.xml | ||
111 | @(which xmlto > /dev/null 2>&1) || \ | ||
112 | (echo "*** You need to install xmlto ***"; \ | ||
113 | exit 1) | ||
114 | $(call cmd,db2pdf) | ||
115 | |||
116 | quiet_cmd_db2html = XMLTO $@ | ||
117 | cmd_db2html = xmlto xhtml $(XMLTOFLAGS) -o $(patsubst %.html,%,$@) $< && \ | ||
118 | echo '<a HREF="$(patsubst %.html,%,$(notdir $@))/index.html"> \ | ||
119 | Goto $(patsubst %.html,%,$(notdir $@))</a><p>' > $@ | ||
120 | |||
121 | %.html: %.xml | ||
122 | @(which xmlto > /dev/null 2>&1) || \ | ||
123 | (echo "*** You need to install xmlto ***"; \ | ||
124 | exit 1) | ||
125 | @rm -rf $@ $(patsubst %.html,%,$@) | ||
126 | $(call cmd,db2html) | ||
127 | @if [ ! -z "$(PNG-$(basename $(notdir $@)))" ]; then \ | ||
128 | cp $(PNG-$(basename $(notdir $@))) $(patsubst %.html,%,$@); fi | ||
129 | |||
130 | quiet_cmd_db2man = XMLTO $@ | ||
131 | cmd_db2man = if grep -q refentry $<; then xmlto man $(XMLTOFLAGS) -o $(obj)/man $< ; gzip -f $(obj)/man/*.9; fi | ||
132 | %.9 : %.xml | ||
133 | @(which xmlto > /dev/null 2>&1) || \ | ||
134 | (echo "*** You need to install xmlto ***"; \ | ||
135 | exit 1) | ||
136 | $(call cmd,db2man) | ||
137 | @touch $@ | ||
138 | |||
139 | ### | ||
140 | # Rules to generate postscripts and PNG imgages from .fig format files | ||
141 | quiet_cmd_fig2eps = FIG2EPS $@ | ||
142 | cmd_fig2eps = fig2dev -Leps $< $@ | ||
143 | |||
144 | %.eps: %.fig | ||
145 | @(which fig2dev > /dev/null 2>&1) || \ | ||
146 | (echo "*** You need to install transfig ***"; \ | ||
147 | exit 1) | ||
148 | $(call cmd,fig2eps) | ||
149 | |||
150 | quiet_cmd_fig2png = FIG2PNG $@ | ||
151 | cmd_fig2png = fig2dev -Lpng $< $@ | ||
152 | |||
153 | %.png: %.fig | ||
154 | @(which fig2dev > /dev/null 2>&1) || \ | ||
155 | (echo "*** You need to install transfig ***"; \ | ||
156 | exit 1) | ||
157 | $(call cmd,fig2png) | ||
158 | |||
159 | ### | ||
160 | # Rule to convert a .c file to inline XML documentation | ||
161 | %.xml: %.c | ||
162 | @echo ' GEN $@' | ||
163 | @( \ | ||
164 | echo "<programlisting>"; \ | ||
165 | expand --tabs=8 < $< | \ | ||
166 | sed -e "s/&/\\&/g" \ | ||
167 | -e "s/</\\</g" \ | ||
168 | -e "s/>/\\>/g"; \ | ||
169 | echo "</programlisting>") > $@ | ||
170 | |||
171 | ### | ||
172 | # Help targets as used by the top-level makefile | ||
173 | dochelp: | ||
174 | @echo ' Linux kernel internal documentation in different formats:' | ||
175 | @echo ' xmldocs (XML DocBook), psdocs (Postscript), pdfdocs (PDF)' | ||
176 | @echo ' htmldocs (HTML), mandocs (man pages, use installmandocs to install)' | ||
177 | |||
178 | ### | ||
179 | # Temporary files left by various tools | ||
180 | clean-files := $(DOCBOOKS) \ | ||
181 | $(patsubst %.xml, %.dvi, $(DOCBOOKS)) \ | ||
182 | $(patsubst %.xml, %.aux, $(DOCBOOKS)) \ | ||
183 | $(patsubst %.xml, %.tex, $(DOCBOOKS)) \ | ||
184 | $(patsubst %.xml, %.log, $(DOCBOOKS)) \ | ||
185 | $(patsubst %.xml, %.out, $(DOCBOOKS)) \ | ||
186 | $(patsubst %.xml, %.ps, $(DOCBOOKS)) \ | ||
187 | $(patsubst %.xml, %.pdf, $(DOCBOOKS)) \ | ||
188 | $(patsubst %.xml, %.html, $(DOCBOOKS)) \ | ||
189 | $(patsubst %.xml, %.9, $(DOCBOOKS)) \ | ||
190 | $(C-procfs-example) | ||
191 | |||
192 | clean-dirs := $(patsubst %.xml,%,$(DOCBOOKS)) | ||
193 | |||
194 | #man put files in man subdir - traverse down | ||
195 | subdir- := man/ |