Re: [PATCH 1/7] man: add build infrastructure to generate devel man pages

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Clusters]     [Corosync Project]     [Linux USB Devel]     [Linux Audio Users]     [Photo]     [Yosemite News]    [Yosemite Photos]    [Linux Kernel]     [Linux SCSI]     [X.Org]

  Powered by Linux