xref: /linux/tools/perf/Documentation/Makefile (revision b395cd8a74b4a8d943dd4b5585e676f62f7350b3)
186470930SIngo MolnarMAN1_TXT= \
286470930SIngo Molnar	$(filter-out $(addsuffix .txt, $(ARTICLES) $(SP_ARTICLES)), \
386470930SIngo Molnar		$(wildcard perf-*.txt)) \
486470930SIngo Molnar	perf.txt
586470930SIngo MolnarMAN5_TXT=
686470930SIngo MolnarMAN7_TXT=
786470930SIngo Molnar
886470930SIngo MolnarMAN_TXT = $(MAN1_TXT) $(MAN5_TXT) $(MAN7_TXT)
986470930SIngo MolnarMAN_XML=$(patsubst %.txt,%.xml,$(MAN_TXT))
1086470930SIngo MolnarMAN_HTML=$(patsubst %.txt,%.html,$(MAN_TXT))
1186470930SIngo Molnar
1286470930SIngo MolnarDOC_HTML=$(MAN_HTML)
1386470930SIngo Molnar
1486470930SIngo MolnarARTICLES =
1586470930SIngo Molnar# with their own formatting rules.
1686470930SIngo MolnarSP_ARTICLES =
1786470930SIngo MolnarAPI_DOCS = $(patsubst %.txt,%,$(filter-out technical/api-index-skel.txt technical/api-index.txt, $(wildcard technical/api-*.txt)))
1886470930SIngo MolnarSP_ARTICLES += $(API_DOCS)
1986470930SIngo MolnarSP_ARTICLES += technical/api-index
2086470930SIngo Molnar
2186470930SIngo MolnarDOC_HTML += $(patsubst %,%.html,$(ARTICLES) $(SP_ARTICLES))
2286470930SIngo Molnar
2386470930SIngo MolnarDOC_MAN1=$(patsubst %.txt,%.1,$(MAN1_TXT))
2486470930SIngo MolnarDOC_MAN5=$(patsubst %.txt,%.5,$(MAN5_TXT))
2586470930SIngo MolnarDOC_MAN7=$(patsubst %.txt,%.7,$(MAN7_TXT))
2686470930SIngo Molnar
2786470930SIngo Molnarprefix?=$(HOME)
2886470930SIngo Molnarbindir?=$(prefix)/bin
2986470930SIngo Molnarhtmldir?=$(prefix)/share/doc/perf-doc
3086470930SIngo Molnarpdfdir?=$(prefix)/share/doc/perf-doc
3186470930SIngo Molnarmandir?=$(prefix)/share/man
3286470930SIngo Molnarman1dir=$(mandir)/man1
3386470930SIngo Molnarman5dir=$(mandir)/man5
3486470930SIngo Molnarman7dir=$(mandir)/man7
3586470930SIngo Molnar# DESTDIR=
3686470930SIngo Molnar
3786470930SIngo MolnarASCIIDOC=asciidoc
38*b395cd8aSKyle McMartinASCIIDOC_EXTRA = --unsafe
3986470930SIngo MolnarMANPAGE_XSL = manpage-normal.xsl
4086470930SIngo MolnarXMLTO_EXTRA =
4186470930SIngo MolnarINSTALL?=install
4286470930SIngo MolnarRM ?= rm -f
4386470930SIngo MolnarDOC_REF = origin/man
4486470930SIngo MolnarHTML_REF = origin/html
4586470930SIngo Molnar
4686470930SIngo Molnarinfodir?=$(prefix)/share/info
4786470930SIngo MolnarMAKEINFO=makeinfo
4886470930SIngo MolnarINSTALL_INFO=install-info
4986470930SIngo MolnarDOCBOOK2X_TEXI=docbook2x-texi
5086470930SIngo MolnarDBLATEX=dblatex
5186470930SIngo Molnarifndef PERL_PATH
5286470930SIngo Molnar	PERL_PATH = /usr/bin/perl
5386470930SIngo Molnarendif
5486470930SIngo Molnar
5586470930SIngo Molnar-include ../config.mak.autogen
5686470930SIngo Molnar-include ../config.mak
5786470930SIngo Molnar
5886470930SIngo Molnar#
5986470930SIngo Molnar# For asciidoc ...
6086470930SIngo Molnar#	-7.1.2,	no extra settings are needed.
6186470930SIngo Molnar#	8.0-,	set ASCIIDOC8.
6286470930SIngo Molnar#
6386470930SIngo Molnar
6486470930SIngo Molnar#
6586470930SIngo Molnar# For docbook-xsl ...
6686470930SIngo Molnar#	-1.68.1,	set ASCIIDOC_NO_ROFF? (based on changelog from 1.73.0)
6786470930SIngo Molnar#	1.69.0,		no extra settings are needed?
6886470930SIngo Molnar#	1.69.1-1.71.0,	set DOCBOOK_SUPPRESS_SP?
6986470930SIngo Molnar#	1.71.1,		no extra settings are needed?
7086470930SIngo Molnar#	1.72.0,		set DOCBOOK_XSL_172.
7186470930SIngo Molnar#	1.73.0-,	set ASCIIDOC_NO_ROFF
7286470930SIngo Molnar#
7386470930SIngo Molnar
7486470930SIngo Molnar#
7586470930SIngo Molnar# If you had been using DOCBOOK_XSL_172 in an attempt to get rid
7686470930SIngo Molnar# of 'the ".ft C" problem' in your generated manpages, and you
7786470930SIngo Molnar# instead ended up with weird characters around callouts, try
7886470930SIngo Molnar# using ASCIIDOC_NO_ROFF instead (it works fine with ASCIIDOC8).
7986470930SIngo Molnar#
8086470930SIngo Molnar
8186470930SIngo Molnarifdef ASCIIDOC8
8286470930SIngo MolnarASCIIDOC_EXTRA += -a asciidoc7compatible
8386470930SIngo Molnarendif
8486470930SIngo Molnarifdef DOCBOOK_XSL_172
8586470930SIngo MolnarASCIIDOC_EXTRA += -a perf-asciidoc-no-roff
8686470930SIngo MolnarMANPAGE_XSL = manpage-1.72.xsl
8786470930SIngo Molnarelse
8886470930SIngo Molnar	ifdef ASCIIDOC_NO_ROFF
8986470930SIngo Molnar	# docbook-xsl after 1.72 needs the regular XSL, but will not
9086470930SIngo Molnar	# pass-thru raw roff codes from asciidoc.conf, so turn them off.
9186470930SIngo Molnar	ASCIIDOC_EXTRA += -a perf-asciidoc-no-roff
9286470930SIngo Molnar	endif
9386470930SIngo Molnarendif
9486470930SIngo Molnarifdef MAN_BOLD_LITERAL
9586470930SIngo MolnarXMLTO_EXTRA += -m manpage-bold-literal.xsl
9686470930SIngo Molnarendif
9786470930SIngo Molnarifdef DOCBOOK_SUPPRESS_SP
9886470930SIngo MolnarXMLTO_EXTRA += -m manpage-suppress-sp.xsl
9986470930SIngo Molnarendif
10086470930SIngo Molnar
10186470930SIngo MolnarSHELL_PATH ?= $(SHELL)
10286470930SIngo Molnar# Shell quote;
10386470930SIngo MolnarSHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
10486470930SIngo Molnar
10586470930SIngo Molnar#
10686470930SIngo Molnar# Please note that there is a minor bug in asciidoc.
10786470930SIngo Molnar# The version after 6.0.3 _will_ include the patch found here:
10886470930SIngo Molnar#   http://marc.theaimsgroup.com/?l=perf&m=111558757202243&w=2
10986470930SIngo Molnar#
11086470930SIngo Molnar# Until that version is released you may have to apply the patch
11186470930SIngo Molnar# yourself - yes, all 6 characters of it!
11286470930SIngo Molnar#
11386470930SIngo Molnar
11486470930SIngo MolnarQUIET_SUBDIR0  = +$(MAKE) -C # space to separate -C and subdir
11586470930SIngo MolnarQUIET_SUBDIR1  =
11686470930SIngo Molnar
11786470930SIngo Molnarifneq ($(findstring $(MAKEFLAGS),w),w)
11886470930SIngo MolnarPRINT_DIR = --no-print-directory
11986470930SIngo Molnarelse # "make -w"
12086470930SIngo MolnarNO_SUBDIR = :
12186470930SIngo Molnarendif
12286470930SIngo Molnar
12386470930SIngo Molnarifneq ($(findstring $(MAKEFLAGS),s),s)
12486470930SIngo Molnarifndef V
12586470930SIngo Molnar	QUIET_ASCIIDOC	= @echo '   ' ASCIIDOC $@;
12686470930SIngo Molnar	QUIET_XMLTO	= @echo '   ' XMLTO $@;
12786470930SIngo Molnar	QUIET_DB2TEXI	= @echo '   ' DB2TEXI $@;
12886470930SIngo Molnar	QUIET_MAKEINFO	= @echo '   ' MAKEINFO $@;
12986470930SIngo Molnar	QUIET_DBLATEX	= @echo '   ' DBLATEX $@;
13086470930SIngo Molnar	QUIET_XSLTPROC	= @echo '   ' XSLTPROC $@;
13186470930SIngo Molnar	QUIET_GEN	= @echo '   ' GEN $@;
13286470930SIngo Molnar	QUIET_STDERR	= 2> /dev/null
13386470930SIngo Molnar	QUIET_SUBDIR0	= +@subdir=
13486470930SIngo Molnar	QUIET_SUBDIR1	= ;$(NO_SUBDIR) echo '   ' SUBDIR $$subdir; \
13586470930SIngo Molnar			  $(MAKE) $(PRINT_DIR) -C $$subdir
13686470930SIngo Molnar	export V
13786470930SIngo Molnarendif
13886470930SIngo Molnarendif
13986470930SIngo Molnar
14086470930SIngo Molnarall: html man
14186470930SIngo Molnar
14286470930SIngo Molnarhtml: $(DOC_HTML)
14386470930SIngo Molnar
14486470930SIngo Molnar$(DOC_HTML) $(DOC_MAN1) $(DOC_MAN5) $(DOC_MAN7): asciidoc.conf
14586470930SIngo Molnar
14686470930SIngo Molnarman: man1 man5 man7
14786470930SIngo Molnarman1: $(DOC_MAN1)
14886470930SIngo Molnarman5: $(DOC_MAN5)
14986470930SIngo Molnarman7: $(DOC_MAN7)
15086470930SIngo Molnar
15186470930SIngo Molnarinfo: perf.info perfman.info
15286470930SIngo Molnar
15386470930SIngo Molnarpdf: user-manual.pdf
15486470930SIngo Molnar
15586470930SIngo Molnarinstall: install-man
15686470930SIngo Molnar
15786470930SIngo Molnarinstall-man: man
15886470930SIngo Molnar	$(INSTALL) -d -m 755 $(DESTDIR)$(man1dir)
15986470930SIngo Molnar#	$(INSTALL) -d -m 755 $(DESTDIR)$(man5dir)
16086470930SIngo Molnar#	$(INSTALL) -d -m 755 $(DESTDIR)$(man7dir)
16186470930SIngo Molnar	$(INSTALL) -m 644 $(DOC_MAN1) $(DESTDIR)$(man1dir)
16286470930SIngo Molnar#	$(INSTALL) -m 644 $(DOC_MAN5) $(DESTDIR)$(man5dir)
16386470930SIngo Molnar#	$(INSTALL) -m 644 $(DOC_MAN7) $(DESTDIR)$(man7dir)
16486470930SIngo Molnar
16586470930SIngo Molnarinstall-info: info
16686470930SIngo Molnar	$(INSTALL) -d -m 755 $(DESTDIR)$(infodir)
16786470930SIngo Molnar	$(INSTALL) -m 644 perf.info perfman.info $(DESTDIR)$(infodir)
16886470930SIngo Molnar	if test -r $(DESTDIR)$(infodir)/dir; then \
16986470930SIngo Molnar	  $(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) perf.info ;\
17086470930SIngo Molnar	  $(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) perfman.info ;\
17186470930SIngo Molnar	else \
17286470930SIngo Molnar	  echo "No directory found in $(DESTDIR)$(infodir)" >&2 ; \
17386470930SIngo Molnar	fi
17486470930SIngo Molnar
17586470930SIngo Molnarinstall-pdf: pdf
17686470930SIngo Molnar	$(INSTALL) -d -m 755 $(DESTDIR)$(pdfdir)
17786470930SIngo Molnar	$(INSTALL) -m 644 user-manual.pdf $(DESTDIR)$(pdfdir)
17886470930SIngo Molnar
17986470930SIngo Molnarinstall-html: html
18086470930SIngo Molnar	'$(SHELL_PATH_SQ)' ./install-webdoc.sh $(DESTDIR)$(htmldir)
18186470930SIngo Molnar
18286470930SIngo Molnar../PERF-VERSION-FILE: .FORCE-PERF-VERSION-FILE
18386470930SIngo Molnar	$(QUIET_SUBDIR0)../ $(QUIET_SUBDIR1) PERF-VERSION-FILE
18486470930SIngo Molnar
18586470930SIngo Molnar-include ../PERF-VERSION-FILE
18686470930SIngo Molnar
18786470930SIngo Molnar#
18886470930SIngo Molnar# Determine "include::" file references in asciidoc files.
18986470930SIngo Molnar#
19086470930SIngo Molnardoc.dep : $(wildcard *.txt) build-docdep.perl
19186470930SIngo Molnar	$(QUIET_GEN)$(RM) $@+ $@ && \
19286470930SIngo Molnar	$(PERL_PATH) ./build-docdep.perl >$@+ $(QUIET_STDERR) && \
19386470930SIngo Molnar	mv $@+ $@
19486470930SIngo Molnar
19586470930SIngo Molnar-include doc.dep
19686470930SIngo Molnar
19786470930SIngo Molnarcmds_txt = cmds-ancillaryinterrogators.txt \
19886470930SIngo Molnar	cmds-ancillarymanipulators.txt \
19986470930SIngo Molnar	cmds-mainporcelain.txt \
20086470930SIngo Molnar	cmds-plumbinginterrogators.txt \
20186470930SIngo Molnar	cmds-plumbingmanipulators.txt \
20286470930SIngo Molnar	cmds-synchingrepositories.txt \
20386470930SIngo Molnar	cmds-synchelpers.txt \
20486470930SIngo Molnar	cmds-purehelpers.txt \
20586470930SIngo Molnar	cmds-foreignscminterface.txt
20686470930SIngo Molnar
20786470930SIngo Molnar$(cmds_txt): cmd-list.made
20886470930SIngo Molnar
20986470930SIngo Molnarcmd-list.made: cmd-list.perl ../command-list.txt $(MAN1_TXT)
21086470930SIngo Molnar	$(QUIET_GEN)$(RM) $@ && \
21186470930SIngo Molnar	$(PERL_PATH) ./cmd-list.perl ../command-list.txt $(QUIET_STDERR) && \
21286470930SIngo Molnar	date >$@
21386470930SIngo Molnar
21486470930SIngo Molnarclean:
21586470930SIngo Molnar	$(RM) *.xml *.xml+ *.html *.html+ *.1 *.5 *.7
21686470930SIngo Molnar	$(RM) *.texi *.texi+ *.texi++ perf.info perfman.info
21786470930SIngo Molnar	$(RM) howto-index.txt howto/*.html doc.dep
21886470930SIngo Molnar	$(RM) technical/api-*.html technical/api-index.txt
21986470930SIngo Molnar	$(RM) $(cmds_txt) *.made
22086470930SIngo Molnar
22186470930SIngo Molnar$(MAN_HTML): %.html : %.txt
22286470930SIngo Molnar	$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
22386470930SIngo Molnar	$(ASCIIDOC) -b xhtml11 -d manpage -f asciidoc.conf \
22486470930SIngo Molnar		$(ASCIIDOC_EXTRA) -aperf_version=$(PERF_VERSION) -o $@+ $< && \
22586470930SIngo Molnar	mv $@+ $@
22686470930SIngo Molnar
22786470930SIngo Molnar%.1 %.5 %.7 : %.xml
22886470930SIngo Molnar	$(QUIET_XMLTO)$(RM) $@ && \
22986470930SIngo Molnar	xmlto -m $(MANPAGE_XSL) $(XMLTO_EXTRA) man $<
23086470930SIngo Molnar
23186470930SIngo Molnar%.xml : %.txt
23286470930SIngo Molnar	$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
23386470930SIngo Molnar	$(ASCIIDOC) -b docbook -d manpage -f asciidoc.conf \
23486470930SIngo Molnar		$(ASCIIDOC_EXTRA) -aperf_version=$(PERF_VERSION) -o $@+ $< && \
23586470930SIngo Molnar	mv $@+ $@
23686470930SIngo Molnar
23786470930SIngo MolnarXSLT = docbook.xsl
23886470930SIngo MolnarXSLTOPTS = --xinclude --stringparam html.stylesheet docbook-xsl.css
23986470930SIngo Molnar
24086470930SIngo Molnaruser-manual.html: user-manual.xml
24186470930SIngo Molnar	$(QUIET_XSLTPROC)xsltproc $(XSLTOPTS) -o $@ $(XSLT) $<
24286470930SIngo Molnar
24386470930SIngo Molnarperf.info: user-manual.texi
24486470930SIngo Molnar	$(QUIET_MAKEINFO)$(MAKEINFO) --no-split -o $@ user-manual.texi
24586470930SIngo Molnar
24686470930SIngo Molnaruser-manual.texi: user-manual.xml
24786470930SIngo Molnar	$(QUIET_DB2TEXI)$(RM) $@+ $@ && \
24886470930SIngo Molnar	$(DOCBOOK2X_TEXI) user-manual.xml --encoding=UTF-8 --to-stdout >$@++ && \
24986470930SIngo Molnar	$(PERL_PATH) fix-texi.perl <$@++ >$@+ && \
25086470930SIngo Molnar	rm $@++ && \
25186470930SIngo Molnar	mv $@+ $@
25286470930SIngo Molnar
25386470930SIngo Molnaruser-manual.pdf: user-manual.xml
25486470930SIngo Molnar	$(QUIET_DBLATEX)$(RM) $@+ $@ && \
25586470930SIngo Molnar	$(DBLATEX) -o $@+ -p /etc/asciidoc/dblatex/asciidoc-dblatex.xsl -s /etc/asciidoc/dblatex/asciidoc-dblatex.sty $< && \
25686470930SIngo Molnar	mv $@+ $@
25786470930SIngo Molnar
25886470930SIngo Molnarperfman.texi: $(MAN_XML) cat-texi.perl
25986470930SIngo Molnar	$(QUIET_DB2TEXI)$(RM) $@+ $@ && \
26086470930SIngo Molnar	($(foreach xml,$(MAN_XML),$(DOCBOOK2X_TEXI) --encoding=UTF-8 \
26186470930SIngo Molnar		--to-stdout $(xml) &&) true) > $@++ && \
26286470930SIngo Molnar	$(PERL_PATH) cat-texi.perl $@ <$@++ >$@+ && \
26386470930SIngo Molnar	rm $@++ && \
26486470930SIngo Molnar	mv $@+ $@
26586470930SIngo Molnar
26686470930SIngo Molnarperfman.info: perfman.texi
26786470930SIngo Molnar	$(QUIET_MAKEINFO)$(MAKEINFO) --no-split --no-validate $*.texi
26886470930SIngo Molnar
26986470930SIngo Molnar$(patsubst %.txt,%.texi,$(MAN_TXT)): %.texi : %.xml
27086470930SIngo Molnar	$(QUIET_DB2TEXI)$(RM) $@+ $@ && \
27186470930SIngo Molnar	$(DOCBOOK2X_TEXI) --to-stdout $*.xml >$@+ && \
27286470930SIngo Molnar	mv $@+ $@
27386470930SIngo Molnar
27486470930SIngo Molnarhowto-index.txt: howto-index.sh $(wildcard howto/*.txt)
27586470930SIngo Molnar	$(QUIET_GEN)$(RM) $@+ $@ && \
27686470930SIngo Molnar	'$(SHELL_PATH_SQ)' ./howto-index.sh $(wildcard howto/*.txt) >$@+ && \
27786470930SIngo Molnar	mv $@+ $@
27886470930SIngo Molnar
27986470930SIngo Molnar$(patsubst %,%.html,$(ARTICLES)) : %.html : %.txt
28086470930SIngo Molnar	$(QUIET_ASCIIDOC)$(ASCIIDOC) -b xhtml11 $*.txt
28186470930SIngo Molnar
28286470930SIngo MolnarWEBDOC_DEST = /pub/software/tools/perf/docs
28386470930SIngo Molnar
28486470930SIngo Molnar$(patsubst %.txt,%.html,$(wildcard howto/*.txt)): %.html : %.txt
28586470930SIngo Molnar	$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
28686470930SIngo Molnar	sed -e '1,/^$$/d' $< | $(ASCIIDOC) -b xhtml11 - >$@+ && \
28786470930SIngo Molnar	mv $@+ $@
28886470930SIngo Molnar
28986470930SIngo Molnarinstall-webdoc : html
29086470930SIngo Molnar	'$(SHELL_PATH_SQ)' ./install-webdoc.sh $(WEBDOC_DEST)
29186470930SIngo Molnar
29286470930SIngo Molnarquick-install: quick-install-man
29386470930SIngo Molnar
29486470930SIngo Molnarquick-install-man:
29586470930SIngo Molnar	'$(SHELL_PATH_SQ)' ./install-doc-quick.sh $(DOC_REF) $(DESTDIR)$(mandir)
29686470930SIngo Molnar
29786470930SIngo Molnarquick-install-html:
29886470930SIngo Molnar	'$(SHELL_PATH_SQ)' ./install-doc-quick.sh $(HTML_REF) $(DESTDIR)$(htmldir)
29986470930SIngo Molnar
30086470930SIngo Molnar.PHONY: .FORCE-PERF-VERSION-FILE
301