cluster: STABLE3 - fence agents automatic man page generation

Fabio M. Di Nitto fabbione at fedoraproject.org
Tue Oct 20 04:05:52 UTC 2009


Gitweb:        http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=749649428f4ed4f57f21ecf4a886fb3b8ac11260
Commit:        749649428f4ed4f57f21ecf4a886fb3b8ac11260
Parent:        400cda7587885f24f997f3e5754acc0d901f95f1
Author:        Fabio M. Di Nitto <fdinitto at redhat.com>
AuthorDate:    Tue Oct 20 05:21:12 2009 +0200
Committer:     Fabio M. Di Nitto <fdinitto at redhat.com>
CommitterDate: Tue Oct 20 05:21:12 2009 +0200

fence agents automatic man page generation

- use MANTARGET for man pages
- remove make/man.mk and move install/uninstall targets to the right place
- add fence2man.xsl

Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
---
 cman/man/Makefile                  |   10 ++++++-
 config/man/Makefile                |    9 +++++-
 config/tools/man/Makefile          |    9 +++++-
 dlm/man/Makefile                   |   10 ++++++-
 fence/agents/Makefile              |    2 +-
 fence/agents/alom/Makefile         |    2 +
 fence/agents/apc/Makefile          |    2 +
 fence/agents/apc_snmp/Makefile     |    5 +++-
 fence/agents/baytech/Makefile      |    3 +-
 fence/agents/bladecenter/Makefile  |    2 +
 fence/agents/brocade/Makefile      |    3 +-
 fence/agents/bullpap/Makefile      |    3 +-
 fence/agents/cisco_mds/Makefile    |    2 +
 fence/agents/cpint/Makefile        |    3 +-
 fence/agents/drac5/Makefile        |    2 +
 fence/agents/egenera/Makefile      |    3 +-
 fence/agents/eps/Makefile          |    2 +
 fence/agents/ibmblade/Makefile     |    5 +++-
 fence/agents/ifmib/Makefile        |    2 +
 fence/agents/ilo/Makefile          |    2 +
 fence/agents/ilo_mp/Makefile       |    2 +
 fence/agents/intelmodular/Makefile |    5 +++-
 fence/agents/ipmilan/Makefile      |   10 ++++++-
 fence/agents/ldom/Makefile         |    2 +
 fence/agents/lib/fence2man.xsl     |   48 ++++++++++++++++++++++++++++++++++++
 fence/agents/lpar/Makefile         |    2 +
 fence/agents/mcdata/Makefile       |    3 +-
 fence/agents/rsa/Makefile          |    5 +++-
 fence/agents/rsb/Makefile          |    3 +-
 fence/agents/sanbox2/Makefile      |    3 +-
 fence/agents/virsh/Makefile        |    2 +
 fence/agents/vixel/Makefile        |    3 +-
 fence/agents/vmware/Makefile       |    2 +
 fence/agents/wti/Makefile          |    2 +
 fence/agents/xcat/Makefile         |    3 +-
 fence/agents/xvm/Makefile          |   10 ++++++-
 fence/agents/zvm/Makefile          |    3 +-
 fence/man/Makefile                 |   11 ++++++--
 gfs/man/Makefile                   |   10 ++++++-
 gfs2/man/Makefile                  |   10 ++++++-
 group/man/Makefile                 |   10 ++++++-
 make/fencebuild.mk                 |    9 ++++++-
 make/install.mk                    |    8 ++++++
 make/man.mk                        |   18 -------------
 make/uninstall.mk                  |    7 +++++
 rgmanager/man/Makefile             |   10 ++++++-
 46 files changed, 226 insertions(+), 56 deletions(-)

diff --git a/cman/man/Makefile b/cman/man/Makefile
index 54d7c9a..9ed16e9 100644
--- a/cman/man/Makefile
+++ b/cman/man/Makefile
@@ -1,4 +1,5 @@
-TARGET= cman.5 \
+MANTARGET= \
+	cman.5 \
 	qdisk.5 \
 	cman_tool.8 \
 	qdiskd.8 \
@@ -6,4 +7,9 @@ TARGET= cman.5 \
 	cmannotifyd.8
 
 include ../../make/defines.mk
-include $(OBJDIR)/make/man.mk
+include $(OBJDIR)/make/install.mk
+include $(OBJDIR)/make/uninstall.mk
+
+all:
+
+clean:
diff --git a/config/man/Makefile b/config/man/Makefile
index bf289e0..0c003af 100644
--- a/config/man/Makefile
+++ b/config/man/Makefile
@@ -1,4 +1,9 @@
-TARGET= cluster.conf.5
+MANTARGET= cluster.conf.5
 
 include ../../make/defines.mk
-include $(OBJDIR)/make/man.mk
+include $(OBJDIR)/make/install.mk
+include $(OBJDIR)/make/uninstall.mk
+
+all:
+
+clean:
diff --git a/config/tools/man/Makefile b/config/tools/man/Makefile
index e29dbf0..8674f66 100644
--- a/config/tools/man/Makefile
+++ b/config/tools/man/Makefile
@@ -1,8 +1,13 @@
-TARGET=	ccs_config_dump.8 \
+MANTARGET= \
+	ccs_config_dump.8 \
 	ccs_config_validate.8 \
 	ccs_tool.8 \
 	confdb2ldif.8
 
 include ../../../make/defines.mk
+include $(OBJDIR)/make/install.mk
+include $(OBJDIR)/make/uninstall.mk
 
-include $(OBJDIR)/make/man.mk
+all:
+
+clean:
diff --git a/dlm/man/Makefile b/dlm/man/Makefile
index 9041a93..7cc2886 100644
--- a/dlm/man/Makefile
+++ b/dlm/man/Makefile
@@ -1,4 +1,5 @@
-TARGET= dlm_cleanup.3 \
+MANTARGET= \
+	dlm_cleanup.3 \
 	dlm_close_lockspace.3 \
 	dlm_create_lockspace.3 \
 	dlm_dispatch.3 \
@@ -21,4 +22,9 @@ TARGET= dlm_cleanup.3 \
 	dlm_tool.8
 
 include ../../make/defines.mk
-include $(OBJDIR)/make/man.mk
+include $(OBJDIR)/make/install.mk
+include $(OBJDIR)/make/uninstall.mk
+
+all:
+
+clean:
diff --git a/fence/agents/Makefile b/fence/agents/Makefile
index e183b73..25ccfc0 100644
--- a/fence/agents/Makefile
+++ b/fence/agents/Makefile
@@ -2,5 +2,5 @@ include ../../make/defines.mk
 include $(OBJDIR)/make/passthrough.mk
 
 ifdef fence_agents
-SUBDIRS = ${fence_agents} lib nss_wrapper
+SUBDIRS = lib nss_wrapper ${fence_agents}
 endif
diff --git a/fence/agents/alom/Makefile b/fence/agents/alom/Makefile
index 6efc272..08d5843 100644
--- a/fence/agents/alom/Makefile
+++ b/fence/agents/alom/Makefile
@@ -2,4 +2,6 @@ include ../../../make/defines.mk
 
 TARGET= fence_alom
 
+MANTARGET= $(TARGET).8
+
 include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/apc/Makefile b/fence/agents/apc/Makefile
index 88cd004..53ef7f2 100644
--- a/fence/agents/apc/Makefile
+++ b/fence/agents/apc/Makefile
@@ -2,4 +2,6 @@ include ../../../make/defines.mk
 
 TARGET= fence_apc
 
+MANTARGET= $(TARGET).8
+
 include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/apc_snmp/Makefile b/fence/agents/apc_snmp/Makefile
index 9d2e498..733842e 100644
--- a/fence/agents/apc_snmp/Makefile
+++ b/fence/agents/apc_snmp/Makefile
@@ -1,4 +1,7 @@
+include ../../../make/defines.mk
+
 TARGET= fence_apc_snmp
 
-include ../../../make/defines.mk
+MANTARGET= $(TARGET).8
+
 include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/baytech/Makefile b/fence/agents/baytech/Makefile
index 2acfe58..23bfe58 100644
--- a/fence/agents/baytech/Makefile
+++ b/fence/agents/baytech/Makefile
@@ -1,4 +1,5 @@
+include ../../../make/defines.mk
+
 TARGET= fence_baytech
 
-include ../../../make/defines.mk
 include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/bladecenter/Makefile b/fence/agents/bladecenter/Makefile
index a123a15..1425812 100644
--- a/fence/agents/bladecenter/Makefile
+++ b/fence/agents/bladecenter/Makefile
@@ -2,4 +2,6 @@ include ../../../make/defines.mk
 
 TARGET= fence_bladecenter
 
+MANTARGET= $(TARGET).8
+
 include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/brocade/Makefile b/fence/agents/brocade/Makefile
index 74e96cc..6ac510f 100644
--- a/fence/agents/brocade/Makefile
+++ b/fence/agents/brocade/Makefile
@@ -1,4 +1,5 @@
+include ../../../make/defines.mk
+
 TARGET= fence_brocade
 
-include ../../../make/defines.mk
 include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/bullpap/Makefile b/fence/agents/bullpap/Makefile
index ac2754f..b84826a 100644
--- a/fence/agents/bullpap/Makefile
+++ b/fence/agents/bullpap/Makefile
@@ -1,4 +1,5 @@
+include ../../../make/defines.mk
+
 TARGET= fence_bullpap
 
-include ../../../make/defines.mk
 include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/cisco_mds/Makefile b/fence/agents/cisco_mds/Makefile
index e4e8c9f..2154ec8 100644
--- a/fence/agents/cisco_mds/Makefile
+++ b/fence/agents/cisco_mds/Makefile
@@ -2,4 +2,6 @@ include ../../../make/defines.mk
 
 TARGET= fence_cisco_mds
 
+MANTARGET= $(TARGET).8
+
 include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/cpint/Makefile b/fence/agents/cpint/Makefile
index 0591ea8..637ce23 100644
--- a/fence/agents/cpint/Makefile
+++ b/fence/agents/cpint/Makefile
@@ -1,4 +1,5 @@
+include ../../../make/defines.mk
+
 TARGET= fence_cpint
 
-include ../../../make/defines.mk
 include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/drac5/Makefile b/fence/agents/drac5/Makefile
index 5388cf8..5db5ad9 100644
--- a/fence/agents/drac5/Makefile
+++ b/fence/agents/drac5/Makefile
@@ -2,4 +2,6 @@ include ../../../make/defines.mk
 
 TARGET= fence_drac5
 
+MANTARGET= $(TARGET).8
+
 include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/egenera/Makefile b/fence/agents/egenera/Makefile
index 655cc0c..3949482 100644
--- a/fence/agents/egenera/Makefile
+++ b/fence/agents/egenera/Makefile
@@ -1,4 +1,5 @@
+include ../../../make/defines.mk
+
 TARGET= fence_egenera
 
-include ../../../make/defines.mk
 include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/eps/Makefile b/fence/agents/eps/Makefile
index fc665bc..0cdba17 100644
--- a/fence/agents/eps/Makefile
+++ b/fence/agents/eps/Makefile
@@ -2,4 +2,6 @@ include ../../../make/defines.mk
 
 TARGET= fence_eps
 
+MANTARGET= $(TARGET).8
+
 include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/ibmblade/Makefile b/fence/agents/ibmblade/Makefile
index 522a24a..23d49c1 100644
--- a/fence/agents/ibmblade/Makefile
+++ b/fence/agents/ibmblade/Makefile
@@ -1,4 +1,7 @@
+include ../../../make/defines.mk
+
 TARGET= fence_ibmblade
 
-include ../../../make/defines.mk
+MANTARGET= $(TARGET).8
+
 include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/ifmib/Makefile b/fence/agents/ifmib/Makefile
index 32a5657..d3745ad 100644
--- a/fence/agents/ifmib/Makefile
+++ b/fence/agents/ifmib/Makefile
@@ -2,4 +2,6 @@ include ../../../make/defines.mk
 
 TARGET= fence_ifmib
 
+MANTARGET= $(TARGET).8
+
 include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/ilo/Makefile b/fence/agents/ilo/Makefile
index 66420ab..fe4c712 100644
--- a/fence/agents/ilo/Makefile
+++ b/fence/agents/ilo/Makefile
@@ -2,4 +2,6 @@ include ../../../make/defines.mk
 
 TARGET= fence_ilo
 
+MANTARGET= $(TARGET).8
+
 include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/ilo_mp/Makefile b/fence/agents/ilo_mp/Makefile
index 6405a8f..b4bc456 100644
--- a/fence/agents/ilo_mp/Makefile
+++ b/fence/agents/ilo_mp/Makefile
@@ -2,4 +2,6 @@ include ../../../make/defines.mk
 
 TARGET= fence_ilo_mp
 
+MANTARGET= $(TARGET).8
+
 include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/intelmodular/Makefile b/fence/agents/intelmodular/Makefile
index ba22926..7ff7668 100644
--- a/fence/agents/intelmodular/Makefile
+++ b/fence/agents/intelmodular/Makefile
@@ -1,4 +1,7 @@
+include ../../../make/defines.mk
+
 TARGET= fence_intelmodular
 
-include ../../../make/defines.mk
+MANTARGET= $(TARGET).8
+
 include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/ipmilan/Makefile b/fence/agents/ipmilan/Makefile
index 1c2e9e9..e8790af 100644
--- a/fence/agents/ipmilan/Makefile
+++ b/fence/agents/ipmilan/Makefile
@@ -2,7 +2,9 @@ TARGET= fence_ipmilan
 
 SBINDIRT=$(TARGET)
 
-all: ${TARGET}
+MANTARGET=$(TARGET).8
+
+all: ${TARGET} ${MANTARGET}
 
 include ../../../make/defines.mk
 include $(OBJDIR)/make/cobj.mk
@@ -20,6 +22,12 @@ LDFLAGS += -L${libdir}
 ${TARGET}: ${OBJS}
 	$(CC) -o $@ $^ $(LDFLAGS)
 
+$(MANTARGET): $(TARGET) ${SRCDIR}/fence/agents/lib/fence2man.xsl
+	set -e && \
+	./$(TARGET) -o metadata > .$@.tmp && \
+	xsltproc ${SRCDIR}/fence/agents/lib/fence2man.xsl .$@.tmp > $@
+
 clean: generalclean
+	rm -f $(MANTARGET) .$(MANTARGET).tmp
 
 -include $(OBJS:.o=.d)
diff --git a/fence/agents/ldom/Makefile b/fence/agents/ldom/Makefile
index a288025..821bc21 100644
--- a/fence/agents/ldom/Makefile
+++ b/fence/agents/ldom/Makefile
@@ -2,4 +2,6 @@ include ../../../make/defines.mk
 
 TARGET= fence_ldom
 
+MANTARGET= $(TARGET).8
+
 include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/lib/fence2man.xsl b/fence/agents/lib/fence2man.xsl
new file mode 100644
index 0000000..f8ff237
--- /dev/null
+++ b/fence/agents/lib/fence2man.xsl
@@ -0,0 +1,48 @@
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:output method="text" indent="no"/>
+<xsl:template match="parameter">
+<xsl:param name="show" />
+.TP
+<xsl:if test="$show = 'getopt'">.B <xsl:value-of select="getopt/@mixed" /></xsl:if>
+<xsl:if test="$show = 'stdin'">.B <xsl:value-of select="@name"/></xsl:if>
+. 
+<xsl:value-of select="normalize-space(shortdesc)"/>
+<xsl:if test="not(content/@default)"><xsl:if test="@required = 1"> This parameter is always required.</xsl:if></xsl:if>
+<xsl:if test="content/@default"> (Default Value: <xsl:value-of select="content/@default"/>)</xsl:if>
+</xsl:template>
+
+<xsl:template match="action">
+.TP
+\fB<xsl:value-of select="@name"/> \fP
+<xsl:choose>
+<xsl:when test="@name = 'on'">Power on machine.</xsl:when>
+<xsl:when test="@name = 'off'">Power off machine.</xsl:when>
+<xsl:when test="@name = 'reboot'">Reboot machine.</xsl:when>
+<xsl:when test="@name = 'monitor'">Check if fencing device is running. List available plugs/virtual machines or get status of machine (if it does not support more).</xsl:when>
+<xsl:when test="@name = 'meta-data'">Display the XML metadata describing this resource.</xsl:when>
+<xsl:when test="@name = 'list'">List available plugs with aliases/virtual machines if there is support for more then one device. Returns N/A otherwise.</xsl:when>
+<xsl:when test="@name = 'status'">This returns the status of the plug/virtual machine.</xsl:when>
+<!-- Ehhh -->
+<xsl:otherwise> The operational behavior of this is not known.</xsl:otherwise>
+</xsl:choose>
+</xsl:template>
+
+<xsl:template match="/resource-agent">
+.TH FENCE_AGENT 8 2009-01-20 "<xsl:value-of select="@name"/> (Fence Agent)"
+.SH NAME
+<xsl:value-of select="@name" /> - <xsl:value-of select="@shortdesc" />
+.SH DESCRIPTION
+<xsl:value-of select="@name" /> accepts options on the command line as well
+as from stdin. Fenced sends parameters through stdin when it execs the
+agent. <xsl:value-of select="@name" /> can be run by itself with command
+line options.  This is useful for testing and for turning outlets on or off
+from scripts.
+<xsl:value-of select="normalize-space(longdesc)"/>
+.SH PARAMETERS
+<xsl:apply-templates select="parameters"><xsl:with-param name="show">getopt</xsl:with-param></xsl:apply-templates>
+.SH ACTIONS
+<xsl:apply-templates select="actions"/>
+.SH STDIN PARAMETERS
+<xsl:apply-templates select="parameters"><xsl:with-param name="show">stdin</xsl:with-param></xsl:apply-templates>
+</xsl:template>
+</xsl:stylesheet>
diff --git a/fence/agents/lpar/Makefile b/fence/agents/lpar/Makefile
index ef7d91a..fed1b2b 100644
--- a/fence/agents/lpar/Makefile
+++ b/fence/agents/lpar/Makefile
@@ -2,4 +2,6 @@ include ../../../make/defines.mk
 
 TARGET= fence_lpar
 
+MANTARGET= $(TARGET).8
+
 include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/mcdata/Makefile b/fence/agents/mcdata/Makefile
index ca2facf..437ae80 100644
--- a/fence/agents/mcdata/Makefile
+++ b/fence/agents/mcdata/Makefile
@@ -1,4 +1,5 @@
+include ../../../make/defines.mk
+
 TARGET= fence_mcdata
 
-include ../../../make/defines.mk
 include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/rsa/Makefile b/fence/agents/rsa/Makefile
index e85ed97..b385197 100644
--- a/fence/agents/rsa/Makefile
+++ b/fence/agents/rsa/Makefile
@@ -1,4 +1,7 @@
+include ../../../make/defines.mk
+
 TARGET= fence_rsa
 
-include ../../../make/defines.mk
+MANTARGET= $(TARGET).8
+
 include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/rsb/Makefile b/fence/agents/rsb/Makefile
index 0f77de2..4022513 100644
--- a/fence/agents/rsb/Makefile
+++ b/fence/agents/rsb/Makefile
@@ -1,4 +1,5 @@
+include ../../../make/defines.mk
+
 TARGET= fence_rsb
 
-include ../../../make/defines.mk
 include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/sanbox2/Makefile b/fence/agents/sanbox2/Makefile
index 7f3fc0c..bf46fd1 100644
--- a/fence/agents/sanbox2/Makefile
+++ b/fence/agents/sanbox2/Makefile
@@ -1,4 +1,5 @@
+include ../../../make/defines.mk
+
 TARGET= fence_sanbox2
 
-include ../../../make/defines.mk
 include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/virsh/Makefile b/fence/agents/virsh/Makefile
index bbea7b6..190d080 100644
--- a/fence/agents/virsh/Makefile
+++ b/fence/agents/virsh/Makefile
@@ -2,4 +2,6 @@ include ../../../make/defines.mk
 
 TARGET= fence_virsh
 
+MANTARGET= $(TARGET).8
+
 include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/vixel/Makefile b/fence/agents/vixel/Makefile
index 6760e14..386cb86 100644
--- a/fence/agents/vixel/Makefile
+++ b/fence/agents/vixel/Makefile
@@ -1,4 +1,5 @@
+include ../../../make/defines.mk
+
 TARGET= fence_vixel
 
-include ../../../make/defines.mk
 include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/vmware/Makefile b/fence/agents/vmware/Makefile
index 6d812a5..0ec0b3d 100644
--- a/fence/agents/vmware/Makefile
+++ b/fence/agents/vmware/Makefile
@@ -2,4 +2,6 @@ include ../../../make/defines.mk
 
 TARGET= fence_vmware_helper fence_vmware
 
+MANTARGET= fence_vmware.8
+
 include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/wti/Makefile b/fence/agents/wti/Makefile
index 2638d3f..5240559 100644
--- a/fence/agents/wti/Makefile
+++ b/fence/agents/wti/Makefile
@@ -2,4 +2,6 @@ include ../../../make/defines.mk
 
 TARGET= fence_wti
 
+MANTARGET= $(TARGET).8
+
 include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/xcat/Makefile b/fence/agents/xcat/Makefile
index 0c1fed0..13a954c 100644
--- a/fence/agents/xcat/Makefile
+++ b/fence/agents/xcat/Makefile
@@ -1,4 +1,5 @@
+include ../../../make/defines.mk
+
 TARGET= fence_xcat
 
-include ../../../make/defines.mk
 include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/xvm/Makefile b/fence/agents/xvm/Makefile
index 627e4dc..6215263 100644
--- a/fence/agents/xvm/Makefile
+++ b/fence/agents/xvm/Makefile
@@ -4,7 +4,9 @@ TARGET3= testprog
 
 SBINDIRT=$(TARGET1) $(TARGET2)
 
-all: ${TARGET1} ${TARGET2}
+MANTARGET= fence_xvm.8
+
+all: ${TARGET1} ${TARGET2} ${MANTARGET}
 
 include ../../../make/defines.mk
 include $(OBJDIR)/make/cobj.mk
@@ -57,7 +59,13 @@ ${TARGET2}: ${SHAREDOBJS} ${OBJS2}
 ${TARGET3}: ${OBJS3}
 	$(CC) -o $@ $^ $(XML_LDFLAGS)
 
+$(MANTARGET): $(TARGET1) ${SRCDIR}/fence/agents/lib/fence2man.xsl
+	set -e && \
+	./$(TARGET1) -o metadata > .$@.tmp && \
+	xsltproc ${SRCDIR}/fence/agents/lib/fence2man.xsl .$@.tmp > $@
+
 clean: generalclean
+	rm -f $(MANTARGET) .$(MANTARGET).tmp
 
 -include $(OBJS1:.o=.d)
 -include $(OBJS2:.o=.d)
diff --git a/fence/agents/zvm/Makefile b/fence/agents/zvm/Makefile
index 7f32889..81f8889 100644
--- a/fence/agents/zvm/Makefile
+++ b/fence/agents/zvm/Makefile
@@ -1,4 +1,5 @@
+include ../../../make/defines.mk
+
 TARGET= fence_zvm
 
-include ../../../make/defines.mk
 include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/man/Makefile b/fence/man/Makefile
index 226e826..50b7bb4 100644
--- a/fence/man/Makefile
+++ b/fence/man/Makefile
@@ -1,9 +1,9 @@
 include ../../make/defines.mk
 
-TARGET = fence.8 fenced.8 fence_node.8 fence_tool.8
+MANTARGET = fence.8 fenced.8 fence_node.8 fence_tool.8
 
 ifdef fence_agents
-TARGET += \
+MANTARGET += \
 	fence_ack_manual.8 \
 	fence_alom.8 \
 	fence_apc.8 \
@@ -40,4 +40,9 @@ TARGET += \
 	fence_zvm.8
 endif
 
-include $(OBJDIR)/make/man.mk
+include $(OBJDIR)/make/install.mk
+include $(OBJDIR)/make/uninstall.mk
+
+all:
+
+clean:
diff --git a/gfs/man/Makefile b/gfs/man/Makefile
index 7688580..9047b36 100644
--- a/gfs/man/Makefile
+++ b/gfs/man/Makefile
@@ -1,4 +1,5 @@
-TARGET= gfs.8 \
+MANTARGET= \
+	gfs.8 \
 	mount.gfs.8 \
 	gfs_edit.8 \
 	fsck.gfs.8 \
@@ -9,4 +10,9 @@ TARGET= gfs.8 \
 	gfs_tool.8
 
 include ../../make/defines.mk
-include $(OBJDIR)/make/man.mk
+include $(OBJDIR)/make/install.mk
+include $(OBJDIR)/make/uninstall.mk
+
+all:
+
+clean:
diff --git a/gfs2/man/Makefile b/gfs2/man/Makefile
index 2b81b70..8e8e4f1 100644
--- a/gfs2/man/Makefile
+++ b/gfs2/man/Makefile
@@ -1,4 +1,5 @@
-TARGET= gfs2.8 \
+MANTARGET= \
+	gfs2.8 \
 	gfs2_convert.8 \
 	gfs2_edit.8 \
 	fsck.gfs2.8 \
@@ -10,4 +11,9 @@ TARGET= gfs2.8 \
 	mkfs.gfs2.8
 
 include ../../make/defines.mk
-include $(OBJDIR)/make/man.mk
+include $(OBJDIR)/make/install.mk
+include $(OBJDIR)/make/uninstall.mk
+
+all:
+
+clean:
diff --git a/group/man/Makefile b/group/man/Makefile
index 36f8b87..a317fba 100644
--- a/group/man/Makefile
+++ b/group/man/Makefile
@@ -1,7 +1,13 @@
-TARGET= dlm_controld.8 \
+MANTARGET= \
+	dlm_controld.8 \
 	gfs_controld.8 \
 	group_tool.8 \
 	groupd.8
 
 include ../../make/defines.mk
-include $(OBJDIR)/make/man.mk
+include $(OBJDIR)/make/install.mk
+include $(OBJDIR)/make/uninstall.mk
+
+all:
+
+clean:
diff --git a/make/fencebuild.mk b/make/fencebuild.mk
index 48145b7..5f9915a 100644
--- a/make/fencebuild.mk
+++ b/make/fencebuild.mk
@@ -4,7 +4,7 @@ ifndef FENCEAGENTSLIB
 	endif
 endif
 
-all: $(TARGET)
+all: $(TARGET) $(MANTARGET)
 
 include $(OBJDIR)/make/clean.mk
 include $(OBJDIR)/make/install.mk
@@ -22,4 +22,11 @@ $(TARGET):
 		-e 's#@SBINDIR@#${sbindir}#g' \
 	> $@
 
+$(MANTARGET): $(MANTARGET:.8=) ${SRCDIR}/fence/agents/lib/fence2man.xsl
+	set -e && \
+	PYTHONPATH=${OBJDIR}/fence/agents/lib \
+		python $^ -o metadata > .$@.tmp && \
+	xsltproc ${SRCDIR}/fence/agents/lib/fence2man.xsl .$@.tmp > $@
+
 clean: generalclean
+	rm -f $(MANTARGET) .$(MANTARGET).tmp
diff --git a/make/install.mk b/make/install.mk
index 5bd30d6..8e1bcd6 100644
--- a/make/install.mk
+++ b/make/install.mk
@@ -82,3 +82,11 @@ ifdef SHAREDIRT
 	install -d ${sharedir}
 	install -m644 ${SHAREDIRT} ${sharedir}
 endif
+ifdef MANTARGET
+	set -e; \
+	for i in ${MANTARGET}; do \
+		p=`echo $$i | sed -e 's#.*\.##g'`; \
+		install -d ${mandir}/man$$p; \
+		install -m644 $(S)/$$i ${mandir}/man$$p; \
+	done
+endif
diff --git a/make/man.mk b/make/man.mk
deleted file mode 100644
index 26f6401..0000000
--- a/make/man.mk
+++ /dev/null
@@ -1,18 +0,0 @@
-all:
-
-install:
-	set -e; \
-	for i in ${TARGET}; do \
-		p=`echo $$i | sed -e 's#.*\.##g'`; \
-		install -d ${mandir}/man$$p; \
-		install -m644 $(S)/$$i ${mandir}/man$$p; \
-	done
-
-uninstall:
-	set -e; \
-	for i in ${TARGET}; do \
-		p=`echo $$i | sed -e 's#.*\.##g'`; \
-		${UNINSTALL} $$i ${mandir}/man$$p; \
-	done
-
-clean:
diff --git a/make/uninstall.mk b/make/uninstall.mk
index 396e61f..786faca 100644
--- a/make/uninstall.mk
+++ b/make/uninstall.mk
@@ -50,3 +50,10 @@ endif
 ifdef SHAREDIRT
 	${UNINSTALL} ${SHAREDIRT} ${sharedir}
 endif
+ifdef MANTARGET
+	set -e; \
+	for i in ${MANTARGET}; do \
+		p=`echo $$i | sed -e 's#.*\.##g'`; \
+		${UNINSTALL} $$i ${mandir}/man$$p; \
+	done
+endif
diff --git a/rgmanager/man/Makefile b/rgmanager/man/Makefile
index d965432..791c8a7 100644
--- a/rgmanager/man/Makefile
+++ b/rgmanager/man/Makefile
@@ -1,4 +1,5 @@
-TARGET= clubufflush.8 \
+MANTARGET= \
+	clubufflush.8 \
 	clufindhostname.8 \
 	clulog.8 \
 	clurgmgrd.8 \
@@ -7,6 +8,11 @@ TARGET= clubufflush.8 \
 	clusvcadm.8
 
 include ../../make/defines.mk
-include $(OBJDIR)/make/man.mk
+include $(OBJDIR)/make/install.mk
+include $(OBJDIR)/make/uninstall.mk
+
+all:
+
+clean:
 
 check:


More information about the cluster-commits mailing list