xref: /linux/tools/perf/Documentation/Makefile (revision 17ef1f14f62bc17bffadd1d7844bee6220934e20)
1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
2761a0f39SRobert Richterinclude ../../scripts/Makefile.include
3ca70c24fSArnaldo Carvalho de Meloinclude ../../scripts/utilities.mak
4af3df2cfSBorislav Petkov
586470930SIngo MolnarMAN1_TXT= \
686470930SIngo Molnar	$(filter-out $(addsuffix .txt, $(ARTICLES) $(SP_ARTICLES)), \
786470930SIngo Molnar		$(wildcard perf-*.txt)) \
886470930SIngo Molnar	perf.txt
986470930SIngo MolnarMAN5_TXT=
1086470930SIngo MolnarMAN7_TXT=
1186470930SIngo Molnar
1286470930SIngo MolnarMAN_TXT = $(MAN1_TXT) $(MAN5_TXT) $(MAN7_TXT)
13762b2935SFranck Bui-Huu_MAN_XML=$(patsubst %.txt,%.xml,$(MAN_TXT))
14762b2935SFranck Bui-Huu_MAN_HTML=$(patsubst %.txt,%.html,$(MAN_TXT))
1586470930SIngo Molnar
16762b2935SFranck Bui-HuuMAN_XML=$(addprefix $(OUTPUT),$(_MAN_XML))
17762b2935SFranck Bui-HuuMAN_HTML=$(addprefix $(OUTPUT),$(_MAN_HTML))
1886470930SIngo Molnar
1986470930SIngo MolnarARTICLES =
2086470930SIngo Molnar# with their own formatting rules.
2186470930SIngo MolnarSP_ARTICLES =
2286470930SIngo MolnarAPI_DOCS = $(patsubst %.txt,%,$(filter-out technical/api-index-skel.txt technical/api-index.txt, $(wildcard technical/api-*.txt)))
2386470930SIngo MolnarSP_ARTICLES += $(API_DOCS)
2486470930SIngo MolnarSP_ARTICLES += technical/api-index
2586470930SIngo Molnar
26762b2935SFranck Bui-Huu_DOC_HTML = $(_MAN_HTML)
27762b2935SFranck Bui-Huu_DOC_HTML+=$(patsubst %,%.html,$(ARTICLES) $(SP_ARTICLES))
28762b2935SFranck Bui-HuuDOC_HTML=$(addprefix $(OUTPUT),$(_DOC_HTML))
2986470930SIngo Molnar
30762b2935SFranck Bui-Huu_DOC_MAN1=$(patsubst %.txt,%.1,$(MAN1_TXT))
31762b2935SFranck Bui-Huu_DOC_MAN5=$(patsubst %.txt,%.5,$(MAN5_TXT))
32762b2935SFranck Bui-Huu_DOC_MAN7=$(patsubst %.txt,%.7,$(MAN7_TXT))
33762b2935SFranck Bui-Huu
34762b2935SFranck Bui-HuuDOC_MAN1=$(addprefix $(OUTPUT),$(_DOC_MAN1))
35762b2935SFranck Bui-HuuDOC_MAN5=$(addprefix $(OUTPUT),$(_DOC_MAN5))
36762b2935SFranck Bui-HuuDOC_MAN7=$(addprefix $(OUTPUT),$(_DOC_MAN7))
3786470930SIngo Molnar
387ae5f213SJohn Kacur# Make the path relative to DESTDIR, not prefix
397ae5f213SJohn Kacurifndef DESTDIR
4086470930SIngo Molnarprefix?=$(HOME)
417ae5f213SJohn Kacurendif
4286470930SIngo Molnarbindir?=$(prefix)/bin
4386470930SIngo Molnarhtmldir?=$(prefix)/share/doc/perf-doc
4486470930SIngo Molnarpdfdir?=$(prefix)/share/doc/perf-doc
4586470930SIngo Molnarmandir?=$(prefix)/share/man
4686470930SIngo Molnarman1dir=$(mandir)/man1
4786470930SIngo Molnarman5dir=$(mandir)/man5
4886470930SIngo Molnarman7dir=$(mandir)/man7
4986470930SIngo Molnar
5086470930SIngo MolnarASCIIDOC=asciidoc
51e9cfa47eSIan RogersASCIIDOC_EXTRA += --unsafe -f asciidoc.conf
52ffef80ecSTakashi IwaiASCIIDOC_HTML = xhtml11
5386470930SIngo MolnarMANPAGE_XSL = manpage-normal.xsl
5486470930SIngo MolnarXMLTO_EXTRA =
5586470930SIngo MolnarINSTALL?=install
5686470930SIngo MolnarRM ?= rm -f
5786470930SIngo MolnarDOC_REF = origin/man
5886470930SIngo MolnarHTML_REF = origin/html
5986470930SIngo Molnar
60ffef80ecSTakashi Iwaiifdef USE_ASCIIDOCTOR
61ffef80ecSTakashi IwaiASCIIDOC = asciidoctor
62e9cfa47eSIan RogersASCIIDOC_EXTRA += -a compat-mode
63ffef80ecSTakashi IwaiASCIIDOC_EXTRA += -I. -rasciidoctor-extensions
64ffef80ecSTakashi IwaiASCIIDOC_EXTRA += -a mansource="perf" -a manmanual="perf Manual"
65ffef80ecSTakashi IwaiASCIIDOC_HTML = xhtml5
66ffef80ecSTakashi Iwaiendif
67ffef80ecSTakashi Iwai
6886470930SIngo Molnarinfodir?=$(prefix)/share/info
6986470930SIngo MolnarMAKEINFO=makeinfo
7086470930SIngo MolnarINSTALL_INFO=install-info
7186470930SIngo MolnarDOCBOOK2X_TEXI=docbook2x-texi
7286470930SIngo MolnarDBLATEX=dblatex
73af3df2cfSBorislav PetkovXMLTO=xmlto
7486470930SIngo Molnarifndef PERL_PATH
7586470930SIngo Molnar	PERL_PATH = /usr/bin/perl
7686470930SIngo Molnarendif
7786470930SIngo Molnar
7886470930SIngo Molnar-include ../config.mak.autogen
7986470930SIngo Molnar-include ../config.mak
8086470930SIngo Molnar
81af3df2cfSBorislav Petkov_tmp_tool_path := $(call get-executable,$(ASCIIDOC))
82af3df2cfSBorislav Petkovifeq ($(_tmp_tool_path),)
83af3df2cfSBorislav Petkov	missing_tools = $(ASCIIDOC)
84af3df2cfSBorislav Petkovendif
85af3df2cfSBorislav Petkov
86ffef80ecSTakashi Iwaiifndef USE_ASCIIDOCTOR
87af3df2cfSBorislav Petkov_tmp_tool_path := $(call get-executable,$(XMLTO))
88af3df2cfSBorislav Petkovifeq ($(_tmp_tool_path),)
89af3df2cfSBorislav Petkov	missing_tools += $(XMLTO)
90af3df2cfSBorislav Petkovendif
91ffef80ecSTakashi Iwaiendif
92af3df2cfSBorislav Petkov
9386470930SIngo Molnar#
9486470930SIngo Molnar# For asciidoc ...
9586470930SIngo Molnar#	-7.1.2,	no extra settings are needed.
9686470930SIngo Molnar#	8.0-,	set ASCIIDOC8.
9786470930SIngo Molnar#
9886470930SIngo Molnar
9986470930SIngo Molnar#
10086470930SIngo Molnar# For docbook-xsl ...
10186470930SIngo Molnar#	-1.68.1,	set ASCIIDOC_NO_ROFF? (based on changelog from 1.73.0)
10286470930SIngo Molnar#	1.69.0,		no extra settings are needed?
10386470930SIngo Molnar#	1.69.1-1.71.0,	set DOCBOOK_SUPPRESS_SP?
10486470930SIngo Molnar#	1.71.1,		no extra settings are needed?
10586470930SIngo Molnar#	1.72.0,		set DOCBOOK_XSL_172.
10686470930SIngo Molnar#	1.73.0-,	set ASCIIDOC_NO_ROFF
10786470930SIngo Molnar#
10886470930SIngo Molnar
10986470930SIngo Molnar#
11086470930SIngo Molnar# If you had been using DOCBOOK_XSL_172 in an attempt to get rid
11186470930SIngo Molnar# of 'the ".ft C" problem' in your generated manpages, and you
11286470930SIngo Molnar# instead ended up with weird characters around callouts, try
11386470930SIngo Molnar# using ASCIIDOC_NO_ROFF instead (it works fine with ASCIIDOC8).
11486470930SIngo Molnar#
11586470930SIngo Molnar
11686470930SIngo Molnarifdef ASCIIDOC8
11786470930SIngo MolnarASCIIDOC_EXTRA += -a asciidoc7compatible
11886470930SIngo Molnarendif
11986470930SIngo Molnarifdef DOCBOOK_XSL_172
12086470930SIngo MolnarASCIIDOC_EXTRA += -a perf-asciidoc-no-roff
12186470930SIngo MolnarMANPAGE_XSL = manpage-1.72.xsl
12286470930SIngo Molnarelse
12386470930SIngo Molnar	ifdef ASCIIDOC_NO_ROFF
12486470930SIngo Molnar	# docbook-xsl after 1.72 needs the regular XSL, but will not
12586470930SIngo Molnar	# pass-thru raw roff codes from asciidoc.conf, so turn them off.
12686470930SIngo Molnar	ASCIIDOC_EXTRA += -a perf-asciidoc-no-roff
12786470930SIngo Molnar	endif
12886470930SIngo Molnarendif
12986470930SIngo Molnarifdef MAN_BOLD_LITERAL
13086470930SIngo MolnarXMLTO_EXTRA += -m manpage-bold-literal.xsl
13186470930SIngo Molnarendif
13286470930SIngo Molnarifdef DOCBOOK_SUPPRESS_SP
13386470930SIngo MolnarXMLTO_EXTRA += -m manpage-suppress-sp.xsl
13486470930SIngo Molnarendif
13586470930SIngo Molnar
13686470930SIngo MolnarSHELL_PATH ?= $(SHELL)
13786470930SIngo Molnar# Shell quote;
13886470930SIngo MolnarSHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
13986470930SIngo Molnar
14086470930SIngo Molnar#
14186470930SIngo Molnar# Please note that there is a minor bug in asciidoc.
14286470930SIngo Molnar# The version after 6.0.3 _will_ include the patch found here:
14386470930SIngo Molnar#   http://marc.theaimsgroup.com/?l=perf&m=111558757202243&w=2
14486470930SIngo Molnar#
14586470930SIngo Molnar# Until that version is released you may have to apply the patch
14686470930SIngo Molnar# yourself - yes, all 6 characters of it!
14786470930SIngo Molnar#
14886470930SIngo Molnar
14986470930SIngo MolnarQUIET_SUBDIR0  = +$(MAKE) -C # space to separate -C and subdir
15086470930SIngo MolnarQUIET_SUBDIR1  =
15186470930SIngo Molnar
15286470930SIngo Molnarifneq ($(findstring $(MAKEFLAGS),w),w)
15386470930SIngo MolnarPRINT_DIR = --no-print-directory
15486470930SIngo Molnarelse # "make -w"
15586470930SIngo MolnarNO_SUBDIR = :
15686470930SIngo Molnarendif
15786470930SIngo Molnar
15886470930SIngo Molnarifneq ($(findstring $(MAKEFLAGS),s),s)
1595125bc22SRobert Richterifneq ($(V),1)
16065fb0992SIngo Molnar	QUIET_ASCIIDOC	= @echo '  ASCIIDOC '$@;
16165fb0992SIngo Molnar	QUIET_XMLTO	= @echo '  XMLTO    '$@;
16265fb0992SIngo Molnar	QUIET_DB2TEXI	= @echo '  DB2TEXI  '$@;
16365fb0992SIngo Molnar	QUIET_MAKEINFO	= @echo '  MAKEINFO '$@;
16465fb0992SIngo Molnar	QUIET_DBLATEX	= @echo '  DBLATEX  '$@;
16565fb0992SIngo Molnar	QUIET_XSLTPROC	= @echo '  XSLTPROC '$@;
16665fb0992SIngo Molnar	QUIET_GEN	= @echo '  GEN      '$@;
16786470930SIngo Molnar	QUIET_STDERR	= 2> /dev/null
16886470930SIngo Molnar	QUIET_SUBDIR0	= +@subdir=
16965fb0992SIngo Molnar	QUIET_SUBDIR1	= ;$(NO_SUBDIR) \
17065fb0992SIngo Molnar			   echo '  SUBDIR   ' $$subdir; \
17186470930SIngo Molnar			  $(MAKE) $(PRINT_DIR) -C $$subdir
17286470930SIngo Molnar	export V
17386470930SIngo Molnarendif
17486470930SIngo Molnarendif
17586470930SIngo Molnar
176361ac7b4SIan Rogersall: html man info
17786470930SIngo Molnar
17886470930SIngo Molnarhtml: $(DOC_HTML)
17986470930SIngo Molnar
18086470930SIngo Molnar$(DOC_HTML) $(DOC_MAN1) $(DOC_MAN5) $(DOC_MAN7): asciidoc.conf
18186470930SIngo Molnar
18286470930SIngo Molnarman: man1 man5 man7
18386470930SIngo Molnarman1: $(DOC_MAN1)
18486470930SIngo Molnarman5: $(DOC_MAN5)
18586470930SIngo Molnarman7: $(DOC_MAN7)
18686470930SIngo Molnar
187762b2935SFranck Bui-Huuinfo: $(OUTPUT)perf.info $(OUTPUT)perfman.info
18886470930SIngo Molnar
18986470930SIngo Molnarinstall: install-man
19086470930SIngo Molnar
191af3df2cfSBorislav Petkovcheck-man-tools:
192af3df2cfSBorislav Petkovifdef missing_tools
193af3df2cfSBorislav Petkov	$(error "You need to install $(missing_tools) for man pages")
194af3df2cfSBorislav Petkovendif
195af3df2cfSBorislav Petkov
196af3df2cfSBorislav Petkovdo-install-man: man
1978a5411e9SIngo Molnar	$(call QUIET_INSTALL, Documentation-man) \
1988a5411e9SIngo Molnar		$(INSTALL) -d -m 755 $(DESTDIR)$(man1dir); \
1998a5411e9SIngo Molnar#		$(INSTALL) -d -m 755 $(DESTDIR)$(man5dir); \
2008a5411e9SIngo Molnar#		$(INSTALL) -d -m 755 $(DESTDIR)$(man7dir); \
2018a5411e9SIngo Molnar		$(INSTALL) -m 644 $(DOC_MAN1) $(DESTDIR)$(man1dir); \
2028a5411e9SIngo Molnar#		$(INSTALL) -m 644 $(DOC_MAN5) $(DESTDIR)$(man5dir); \
20386470930SIngo Molnar#		$(INSTALL) -m 644 $(DOC_MAN7) $(DESTDIR)$(man7dir)
20486470930SIngo Molnar
2052826478aSKonstantin Khlebnikovinstall-man: check-man-tools man do-install-man
206af3df2cfSBorislav Petkov
207af3df2cfSBorislav Petkovifdef missing_tools
20831f6be65SIngo Molnar  DO_INSTALL_MAN = $(warning Please install $(missing_tools) to have the man pages installed)
209af3df2cfSBorislav Petkovelse
21031f6be65SIngo Molnar  DO_INSTALL_MAN = do-install-man
211af3df2cfSBorislav Petkovendif
212af3df2cfSBorislav Petkov
21331f6be65SIngo Molnartry-install-man: $(DO_INSTALL_MAN)
21431f6be65SIngo Molnar
21586470930SIngo Molnarinstall-info: info
2168a5411e9SIngo Molnar	$(call QUIET_INSTALL, Documentation-info) \
2178a5411e9SIngo Molnar		$(INSTALL) -d -m 755 $(DESTDIR)$(infodir); \
2188a5411e9SIngo Molnar		$(INSTALL) -m 644 $(OUTPUT)perf.info $(OUTPUT)perfman.info $(DESTDIR)$(infodir); \
21986470930SIngo Molnar	if test -r $(DESTDIR)$(infodir)/dir; then \
22086470930SIngo Molnar		$(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) perf.info ;\
22186470930SIngo Molnar		$(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) perfman.info ;\
22286470930SIngo Molnar	else \
22386470930SIngo Molnar	  echo "No directory found in $(DESTDIR)$(infodir)" >&2 ; \
22486470930SIngo Molnar	fi
22586470930SIngo Molnar
2264187e262SJesse Brandeburg#install-html: html
2274187e262SJesse Brandeburg#	'$(SHELL_PATH_SQ)' ./install-webdoc.sh $(DESTDIR)$(htmldir)
22886470930SIngo Molnar
22986470930SIngo Molnar
23086470930SIngo Molnar#
23186470930SIngo Molnar# Determine "include::" file references in asciidoc files.
23286470930SIngo Molnar#
233762b2935SFranck Bui-Huu$(OUTPUT)doc.dep : $(wildcard *.txt) build-docdep.perl
23486470930SIngo Molnar	$(QUIET_GEN)$(RM) $@+ $@ && \
23586470930SIngo Molnar	$(PERL_PATH) ./build-docdep.perl >$@+ $(QUIET_STDERR) && \
23686470930SIngo Molnar	mv $@+ $@
23786470930SIngo Molnar
23889b66500SMasanari Iida-include $(OUTPUT)doc.dep
23986470930SIngo Molnar
2408ec19c0eSIngo MolnarCLEAN_FILES =									\
2418ec19c0eSIngo Molnar	$(MAN_XML) $(addsuffix +,$(MAN_XML))					\
2428ec19c0eSIngo Molnar	$(MAN_HTML) $(addsuffix +,$(MAN_HTML))					\
2438ec19c0eSIngo Molnar	$(DOC_HTML) $(DOC_MAN1) $(DOC_MAN5) $(DOC_MAN7)				\
2448ec19c0eSIngo Molnar	$(OUTPUT)*.texi $(OUTPUT)*.texi+ $(OUTPUT)*.texi++			\
245*17ef1f14SIan Rogers	$(OUTPUT)perf.info $(OUTPUT)perfman.info $(OUTPUT)doc.dep		\
246e30b992fSIan Rogers	$(OUTPUT)technical/api-*.html $(OUTPUT)technical/api-index.txt
24786470930SIngo Molnarclean:
2488ec19c0eSIngo Molnar	$(call QUIET_CLEAN, Documentation) $(RM) $(CLEAN_FILES)
24986470930SIngo Molnar
250762b2935SFranck Bui-Huu$(MAN_HTML): $(OUTPUT)%.html : %.txt
25186470930SIngo Molnar	$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
252ffef80ecSTakashi Iwai	$(ASCIIDOC) -b $(ASCIIDOC_HTML) -d manpage \
25386470930SIngo Molnar		$(ASCIIDOC_EXTRA) -aperf_version=$(PERF_VERSION) -o $@+ $< && \
25486470930SIngo Molnar	mv $@+ $@
25586470930SIngo Molnar
256ffef80ecSTakashi Iwaiifdef USE_ASCIIDOCTOR
257169e366cSBen Hutchings$(OUTPUT)%.1 $(OUTPUT)%.5 $(OUTPUT)%.7 : %.txt
258ffef80ecSTakashi Iwai	$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
259ffef80ecSTakashi Iwai	$(ASCIIDOC) -b manpage -d manpage \
260ffef80ecSTakashi Iwai		$(ASCIIDOC_EXTRA) -aperf_version=$(PERF_VERSION) -o $@+ $< && \
261ffef80ecSTakashi Iwai	mv $@+ $@
262ffef80ecSTakashi Iwaiendif
263ffef80ecSTakashi Iwai
264762b2935SFranck Bui-Huu$(OUTPUT)%.1 $(OUTPUT)%.5 $(OUTPUT)%.7 : $(OUTPUT)%.xml
26586470930SIngo Molnar	$(QUIET_XMLTO)$(RM) $@ && \
266761a0f39SRobert Richter	$(XMLTO) -o $(OUTPUT). -m $(MANPAGE_XSL) $(XMLTO_EXTRA) man $<
26786470930SIngo Molnar
268762b2935SFranck Bui-Huu$(OUTPUT)%.xml : %.txt
26986470930SIngo Molnar	$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
270ffef80ecSTakashi Iwai	$(ASCIIDOC) -b docbook -d manpage \
2710c2d0412SIan Rogers		$(ASCIIDOC_EXTRA) -aperf_version=$(PERF_VERSION) \
2720c2d0412SIan Rogers		-aperf_date=$(shell git log -1 --pretty="format:%cd" \
2730c2d0412SIan Rogers				--date=short $<) \
2740c2d0412SIan Rogers		-o $@+ $< && \
27586470930SIngo Molnar	mv $@+ $@
27686470930SIngo Molnar
27786470930SIngo MolnarXSLT = docbook.xsl
27886470930SIngo MolnarXSLTOPTS = --xinclude --stringparam html.stylesheet docbook-xsl.css
27986470930SIngo Molnar
280762b2935SFranck Bui-Huu$(OUTPUT)perfman.texi: $(MAN_XML) cat-texi.perl
28186470930SIngo Molnar	$(QUIET_DB2TEXI)$(RM) $@+ $@ && \
28286470930SIngo Molnar	($(foreach xml,$(MAN_XML),$(DOCBOOK2X_TEXI) --encoding=UTF-8 \
28386470930SIngo Molnar		--to-stdout $(xml) &&) true) > $@++ && \
28486470930SIngo Molnar	$(PERL_PATH) cat-texi.perl $@ <$@++ >$@+ && \
28586470930SIngo Molnar	rm $@++ && \
28686470930SIngo Molnar	mv $@+ $@
28786470930SIngo Molnar
288762b2935SFranck Bui-Huu$(OUTPUT)perfman.info: $(OUTPUT)perfman.texi
2896f6e7f06SIan Rogers	$(QUIET_MAKEINFO)$(MAKEINFO) --no-split --no-validate -o $@ $*.texi
29086470930SIngo Molnar
29186470930SIngo Molnar$(patsubst %.txt,%.texi,$(MAN_TXT)): %.texi : %.xml
29286470930SIngo Molnar	$(QUIET_DB2TEXI)$(RM) $@+ $@ && \
29386470930SIngo Molnar	$(DOCBOOK2X_TEXI) --to-stdout $*.xml >$@+ && \
29486470930SIngo Molnar	mv $@+ $@
29586470930SIngo Molnar
29686470930SIngo Molnar$(patsubst %,%.html,$(ARTICLES)) : %.html : %.txt
297ffef80ecSTakashi Iwai	$(QUIET_ASCIIDOC)$(ASCIIDOC) -b $(ASCIIDOC_HTML) $*.txt
29886470930SIngo Molnar
29986470930SIngo MolnarWEBDOC_DEST = /pub/software/tools/perf/docs
30086470930SIngo Molnar
3014187e262SJesse Brandeburg# UNIMPLEMENTED
3024187e262SJesse Brandeburg#install-webdoc : html
3034187e262SJesse Brandeburg#	'$(SHELL_PATH_SQ)' ./install-webdoc.sh $(WEBDOC_DEST)
30486470930SIngo Molnar
3054187e262SJesse Brandeburg# quick-install: quick-install-man
30686470930SIngo Molnar
3074187e262SJesse Brandeburg# quick-install-man:
3084187e262SJesse Brandeburg#	'$(SHELL_PATH_SQ)' ./install-doc-quick.sh $(DOC_REF) $(DESTDIR)$(mandir)
30986470930SIngo Molnar
3104187e262SJesse Brandeburg#quick-install-html:
3114187e262SJesse Brandeburg#	'$(SHELL_PATH_SQ)' ./install-doc-quick.sh $(HTML_REF) $(DESTDIR)$(htmldir)
312