Back to home page

OSCL-LXR

 
 

    


0001 include ../../../scripts/Makefile.include
0002 include ../../../scripts/utilities.mak
0003 
0004 # This Makefile and manpage XSL files were taken from tools/perf/Documentation
0005 # and modified for libtraceevent.
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 # Make the path relative to DESTDIR, not prefix
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 # For asciidoc ...
0062 #       -7.1.2, no extra settings are needed.
0063 #       8.0-,   set ASCIIDOC8.
0064 #
0065 
0066 #
0067 # For docbook-xsl ...
0068 #       -1.68.1,        set ASCIIDOC_NO_ROFF? (based on changelog from 1.73.0)
0069 #       1.69.0,         no extra settings are needed?
0070 #       1.69.1-1.71.0,  set DOCBOOK_SUPPRESS_SP?
0071 #       1.71.1,         no extra settings are needed?
0072 #       1.72.0,         set DOCBOOK_XSL_172.
0073 #       1.73.0-,        set ASCIIDOC_NO_ROFF
0074 #
0075 
0076 #
0077 # If you had been using DOCBOOK_XSL_172 in an attempt to get rid
0078 # of 'the ".ft C" problem' in your generated manpages, and you
0079 # instead ended up with weird characters around callouts, try
0080 # using ASCIIDOC_NO_ROFF instead (it works fine with ASCIIDOC8).
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         # docbook-xsl after 1.72 needs the regular XSL, but will not
0092         # pass-thru raw roff codes from asciidoc.conf, so turn them off.
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 # Shell quote;
0105 SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
0106 
0107 DESTDIR ?=
0108 DESTDIR_SQ = '$(subst ','\'',$(DESTDIR))'
0109 
0110 export DESTDIR DESTDIR_SQ
0111 
0112 #
0113 # Please note that there is a minor bug in asciidoc.
0114 # The version after 6.0.3 _will_ include the patch found here:
0115 #   http://marc.theaimsgroup.com/?l=libtraceevent&m=111558757202243&w=2
0116 #
0117 # Until that version is released you may have to apply the patch
0118 # yourself - yes, all 6 characters of it!
0119 #
0120 QUIET_SUBDIR0  = +$(MAKE) -C # space to separate -C and subdir
0121 QUIET_SUBDIR1  =
0122 
0123 ifneq ($(findstring $(MAKEFLAGS),w),w)
0124 PRINT_DIR = --no-print-directory
0125 else # "make -w"
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 $@+ $@