Blame view

bootloader/u-boot_2015_04/doc/DocBook/Makefile 6.53 KB
6b13f685e   김민수   BSP 최초 추가
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
  ###
  # This makefile is used to generate the kernel documentation,
  # primarily based on in-line comments in various source files.
  # See Documentation/kernel-doc-nano-HOWTO.txt for instruction in how
  # to document the SRC - and how to read it.
  # To add a new book the only step required is to add the book to the
  # list of DOCBOOKS.
  
  DOCBOOKS := linker_lists.xml stdio.xml
  
  ###
  # The build process is as follows (targets):
  #              (xmldocs) [by docproc]
  # file.tmpl --> file.xml +--> file.ps   (psdocs)   [by db2ps or xmlto]
  #                        +--> file.pdf  (pdfdocs)  [by db2pdf or xmlto]
  #                        +--> DIR=file  (htmldocs) [by xmlto]
  #                        +--> man/      (mandocs)  [by xmlto]
  
  
  # for PDF and PS output you can choose between xmlto and docbook-utils tools
  PDF_METHOD	= $(prefer-db2x)
  PS_METHOD	= $(prefer-db2x)
  
  
  ###
  # The targets that may be used.
  PHONY += xmldocs sgmldocs psdocs pdfdocs htmldocs mandocs installmandocs cleandocs
  
  targets += $(DOCBOOKS)
  BOOKS := $(addprefix $(obj)/,$(DOCBOOKS))
  xmldocs: $(BOOKS)
  sgmldocs: xmldocs
  
  PS := $(patsubst %.xml, %.ps, $(BOOKS))
  psdocs: $(PS)
  
  PDF := $(patsubst %.xml, %.pdf, $(BOOKS))
  pdfdocs: $(PDF)
  
  HTML := $(sort $(patsubst %.xml, %.html, $(BOOKS)))
  htmldocs: $(HTML)
  	$(call build_main_index)
  	$(call build_images)
  	$(call install_media_images)
  
  MAN := $(patsubst %.xml, %.9, $(BOOKS))
  mandocs: $(MAN)
  	$(if $(wildcard $(obj)/man/*.9),gzip -f $(obj)/man/*.9)
  
  installmandocs: mandocs
  	mkdir -p /usr/local/man/man9/
  	install $(obj)/man/*.9.gz /usr/local/man/man9/
  
  ###
  #External programs used
  KERNELDOC = $(srctree)/scripts/kernel-doc
  DOCPROC   = $(objtree)/scripts/docproc
  
  XMLTOFLAGS = -m $(srctree)/$(src)/stylesheet.xsl
  XMLTOFLAGS += --skip-validation
  
  ###
  # DOCPROC is used for two purposes:
  # 1) To generate a dependency list for a .tmpl file
  # 2) To preprocess a .tmpl file and call kernel-doc with
  #     appropriate parameters.
  # The following rules are used to generate the .xml documentation
  # required to generate the final targets. (ps, pdf, html).
  quiet_cmd_docproc = DOCPROC $@
        cmd_docproc = SRCTREE=$(srctree)/ $(DOCPROC) doc $< >$@
  define rule_docproc
  	set -e;								\
          $(if $($(quiet)cmd_$(1)),echo '  $($(quiet)cmd_$(1))';) 	\
          $(cmd_$(1)); 							\
          ( 								\
            echo 'cmd_$@ := $(cmd_$(1))'; 				\
            echo $@: `SRCTREE=$(srctree) $(DOCPROC) depend $<`; 		\
          ) > $(dir $@).$(notdir $@).cmd
  endef
  
  %.xml: %.tmpl $(KERNELDOC) $(DOCPROC) FORCE
  	$(call if_changed_rule,docproc)
  
  # Tell kbuild to always build the programs
  always := $(hostprogs-y)
  
  notfoundtemplate = echo "*** You have to install docbook-utils or xmlto ***"; \
  		   exit 1
  db2xtemplate = db2TYPE -o $(dir $@) $<
  xmltotemplate = xmlto TYPE $(XMLTOFLAGS) -o $(dir $@) $<
  
  # determine which methods are available
  ifeq ($(shell which db2ps >/dev/null 2>&1 && echo found),found)
  	use-db2x = db2x
  	prefer-db2x = db2x
  else
  	use-db2x = notfound
  	prefer-db2x = $(use-xmlto)
  endif
  ifeq ($(shell which xmlto >/dev/null 2>&1 && echo found),found)
  	use-xmlto = xmlto
  	prefer-xmlto = xmlto
  else
  	use-xmlto = notfound
  	prefer-xmlto = $(use-db2x)
  endif
  
  # the commands, generated from the chosen template
  quiet_cmd_db2ps = PS      $@
        cmd_db2ps = $(subst TYPE,ps, $($(PS_METHOD)template))
  %.ps : %.xml
  	$(call cmd,db2ps)
  
  quiet_cmd_db2pdf = PDF     $@
        cmd_db2pdf = $(subst TYPE,pdf, $($(PDF_METHOD)template))
  %.pdf : %.xml
  	$(call cmd,db2pdf)
  
  
  index = index.html
  main_idx = $(obj)/$(index)
  build_main_index = rm -rf $(main_idx); \
  		   echo '<h1>U-Boot Bootloader HTML Documentation</h1>' >> $(main_idx) && \
  		   echo '<h2>U-Boot Version: $(UBOOTVERSION)</h2>' >> $(main_idx) && \
  		   cat $(HTML) >> $(main_idx)
  
  quiet_cmd_db2html = HTML    $@
        cmd_db2html = xmlto html $(XMLTOFLAGS) -o $(patsubst %.html,%,$@) $< && \
  		echo '<a HREF="$(patsubst %.html,%,$(notdir $@))/index.html"> \
  		$(patsubst %.html,%,$(notdir $@))</a><p>' > $@
  
  %.html:	%.xml
  	@(which xmlto > /dev/null 2>&1) || \
  	 (echo "*** You need to install xmlto ***"; \
  	  exit 1)
  	@rm -rf $@ $(patsubst %.html,%,$@)
  	$(call cmd,db2html)
  	@if [ ! -z "$(PNG-$(basename $(notdir $@)))" ]; then \
              cp $(PNG-$(basename $(notdir $@))) $(patsubst %.html,%,$@); fi
  
  quiet_cmd_db2man = MAN     $@
        cmd_db2man = if grep -q refentry $<; then xmlto man $(XMLTOFLAGS) -o $(obj)/man $< ; fi
  %.9 : %.xml
  	@(which xmlto > /dev/null 2>&1) || \
  	 (echo "*** You need to install xmlto ***"; \
  	  exit 1)
  	$(Q)mkdir -p $(obj)/man
  	$(call cmd,db2man)
  	@touch $@
  
  ###
  # Rules to generate postscripts and PNG images from .fig format files
  quiet_cmd_fig2eps = FIG2EPS $@
        cmd_fig2eps = fig2dev -Leps $< $@
  
  %.eps: %.fig
  	@(which fig2dev > /dev/null 2>&1) || \
  	 (echo "*** You need to install transfig ***"; \
  	  exit 1)
  	$(call cmd,fig2eps)
  
  quiet_cmd_fig2png = FIG2PNG $@
        cmd_fig2png = fig2dev -Lpng $< $@
  
  %.png: %.fig
  	@(which fig2dev > /dev/null 2>&1) || \
  	 (echo "*** You need to install transfig ***"; \
  	  exit 1)
  	$(call cmd,fig2png)
  
  ###
  # Rule to convert a .c file to inline XML documentation
         gen_xml = :
   quiet_gen_xml = echo '  GEN     $@'
  silent_gen_xml = :
  %.xml: %.c
  	@$($(quiet)gen_xml)
  	@(                            \
  	   echo "<programlisting>";   \
  	   expand --tabs=8 < $< |     \
  	   sed -e "s/&/\\&amp;/g"     \
  	       -e "s/</\\&lt;/g"      \
  	       -e "s/>/\\&gt;/g";     \
  	   echo "</programlisting>")  > $@
  
  ###
  # Help targets as used by the top-level makefile
  dochelp:
  	@echo  ' U-Boot bootloader internal documentation in different formats:'
  	@echo  '  htmldocs        - HTML'
  	@echo  '  pdfdocs         - PDF'
  	@echo  '  psdocs          - Postscript'
  	@echo  '  xmldocs         - XML DocBook'
  	@echo  '  mandocs         - man pages'
  	@echo  '  installmandocs  - install man pages generated by mandocs'
  	@echo  '  cleandocs       - clean all generated DocBook files'
  
  ###
  # Temporary files left by various tools
  clean-files := $(DOCBOOKS) \
  	$(patsubst %.xml, %.dvi,  $(DOCBOOKS)) \
  	$(patsubst %.xml, %.aux,  $(DOCBOOKS)) \
  	$(patsubst %.xml, %.tex,  $(DOCBOOKS)) \
  	$(patsubst %.xml, %.log,  $(DOCBOOKS)) \
  	$(patsubst %.xml, %.out,  $(DOCBOOKS)) \
  	$(patsubst %.xml, %.ps,   $(DOCBOOKS)) \
  	$(patsubst %.xml, %.pdf,  $(DOCBOOKS)) \
  	$(patsubst %.xml, %.html, $(DOCBOOKS)) \
  	$(patsubst %.xml, %.9,    $(DOCBOOKS)) \
  	$(index)
  
  clean-dirs := $(patsubst %.xml,%,$(DOCBOOKS)) man
  
  cleandocs:
  	$(Q)rm -f $(call objectify, $(clean-files))
  	$(Q)rm -rf $(call objectify, $(clean-dirs))
  
  # Declare the contents of the .PHONY variable as phony.  We keep that
  # information in a variable se we can use it in if_changed and friends.
  
  .PHONY: $(PHONY)