xref: /OK3568_Linux_fs/kernel/tools/lib/traceevent/Documentation/Makefile (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyuninclude ../../../scripts/Makefile.include
2*4882a593Smuzhiyuninclude ../../../scripts/utilities.mak
3*4882a593Smuzhiyun
4*4882a593Smuzhiyun# This Makefile and manpage XSL files were taken from tools/perf/Documentation
5*4882a593Smuzhiyun# and modified for libtraceevent.
6*4882a593Smuzhiyun
7*4882a593SmuzhiyunMAN3_TXT= \
8*4882a593Smuzhiyun	$(wildcard libtraceevent-*.txt) \
9*4882a593Smuzhiyun	libtraceevent.txt
10*4882a593Smuzhiyun
11*4882a593SmuzhiyunMAN_TXT = $(MAN3_TXT)
12*4882a593Smuzhiyun_MAN_XML=$(patsubst %.txt,%.xml,$(MAN_TXT))
13*4882a593Smuzhiyun_MAN_HTML=$(patsubst %.txt,%.html,$(MAN_TXT))
14*4882a593Smuzhiyun_DOC_MAN3=$(patsubst %.txt,%.3,$(MAN3_TXT))
15*4882a593Smuzhiyun
16*4882a593SmuzhiyunMAN_XML=$(addprefix $(OUTPUT),$(_MAN_XML))
17*4882a593SmuzhiyunMAN_HTML=$(addprefix $(OUTPUT),$(_MAN_HTML))
18*4882a593SmuzhiyunDOC_MAN3=$(addprefix $(OUTPUT),$(_DOC_MAN3))
19*4882a593Smuzhiyun
20*4882a593Smuzhiyun# Make the path relative to DESTDIR, not prefix
21*4882a593Smuzhiyunifndef DESTDIR
22*4882a593Smuzhiyunprefix?=$(HOME)
23*4882a593Smuzhiyunendif
24*4882a593Smuzhiyunbindir?=$(prefix)/bin
25*4882a593Smuzhiyunhtmldir?=$(prefix)/share/doc/libtraceevent-doc
26*4882a593Smuzhiyunpdfdir?=$(prefix)/share/doc/libtraceevent-doc
27*4882a593Smuzhiyunmandir?=$(prefix)/share/man
28*4882a593Smuzhiyunman3dir=$(mandir)/man3
29*4882a593Smuzhiyun
30*4882a593SmuzhiyunASCIIDOC=asciidoc
31*4882a593SmuzhiyunASCIIDOC_EXTRA = --unsafe -f asciidoc.conf
32*4882a593SmuzhiyunASCIIDOC_HTML = xhtml11
33*4882a593SmuzhiyunMANPAGE_XSL = manpage-normal.xsl
34*4882a593SmuzhiyunXMLTO_EXTRA =
35*4882a593SmuzhiyunINSTALL?=install
36*4882a593SmuzhiyunRM ?= rm -f
37*4882a593Smuzhiyun
38*4882a593Smuzhiyunifdef USE_ASCIIDOCTOR
39*4882a593SmuzhiyunASCIIDOC = asciidoctor
40*4882a593SmuzhiyunASCIIDOC_EXTRA = -a compat-mode
41*4882a593SmuzhiyunASCIIDOC_EXTRA += -I. -rasciidoctor-extensions
42*4882a593SmuzhiyunASCIIDOC_EXTRA += -a mansource="libtraceevent" -a manmanual="libtraceevent Manual"
43*4882a593SmuzhiyunASCIIDOC_HTML = xhtml5
44*4882a593Smuzhiyunendif
45*4882a593Smuzhiyun
46*4882a593SmuzhiyunXMLTO=xmlto
47*4882a593Smuzhiyun
48*4882a593Smuzhiyun_tmp_tool_path := $(call get-executable,$(ASCIIDOC))
49*4882a593Smuzhiyunifeq ($(_tmp_tool_path),)
50*4882a593Smuzhiyun	missing_tools = $(ASCIIDOC)
51*4882a593Smuzhiyunendif
52*4882a593Smuzhiyun
53*4882a593Smuzhiyunifndef USE_ASCIIDOCTOR
54*4882a593Smuzhiyun_tmp_tool_path := $(call get-executable,$(XMLTO))
55*4882a593Smuzhiyunifeq ($(_tmp_tool_path),)
56*4882a593Smuzhiyun	missing_tools += $(XMLTO)
57*4882a593Smuzhiyunendif
58*4882a593Smuzhiyunendif
59*4882a593Smuzhiyun
60*4882a593Smuzhiyun#
61*4882a593Smuzhiyun# For asciidoc ...
62*4882a593Smuzhiyun#	-7.1.2,	no extra settings are needed.
63*4882a593Smuzhiyun#	8.0-,	set ASCIIDOC8.
64*4882a593Smuzhiyun#
65*4882a593Smuzhiyun
66*4882a593Smuzhiyun#
67*4882a593Smuzhiyun# For docbook-xsl ...
68*4882a593Smuzhiyun#	-1.68.1,	set ASCIIDOC_NO_ROFF? (based on changelog from 1.73.0)
69*4882a593Smuzhiyun#	1.69.0,		no extra settings are needed?
70*4882a593Smuzhiyun#	1.69.1-1.71.0,	set DOCBOOK_SUPPRESS_SP?
71*4882a593Smuzhiyun#	1.71.1,		no extra settings are needed?
72*4882a593Smuzhiyun#	1.72.0,		set DOCBOOK_XSL_172.
73*4882a593Smuzhiyun#	1.73.0-,	set ASCIIDOC_NO_ROFF
74*4882a593Smuzhiyun#
75*4882a593Smuzhiyun
76*4882a593Smuzhiyun#
77*4882a593Smuzhiyun# If you had been using DOCBOOK_XSL_172 in an attempt to get rid
78*4882a593Smuzhiyun# of 'the ".ft C" problem' in your generated manpages, and you
79*4882a593Smuzhiyun# instead ended up with weird characters around callouts, try
80*4882a593Smuzhiyun# using ASCIIDOC_NO_ROFF instead (it works fine with ASCIIDOC8).
81*4882a593Smuzhiyun#
82*4882a593Smuzhiyun
83*4882a593Smuzhiyunifdef ASCIIDOC8
84*4882a593SmuzhiyunASCIIDOC_EXTRA += -a asciidoc7compatible
85*4882a593Smuzhiyunendif
86*4882a593Smuzhiyunifdef DOCBOOK_XSL_172
87*4882a593SmuzhiyunASCIIDOC_EXTRA += -a libtraceevent-asciidoc-no-roff
88*4882a593SmuzhiyunMANPAGE_XSL = manpage-1.72.xsl
89*4882a593Smuzhiyunelse
90*4882a593Smuzhiyun	ifdef ASCIIDOC_NO_ROFF
91*4882a593Smuzhiyun	# docbook-xsl after 1.72 needs the regular XSL, but will not
92*4882a593Smuzhiyun	# pass-thru raw roff codes from asciidoc.conf, so turn them off.
93*4882a593Smuzhiyun	ASCIIDOC_EXTRA += -a libtraceevent-asciidoc-no-roff
94*4882a593Smuzhiyun	endif
95*4882a593Smuzhiyunendif
96*4882a593Smuzhiyunifdef MAN_BOLD_LITERAL
97*4882a593SmuzhiyunXMLTO_EXTRA += -m manpage-bold-literal.xsl
98*4882a593Smuzhiyunendif
99*4882a593Smuzhiyunifdef DOCBOOK_SUPPRESS_SP
100*4882a593SmuzhiyunXMLTO_EXTRA += -m manpage-suppress-sp.xsl
101*4882a593Smuzhiyunendif
102*4882a593Smuzhiyun
103*4882a593SmuzhiyunSHELL_PATH ?= $(SHELL)
104*4882a593Smuzhiyun# Shell quote;
105*4882a593SmuzhiyunSHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
106*4882a593Smuzhiyun
107*4882a593SmuzhiyunDESTDIR ?=
108*4882a593SmuzhiyunDESTDIR_SQ = '$(subst ','\'',$(DESTDIR))'
109*4882a593Smuzhiyun
110*4882a593Smuzhiyunexport DESTDIR DESTDIR_SQ
111*4882a593Smuzhiyun
112*4882a593Smuzhiyun#
113*4882a593Smuzhiyun# Please note that there is a minor bug in asciidoc.
114*4882a593Smuzhiyun# The version after 6.0.3 _will_ include the patch found here:
115*4882a593Smuzhiyun#   http://marc.theaimsgroup.com/?l=libtraceevent&m=111558757202243&w=2
116*4882a593Smuzhiyun#
117*4882a593Smuzhiyun# Until that version is released you may have to apply the patch
118*4882a593Smuzhiyun# yourself - yes, all 6 characters of it!
119*4882a593Smuzhiyun#
120*4882a593SmuzhiyunQUIET_SUBDIR0  = +$(MAKE) -C # space to separate -C and subdir
121*4882a593SmuzhiyunQUIET_SUBDIR1  =
122*4882a593Smuzhiyun
123*4882a593Smuzhiyunifneq ($(findstring $(MAKEFLAGS),w),w)
124*4882a593SmuzhiyunPRINT_DIR = --no-print-directory
125*4882a593Smuzhiyunelse # "make -w"
126*4882a593SmuzhiyunNO_SUBDIR = :
127*4882a593Smuzhiyunendif
128*4882a593Smuzhiyun
129*4882a593Smuzhiyunifneq ($(findstring $(MAKEFLAGS),s),s)
130*4882a593Smuzhiyunifneq ($(V),1)
131*4882a593Smuzhiyun	QUIET_ASCIIDOC	= @echo '  ASCIIDOC '$@;
132*4882a593Smuzhiyun	QUIET_XMLTO	= @echo '  XMLTO    '$@;
133*4882a593Smuzhiyun	QUIET_SUBDIR0	= +@subdir=
134*4882a593Smuzhiyun	QUIET_SUBDIR1	= ;$(NO_SUBDIR) \
135*4882a593Smuzhiyun			   echo '  SUBDIR   ' $$subdir; \
136*4882a593Smuzhiyun			  $(MAKE) $(PRINT_DIR) -C $$subdir
137*4882a593Smuzhiyun	export V
138*4882a593Smuzhiyunendif
139*4882a593Smuzhiyunendif
140*4882a593Smuzhiyun
141*4882a593Smuzhiyunall: html man
142*4882a593Smuzhiyun
143*4882a593Smuzhiyunman: man3
144*4882a593Smuzhiyunman3: $(DOC_MAN3)
145*4882a593Smuzhiyun
146*4882a593Smuzhiyunhtml: $(MAN_HTML)
147*4882a593Smuzhiyun
148*4882a593Smuzhiyun$(MAN_HTML) $(DOC_MAN3): asciidoc.conf
149*4882a593Smuzhiyun
150*4882a593Smuzhiyuninstall: install-man
151*4882a593Smuzhiyun
152*4882a593Smuzhiyuncheck-man-tools:
153*4882a593Smuzhiyunifdef missing_tools
154*4882a593Smuzhiyun	$(error "You need to install $(missing_tools) for man pages")
155*4882a593Smuzhiyunendif
156*4882a593Smuzhiyun
157*4882a593Smuzhiyundo-install-man: man
158*4882a593Smuzhiyun	$(call QUIET_INSTALL, Documentation-man) \
159*4882a593Smuzhiyun		$(INSTALL) -d -m 755 $(DESTDIR)$(man3dir); \
160*4882a593Smuzhiyun		$(INSTALL) -m 644 $(DOC_MAN3) $(DESTDIR)$(man3dir);
161*4882a593Smuzhiyun
162*4882a593Smuzhiyuninstall-man: check-man-tools man do-install-man
163*4882a593Smuzhiyun
164*4882a593Smuzhiyununinstall: uninstall-man
165*4882a593Smuzhiyun
166*4882a593Smuzhiyununinstall-man:
167*4882a593Smuzhiyun	$(call QUIET_UNINST, Documentation-man) \
168*4882a593Smuzhiyun		$(Q)$(RM) $(addprefix $(DESTDIR)$(man3dir)/,$(DOC_MAN3))
169*4882a593Smuzhiyun
170*4882a593Smuzhiyun
171*4882a593Smuzhiyunifdef missing_tools
172*4882a593Smuzhiyun  DO_INSTALL_MAN = $(warning Please install $(missing_tools) to have the man pages installed)
173*4882a593Smuzhiyunelse
174*4882a593Smuzhiyun  DO_INSTALL_MAN = do-install-man
175*4882a593Smuzhiyunendif
176*4882a593Smuzhiyun
177*4882a593SmuzhiyunCLEAN_FILES =					\
178*4882a593Smuzhiyun	$(MAN_XML) $(addsuffix +,$(MAN_XML))	\
179*4882a593Smuzhiyun	$(MAN_HTML) $(addsuffix +,$(MAN_HTML))	\
180*4882a593Smuzhiyun	$(DOC_MAN3) *.3
181*4882a593Smuzhiyun
182*4882a593Smuzhiyunclean:
183*4882a593Smuzhiyun	$(call QUIET_CLEAN, Documentation) $(RM) $(CLEAN_FILES)
184*4882a593Smuzhiyun
185*4882a593Smuzhiyunifdef USE_ASCIIDOCTOR
186*4882a593Smuzhiyun$(OUTPUT)%.3 : $(OUTPUT)%.txt
187*4882a593Smuzhiyun	$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
188*4882a593Smuzhiyun	$(ASCIIDOC) -b manpage -d manpage \
189*4882a593Smuzhiyun		$(ASCIIDOC_EXTRA) -alibtraceevent_version=$(EVENT_PARSE_VERSION) -o $@+ $< && \
190*4882a593Smuzhiyun	mv $@+ $@
191*4882a593Smuzhiyunendif
192*4882a593Smuzhiyun
193*4882a593Smuzhiyun$(OUTPUT)%.3 : $(OUTPUT)%.xml
194*4882a593Smuzhiyun	$(QUIET_XMLTO)$(RM) $@ && \
195*4882a593Smuzhiyun	$(XMLTO) -o $(OUTPUT). -m $(MANPAGE_XSL) $(XMLTO_EXTRA) man $<
196*4882a593Smuzhiyun
197*4882a593Smuzhiyun$(OUTPUT)%.xml : %.txt
198*4882a593Smuzhiyun	$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
199*4882a593Smuzhiyun	$(ASCIIDOC) -b docbook -d manpage \
200*4882a593Smuzhiyun		$(ASCIIDOC_EXTRA) -alibtraceevent_version=$(EVENT_PARSE_VERSION) -o $@+ $< && \
201*4882a593Smuzhiyun	mv $@+ $@
202*4882a593Smuzhiyun
203*4882a593Smuzhiyun$(MAN_HTML): $(OUTPUT)%.html : %.txt
204*4882a593Smuzhiyun	$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
205*4882a593Smuzhiyun	$(ASCIIDOC) -b $(ASCIIDOC_HTML) -d manpage \
206*4882a593Smuzhiyun		$(ASCIIDOC_EXTRA) -aperf_version=$(EVENT_PARSE_VERSION) -o $@+ $< && \
207*4882a593Smuzhiyun	mv $@+ $@
208