xref: /OK3568_Linux_fs/kernel/tools/perf/Documentation/Makefile (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only
2*4882a593Smuzhiyuninclude ../../scripts/Makefile.include
3*4882a593Smuzhiyuninclude ../../scripts/utilities.mak
4*4882a593Smuzhiyun
5*4882a593SmuzhiyunMAN1_TXT= \
6*4882a593Smuzhiyun	$(filter-out $(addsuffix .txt, $(ARTICLES) $(SP_ARTICLES)), \
7*4882a593Smuzhiyun		$(wildcard perf-*.txt)) \
8*4882a593Smuzhiyun	perf.txt
9*4882a593SmuzhiyunMAN5_TXT=
10*4882a593SmuzhiyunMAN7_TXT=
11*4882a593Smuzhiyun
12*4882a593SmuzhiyunMAN_TXT = $(MAN1_TXT) $(MAN5_TXT) $(MAN7_TXT)
13*4882a593Smuzhiyun_MAN_XML=$(patsubst %.txt,%.xml,$(MAN_TXT))
14*4882a593Smuzhiyun_MAN_HTML=$(patsubst %.txt,%.html,$(MAN_TXT))
15*4882a593Smuzhiyun
16*4882a593SmuzhiyunMAN_XML=$(addprefix $(OUTPUT),$(_MAN_XML))
17*4882a593SmuzhiyunMAN_HTML=$(addprefix $(OUTPUT),$(_MAN_HTML))
18*4882a593Smuzhiyun
19*4882a593SmuzhiyunARTICLES =
20*4882a593Smuzhiyun# with their own formatting rules.
21*4882a593SmuzhiyunSP_ARTICLES =
22*4882a593SmuzhiyunAPI_DOCS = $(patsubst %.txt,%,$(filter-out technical/api-index-skel.txt technical/api-index.txt, $(wildcard technical/api-*.txt)))
23*4882a593SmuzhiyunSP_ARTICLES += $(API_DOCS)
24*4882a593SmuzhiyunSP_ARTICLES += technical/api-index
25*4882a593Smuzhiyun
26*4882a593Smuzhiyun_DOC_HTML = $(_MAN_HTML)
27*4882a593Smuzhiyun_DOC_HTML+=$(patsubst %,%.html,$(ARTICLES) $(SP_ARTICLES))
28*4882a593SmuzhiyunDOC_HTML=$(addprefix $(OUTPUT),$(_DOC_HTML))
29*4882a593Smuzhiyun
30*4882a593Smuzhiyun_DOC_MAN1=$(patsubst %.txt,%.1,$(MAN1_TXT))
31*4882a593Smuzhiyun_DOC_MAN5=$(patsubst %.txt,%.5,$(MAN5_TXT))
32*4882a593Smuzhiyun_DOC_MAN7=$(patsubst %.txt,%.7,$(MAN7_TXT))
33*4882a593Smuzhiyun
34*4882a593SmuzhiyunDOC_MAN1=$(addprefix $(OUTPUT),$(_DOC_MAN1))
35*4882a593SmuzhiyunDOC_MAN5=$(addprefix $(OUTPUT),$(_DOC_MAN5))
36*4882a593SmuzhiyunDOC_MAN7=$(addprefix $(OUTPUT),$(_DOC_MAN7))
37*4882a593Smuzhiyun
38*4882a593Smuzhiyun# Make the path relative to DESTDIR, not prefix
39*4882a593Smuzhiyunifndef DESTDIR
40*4882a593Smuzhiyunprefix?=$(HOME)
41*4882a593Smuzhiyunendif
42*4882a593Smuzhiyunbindir?=$(prefix)/bin
43*4882a593Smuzhiyunhtmldir?=$(prefix)/share/doc/perf-doc
44*4882a593Smuzhiyunpdfdir?=$(prefix)/share/doc/perf-doc
45*4882a593Smuzhiyunmandir?=$(prefix)/share/man
46*4882a593Smuzhiyunman1dir=$(mandir)/man1
47*4882a593Smuzhiyunman5dir=$(mandir)/man5
48*4882a593Smuzhiyunman7dir=$(mandir)/man7
49*4882a593Smuzhiyun
50*4882a593SmuzhiyunASCIIDOC=asciidoc
51*4882a593SmuzhiyunASCIIDOC_EXTRA += --unsafe -f asciidoc.conf
52*4882a593SmuzhiyunASCIIDOC_HTML = xhtml11
53*4882a593SmuzhiyunMANPAGE_XSL = manpage-normal.xsl
54*4882a593SmuzhiyunXMLTO_EXTRA =
55*4882a593SmuzhiyunINSTALL?=install
56*4882a593SmuzhiyunRM ?= rm -f
57*4882a593SmuzhiyunDOC_REF = origin/man
58*4882a593SmuzhiyunHTML_REF = origin/html
59*4882a593Smuzhiyun
60*4882a593Smuzhiyunifdef USE_ASCIIDOCTOR
61*4882a593SmuzhiyunASCIIDOC = asciidoctor
62*4882a593SmuzhiyunASCIIDOC_EXTRA += -a compat-mode
63*4882a593SmuzhiyunASCIIDOC_EXTRA += -I. -rasciidoctor-extensions
64*4882a593SmuzhiyunASCIIDOC_EXTRA += -a mansource="perf" -a manmanual="perf Manual"
65*4882a593SmuzhiyunASCIIDOC_HTML = xhtml5
66*4882a593Smuzhiyunendif
67*4882a593Smuzhiyun
68*4882a593Smuzhiyuninfodir?=$(prefix)/share/info
69*4882a593SmuzhiyunMAKEINFO=makeinfo
70*4882a593SmuzhiyunINSTALL_INFO=install-info
71*4882a593SmuzhiyunDOCBOOK2X_TEXI=docbook2x-texi
72*4882a593SmuzhiyunDBLATEX=dblatex
73*4882a593SmuzhiyunXMLTO=xmlto
74*4882a593Smuzhiyunifndef PERL_PATH
75*4882a593Smuzhiyun	PERL_PATH = /usr/bin/perl
76*4882a593Smuzhiyunendif
77*4882a593Smuzhiyun
78*4882a593Smuzhiyun-include ../config.mak.autogen
79*4882a593Smuzhiyun-include ../config.mak
80*4882a593Smuzhiyun
81*4882a593Smuzhiyun_tmp_tool_path := $(call get-executable,$(ASCIIDOC))
82*4882a593Smuzhiyunifeq ($(_tmp_tool_path),)
83*4882a593Smuzhiyun	missing_tools = $(ASCIIDOC)
84*4882a593Smuzhiyunendif
85*4882a593Smuzhiyun
86*4882a593Smuzhiyunifndef USE_ASCIIDOCTOR
87*4882a593Smuzhiyun_tmp_tool_path := $(call get-executable,$(XMLTO))
88*4882a593Smuzhiyunifeq ($(_tmp_tool_path),)
89*4882a593Smuzhiyun	missing_tools += $(XMLTO)
90*4882a593Smuzhiyunendif
91*4882a593Smuzhiyunendif
92*4882a593Smuzhiyun
93*4882a593Smuzhiyun#
94*4882a593Smuzhiyun# For asciidoc ...
95*4882a593Smuzhiyun#	-7.1.2,	no extra settings are needed.
96*4882a593Smuzhiyun#	8.0-,	set ASCIIDOC8.
97*4882a593Smuzhiyun#
98*4882a593Smuzhiyun
99*4882a593Smuzhiyun#
100*4882a593Smuzhiyun# For docbook-xsl ...
101*4882a593Smuzhiyun#	-1.68.1,	set ASCIIDOC_NO_ROFF? (based on changelog from 1.73.0)
102*4882a593Smuzhiyun#	1.69.0,		no extra settings are needed?
103*4882a593Smuzhiyun#	1.69.1-1.71.0,	set DOCBOOK_SUPPRESS_SP?
104*4882a593Smuzhiyun#	1.71.1,		no extra settings are needed?
105*4882a593Smuzhiyun#	1.72.0,		set DOCBOOK_XSL_172.
106*4882a593Smuzhiyun#	1.73.0-,	set ASCIIDOC_NO_ROFF
107*4882a593Smuzhiyun#
108*4882a593Smuzhiyun
109*4882a593Smuzhiyun#
110*4882a593Smuzhiyun# If you had been using DOCBOOK_XSL_172 in an attempt to get rid
111*4882a593Smuzhiyun# of 'the ".ft C" problem' in your generated manpages, and you
112*4882a593Smuzhiyun# instead ended up with weird characters around callouts, try
113*4882a593Smuzhiyun# using ASCIIDOC_NO_ROFF instead (it works fine with ASCIIDOC8).
114*4882a593Smuzhiyun#
115*4882a593Smuzhiyun
116*4882a593Smuzhiyunifdef ASCIIDOC8
117*4882a593SmuzhiyunASCIIDOC_EXTRA += -a asciidoc7compatible
118*4882a593Smuzhiyunendif
119*4882a593Smuzhiyunifdef DOCBOOK_XSL_172
120*4882a593SmuzhiyunASCIIDOC_EXTRA += -a perf-asciidoc-no-roff
121*4882a593SmuzhiyunMANPAGE_XSL = manpage-1.72.xsl
122*4882a593Smuzhiyunelse
123*4882a593Smuzhiyun	ifdef ASCIIDOC_NO_ROFF
124*4882a593Smuzhiyun	# docbook-xsl after 1.72 needs the regular XSL, but will not
125*4882a593Smuzhiyun	# pass-thru raw roff codes from asciidoc.conf, so turn them off.
126*4882a593Smuzhiyun	ASCIIDOC_EXTRA += -a perf-asciidoc-no-roff
127*4882a593Smuzhiyun	endif
128*4882a593Smuzhiyunendif
129*4882a593Smuzhiyunifdef MAN_BOLD_LITERAL
130*4882a593SmuzhiyunXMLTO_EXTRA += -m manpage-bold-literal.xsl
131*4882a593Smuzhiyunendif
132*4882a593Smuzhiyunifdef DOCBOOK_SUPPRESS_SP
133*4882a593SmuzhiyunXMLTO_EXTRA += -m manpage-suppress-sp.xsl
134*4882a593Smuzhiyunendif
135*4882a593Smuzhiyun
136*4882a593SmuzhiyunSHELL_PATH ?= $(SHELL)
137*4882a593Smuzhiyun# Shell quote;
138*4882a593SmuzhiyunSHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
139*4882a593Smuzhiyun
140*4882a593Smuzhiyun#
141*4882a593Smuzhiyun# Please note that there is a minor bug in asciidoc.
142*4882a593Smuzhiyun# The version after 6.0.3 _will_ include the patch found here:
143*4882a593Smuzhiyun#   http://marc.theaimsgroup.com/?l=perf&m=111558757202243&w=2
144*4882a593Smuzhiyun#
145*4882a593Smuzhiyun# Until that version is released you may have to apply the patch
146*4882a593Smuzhiyun# yourself - yes, all 6 characters of it!
147*4882a593Smuzhiyun#
148*4882a593Smuzhiyun
149*4882a593SmuzhiyunQUIET_SUBDIR0  = +$(MAKE) -C # space to separate -C and subdir
150*4882a593SmuzhiyunQUIET_SUBDIR1  =
151*4882a593Smuzhiyun
152*4882a593Smuzhiyunifneq ($(findstring $(MAKEFLAGS),w),w)
153*4882a593SmuzhiyunPRINT_DIR = --no-print-directory
154*4882a593Smuzhiyunelse # "make -w"
155*4882a593SmuzhiyunNO_SUBDIR = :
156*4882a593Smuzhiyunendif
157*4882a593Smuzhiyun
158*4882a593Smuzhiyunifneq ($(findstring $(MAKEFLAGS),s),s)
159*4882a593Smuzhiyunifneq ($(V),1)
160*4882a593Smuzhiyun	QUIET_ASCIIDOC	= @echo '  ASCIIDOC '$@;
161*4882a593Smuzhiyun	QUIET_XMLTO	= @echo '  XMLTO    '$@;
162*4882a593Smuzhiyun	QUIET_DB2TEXI	= @echo '  DB2TEXI  '$@;
163*4882a593Smuzhiyun	QUIET_MAKEINFO	= @echo '  MAKEINFO '$@;
164*4882a593Smuzhiyun	QUIET_DBLATEX	= @echo '  DBLATEX  '$@;
165*4882a593Smuzhiyun	QUIET_XSLTPROC	= @echo '  XSLTPROC '$@;
166*4882a593Smuzhiyun	QUIET_GEN	= @echo '  GEN      '$@;
167*4882a593Smuzhiyun	QUIET_STDERR	= 2> /dev/null
168*4882a593Smuzhiyun	QUIET_SUBDIR0	= +@subdir=
169*4882a593Smuzhiyun	QUIET_SUBDIR1	= ;$(NO_SUBDIR) \
170*4882a593Smuzhiyun			   echo '  SUBDIR   ' $$subdir; \
171*4882a593Smuzhiyun			  $(MAKE) $(PRINT_DIR) -C $$subdir
172*4882a593Smuzhiyun	export V
173*4882a593Smuzhiyunendif
174*4882a593Smuzhiyunendif
175*4882a593Smuzhiyun
176*4882a593Smuzhiyunall: html man
177*4882a593Smuzhiyun
178*4882a593Smuzhiyunhtml: $(DOC_HTML)
179*4882a593Smuzhiyun
180*4882a593Smuzhiyun$(DOC_HTML) $(DOC_MAN1) $(DOC_MAN5) $(DOC_MAN7): asciidoc.conf
181*4882a593Smuzhiyun
182*4882a593Smuzhiyunman: man1 man5 man7
183*4882a593Smuzhiyunman1: $(DOC_MAN1)
184*4882a593Smuzhiyunman5: $(DOC_MAN5)
185*4882a593Smuzhiyunman7: $(DOC_MAN7)
186*4882a593Smuzhiyun
187*4882a593Smuzhiyuninfo: $(OUTPUT)perf.info $(OUTPUT)perfman.info
188*4882a593Smuzhiyun
189*4882a593Smuzhiyunpdf: $(OUTPUT)user-manual.pdf
190*4882a593Smuzhiyun
191*4882a593Smuzhiyuninstall: install-man
192*4882a593Smuzhiyun
193*4882a593Smuzhiyuncheck-man-tools:
194*4882a593Smuzhiyunifdef missing_tools
195*4882a593Smuzhiyun	$(error "You need to install $(missing_tools) for man pages")
196*4882a593Smuzhiyunendif
197*4882a593Smuzhiyun
198*4882a593Smuzhiyundo-install-man: man
199*4882a593Smuzhiyun	$(call QUIET_INSTALL, Documentation-man) \
200*4882a593Smuzhiyun		$(INSTALL) -d -m 755 $(DESTDIR)$(man1dir); \
201*4882a593Smuzhiyun#		$(INSTALL) -d -m 755 $(DESTDIR)$(man5dir); \
202*4882a593Smuzhiyun#		$(INSTALL) -d -m 755 $(DESTDIR)$(man7dir); \
203*4882a593Smuzhiyun		$(INSTALL) -m 644 $(DOC_MAN1) $(DESTDIR)$(man1dir); \
204*4882a593Smuzhiyun#		$(INSTALL) -m 644 $(DOC_MAN5) $(DESTDIR)$(man5dir); \
205*4882a593Smuzhiyun#		$(INSTALL) -m 644 $(DOC_MAN7) $(DESTDIR)$(man7dir)
206*4882a593Smuzhiyun
207*4882a593Smuzhiyuninstall-man: check-man-tools man do-install-man
208*4882a593Smuzhiyun
209*4882a593Smuzhiyunifdef missing_tools
210*4882a593Smuzhiyun  DO_INSTALL_MAN = $(warning Please install $(missing_tools) to have the man pages installed)
211*4882a593Smuzhiyunelse
212*4882a593Smuzhiyun  DO_INSTALL_MAN = do-install-man
213*4882a593Smuzhiyunendif
214*4882a593Smuzhiyun
215*4882a593Smuzhiyuntry-install-man: $(DO_INSTALL_MAN)
216*4882a593Smuzhiyun
217*4882a593Smuzhiyuninstall-info: info
218*4882a593Smuzhiyun	$(call QUIET_INSTALL, Documentation-info) \
219*4882a593Smuzhiyun		$(INSTALL) -d -m 755 $(DESTDIR)$(infodir); \
220*4882a593Smuzhiyun		$(INSTALL) -m 644 $(OUTPUT)perf.info $(OUTPUT)perfman.info $(DESTDIR)$(infodir); \
221*4882a593Smuzhiyun	if test -r $(DESTDIR)$(infodir)/dir; then \
222*4882a593Smuzhiyun		$(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) perf.info ;\
223*4882a593Smuzhiyun		$(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) perfman.info ;\
224*4882a593Smuzhiyun	else \
225*4882a593Smuzhiyun	  echo "No directory found in $(DESTDIR)$(infodir)" >&2 ; \
226*4882a593Smuzhiyun	fi
227*4882a593Smuzhiyun
228*4882a593Smuzhiyuninstall-pdf: pdf
229*4882a593Smuzhiyun	$(call QUIET_INSTALL, Documentation-pdf) \
230*4882a593Smuzhiyun		$(INSTALL) -d -m 755 $(DESTDIR)$(pdfdir); \
231*4882a593Smuzhiyun		$(INSTALL) -m 644 $(OUTPUT)user-manual.pdf $(DESTDIR)$(pdfdir)
232*4882a593Smuzhiyun
233*4882a593Smuzhiyun#install-html: html
234*4882a593Smuzhiyun#	'$(SHELL_PATH_SQ)' ./install-webdoc.sh $(DESTDIR)$(htmldir)
235*4882a593Smuzhiyun
236*4882a593Smuzhiyun
237*4882a593Smuzhiyun#
238*4882a593Smuzhiyun# Determine "include::" file references in asciidoc files.
239*4882a593Smuzhiyun#
240*4882a593Smuzhiyun$(OUTPUT)doc.dep : $(wildcard *.txt) build-docdep.perl
241*4882a593Smuzhiyun	$(QUIET_GEN)$(RM) $@+ $@ && \
242*4882a593Smuzhiyun	$(PERL_PATH) ./build-docdep.perl >$@+ $(QUIET_STDERR) && \
243*4882a593Smuzhiyun	mv $@+ $@
244*4882a593Smuzhiyun
245*4882a593Smuzhiyun-include $(OUTPUT)doc.dep
246*4882a593Smuzhiyun
247*4882a593Smuzhiyun_cmds_txt = cmds-ancillaryinterrogators.txt \
248*4882a593Smuzhiyun	cmds-ancillarymanipulators.txt \
249*4882a593Smuzhiyun	cmds-mainporcelain.txt \
250*4882a593Smuzhiyun	cmds-plumbinginterrogators.txt \
251*4882a593Smuzhiyun	cmds-plumbingmanipulators.txt \
252*4882a593Smuzhiyun	cmds-synchingrepositories.txt \
253*4882a593Smuzhiyun	cmds-synchelpers.txt \
254*4882a593Smuzhiyun	cmds-purehelpers.txt \
255*4882a593Smuzhiyun	cmds-foreignscminterface.txt
256*4882a593Smuzhiyuncmds_txt=$(addprefix $(OUTPUT),$(_cmds_txt))
257*4882a593Smuzhiyun
258*4882a593Smuzhiyun$(cmds_txt): $(OUTPUT)cmd-list.made
259*4882a593Smuzhiyun
260*4882a593Smuzhiyun$(OUTPUT)cmd-list.made: cmd-list.perl ../command-list.txt $(MAN1_TXT)
261*4882a593Smuzhiyun	$(QUIET_GEN)$(RM) $@ && \
262*4882a593Smuzhiyun	$(PERL_PATH) ./cmd-list.perl ../command-list.txt $(QUIET_STDERR) && \
263*4882a593Smuzhiyun	date >$@
264*4882a593Smuzhiyun
265*4882a593SmuzhiyunCLEAN_FILES =									\
266*4882a593Smuzhiyun	$(MAN_XML) $(addsuffix +,$(MAN_XML))					\
267*4882a593Smuzhiyun	$(MAN_HTML) $(addsuffix +,$(MAN_HTML))					\
268*4882a593Smuzhiyun	$(DOC_HTML) $(DOC_MAN1) $(DOC_MAN5) $(DOC_MAN7)				\
269*4882a593Smuzhiyun	$(OUTPUT)*.texi $(OUTPUT)*.texi+ $(OUTPUT)*.texi++			\
270*4882a593Smuzhiyun	$(OUTPUT)perf.info $(OUTPUT)perfman.info				\
271*4882a593Smuzhiyun	$(OUTPUT)howto-index.txt $(OUTPUT)howto/*.html $(OUTPUT)doc.dep		\
272*4882a593Smuzhiyun	$(OUTPUT)technical/api-*.html $(OUTPUT)technical/api-index.txt		\
273*4882a593Smuzhiyun	$(cmds_txt) $(OUTPUT)*.made
274*4882a593Smuzhiyunclean:
275*4882a593Smuzhiyun	$(call QUIET_CLEAN, Documentation) $(RM) $(CLEAN_FILES)
276*4882a593Smuzhiyun
277*4882a593Smuzhiyun$(MAN_HTML): $(OUTPUT)%.html : %.txt
278*4882a593Smuzhiyun	$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
279*4882a593Smuzhiyun	$(ASCIIDOC) -b $(ASCIIDOC_HTML) -d manpage \
280*4882a593Smuzhiyun		$(ASCIIDOC_EXTRA) -aperf_version=$(PERF_VERSION) -o $@+ $< && \
281*4882a593Smuzhiyun	mv $@+ $@
282*4882a593Smuzhiyun
283*4882a593Smuzhiyunifdef USE_ASCIIDOCTOR
284*4882a593Smuzhiyun$(OUTPUT)%.1 $(OUTPUT)%.5 $(OUTPUT)%.7 : %.txt
285*4882a593Smuzhiyun	$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
286*4882a593Smuzhiyun	$(ASCIIDOC) -b manpage -d manpage \
287*4882a593Smuzhiyun		$(ASCIIDOC_EXTRA) -aperf_version=$(PERF_VERSION) -o $@+ $< && \
288*4882a593Smuzhiyun	mv $@+ $@
289*4882a593Smuzhiyunendif
290*4882a593Smuzhiyun
291*4882a593Smuzhiyun$(OUTPUT)%.1 $(OUTPUT)%.5 $(OUTPUT)%.7 : $(OUTPUT)%.xml
292*4882a593Smuzhiyun	$(QUIET_XMLTO)$(RM) $@ && \
293*4882a593Smuzhiyun	$(XMLTO) -o $(OUTPUT). -m $(MANPAGE_XSL) $(XMLTO_EXTRA) man $<
294*4882a593Smuzhiyun
295*4882a593Smuzhiyun$(OUTPUT)%.xml : %.txt
296*4882a593Smuzhiyun	$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
297*4882a593Smuzhiyun	$(ASCIIDOC) -b docbook -d manpage \
298*4882a593Smuzhiyun		$(ASCIIDOC_EXTRA) -aperf_version=$(PERF_VERSION) \
299*4882a593Smuzhiyun		-aperf_date=$(shell git log -1 --pretty="format:%cd" \
300*4882a593Smuzhiyun				--date=short $<) \
301*4882a593Smuzhiyun		-o $@+ $< && \
302*4882a593Smuzhiyun	mv $@+ $@
303*4882a593Smuzhiyun
304*4882a593SmuzhiyunXSLT = docbook.xsl
305*4882a593SmuzhiyunXSLTOPTS = --xinclude --stringparam html.stylesheet docbook-xsl.css
306*4882a593Smuzhiyun
307*4882a593Smuzhiyun$(OUTPUT)user-manual.html: $(OUTPUT)user-manual.xml
308*4882a593Smuzhiyun	$(QUIET_XSLTPROC)xsltproc $(XSLTOPTS) -o $@ $(XSLT) $<
309*4882a593Smuzhiyun
310*4882a593Smuzhiyun$(OUTPUT)perf.info: $(OUTPUT)user-manual.texi
311*4882a593Smuzhiyun	$(QUIET_MAKEINFO)$(MAKEINFO) --no-split -o $@ $(OUTPUT)user-manual.texi
312*4882a593Smuzhiyun
313*4882a593Smuzhiyun$(OUTPUT)user-manual.texi: $(OUTPUT)user-manual.xml
314*4882a593Smuzhiyun	$(QUIET_DB2TEXI)$(RM) $@+ $@ && \
315*4882a593Smuzhiyun	$(DOCBOOK2X_TEXI) $(OUTPUT)user-manual.xml --encoding=UTF-8 --to-stdout >$@++ && \
316*4882a593Smuzhiyun	$(PERL_PATH) fix-texi.perl <$@++ >$@+ && \
317*4882a593Smuzhiyun	rm $@++ && \
318*4882a593Smuzhiyun	mv $@+ $@
319*4882a593Smuzhiyun
320*4882a593Smuzhiyun$(OUTPUT)user-manual.pdf: $(OUTPUT)user-manual.xml
321*4882a593Smuzhiyun	$(QUIET_DBLATEX)$(RM) $@+ $@ && \
322*4882a593Smuzhiyun	$(DBLATEX) -o $@+ -p /etc/asciidoc/dblatex/asciidoc-dblatex.xsl -s /etc/asciidoc/dblatex/asciidoc-dblatex.sty $< && \
323*4882a593Smuzhiyun	mv $@+ $@
324*4882a593Smuzhiyun
325*4882a593Smuzhiyun$(OUTPUT)perfman.texi: $(MAN_XML) cat-texi.perl
326*4882a593Smuzhiyun	$(QUIET_DB2TEXI)$(RM) $@+ $@ && \
327*4882a593Smuzhiyun	($(foreach xml,$(MAN_XML),$(DOCBOOK2X_TEXI) --encoding=UTF-8 \
328*4882a593Smuzhiyun		--to-stdout $(xml) &&) true) > $@++ && \
329*4882a593Smuzhiyun	$(PERL_PATH) cat-texi.perl $@ <$@++ >$@+ && \
330*4882a593Smuzhiyun	rm $@++ && \
331*4882a593Smuzhiyun	mv $@+ $@
332*4882a593Smuzhiyun
333*4882a593Smuzhiyun$(OUTPUT)perfman.info: $(OUTPUT)perfman.texi
334*4882a593Smuzhiyun	$(QUIET_MAKEINFO)$(MAKEINFO) --no-split --no-validate $*.texi
335*4882a593Smuzhiyun
336*4882a593Smuzhiyun$(patsubst %.txt,%.texi,$(MAN_TXT)): %.texi : %.xml
337*4882a593Smuzhiyun	$(QUIET_DB2TEXI)$(RM) $@+ $@ && \
338*4882a593Smuzhiyun	$(DOCBOOK2X_TEXI) --to-stdout $*.xml >$@+ && \
339*4882a593Smuzhiyun	mv $@+ $@
340*4882a593Smuzhiyun
341*4882a593Smuzhiyunhowto-index.txt: howto-index.sh $(wildcard howto/*.txt)
342*4882a593Smuzhiyun	$(QUIET_GEN)$(RM) $@+ $@ && \
343*4882a593Smuzhiyun	'$(SHELL_PATH_SQ)' ./howto-index.sh $(wildcard howto/*.txt) >$@+ && \
344*4882a593Smuzhiyun	mv $@+ $@
345*4882a593Smuzhiyun
346*4882a593Smuzhiyun$(patsubst %,%.html,$(ARTICLES)) : %.html : %.txt
347*4882a593Smuzhiyun	$(QUIET_ASCIIDOC)$(ASCIIDOC) -b $(ASCIIDOC_HTML) $*.txt
348*4882a593Smuzhiyun
349*4882a593SmuzhiyunWEBDOC_DEST = /pub/software/tools/perf/docs
350*4882a593Smuzhiyun
351*4882a593Smuzhiyun$(patsubst %.txt,%.html,$(wildcard howto/*.txt)): %.html : %.txt
352*4882a593Smuzhiyun	$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
353*4882a593Smuzhiyun	sed -e '1,/^$$/d' $< | $(ASCIIDOC) -b $(ASCIIDOC_HTML) - >$@+ && \
354*4882a593Smuzhiyun	mv $@+ $@
355*4882a593Smuzhiyun
356*4882a593Smuzhiyun# UNIMPLEMENTED
357*4882a593Smuzhiyun#install-webdoc : html
358*4882a593Smuzhiyun#	'$(SHELL_PATH_SQ)' ./install-webdoc.sh $(WEBDOC_DEST)
359*4882a593Smuzhiyun
360*4882a593Smuzhiyun# quick-install: quick-install-man
361*4882a593Smuzhiyun
362*4882a593Smuzhiyun# quick-install-man:
363*4882a593Smuzhiyun#	'$(SHELL_PATH_SQ)' ./install-doc-quick.sh $(DOC_REF) $(DESTDIR)$(mandir)
364*4882a593Smuzhiyun
365*4882a593Smuzhiyun#quick-install-html:
366*4882a593Smuzhiyun#	'$(SHELL_PATH_SQ)' ./install-doc-quick.sh $(HTML_REF) $(DESTDIR)$(htmldir)
367