blob: 273192202354b2b0f9a42890054f1324eed90e5c [file] [log] [blame]
#
# Copyright 2014-2019 the Pacemaker project contributors
#
# The version control history for this file may have further details.
#
# This source code is licensed under the GNU General Public License version 2
# or later (GPLv2+) WITHOUT ANY WARRANTY.
#
#
# Some variables to help with silent rules
# https://www.gnu.org/software/automake/manual/html_node/Automake-silent_002drules-Option.html
#
# We require a minimum automake version of 1.11, which includes AM_V_GEN and
# AM_V_at, but AM_V_P is not available until 1.13.
V ?= $(AM_DEFAULT_VERBOSITY)
# When a make command is prefixed with one of the AM_V_* macros, it may also be
# desirable to suffix the command with this, to silence stdout.
PCMK_quiet = $(pcmk_quiet_$(V))
pcmk_quiet_0 = >/dev/null
pcmk_quiet_1 =
# AM_V_GEN is intended to be used in custom pattern rules, and replaces echoing
# the command used with a more concise line with "GEN" and the name of the file
# being generated. Our AM_V_* macros are similar but more descriptive.
AM_V_MAN = $(am__v_MAN_$(V))
am__v_MAN_0 = @echo " MAN $@";
am__v_MAN_1 =
AM_V_SCHEMA = $(am__v_SCHEMA_$(V))
am__v_SCHEMA_0 = @echo " SCHEMA $@";
am__v_SCHEMA_1 =
AM_V_PUB = $(am__v_PUB_$(V))
am__v_PUB_0 = @echo " PUB $@: $(DOCBOOK_FORMATS)";
am__v_PUB_1 =
MAINTAINERCLEANFILES = Makefile.in
AM_CPPFLAGS = -I$(top_builddir)/include -I$(top_srcdir)/include \
-I$(top_builddir)/libltdl -I$(top_srcdir)/libltdl
#
# Man page builders
#
# We have three types of man pages:
# - man pages for the tools
# - man pages for OCF agents
# - man pages for cluster properties used by daemons
#
# "BUILD_HELP" actually means "help2man is available", so it only controls the
# tool man pages, which are generated by help2man. The other man pages are
# generated via XSL transforms.
#
if BUILD_HELP
man8_MANS = $(sbin_PROGRAMS:%=%.8) $(sbin_SCRIPTS:%=%.8) $(dist_sbin_SCRIPTS:%=%.8)
HELP2MAN_ARGS = -N --section 8 --name "Part of the Pacemaker cluster resource manager"
# Some of our tools' help are just shell script invocations of another tool's
# help. Putting the real tool in MAN8DEPS helps detect when the wrapped help
# needs updating.
#
# If a ".inc" file exists, the tool has been converted to use glib for
# argument parsing, otherwise it still uses the libcrmcommon functions.
#
# @TODO Drop MAN8DEPS once we've converted all tools to libpacemaker API calls
# and all wrappers to C code.
%.8: % $(MAN8DEPS)
$(AM_V_at)chmod a+x $(abs_builddir)/$<
$(AM_V_MAN)PATH=$(abs_builddir):$$PATH $(HELP2MAN) --output $@ \
$(HELP2MAN_ARGS) $(abs_builddir)/$<
endif
# Save raw XML meta-data from daemon executables, for later conversion into man
# pages. (Note that more specific rules may override this for creating other
# types of XML files.)
%.xml: %
$(AM_V_at)$(abs_builddir)/$< metadata > $@
# Process the raw daemon and OCF agent meta-data output using our
# meta-data-to-docbook-XML tranform.
%.dbook: %.xml
$(AM_V_at)$(XSLTPROC) --nonet --novalid --stringparam man.name $* \
$(DBOOK_OPTS) $(top_srcdir)/xml/ocf-meta2man.xsl \
$(abs_builddir)/$< > $(abs_builddir)/$@
# Generate the actual man page for an OCF resource agent from the intermediate
# docbook XML.
%.7: %.dbook
$(AM_V_MAN)$(XSLTPROC) $(MANPAGE_XSLT) $(abs_builddir)/$< $(PCMK_quiet)