xref: /openbmc/linux/tools/perf/Documentation/Makefile (revision 2612e3bbc0386368a850140a6c9b990cd496a5ec)
1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
2761a0f39SRobert Richterinclude ../../scripts/Makefile.include
3ca70c24fSArnaldo Carvalho de Meloinclude ../../scripts/utilities.mak
4af3df2cfSBorislav Petkov
5c44fc5afSIan RogersARTICLES =
6c44fc5afSIan Rogers# with their own formatting rules.
7c44fc5afSIan RogersSP_ARTICLES =
8c44fc5afSIan Rogers
986470930SIngo MolnarMAN1_TXT= \
1086470930SIngo Molnar	$(filter-out $(addsuffix .txt, $(ARTICLES) $(SP_ARTICLES)), \
1186470930SIngo Molnar		$(wildcard perf-*.txt)) \
1286470930SIngo Molnar	perf.txt
1386470930SIngo MolnarMAN5_TXT=
1486470930SIngo MolnarMAN7_TXT=
1586470930SIngo Molnar
1686470930SIngo MolnarMAN_TXT = $(MAN1_TXT) $(MAN5_TXT) $(MAN7_TXT)
17762b2935SFranck Bui-Huu_MAN_XML=$(patsubst %.txt,%.xml,$(MAN_TXT))
18762b2935SFranck Bui-Huu_MAN_HTML=$(patsubst %.txt,%.html,$(MAN_TXT))
1986470930SIngo Molnar
20762b2935SFranck Bui-HuuMAN_XML=$(addprefix $(OUTPUT),$(_MAN_XML))
21762b2935SFranck Bui-HuuMAN_HTML=$(addprefix $(OUTPUT),$(_MAN_HTML))
2286470930SIngo Molnar
23762b2935SFranck Bui-Huu_DOC_HTML = $(_MAN_HTML)
24762b2935SFranck Bui-Huu_DOC_HTML+=$(patsubst %,%.html,$(ARTICLES) $(SP_ARTICLES))
25762b2935SFranck Bui-HuuDOC_HTML=$(addprefix $(OUTPUT),$(_DOC_HTML))
2686470930SIngo Molnar
27762b2935SFranck Bui-Huu_DOC_MAN1=$(patsubst %.txt,%.1,$(MAN1_TXT))
28762b2935SFranck Bui-Huu_DOC_MAN5=$(patsubst %.txt,%.5,$(MAN5_TXT))
29762b2935SFranck Bui-Huu_DOC_MAN7=$(patsubst %.txt,%.7,$(MAN7_TXT))
30762b2935SFranck Bui-Huu
31762b2935SFranck Bui-HuuDOC_MAN1=$(addprefix $(OUTPUT),$(_DOC_MAN1))
32762b2935SFranck Bui-HuuDOC_MAN5=$(addprefix $(OUTPUT),$(_DOC_MAN5))
33762b2935SFranck Bui-HuuDOC_MAN7=$(addprefix $(OUTPUT),$(_DOC_MAN7))
3486470930SIngo Molnar
357ae5f213SJohn Kacur# Make the path relative to DESTDIR, not prefix
367ae5f213SJohn Kacurifndef DESTDIR
3786470930SIngo Molnarprefix?=$(HOME)
387ae5f213SJohn Kacurendif
3986470930SIngo Molnarbindir?=$(prefix)/bin
4086470930SIngo Molnarhtmldir?=$(prefix)/share/doc/perf-doc
4186470930SIngo Molnarpdfdir?=$(prefix)/share/doc/perf-doc
4286470930SIngo Molnarmandir?=$(prefix)/share/man
4386470930SIngo Molnarman1dir=$(mandir)/man1
4486470930SIngo Molnarman5dir=$(mandir)/man5
4586470930SIngo Molnarman7dir=$(mandir)/man7
4686470930SIngo Molnar
4786470930SIngo MolnarASCIIDOC=asciidoc
48e9cfa47eSIan RogersASCIIDOC_EXTRA += --unsafe -f asciidoc.conf
49ffef80ecSTakashi IwaiASCIIDOC_HTML = xhtml11
5086470930SIngo MolnarMANPAGE_XSL = manpage-normal.xsl
5186470930SIngo MolnarXMLTO_EXTRA =
5286470930SIngo MolnarINSTALL?=install
5386470930SIngo MolnarRM ?= rm -f
5486470930SIngo MolnarDOC_REF = origin/man
5586470930SIngo MolnarHTML_REF = origin/html
5686470930SIngo Molnar
57ffef80ecSTakashi Iwaiifdef USE_ASCIIDOCTOR
58ffef80ecSTakashi IwaiASCIIDOC = asciidoctor
59e9cfa47eSIan RogersASCIIDOC_EXTRA += -a compat-mode
60ffef80ecSTakashi IwaiASCIIDOC_EXTRA += -I. -rasciidoctor-extensions
61ffef80ecSTakashi IwaiASCIIDOC_EXTRA += -a mansource="perf" -a manmanual="perf Manual"
62ffef80ecSTakashi IwaiASCIIDOC_HTML = xhtml5
63ffef80ecSTakashi Iwaiendif
64ffef80ecSTakashi Iwai
6586470930SIngo Molnarinfodir?=$(prefix)/share/info
6686470930SIngo MolnarMAKEINFO=makeinfo
6786470930SIngo MolnarINSTALL_INFO=install-info
6886470930SIngo MolnarDOCBOOK2X_TEXI=docbook2x-texi
6986470930SIngo MolnarDBLATEX=dblatex
70af3df2cfSBorislav PetkovXMLTO=xmlto
7186470930SIngo Molnarifndef PERL_PATH
7286470930SIngo Molnar	PERL_PATH = /usr/bin/perl
7386470930SIngo Molnarendif
7486470930SIngo Molnar
7586470930SIngo Molnar-include ../config.mak.autogen
7686470930SIngo Molnar-include ../config.mak
7786470930SIngo Molnar
78af3df2cfSBorislav Petkov_tmp_tool_path := $(call get-executable,$(ASCIIDOC))
79af3df2cfSBorislav Petkovifeq ($(_tmp_tool_path),)
80af3df2cfSBorislav Petkov	missing_tools = $(ASCIIDOC)
81af3df2cfSBorislav Petkovendif
82af3df2cfSBorislav Petkov
83ffef80ecSTakashi Iwaiifndef USE_ASCIIDOCTOR
84af3df2cfSBorislav Petkov_tmp_tool_path := $(call get-executable,$(XMLTO))
85af3df2cfSBorislav Petkovifeq ($(_tmp_tool_path),)
86af3df2cfSBorislav Petkov	missing_tools += $(XMLTO)
87af3df2cfSBorislav Petkovendif
88ffef80ecSTakashi Iwaiendif
89af3df2cfSBorislav Petkov
9086470930SIngo Molnar#
9186470930SIngo Molnar# For asciidoc ...
9286470930SIngo Molnar#	-7.1.2,	no extra settings are needed.
9386470930SIngo Molnar#	8.0-,	set ASCIIDOC8.
9486470930SIngo Molnar#
9586470930SIngo Molnar
9686470930SIngo Molnar#
9786470930SIngo Molnar# For docbook-xsl ...
9886470930SIngo Molnar#	-1.68.1,	set ASCIIDOC_NO_ROFF? (based on changelog from 1.73.0)
9986470930SIngo Molnar#	1.69.0,		no extra settings are needed?
10086470930SIngo Molnar#	1.69.1-1.71.0,	set DOCBOOK_SUPPRESS_SP?
10186470930SIngo Molnar#	1.71.1,		no extra settings are needed?
10286470930SIngo Molnar#	1.72.0,		set DOCBOOK_XSL_172.
10386470930SIngo Molnar#	1.73.0-,	set ASCIIDOC_NO_ROFF
10486470930SIngo Molnar#
10586470930SIngo Molnar
10686470930SIngo Molnar#
10786470930SIngo Molnar# If you had been using DOCBOOK_XSL_172 in an attempt to get rid
10886470930SIngo Molnar# of 'the ".ft C" problem' in your generated manpages, and you
10986470930SIngo Molnar# instead ended up with weird characters around callouts, try
11086470930SIngo Molnar# using ASCIIDOC_NO_ROFF instead (it works fine with ASCIIDOC8).
11186470930SIngo Molnar#
11286470930SIngo Molnar
11386470930SIngo Molnarifdef ASCIIDOC8
11486470930SIngo MolnarASCIIDOC_EXTRA += -a asciidoc7compatible
11586470930SIngo Molnarendif
11686470930SIngo Molnarifdef DOCBOOK_XSL_172
11786470930SIngo MolnarASCIIDOC_EXTRA += -a perf-asciidoc-no-roff
11886470930SIngo MolnarMANPAGE_XSL = manpage-1.72.xsl
11986470930SIngo Molnarelse
12086470930SIngo Molnar	ifdef ASCIIDOC_NO_ROFF
12186470930SIngo Molnar	# docbook-xsl after 1.72 needs the regular XSL, but will not
12286470930SIngo Molnar	# pass-thru raw roff codes from asciidoc.conf, so turn them off.
12386470930SIngo Molnar	ASCIIDOC_EXTRA += -a perf-asciidoc-no-roff
12486470930SIngo Molnar	endif
12586470930SIngo Molnarendif
12686470930SIngo Molnarifdef MAN_BOLD_LITERAL
12786470930SIngo MolnarXMLTO_EXTRA += -m manpage-bold-literal.xsl
12886470930SIngo Molnarendif
12986470930SIngo Molnarifdef DOCBOOK_SUPPRESS_SP
13086470930SIngo MolnarXMLTO_EXTRA += -m manpage-suppress-sp.xsl
13186470930SIngo Molnarendif
13286470930SIngo Molnar
13386470930SIngo MolnarSHELL_PATH ?= $(SHELL)
13486470930SIngo Molnar# Shell quote;
13586470930SIngo MolnarSHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
13686470930SIngo Molnar
13786470930SIngo Molnar#
13886470930SIngo Molnar# Please note that there is a minor bug in asciidoc.
13986470930SIngo Molnar# The version after 6.0.3 _will_ include the patch found here:
14086470930SIngo Molnar#   http://marc.theaimsgroup.com/?l=perf&m=111558757202243&w=2
14186470930SIngo Molnar#
14286470930SIngo Molnar# Until that version is released you may have to apply the patch
14386470930SIngo Molnar# yourself - yes, all 6 characters of it!
14486470930SIngo Molnar#
14586470930SIngo Molnar
14686470930SIngo MolnarQUIET_SUBDIR0  = +$(MAKE) -C # space to separate -C and subdir
14786470930SIngo MolnarQUIET_SUBDIR1  =
14886470930SIngo Molnar
14986470930SIngo Molnarifneq ($(findstring $(MAKEFLAGS),w),w)
15086470930SIngo MolnarPRINT_DIR = --no-print-directory
15186470930SIngo Molnarelse # "make -w"
15286470930SIngo MolnarNO_SUBDIR = :
15386470930SIngo Molnarendif
15486470930SIngo Molnar
15586470930SIngo Molnarifneq ($(findstring $(MAKEFLAGS),s),s)
1565125bc22SRobert Richterifneq ($(V),1)
15765fb0992SIngo Molnar	QUIET_ASCIIDOC	= @echo '  ASCIIDOC '$@;
15865fb0992SIngo Molnar	QUIET_XMLTO	= @echo '  XMLTO    '$@;
15965fb0992SIngo Molnar	QUIET_DB2TEXI	= @echo '  DB2TEXI  '$@;
16065fb0992SIngo Molnar	QUIET_MAKEINFO	= @echo '  MAKEINFO '$@;
16165fb0992SIngo Molnar	QUIET_DBLATEX	= @echo '  DBLATEX  '$@;
16265fb0992SIngo Molnar	QUIET_XSLTPROC	= @echo '  XSLTPROC '$@;
16365fb0992SIngo Molnar	QUIET_GEN	= @echo '  GEN      '$@;
16486470930SIngo Molnar	QUIET_STDERR	= 2> /dev/null
16586470930SIngo Molnar	QUIET_SUBDIR0	= +@subdir=
16665fb0992SIngo Molnar	QUIET_SUBDIR1	= ;$(NO_SUBDIR) \
16765fb0992SIngo Molnar			   echo '  SUBDIR   ' $$subdir; \
16886470930SIngo Molnar			  $(MAKE) $(PRINT_DIR) -C $$subdir
16986470930SIngo Molnar	export V
17086470930SIngo Molnarendif
17186470930SIngo Molnarendif
17286470930SIngo Molnar
173361ac7b4SIan Rogersall: html man info
17486470930SIngo Molnar
17586470930SIngo Molnarhtml: $(DOC_HTML)
17686470930SIngo Molnar
17786470930SIngo Molnar$(DOC_HTML) $(DOC_MAN1) $(DOC_MAN5) $(DOC_MAN7): asciidoc.conf
17886470930SIngo Molnar
17986470930SIngo Molnarman: man1 man5 man7
18086470930SIngo Molnarman1: $(DOC_MAN1)
18186470930SIngo Molnarman5: $(DOC_MAN5)
18286470930SIngo Molnarman7: $(DOC_MAN7)
18386470930SIngo Molnar
184762b2935SFranck Bui-Huuinfo: $(OUTPUT)perf.info $(OUTPUT)perfman.info
18586470930SIngo Molnar
18686470930SIngo Molnarinstall: install-man
18786470930SIngo Molnar
188af3df2cfSBorislav Petkovcheck-man-tools:
189af3df2cfSBorislav Petkovifdef missing_tools
190af3df2cfSBorislav Petkov	$(error "You need to install $(missing_tools) for man pages")
191af3df2cfSBorislav Petkovendif
192af3df2cfSBorislav Petkov
193af3df2cfSBorislav Petkovdo-install-man: man
1948a5411e9SIngo Molnar	$(call QUIET_INSTALL, Documentation-man) \
1958a5411e9SIngo Molnar		$(INSTALL) -d -m 755 $(DESTDIR)$(man1dir); \
1968a5411e9SIngo Molnar#		$(INSTALL) -d -m 755 $(DESTDIR)$(man5dir); \
1978a5411e9SIngo Molnar#		$(INSTALL) -d -m 755 $(DESTDIR)$(man7dir); \
1988a5411e9SIngo Molnar		$(INSTALL) -m 644 $(DOC_MAN1) $(DESTDIR)$(man1dir); \
1998a5411e9SIngo Molnar#		$(INSTALL) -m 644 $(DOC_MAN5) $(DESTDIR)$(man5dir); \
20086470930SIngo Molnar#		$(INSTALL) -m 644 $(DOC_MAN7) $(DESTDIR)$(man7dir)
20186470930SIngo Molnar
2022826478aSKonstantin Khlebnikovinstall-man: check-man-tools man do-install-man
203af3df2cfSBorislav Petkov
204af3df2cfSBorislav Petkovifdef missing_tools
20531f6be65SIngo Molnar  DO_INSTALL_MAN = $(warning Please install $(missing_tools) to have the man pages installed)
206af3df2cfSBorislav Petkovelse
20731f6be65SIngo Molnar  DO_INSTALL_MAN = do-install-man
208af3df2cfSBorislav Petkovendif
209af3df2cfSBorislav Petkov
21031f6be65SIngo Molnartry-install-man: $(DO_INSTALL_MAN)
21131f6be65SIngo Molnar
21286470930SIngo Molnarinstall-info: info
2138a5411e9SIngo Molnar	$(call QUIET_INSTALL, Documentation-info) \
2148a5411e9SIngo Molnar		$(INSTALL) -d -m 755 $(DESTDIR)$(infodir); \
2158a5411e9SIngo Molnar		$(INSTALL) -m 644 $(OUTPUT)perf.info $(OUTPUT)perfman.info $(DESTDIR)$(infodir); \
21686470930SIngo Molnar	if test -r $(DESTDIR)$(infodir)/dir; then \
21786470930SIngo Molnar		$(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) perf.info ;\
21886470930SIngo Molnar		$(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) perfman.info ;\
21986470930SIngo Molnar	else \
22086470930SIngo Molnar	  echo "No directory found in $(DESTDIR)$(infodir)" >&2 ; \
22186470930SIngo Molnar	fi
22286470930SIngo Molnar
2234187e262SJesse Brandeburg#install-html: html
2244187e262SJesse Brandeburg#	'$(SHELL_PATH_SQ)' ./install-webdoc.sh $(DESTDIR)$(htmldir)
22586470930SIngo Molnar
22686470930SIngo Molnar
22786470930SIngo Molnar#
22886470930SIngo Molnar# Determine "include::" file references in asciidoc files.
22986470930SIngo Molnar#
230762b2935SFranck Bui-Huu$(OUTPUT)doc.dep : $(wildcard *.txt) build-docdep.perl
23186470930SIngo Molnar	$(QUIET_GEN)$(RM) $@+ $@ && \
23286470930SIngo Molnar	$(PERL_PATH) ./build-docdep.perl >$@+ $(QUIET_STDERR) && \
23386470930SIngo Molnar	mv $@+ $@
23486470930SIngo Molnar
23589b66500SMasanari Iida-include $(OUTPUT)doc.dep
23686470930SIngo Molnar
2378ec19c0eSIngo MolnarCLEAN_FILES =									\
2388ec19c0eSIngo Molnar	$(MAN_XML) $(addsuffix +,$(MAN_XML))					\
2398ec19c0eSIngo Molnar	$(MAN_HTML) $(addsuffix +,$(MAN_HTML))					\
2408ec19c0eSIngo Molnar	$(DOC_HTML) $(DOC_MAN1) $(DOC_MAN5) $(DOC_MAN7)				\
2418ec19c0eSIngo Molnar	$(OUTPUT)*.texi $(OUTPUT)*.texi+ $(OUTPUT)*.texi++			\
24217ef1f14SIan Rogers	$(OUTPUT)perf.info $(OUTPUT)perfman.info $(OUTPUT)doc.dep		\
243e30b992fSIan Rogers	$(OUTPUT)technical/api-*.html $(OUTPUT)technical/api-index.txt
24486470930SIngo Molnarclean:
2458ec19c0eSIngo Molnar	$(call QUIET_CLEAN, Documentation) $(RM) $(CLEAN_FILES)
24686470930SIngo Molnar
247762b2935SFranck Bui-Huu$(MAN_HTML): $(OUTPUT)%.html : %.txt
24886470930SIngo Molnar	$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
249ffef80ecSTakashi Iwai	$(ASCIIDOC) -b $(ASCIIDOC_HTML) -d manpage \
25086470930SIngo Molnar		$(ASCIIDOC_EXTRA) -aperf_version=$(PERF_VERSION) -o $@+ $< && \
25186470930SIngo Molnar	mv $@+ $@
25286470930SIngo Molnar
253*61b3d210SBen Hutchings# Generate date from either KBUILD_BUILD_TIMESTAMP or git log of
254*61b3d210SBen Hutchings# the doc input file
255*61b3d210SBen HutchingsPERF_DATE = $(strip \
256*61b3d210SBen Hutchings              $(if $(KBUILD_BUILD_TIMESTAMP), \
257*61b3d210SBen Hutchings                $(shell date -u -d '$(KBUILD_BUILD_TIMESTAMP)' +%Y-%m-%d), \
258*61b3d210SBen Hutchings                $(shell git log -1 --pretty="format:%cd" \
259*61b3d210SBen Hutchings                    --date=short --no-show-signature $<)))
26021a16513SBen Hutchings
261ffef80ecSTakashi Iwaiifdef USE_ASCIIDOCTOR
262169e366cSBen Hutchings$(OUTPUT)%.1 $(OUTPUT)%.5 $(OUTPUT)%.7 : %.txt
263ffef80ecSTakashi Iwai	$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
264ffef80ecSTakashi Iwai	$(ASCIIDOC) -b manpage -d manpage \
26521a16513SBen Hutchings		$(ASCIIDOC_EXTRA) -aperf_version=$(PERF_VERSION) \
26621a16513SBen Hutchings		-adocdate=$(PERF_DATE) -o $@+ $< && \
267ffef80ecSTakashi Iwai	mv $@+ $@
268ffef80ecSTakashi Iwaiendif
269ffef80ecSTakashi Iwai
270762b2935SFranck Bui-Huu$(OUTPUT)%.1 $(OUTPUT)%.5 $(OUTPUT)%.7 : $(OUTPUT)%.xml
27186470930SIngo Molnar	$(QUIET_XMLTO)$(RM) $@ && \
272761a0f39SRobert Richter	$(XMLTO) -o $(OUTPUT). -m $(MANPAGE_XSL) $(XMLTO_EXTRA) man $<
27386470930SIngo Molnar
274762b2935SFranck Bui-Huu$(OUTPUT)%.xml : %.txt
27586470930SIngo Molnar	$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
276ffef80ecSTakashi Iwai	$(ASCIIDOC) -b docbook -d manpage \
2770c2d0412SIan Rogers		$(ASCIIDOC_EXTRA) -aperf_version=$(PERF_VERSION) \
27821a16513SBen Hutchings		-aperf_date=$(PERF_DATE) -o $@+ $< && \
27986470930SIngo Molnar	mv $@+ $@
28086470930SIngo Molnar
28186470930SIngo MolnarXSLT = docbook.xsl
28286470930SIngo MolnarXSLTOPTS = --xinclude --stringparam html.stylesheet docbook-xsl.css
28386470930SIngo Molnar
284762b2935SFranck Bui-Huu$(OUTPUT)perfman.texi: $(MAN_XML) cat-texi.perl
28586470930SIngo Molnar	$(QUIET_DB2TEXI)$(RM) $@+ $@ && \
28686470930SIngo Molnar	($(foreach xml,$(MAN_XML),$(DOCBOOK2X_TEXI) --encoding=UTF-8 \
28786470930SIngo Molnar		--to-stdout $(xml) &&) true) > $@++ && \
28886470930SIngo Molnar	$(PERL_PATH) cat-texi.perl $@ <$@++ >$@+ && \
28986470930SIngo Molnar	rm $@++ && \
29086470930SIngo Molnar	mv $@+ $@
29186470930SIngo Molnar
292762b2935SFranck Bui-Huu$(OUTPUT)perfman.info: $(OUTPUT)perfman.texi
2936f6e7f06SIan Rogers	$(QUIET_MAKEINFO)$(MAKEINFO) --no-split --no-validate -o $@ $*.texi
29486470930SIngo Molnar
29586470930SIngo Molnar$(patsubst %.txt,%.texi,$(MAN_TXT)): %.texi : %.xml
29686470930SIngo Molnar	$(QUIET_DB2TEXI)$(RM) $@+ $@ && \
29786470930SIngo Molnar	$(DOCBOOK2X_TEXI) --to-stdout $*.xml >$@+ && \
29886470930SIngo Molnar	mv $@+ $@
29986470930SIngo Molnar
30086470930SIngo Molnar$(patsubst %,%.html,$(ARTICLES)) : %.html : %.txt
301ffef80ecSTakashi Iwai	$(QUIET_ASCIIDOC)$(ASCIIDOC) -b $(ASCIIDOC_HTML) $*.txt
30286470930SIngo Molnar
30386470930SIngo MolnarWEBDOC_DEST = /pub/software/tools/perf/docs
30486470930SIngo Molnar
3054187e262SJesse Brandeburg# UNIMPLEMENTED
3064187e262SJesse Brandeburg#install-webdoc : html
3074187e262SJesse Brandeburg#	'$(SHELL_PATH_SQ)' ./install-webdoc.sh $(WEBDOC_DEST)
30886470930SIngo Molnar
3094187e262SJesse Brandeburg# quick-install: quick-install-man
31086470930SIngo Molnar
3114187e262SJesse Brandeburg# quick-install-man:
3124187e262SJesse Brandeburg#	'$(SHELL_PATH_SQ)' ./install-doc-quick.sh $(DOC_REF) $(DESTDIR)$(mandir)
31386470930SIngo Molnar
3144187e262SJesse Brandeburg#quick-install-html:
3154187e262SJesse Brandeburg#	'$(SHELL_PATH_SQ)' ./install-doc-quick.sh $(HTML_REF) $(DESTDIR)$(htmldir)
316