1*4882a593Smuzhiyun# SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) 2*4882a593Smuzhiyun# Most of this file is copied from tools/perf/Documentation/Makefile 3*4882a593Smuzhiyun 4*4882a593Smuzhiyuninclude ../../../scripts/Makefile.include 5*4882a593Smuzhiyuninclude ../../../scripts/utilities.mak 6*4882a593Smuzhiyun 7*4882a593SmuzhiyunMAN3_TXT = libperf.txt 8*4882a593SmuzhiyunMAN7_TXT = libperf-counting.txt libperf-sampling.txt 9*4882a593SmuzhiyunMAN_EX = examples/*.c 10*4882a593Smuzhiyun 11*4882a593SmuzhiyunMAN_TXT = $(MAN3_TXT) $(MAN7_TXT) 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun_MAN_XML = $(patsubst %.txt,%.xml,$(MAN_TXT)) 14*4882a593Smuzhiyun_MAN_HTML = $(patsubst %.txt,%.html,$(MAN_TXT)) 15*4882a593Smuzhiyun_MAN_3 = $(patsubst %.txt,%.3,$(MAN3_TXT)) 16*4882a593Smuzhiyun_MAN_7 = $(patsubst %.txt,%.7,$(MAN7_TXT)) 17*4882a593Smuzhiyun 18*4882a593SmuzhiyunMAN_XML = $(addprefix $(OUTPUT),$(_MAN_XML)) 19*4882a593SmuzhiyunMAN_HTML = $(addprefix $(OUTPUT),$(_MAN_HTML)) 20*4882a593SmuzhiyunMAN_3 = $(addprefix $(OUTPUT),$(_MAN_3)) 21*4882a593SmuzhiyunMAN_7 = $(addprefix $(OUTPUT),$(_MAN_7)) 22*4882a593SmuzhiyunMAN_X = $(MAN_3) $(MAN_7) 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun# Make the path relative to DESTDIR, not prefix 25*4882a593Smuzhiyunifndef DESTDIR 26*4882a593Smuzhiyun prefix ?=$(HOME) 27*4882a593Smuzhiyunendif 28*4882a593Smuzhiyun 29*4882a593Smuzhiyunmandir ?= $(prefix)/share/man 30*4882a593Smuzhiyunman3dir = $(mandir)/man3 31*4882a593Smuzhiyunman7dir = $(mandir)/man7 32*4882a593Smuzhiyun 33*4882a593Smuzhiyundocdir ?= $(prefix)/share/doc/libperf 34*4882a593Smuzhiyunhtmldir = $(docdir)/html 35*4882a593Smuzhiyunexdir = $(docdir)/examples 36*4882a593Smuzhiyun 37*4882a593SmuzhiyunASCIIDOC = asciidoc 38*4882a593SmuzhiyunASCIIDOC_EXTRA = --unsafe -f asciidoc.conf 39*4882a593SmuzhiyunASCIIDOC_HTML = xhtml11 40*4882a593SmuzhiyunMANPAGE_XSL = manpage-normal.xsl 41*4882a593SmuzhiyunXMLTO_EXTRA = 42*4882a593SmuzhiyunXMLTO =xmlto 43*4882a593Smuzhiyun 44*4882a593SmuzhiyunINSTALL ?= install 45*4882a593SmuzhiyunRM ?= rm -f 46*4882a593Smuzhiyun 47*4882a593Smuzhiyun# For asciidoc ... 48*4882a593Smuzhiyun# -7.1.2, no extra settings are needed. 49*4882a593Smuzhiyun# 8.0-, set ASCIIDOC8. 50*4882a593Smuzhiyun# 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun# For docbook-xsl ... 53*4882a593Smuzhiyun# -1.68.1, set ASCIIDOC_NO_ROFF? (based on changelog from 1.73.0) 54*4882a593Smuzhiyun# 1.69.0, no extra settings are needed? 55*4882a593Smuzhiyun# 1.69.1-1.71.0, set DOCBOOK_SUPPRESS_SP? 56*4882a593Smuzhiyun# 1.71.1, no extra settings are needed? 57*4882a593Smuzhiyun# 1.72.0, set DOCBOOK_XSL_172. 58*4882a593Smuzhiyun# 1.73.0-, set ASCIIDOC_NO_ROFF 59*4882a593Smuzhiyun 60*4882a593Smuzhiyun# If you had been using DOCBOOK_XSL_172 in an attempt to get rid 61*4882a593Smuzhiyun# of 'the ".ft C" problem' in your generated manpages, and you 62*4882a593Smuzhiyun# instead ended up with weird characters around callouts, try 63*4882a593Smuzhiyun# using ASCIIDOC_NO_ROFF instead (it works fine with ASCIIDOC8). 64*4882a593Smuzhiyun 65*4882a593Smuzhiyunifdef ASCIIDOC8 66*4882a593Smuzhiyun ASCIIDOC_EXTRA += -a asciidoc7compatible 67*4882a593Smuzhiyunendif 68*4882a593Smuzhiyunifdef DOCBOOK_XSL_172 69*4882a593Smuzhiyun ASCIIDOC_EXTRA += -a libperf-asciidoc-no-roff 70*4882a593Smuzhiyun MANPAGE_XSL = manpage-1.72.xsl 71*4882a593Smuzhiyunelse 72*4882a593Smuzhiyun ifdef ASCIIDOC_NO_ROFF 73*4882a593Smuzhiyun # docbook-xsl after 1.72 needs the regular XSL, but will not 74*4882a593Smuzhiyun # pass-thru raw roff codes from asciidoc.conf, so turn them off. 75*4882a593Smuzhiyun ASCIIDOC_EXTRA += -a libperf-asciidoc-no-roff 76*4882a593Smuzhiyun endif 77*4882a593Smuzhiyunendif 78*4882a593Smuzhiyunifdef MAN_BOLD_LITERAL 79*4882a593Smuzhiyun XMLTO_EXTRA += -m manpage-bold-literal.xsl 80*4882a593Smuzhiyunendif 81*4882a593Smuzhiyunifdef DOCBOOK_SUPPRESS_SP 82*4882a593Smuzhiyun XMLTO_EXTRA += -m manpage-suppress-sp.xsl 83*4882a593Smuzhiyunendif 84*4882a593Smuzhiyun 85*4882a593SmuzhiyunDESTDIR ?= 86*4882a593SmuzhiyunDESTDIR_SQ = '$(subst ','\'',$(DESTDIR))' 87*4882a593Smuzhiyun 88*4882a593Smuzhiyunexport DESTDIR DESTDIR_SQ 89*4882a593Smuzhiyun 90*4882a593Smuzhiyun# Please note that there is a minor bug in asciidoc. 91*4882a593Smuzhiyun# The version after 6.0.3 _will_ include the patch found here: 92*4882a593Smuzhiyun# http://marc.theaimsgroup.com/?l=libtraceevent&m=111558757202243&w=2 93*4882a593Smuzhiyun# 94*4882a593Smuzhiyun# Until that version is released you may have to apply the patch 95*4882a593Smuzhiyun# yourself - yes, all 6 characters of it! 96*4882a593Smuzhiyun 97*4882a593SmuzhiyunQUIET_SUBDIR0 = +$(MAKE) -C # space to separate -C and subdir 98*4882a593SmuzhiyunQUIET_SUBDIR1 = 99*4882a593Smuzhiyun 100*4882a593Smuzhiyunifneq ($(findstring $(MAKEFLAGS),w),w) 101*4882a593Smuzhiyun PRINT_DIR = --no-print-directory 102*4882a593Smuzhiyunelse # "make -w" 103*4882a593Smuzhiyun NO_SUBDIR = : 104*4882a593Smuzhiyunendif 105*4882a593Smuzhiyun 106*4882a593Smuzhiyunifneq ($(findstring $(MAKEFLAGS),s),s) 107*4882a593Smuzhiyun ifneq ($(V),1) 108*4882a593Smuzhiyun QUIET_ASCIIDOC = @echo ' ASCIIDOC '$@; 109*4882a593Smuzhiyun QUIET_XMLTO = @echo ' XMLTO '$@; 110*4882a593Smuzhiyun endif 111*4882a593Smuzhiyunendif 112*4882a593Smuzhiyun 113*4882a593Smuzhiyunall: $(MAN_X) $(MAN_HTML) 114*4882a593Smuzhiyun 115*4882a593Smuzhiyun$(MAN_HTML) $(MAN_X): asciidoc.conf 116*4882a593Smuzhiyun 117*4882a593Smuzhiyuninstall-man: all 118*4882a593Smuzhiyun $(call QUIET_INSTALL, man) \ 119*4882a593Smuzhiyun $(INSTALL) -d -m 755 $(DESTDIR)$(man3dir); \ 120*4882a593Smuzhiyun $(INSTALL) -m 644 $(MAN_3) $(DESTDIR)$(man3dir); \ 121*4882a593Smuzhiyun $(INSTALL) -d -m 755 $(DESTDIR)$(man7dir); \ 122*4882a593Smuzhiyun $(INSTALL) -m 644 $(MAN_7) $(DESTDIR)$(man7dir); 123*4882a593Smuzhiyun 124*4882a593Smuzhiyuninstall-html: 125*4882a593Smuzhiyun $(call QUIET_INSTALL, html) \ 126*4882a593Smuzhiyun $(INSTALL) -d -m 755 $(DESTDIR)$(htmldir); \ 127*4882a593Smuzhiyun $(INSTALL) -m 644 $(MAN_HTML) $(DESTDIR)$(htmldir); \ 128*4882a593Smuzhiyun 129*4882a593Smuzhiyuninstall-examples: 130*4882a593Smuzhiyun $(call QUIET_INSTALL, examples) \ 131*4882a593Smuzhiyun $(INSTALL) -d -m 755 $(DESTDIR)$(exdir); \ 132*4882a593Smuzhiyun $(INSTALL) -m 644 $(MAN_EX) $(DESTDIR)$(exdir); \ 133*4882a593Smuzhiyun 134*4882a593SmuzhiyunCLEAN_FILES = \ 135*4882a593Smuzhiyun $(MAN_XML) $(addsuffix +,$(MAN_XML)) \ 136*4882a593Smuzhiyun $(MAN_HTML) $(addsuffix +,$(MAN_HTML)) \ 137*4882a593Smuzhiyun $(MAN_X) 138*4882a593Smuzhiyun 139*4882a593Smuzhiyunclean: 140*4882a593Smuzhiyun $(call QUIET_CLEAN, Documentation) $(RM) $(CLEAN_FILES) 141*4882a593Smuzhiyun 142*4882a593Smuzhiyun$(MAN_3): $(OUTPUT)%.3: %.xml 143*4882a593Smuzhiyun $(QUIET_XMLTO)$(XMLTO) -o $(OUTPUT). -m $(MANPAGE_XSL) $(XMLTO_EXTRA) man $< 144*4882a593Smuzhiyun 145*4882a593Smuzhiyun$(MAN_7): $(OUTPUT)%.7: %.xml 146*4882a593Smuzhiyun $(QUIET_XMLTO)$(XMLTO) -o $(OUTPUT). -m $(MANPAGE_XSL) $(XMLTO_EXTRA) man $< 147*4882a593Smuzhiyun 148*4882a593Smuzhiyun$(MAN_XML): $(OUTPUT)%.xml: %.txt 149*4882a593Smuzhiyun $(QUIET_ASCIIDOC)$(ASCIIDOC) -b docbook -d manpage \ 150*4882a593Smuzhiyun $(ASCIIDOC_EXTRA) -alibperf_version=$(EVENT_PARSE_VERSION) -o $@+ $< && \ 151*4882a593Smuzhiyun mv $@+ $@ 152*4882a593Smuzhiyun 153*4882a593Smuzhiyun$(MAN_HTML): $(OUTPUT)%.html: %.txt 154*4882a593Smuzhiyun $(QUIET_ASCIIDOC)$(ASCIIDOC) -b $(ASCIIDOC_HTML) -d manpage \ 155*4882a593Smuzhiyun $(ASCIIDOC_EXTRA) -aperf_version=$(EVENT_PARSE_VERSION) -o $@+ $< && \ 156*4882a593Smuzhiyun mv $@+ $@ 157