X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=doc%2Fman%2FMakefile.am;h=29c06739657ec6d5ed4c7fb7e6122468494f4e1a;hb=e03d7c66c57bf268b87296566a5160039f35ccfb;hp=3d8ee494045229ebca2784326171e1e67cdc4ecd;hpb=b2c5f61a9cb94a79c35167450666e540b3e0fffe;p=lttng-ust.git diff --git a/doc/man/Makefile.am b/doc/man/Makefile.am index 3d8ee494..29c06739 100644 --- a/doc/man/Makefile.am +++ b/doc/man/Makefile.am @@ -1,3 +1,7 @@ +# SPDX-FileCopyrightText: 2023 EfficiOS, Inc +# +# SPDX-License-Identifier: LGPL-2.1-only + # Man pages are only built if they are enabled at configure time. # # They should always be built before creating a distribution tarball. @@ -10,13 +14,24 @@ MAN1_NAMES = \ lttng-gen-tp MAN3_NAMES = \ lttng-ust \ - tracef \ - tracelog \ lttng-ust-dl \ - lttng-ust-cyg-profile + lttng-ust-cyg-profile \ + lttng_ust_tracef \ + lttng_ust_tracelog \ + tracef \ + tracelog + +# Man page aliases (generated from other sources): +MAN3_ALIASES = lttng_ust_vtracef.3 lttng_ust_vtracelog.3 # troff man pages: -MAN3_TROFF = do_tracepoint.3 tracepoint.3 tracepoint_enabled.3 +MAN3_TROFF = \ + do_tracepoint.3 \ + lttng_ust_do_tracepoint.3 \ + lttng_ust_tracepoint.3 \ + lttng_ust_tracepoint_enabled.3 \ + tracepoint.3 \ + tracepoint_enabled.3 # AsciiDoc sources and outputs: MAN1_TXT = $(call manaddsuffix,.1.txt,$(MAN1_NAMES)) @@ -34,45 +49,78 @@ COMMON_TXT = \ # AsciiDoc configuration and XSL files: ASCIIDOC_CONF = $(srcdir)/asciidoc.conf -XSL_FILES = \ - manpage.xsl \ - manpage-callouts.xsl \ - manpage-bold-literal.xsl \ - manpage-links.xsl \ - manpage-headings.xsl -XSL_SRC_FILES = $(addprefix $(srcdir)/xsl/,$(XSL_FILES)) +XSL_FILE = $(srcdir)/manpage.xsl # Common dependencies: COMMON_DEPS = $(ASCIIDOC_CONF) $(COMMON_TXT) # Man pages destinations: MAN1 = $(addsuffix .1,$(MAN1_NAMES)) -MAN3 = $(addsuffix .3,$(MAN3_NAMES)) +MAN3 = $(addsuffix .3,$(MAN3_NAMES)) $(MAN3_ALIASES) MAN = $(MAN1) $(MAN3) -if MAN_PAGES_OPT +if ENABLE_MAN_PAGES # At this point, we know the user asked to build the man pages. if HAVE_ASCIIDOC_XMLTO + +asciidoc_verbose = $(asciidoc_verbose_@AM_V@) +asciidoc_verbose_ = $(asciidoc_verbose_@AM_DEFAULT_V@) +asciidoc_verbose_0 = @echo " ASCIIDOC " $@; + +xmlto_verbose = $(xmlto_verbose_@AM_V@) +xmlto_verbose_ = $(xmlto_verbose_@AM_DEFAULT_V@) +xmlto_verbose_0 = @echo " XMLTO " $@; + +xmlto_verbose_out = $(xmlto_verbose_out_@AM_V@) +xmlto_verbose_out_ = $(xmlto_verbose_out_@AM_DEFAULT_V@) +xmlto_verbose_out_0 = 2>/dev/null + # Tools to execute: -ADOC = $(ASCIIDOC) -f $(ASCIIDOC_CONF) -d manpage \ - -a lttng_version="$(PACKAGE_VERSION)" \ - -a lttng_ust_register_timeout="@LTTNG_UST_DEFAULT_CONSTRUCTOR_TIMEOUT_MS@" +ADOC = $(asciidoc_verbose)$(ASCIIDOC) -f $(ASCIIDOC_CONF) -d manpage \ + -a mansource="LTTng" \ + -a manmanual="LTTng Manual" \ + -a manversion="$(PACKAGE_VERSION)" ADOC_DOCBOOK = $(ADOC) -b docbook -XTO = $(XMLTO) -m $(firstword $(XSL_SRC_FILES)) man +XTO = $(xmlto_verbose)$(XMLTO) -m $(XSL_FILE) man # Recipes: %.1.xml: $(srcdir)/%.1.txt $(COMMON_DEPS) $(ADOC_DOCBOOK) -o $@ $< -%.1: %.1.xml $(XSL_SRC_FILES) - $(XTO) $< +%.1: %.1.xml $(XSL_FILE) + $(XTO) $< $(xmlto_verbose_out) %.3.xml: $(srcdir)/%.3.txt $(COMMON_DEPS) $(ADOC_DOCBOOK) -o $@ $< -%.3: %.3.xml $(XSL_SRC_FILES) - $(XTO) $< +# These pair of files are generated by a single invocation of xmlto, use +# an empty rule that depends on a fake intermediate file to track the +# dependencies without resorting to Group Targets which were only +# introduced in GNU Make 4.3. +lttng_ust_tracef.3 lttng_ust_vtracef.3: lttng_ust_tracef.3.alias + @# Empty recipe to mark lttng_ust_tracef.3 and lttng_ust_vtracef.3 as rebuilt + +lttng_ust_tracelog.3 lttng_ust_vtracelog.3: lttng_ust_tracelog.3.alias + @# Empty recipe to mark lttng_ust_tracelog.3 and lttng_ust_vtracelog.3 as rebuilt + + +.INTERMEDIATE: tracef.3.alias tracelog.3.alias lttng_ust_tracef.3.alias lttng_ust_tracelog.3.alias + +tracef.3.alias: tracef.3.xml $(XSL_FILE) + $(XTO) $< $(xmlto_verbose_out) + +tracelog.3.alias: tracelog.3.xml $(XSL_FILE) + $(XTO) $< $(xmlto_verbose_out) + +lttng_ust_tracef.3.alias: lttng_ust_tracef.3.xml $(XSL_FILE) + $(XTO) $< $(xmlto_verbose_out) + +lttng_ust_tracelog.3.alias: lttng_ust_tracelog.3.xml $(XSL_FILE) + $(XTO) $< $(xmlto_verbose_out) + +%.3: %.3.xml $(XSL_FILE) + $(XTO) $< $(xmlto_verbose_out) # Only clean the generated files if we have the tools to generate them again. CLEANFILES = $(MAN_XML) $(MAN) @@ -90,28 +138,28 @@ ERR_MSG += "Make sure both tools are installed and run the configure script agai @echo $(ERR_MSG) @false endif # HAVE_ASCIIDOC_XMLTO -endif # MAN_PAGES_OPT +endif # ENABLE_MAN_PAGES # Start with empty distributed/installed man pages: dist_man1_MANS = dist_man3_MANS = EXTRA_DIST = -if MAN_PAGES_OPT +if ENABLE_MAN_PAGES # Building man pages: we can install and distribute them. dist_man1_MANS += $(MAN1) dist_man3_MANS += $(MAN3) $(MAN3_TROFF) -else # MAN_PAGES_OPT +else # ENABLE_MAN_PAGES # Those are not known by automake yet because dist_man3_MANS is empty # at this point, so make sure they are distributed. EXTRA_DIST += $(MAN3_TROFF) -endif # MAN_PAGES_OPT +endif # ENABLE_MAN_PAGES -if !MAN_PAGES_OPT +if !ENABLE_MAN_PAGES dist-hook: @echo "Error: Please enable the man pages before creating a distribution tarball." @false -endif # !MAN_PAGES_OPT +endif # !ENABLE_MAN_PAGES # Always distribute the source files. -EXTRA_DIST += $(MAN_TXT) $(COMMON_TXT) $(XSL_SRC_FILES) $(ASCIIDOC_CONF) +EXTRA_DIST += $(MAN_TXT) $(COMMON_TXT) $(XSL_FILE) $(ASCIIDOC_CONF) README.md