Reviewed-by: Steven Dake <sdake@xxxxxxxxxx> On 02/09/2012 05:28 AM, Fabio M. Di Nitto wrote: > From: "Fabio M. Di Nitto" <fdinitto@xxxxxxxxxx> > > this is useful to include ipc_common errors into all man pages > > Signed-off-by: Fabio M. Di Nitto <fdinitto@xxxxxxxxxx> > --- > :100644 100644 b16eae6... 4ac40c6... M Makefile.am > :000000 100755 0000000... 94ae715... A build-aux/genman > :100644 100644 65abfae... b2e52f4... M configure.ac > :100644 100644 b173810... 37fad93... M man/Makefile.am > :000000 100644 0000000... 5aa3a11... A man/ipc_common.sh.errors > Makefile.am | 1 + > build-aux/genman | 52 ++++++++++++++++++++++++++++++++++++++++++++++ > configure.ac | 1 + > man/Makefile.am | 26 ++++++++++++++++++++-- > man/ipc_common.sh.errors | 3 ++ > 5 files changed, 80 insertions(+), 3 deletions(-) > > diff --git a/Makefile.am b/Makefile.am > index b16eae6..4ac40c6 100644 > --- a/Makefile.am > +++ b/Makefile.am > @@ -37,6 +37,7 @@ EXTRA_DIST = autogen.sh $(SPEC).in \ > build-aux/git-version-gen \ > build-aux/gitlog-to-changelog \ > build-aux/release.mk \ > + build-aux/genman \ > .version > > AUTOMAKE_OPTIONS = foreign > diff --git a/build-aux/genman b/build-aux/genman > new file mode 100755 > index 0000000..94ae715 > --- /dev/null > +++ b/build-aux/genman > @@ -0,0 +1,52 @@ > +#!/bin/bash > + > +set -e > + > +# Set variables > +# in - input man page (something_foo.3.in) > +# out - output file (something_foo.3) > +# common - common ipc error file > + > +in="$1" > +out="$2" > +common="$3" > + > +# make sure to trap on error and ctrl+c > +# so we can cleanup our temporary files > +# and provide error back to Makefile > +cleanup() { > + rm -f "$out"-t "$out" > +} > + > +trap "cleanup" ABRT > +trap "cleanup" QUIT > +trap "cleanup" TERM > +trap "cleanup" INT > +trap "cleanup" ERR > + > +# Determine build date in man page format YYYY-MM-DD > +date="$(LC_ALL=C date "+%F")" > + > +# do the hack.. it looks ugly but it works fine > + > +# remove temporary file > +rm -f "$out"-t > + > +# insert the $common ipc error file in the man page > +if grep -q @COMMONIPCERRORS@ "$in"; then > + awk "{print}(\$1 ~ /@COMMONIPCERRORS@/){exit 0}" "$in" > "$out"-t > + cat "$common" >> "$out"-t > + awk -v p=0 "(\$1 ~ /@COMMONIPCERRORS@/){p = 1} {if(p==1)print}" "$in" >> "$out"-t > +else > + cp "$in" "$out"-t > +fi > + > +# substitute BUILDDATE with precalculated date > +# and remove COMMONIPCERRORS tag from above > +sed -i \ > + -e 's#@BUILDDATE@#'$date'#g' \ > + -e 's#@COMMONIPCERRORS@##g' \ > + "$out"-t > + > +# move in place as requested > +mv "$out"-t "$out" > diff --git a/configure.ac b/configure.ac > index 65abfae..b2e52f4 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -66,6 +66,7 @@ AC_CHECK_PROGS([PKGCONFIG], [pkg-config]) > AC_CHECK_PROGS([AUGTOOL], [augtool]) > AC_CHECK_PROGS([DOT], [dot]) > AC_CHECK_PROGS([DOXYGEN], [doxygen]) > +AC_CHECK_PROGS([AWK], [awk]) > > # Checks for libraries. > AC_CHECK_LIB([dl], [dlopen]) > diff --git a/man/Makefile.am b/man/Makefile.am > index b173810..37fad93 100644 > --- a/man/Makefile.am > +++ b/man/Makefile.am > @@ -39,8 +39,25 @@ xml_man = corosync-xmlproc.8 \ > > INDEX_HTML = index.html > > +autogen_man = > + > +autogen_common = ipc_common.sh.errors > + > EXTRA_DIST = $(INDEX_HTML) \ > - $(xml_man) > + $(xml_man) \ > + $(autogen_man:%=%.in) \ > + $(autogen_common) > + > +man_MANS = $(autogen_man) > + > +%.3: %.3.in $(autogen_common) $(top_srcdir)/build-aux/genman > + @echo Generating $@ man page && \ > + rm -f $@-t $@ && \ > + $(top_srcdir)/build-aux/genman \ > + $(srcdir)/$@.in \ > + $(builddir)/$@-t \ > + $(srcdir)/$(autogen_common) && \ > + mv $@-t $@ > > dist_man_MANS = \ > corosync.conf.5 \ > @@ -142,7 +159,7 @@ endif > > if BUILD_HTML_DOCS > > -HTML_DOCS = $(dist_man_MANS:%=%.html) > +HTML_DOCS = $(dist_man_MANS:%=%.html) $(man_MANS:%=%.html) > > %.html: % > $(GROFF) -mandoc -Thtml $^ > $@ > @@ -158,6 +175,9 @@ uninstall-local: > all-local: $(HTML_DOCS) > > clean-local: > - rm -rf $(HTML_DOCS) > + rm -rf $(HTML_DOCS) $(autogen_man) > > +else > +clean-local: > + rm -rf $(autogen_man) > endif > diff --git a/man/ipc_common.sh.errors b/man/ipc_common.sh.errors > new file mode 100644 > index 0000000..5aa3a11 > --- /dev/null > +++ b/man/ipc_common.sh.errors > @@ -0,0 +1,3 @@ > +.PP > +Common errors go here > + _______________________________________________ discuss mailing list discuss@xxxxxxxxxxxx http://lists.corosync.org/mailman/listinfo/discuss