0001 include ../../../scripts/Makefile.include
0002 include ../../../scripts/utilities.mak
0003
0004
0005
0006
0007 MAN3_TXT= \
0008 $(wildcard libtraceevent-*.txt) \
0009 libtraceevent.txt
0010
0011 MAN_TXT = $(MAN3_TXT)
0012 _MAN_XML=$(patsubst %.txt,%.xml,$(MAN_TXT))
0013 _MAN_HTML=$(patsubst %.txt,%.html,$(MAN_TXT))
0014 _DOC_MAN3=$(patsubst %.txt,%.3,$(MAN3_TXT))
0015
0016 MAN_XML=$(addprefix $(OUTPUT),$(_MAN_XML))
0017 MAN_HTML=$(addprefix $(OUTPUT),$(_MAN_HTML))
0018 DOC_MAN3=$(addprefix $(OUTPUT),$(_DOC_MAN3))
0019
0020
0021 ifndef DESTDIR
0022 prefix?=$(HOME)
0023 endif
0024 bindir?=$(prefix)/bin
0025 htmldir?=$(prefix)/share/doc/libtraceevent-doc
0026 pdfdir?=$(prefix)/share/doc/libtraceevent-doc
0027 mandir?=$(prefix)/share/man
0028 man3dir=$(mandir)/man3
0029
0030 ASCIIDOC=asciidoc
0031 ASCIIDOC_EXTRA = --unsafe -f asciidoc.conf
0032 ASCIIDOC_HTML = xhtml11
0033 MANPAGE_XSL = manpage-normal.xsl
0034 XMLTO_EXTRA =
0035 INSTALL?=install
0036 RM ?= rm -f
0037
0038 ifdef USE_ASCIIDOCTOR
0039 ASCIIDOC = asciidoctor
0040 ASCIIDOC_EXTRA = -a compat-mode
0041 ASCIIDOC_EXTRA += -I. -rasciidoctor-extensions
0042 ASCIIDOC_EXTRA += -a mansource="libtraceevent" -a manmanual="libtraceevent Manual"
0043 ASCIIDOC_HTML = xhtml5
0044 endif
0045
0046 XMLTO=xmlto
0047
0048 _tmp_tool_path := $(call get-executable,$(ASCIIDOC))
0049 ifeq ($(_tmp_tool_path),)
0050 missing_tools = $(ASCIIDOC)
0051 endif
0052
0053 ifndef USE_ASCIIDOCTOR
0054 _tmp_tool_path := $(call get-executable,$(XMLTO))
0055 ifeq ($(_tmp_tool_path),)
0056 missing_tools += $(XMLTO)
0057 endif
0058 endif
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073
0074
0075
0076
0077
0078
0079
0080
0081
0082
0083 ifdef ASCIIDOC8
0084 ASCIIDOC_EXTRA += -a asciidoc7compatible
0085 endif
0086 ifdef DOCBOOK_XSL_172
0087 ASCIIDOC_EXTRA += -a libtraceevent-asciidoc-no-roff
0088 MANPAGE_XSL = manpage-1.72.xsl
0089 else
0090 ifdef ASCIIDOC_NO_ROFF
0091
0092
0093 ASCIIDOC_EXTRA += -a libtraceevent-asciidoc-no-roff
0094 endif
0095 endif
0096 ifdef MAN_BOLD_LITERAL
0097 XMLTO_EXTRA += -m manpage-bold-literal.xsl
0098 endif
0099 ifdef DOCBOOK_SUPPRESS_SP
0100 XMLTO_EXTRA += -m manpage-suppress-sp.xsl
0101 endif
0102
0103 SHELL_PATH ?= $(SHELL)
0104
0105 SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
0106
0107 DESTDIR ?=
0108 DESTDIR_SQ = '$(subst ','\'',$(DESTDIR))'
0109
0110 export DESTDIR DESTDIR_SQ
0111
0112
0113
0114
0115
0116
0117
0118
0119
0120 QUIET_SUBDIR0 = +$(MAKE) -C
0121 QUIET_SUBDIR1 =
0122
0123 ifneq ($(findstring $(MAKEFLAGS),w),w)
0124 PRINT_DIR = --no-print-directory
0125 else
0126 NO_SUBDIR = :
0127 endif
0128
0129 ifneq ($(findstring $(MAKEFLAGS),s),s)
0130 ifneq ($(V),1)
0131 QUIET_ASCIIDOC = @echo ' ASCIIDOC '$@;
0132 QUIET_XMLTO = @echo ' XMLTO '$@;
0133 QUIET_SUBDIR0 = +@subdir=
0134 QUIET_SUBDIR1 = ;$(NO_SUBDIR) \
0135 echo ' SUBDIR ' $$subdir; \
0136 $(MAKE) $(PRINT_DIR) -C $$subdir
0137 export V
0138 endif
0139 endif
0140
0141 all: html man
0142
0143 man: man3
0144 man3: $(DOC_MAN3)
0145
0146 html: $(MAN_HTML)
0147
0148 $(MAN_HTML) $(DOC_MAN3): asciidoc.conf
0149
0150 install: install-man
0151
0152 check-man-tools:
0153 ifdef missing_tools
0154 $(error "You need to install $(missing_tools) for man pages")
0155 endif
0156
0157 do-install-man: man
0158 $(call QUIET_INSTALL, Documentation-man) \
0159 $(INSTALL) -d -m 755 $(DESTDIR)$(man3dir); \
0160 $(INSTALL) -m 644 $(DOC_MAN3) $(DESTDIR)$(man3dir);
0161
0162 install-man: check-man-tools man do-install-man
0163
0164 uninstall: uninstall-man
0165
0166 uninstall-man:
0167 $(call QUIET_UNINST, Documentation-man) \
0168 $(Q)$(RM) $(addprefix $(DESTDIR)$(man3dir)/,$(DOC_MAN3))
0169
0170
0171 ifdef missing_tools
0172 DO_INSTALL_MAN = $(warning Please install $(missing_tools) to have the man pages installed)
0173 else
0174 DO_INSTALL_MAN = do-install-man
0175 endif
0176
0177 CLEAN_FILES = \
0178 $(MAN_XML) $(addsuffix +,$(MAN_XML)) \
0179 $(MAN_HTML) $(addsuffix +,$(MAN_HTML)) \
0180 $(DOC_MAN3) *.3
0181
0182 clean:
0183 $(call QUIET_CLEAN, Documentation) $(RM) $(CLEAN_FILES)
0184
0185 ifdef USE_ASCIIDOCTOR
0186 $(OUTPUT)%.3 : $(OUTPUT)%.txt
0187 $(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
0188 $(ASCIIDOC) -b manpage -d manpage \
0189 $(ASCIIDOC_EXTRA) -alibtraceevent_version=$(EVENT_PARSE_VERSION) -o $@+ $< && \
0190 mv $@+ $@
0191 endif
0192
0193 $(OUTPUT)%.3 : $(OUTPUT)%.xml
0194 $(QUIET_XMLTO)$(RM) $@ && \
0195 $(XMLTO) -o $(OUTPUT). -m $(MANPAGE_XSL) $(XMLTO_EXTRA) man $<
0196
0197 $(OUTPUT)%.xml : %.txt
0198 $(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
0199 $(ASCIIDOC) -b docbook -d manpage \
0200 $(ASCIIDOC_EXTRA) -alibtraceevent_version=$(EVENT_PARSE_VERSION) -o $@+ $< && \
0201 mv $@+ $@
0202
0203 $(MAN_HTML): $(OUTPUT)%.html : %.txt
0204 $(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
0205 $(ASCIIDOC) -b $(ASCIIDOC_HTML) -d manpage \
0206 $(ASCIIDOC_EXTRA) -aperf_version=$(EVENT_PARSE_VERSION) -o $@+ $< && \
0207 mv $@+ $@