-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Change the man page generation to asciidoc, because it's easier to use and has been more commonly used in related projects. Remove the current rst pages. Add 3 man pages to have a base for more additions: libperf.3 - overall description libperf-counting.7 - counting basics explained on simple example libperf-sampling.7 - sampling basics explained on simple example The plan is to add more man pages to cover the basic API. The build generates html and man pages: $ cd tools/lib/perf/Documentation $ make ASCIIDOC libperf.xml XMLTO libperf.3 ASCIIDOC libperf-counting.xml XMLTO libperf-counting.7 ASCIIDOC libperf-sampling.xml XMLTO libperf-sampling.7 ASCIIDOC libperf.html ASCIIDOC libperf-counting.html ASCIIDOC libperf-sampling.html Add the following install targets: install-man - man pages install-html - html version of man pages install-examples - examples mentioned in the man pages Signed-off-by: Jiri Olsa <jolsa@kernel.org> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Michael Petlan <mpetlan@redhat.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Link: http://lore.kernel.org/lkml/20191206210612.8676-3-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
- Loading branch information
Jiri Olsa
authored and
Arnaldo Carvalho de Melo
committed
Jan 6, 2020
1 parent
3ce311a
commit 81de3bf
Showing
14 changed files
with
1,197 additions
and
229 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,156 @@ | ||
all: | ||
rst2man man/libperf.rst > man/libperf.7 | ||
rst2pdf tutorial/tutorial.rst | ||
# SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) | ||
# Most of this file is copied from tools/perf/Documentation/Makefile | ||
|
||
include ../../../scripts/Makefile.include | ||
include ../../../scripts/utilities.mak | ||
|
||
MAN3_TXT = libperf.txt | ||
MAN7_TXT = libperf-counting.txt libperf-sampling.txt | ||
MAN_EX = examples/*.c | ||
|
||
MAN_TXT = $(MAN3_TXT) $(MAN7_TXT) | ||
|
||
_MAN_XML = $(patsubst %.txt,%.xml,$(MAN_TXT)) | ||
_MAN_HTML = $(patsubst %.txt,%.html,$(MAN_TXT)) | ||
_MAN_3 = $(patsubst %.txt,%.3,$(MAN3_TXT)) | ||
_MAN_7 = $(patsubst %.txt,%.7,$(MAN7_TXT)) | ||
|
||
MAN_XML = $(addprefix $(OUTPUT),$(_MAN_XML)) | ||
MAN_HTML = $(addprefix $(OUTPUT),$(_MAN_HTML)) | ||
MAN_3 = $(addprefix $(OUTPUT),$(_MAN_3)) | ||
MAN_7 = $(addprefix $(OUTPUT),$(_MAN_7)) | ||
MAN_X = $(MAN_3) $(MAN_7) | ||
|
||
# Make the path relative to DESTDIR, not prefix | ||
ifndef DESTDIR | ||
prefix ?=$(HOME) | ||
endif | ||
|
||
mandir ?= $(prefix)/share/man | ||
man3dir = $(mandir)/man3 | ||
man7dir = $(mandir)/man7 | ||
|
||
docdir ?= $(prefix)/share/doc/libperf | ||
htmldir = $(docdir)/html | ||
exdir = $(docdir)/examples | ||
|
||
ASCIIDOC = asciidoc | ||
ASCIIDOC_EXTRA = --unsafe -f asciidoc.conf | ||
ASCIIDOC_HTML = xhtml11 | ||
MANPAGE_XSL = manpage-normal.xsl | ||
XMLTO_EXTRA = | ||
XMLTO =xmlto | ||
|
||
INSTALL ?= install | ||
RM ?= rm -f | ||
|
||
# For asciidoc ... | ||
# -7.1.2, no extra settings are needed. | ||
# 8.0-, set ASCIIDOC8. | ||
# | ||
|
||
# For docbook-xsl ... | ||
# -1.68.1, set ASCIIDOC_NO_ROFF? (based on changelog from 1.73.0) | ||
# 1.69.0, no extra settings are needed? | ||
# 1.69.1-1.71.0, set DOCBOOK_SUPPRESS_SP? | ||
# 1.71.1, no extra settings are needed? | ||
# 1.72.0, set DOCBOOK_XSL_172. | ||
# 1.73.0-, set ASCIIDOC_NO_ROFF | ||
|
||
# If you had been using DOCBOOK_XSL_172 in an attempt to get rid | ||
# of 'the ".ft C" problem' in your generated manpages, and you | ||
# instead ended up with weird characters around callouts, try | ||
# using ASCIIDOC_NO_ROFF instead (it works fine with ASCIIDOC8). | ||
|
||
ifdef ASCIIDOC8 | ||
ASCIIDOC_EXTRA += -a asciidoc7compatible | ||
endif | ||
ifdef DOCBOOK_XSL_172 | ||
ASCIIDOC_EXTRA += -a libperf-asciidoc-no-roff | ||
MANPAGE_XSL = manpage-1.72.xsl | ||
else | ||
ifdef ASCIIDOC_NO_ROFF | ||
# docbook-xsl after 1.72 needs the regular XSL, but will not | ||
# pass-thru raw roff codes from asciidoc.conf, so turn them off. | ||
ASCIIDOC_EXTRA += -a libperf-asciidoc-no-roff | ||
endif | ||
endif | ||
ifdef MAN_BOLD_LITERAL | ||
XMLTO_EXTRA += -m manpage-bold-literal.xsl | ||
endif | ||
ifdef DOCBOOK_SUPPRESS_SP | ||
XMLTO_EXTRA += -m manpage-suppress-sp.xsl | ||
endif | ||
|
||
DESTDIR ?= | ||
DESTDIR_SQ = '$(subst ','\'',$(DESTDIR))' | ||
|
||
export DESTDIR DESTDIR_SQ | ||
|
||
# Please note that there is a minor bug in asciidoc. | ||
# The version after 6.0.3 _will_ include the patch found here: | ||
# http://marc.theaimsgroup.com/?l=libtraceevent&m=111558757202243&w=2 | ||
# | ||
# Until that version is released you may have to apply the patch | ||
# yourself - yes, all 6 characters of it! | ||
|
||
QUIET_SUBDIR0 = +$(MAKE) -C # space to separate -C and subdir | ||
QUIET_SUBDIR1 = | ||
|
||
ifneq ($(findstring $(MAKEFLAGS),w),w) | ||
PRINT_DIR = --no-print-directory | ||
else # "make -w" | ||
NO_SUBDIR = : | ||
endif | ||
|
||
ifneq ($(findstring $(MAKEFLAGS),s),s) | ||
ifneq ($(V),1) | ||
QUIET_ASCIIDOC = @echo ' ASCIIDOC '$@; | ||
QUIET_XMLTO = @echo ' XMLTO '$@; | ||
endif | ||
endif | ||
|
||
all: $(MAN_X) $(MAN_HTML) | ||
|
||
$(MAN_HTML) $(MAN_X): asciidoc.conf | ||
|
||
install-man: all | ||
$(call QUIET_INSTALL, man) \ | ||
$(INSTALL) -d -m 755 $(DESTDIR)$(man3dir); \ | ||
$(INSTALL) -m 644 $(MAN_3) $(DESTDIR)$(man3dir); \ | ||
$(INSTALL) -d -m 755 $(DESTDIR)$(man7dir); \ | ||
$(INSTALL) -m 644 $(MAN_7) $(DESTDIR)$(man7dir); | ||
|
||
install-html: | ||
$(call QUIET_INSTALL, html) \ | ||
$(INSTALL) -d -m 755 $(DESTDIR)$(htmldir); \ | ||
$(INSTALL) -m 644 $(MAN_HTML) $(DESTDIR)$(htmldir); \ | ||
|
||
install-examples: | ||
$(call QUIET_INSTALL, examples) \ | ||
$(INSTALL) -d -m 755 $(DESTDIR)$(exdir); \ | ||
$(INSTALL) -m 644 $(MAN_EX) $(DESTDIR)$(exdir); \ | ||
|
||
CLEAN_FILES = \ | ||
$(MAN_XML) $(addsuffix +,$(MAN_XML)) \ | ||
$(MAN_HTML) $(addsuffix +,$(MAN_HTML)) \ | ||
$(MAN_X) | ||
|
||
clean: | ||
rm -f man/libperf.7 | ||
rm -f tutorial/tutorial.pdf | ||
$(call QUIET_CLEAN, Documentation) $(RM) $(CLEAN_FILES) | ||
|
||
$(MAN_3): $(OUTPUT)%.3: %.xml | ||
$(QUIET_XMLTO)$(XMLTO) -o $(OUTPUT). -m $(MANPAGE_XSL) $(XMLTO_EXTRA) man $< | ||
|
||
$(MAN_7): $(OUTPUT)%.7: %.xml | ||
$(QUIET_XMLTO)$(XMLTO) -o $(OUTPUT). -m $(MANPAGE_XSL) $(XMLTO_EXTRA) man $< | ||
|
||
$(MAN_XML): $(OUTPUT)%.xml: %.txt | ||
$(QUIET_ASCIIDOC)$(ASCIIDOC) -b docbook -d manpage \ | ||
$(ASCIIDOC_EXTRA) -alibperf_version=$(EVENT_PARSE_VERSION) -o $@+ $< && \ | ||
mv $@+ $@ | ||
|
||
$(MAN_HTML): $(OUTPUT)%.html: %.txt | ||
$(QUIET_ASCIIDOC)$(ASCIIDOC) -b $(ASCIIDOC_HTML) -d manpage \ | ||
$(ASCIIDOC_EXTRA) -aperf_version=$(EVENT_PARSE_VERSION) -o $@+ $< && \ | ||
mv $@+ $@ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,120 @@ | ||
## linktep: macro | ||
# | ||
# Usage: linktep:command[manpage-section] | ||
# | ||
# Note, {0} is the manpage section, while {target} is the command. | ||
# | ||
# Show TEP link as: <command>(<section>); if section is defined, else just show | ||
# the command. | ||
|
||
[macros] | ||
(?su)[\\]?(?P<name>linktep):(?P<target>\S*?)\[(?P<attrlist>.*?)\]= | ||
|
||
[attributes] | ||
asterisk=* | ||
plus=+ | ||
caret=^ | ||
startsb=[ | ||
endsb=] | ||
tilde=~ | ||
|
||
ifdef::backend-docbook[] | ||
[linktep-inlinemacro] | ||
{0%{target}} | ||
{0#<citerefentry>} | ||
{0#<refentrytitle>{target}</refentrytitle><manvolnum>{0}</manvolnum>} | ||
{0#</citerefentry>} | ||
endif::backend-docbook[] | ||
|
||
ifdef::backend-docbook[] | ||
ifndef::tep-asciidoc-no-roff[] | ||
# "unbreak" docbook-xsl v1.68 for manpages. v1.69 works with or without this. | ||
# v1.72 breaks with this because it replaces dots not in roff requests. | ||
[listingblock] | ||
<example><title>{title}</title> | ||
<literallayout> | ||
ifdef::doctype-manpage[] | ||
.ft C | ||
endif::doctype-manpage[] | ||
| | ||
ifdef::doctype-manpage[] | ||
.ft | ||
endif::doctype-manpage[] | ||
</literallayout> | ||
{title#}</example> | ||
endif::tep-asciidoc-no-roff[] | ||
|
||
ifdef::tep-asciidoc-no-roff[] | ||
ifdef::doctype-manpage[] | ||
# The following two small workarounds insert a simple paragraph after screen | ||
[listingblock] | ||
<example><title>{title}</title> | ||
<literallayout> | ||
| | ||
</literallayout><simpara></simpara> | ||
{title#}</example> | ||
|
||
[verseblock] | ||
<formalpara{id? id="{id}"}><title>{title}</title><para> | ||
{title%}<literallayout{id? id="{id}"}> | ||
{title#}<literallayout> | ||
| | ||
</literallayout> | ||
{title#}</para></formalpara> | ||
{title%}<simpara></simpara> | ||
endif::doctype-manpage[] | ||
endif::tep-asciidoc-no-roff[] | ||
endif::backend-docbook[] | ||
|
||
ifdef::doctype-manpage[] | ||
ifdef::backend-docbook[] | ||
[header] | ||
template::[header-declarations] | ||
<refentry> | ||
<refmeta> | ||
<refentrytitle>{mantitle}</refentrytitle> | ||
<manvolnum>{manvolnum}</manvolnum> | ||
<refmiscinfo class="source">libperf</refmiscinfo> | ||
<refmiscinfo class="version">{libperf_version}</refmiscinfo> | ||
<refmiscinfo class="manual">libperf Manual</refmiscinfo> | ||
</refmeta> | ||
<refnamediv> | ||
<refname>{manname1}</refname> | ||
<refname>{manname2}</refname> | ||
<refname>{manname3}</refname> | ||
<refname>{manname4}</refname> | ||
<refname>{manname5}</refname> | ||
<refname>{manname6}</refname> | ||
<refname>{manname7}</refname> | ||
<refname>{manname8}</refname> | ||
<refname>{manname9}</refname> | ||
<refname>{manname10}</refname> | ||
<refname>{manname11}</refname> | ||
<refname>{manname12}</refname> | ||
<refname>{manname13}</refname> | ||
<refname>{manname14}</refname> | ||
<refname>{manname15}</refname> | ||
<refname>{manname16}</refname> | ||
<refname>{manname17}</refname> | ||
<refname>{manname18}</refname> | ||
<refname>{manname19}</refname> | ||
<refname>{manname20}</refname> | ||
<refname>{manname21}</refname> | ||
<refname>{manname22}</refname> | ||
<refname>{manname23}</refname> | ||
<refname>{manname24}</refname> | ||
<refname>{manname25}</refname> | ||
<refname>{manname26}</refname> | ||
<refname>{manname27}</refname> | ||
<refname>{manname28}</refname> | ||
<refname>{manname29}</refname> | ||
<refname>{manname30}</refname> | ||
<refpurpose>{manpurpose}</refpurpose> | ||
</refnamediv> | ||
endif::backend-docbook[] | ||
endif::doctype-manpage[] | ||
|
||
ifdef::backend-xhtml11[] | ||
[linktep-inlinemacro] | ||
<a href="{target}.html">{target}{0?({0})}</a> | ||
endif::backend-xhtml11[] |
Oops, something went wrong.