[PATCH XTS 3/7] Double-use the README as man-page.

Dan Nicholson dbn.lists at gmail.com
Tue Jun 29 16:59:15 PDT 2010


On Tue, Jun 29, 2010 at 4:10 PM, Peter Hutterer
<peter.hutterer at who-t.net> wrote:
> If asciidoc and xmlto is available at install time, convert the README to a
> man page. The autotool hack for this is a bit complicated, but does the job.
> It's essentially copied from libXi that uses asciidoc + xmlto for man page
> generation as well.
>
> Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
> ---
>  Makefile.am  |   24 ++++++++++++++++++++++++
>  README       |   23 +++++++++++++++++------
>  configure.ac |   19 +++++++++++++++++++
>  3 files changed, 60 insertions(+), 6 deletions(-)
>
> diff --git a/Makefile.am b/Makefile.am
> index 7bd345e..3d53694 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -18,3 +18,27 @@ check-local: check.sh
>  # Helper target for testing subsets (test-Xopen, etc.)
>  test-%:
>        @$(MAKE) $(AM_MAKEFLAGS) check scenario='$*'
> +
> +if HAVE_DOCTOOLS
> +miscmandir = $(MISC_MAN_DIR)
> +xtsman_txt = XTS.txt
> +xtsman_xml = $(xtsman_txt:.txt=.xml)
> +xtsman_pre = $(xtsman_txt:.txt=.man)
> +miscman_DATA = $(xtsman_pre:.man=.$(MISC_MAN_SUFFIX))
> +
> +SUFFIXES = .man .$(MISC_MAN_SUFFIX) .txt .xml
> +
> +XTS.txt: README
> +       cp $(srcdir)/README XTS.txt
> +
> +.man.$(MISC_MAN_SUFFIX):
> +       sed -e 's|miscmansuffix|$(MISC_MAN_SUFFIX)|' < $< > $@
> +.txt.xml:
> +       $(ASCIIDOC) -b docbook -d manpage -o $@ $<
> +.xml.man:
> +       $(XMLTO) man $<
> +       mv -f $(@:.man=.miscmansuffix) $@
> +
> +MAINTAINERCLEANFILES = *.xml $(xtsman_pre) $(xtsman_txt)
> +endif
> +
> diff --git a/README b/README
> index af18b04..41f86ee 100644
> --- a/README
> +++ b/README
> @@ -1,8 +1,18 @@
> +XTS(miscmansuffix)
> +==================
> +
> +Name
> +----
> +    XTS - The X Test Suite
> +
> +Description
> +-----------
> +
>  This is a revamped version of X Test Suite (XTS) which removes some of
>  the ugliness of building and running the tests.
>
>  Downloading
> -===========
> +-----------
>  Currently xts it is only available from a git repository.
>
>        $ git clone git://people.freedesktop.org/~dbn/xtest.git
> @@ -10,8 +20,9 @@ Currently xts it is only available from a git repository.
>  Eventually there will be a tarball release when it is stabilized.
>
>  Requirements
> -============
> +------------
>  Required libraries: libX11, libXext, libXi, libXtst
> +
>  Required utilities: xdpyinfo, xset, perl, bdftopcf, mkfontdir
>
>  If you are using packages outside of the standard system directories,
> @@ -19,7 +30,7 @@ make sure to set PATH and PKG_CONFIG_PATH appropriately. See
>  pkg-config(1) for details on the latter.
>
>  Build and Install
> -=================
> +-----------------
>  The build and install are now straightforward:
>
>        $ ./autogen.sh  # using a git checkout
> @@ -28,7 +39,7 @@ The build and install are now straightforward:
>        $ make install
>
>  Running the Tests
> -=================
> +-----------------
>  The tests can be run from the build directory or from the installed
>  package. The check.sh script sets up the environment to run tests from
>  the build tree.
> @@ -56,7 +67,7 @@ the xts-report tool (formerly vswrpt):
>        $ xts-report -f /xts/output/dir/journal
>
>  Running a Single Test
> -=====================
> +---------------------
>  The pt script can be used to run a single set of tests or a single test case
>  only. For example, to run only the XGrabButton tests, run
>         $ pt ./XGrabButton
> @@ -75,7 +86,7 @@ To run only a single test-case inside one test set, use the -i flag.
>  This command only runs test case 10 (t010() in the source).
>
>  Bugs
> -====
> +----
>  Some tests provide different results when run as a set versus run
>  one-by-one with the pt script. This has been observed with
>  Xlib13/XGrabButton where the modifier state is not reset correctly.
> diff --git a/configure.ac b/configure.ac
> index 158b72a..6f51fc0 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -109,6 +109,25 @@ fi
>  m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])],
>     [AC_SUBST([AM_DEFAULT_VERBOSITY], [1])])
>
> +# Generate man page if asciidoc and xmlto are available.
> +AC_ARG_VAR([XMLTO], [Path to xmlto command])
> +AC_PATH_PROG([XMLTO], [xmlto])
> +AC_ARG_VAR([ASCIIDOC], [Path to asciidoc command])
> +AC_PATH_PROG([ASCIIDOC], [asciidoc])
> +
> +AM_CONDITIONAL([HAVE_DOCTOOLS], [test "x$XMLTO" != "x" && test "x$ASCIIDOC" != "x"])
> +if test "x$XMLTO" = "x" || test "x$ASCIIDOC" = "x"; then
> +    AC_MSG_WARN([xmlto or asciidoc not found - cannot create man pages without it])
> +else
> +    if test x$MISC_MAN_SUFFIX = x    ; then
> +        case $host_os in
> +            solaris*)       MISC_MAN_SUFFIX=5  ;;
> +            *)              MISC_MAN_SUFFIX=7  ;;
> +        esac
> +    fi
> +    AC_SUBST(MISC_MAN_SUFFIX)
> +fi
> +
>  AC_CONFIG_FILES([
>  Makefile
>  check.sh

All the autoconf magic seems fine, but is there any reason not to pull
in the macros from xorg-macros at some point?

--
Dan


More information about the xorg-devel mailing list