<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/3.26.0">
</HEAD>
<BODY>
On Thu, 2010-01-21 at 09:26 -0800, Dan Nicholson wrote:
<BLOCKQUOTE TYPE=CITE>
<PRE>
On Thu, Jan 21, 2010 at 7:33 AM, Gaetan Nadon &lt;<A HREF="mailto:memsize@videotron.ca">memsize@videotron.ca</A>&gt; wrote:
&gt; When doing a regular git build with xmlto missing, 'make all'
&gt; and 'make install' fails as it is trying to install man pages
&gt; that were not built.
&gt;
&gt; The patch uses the same techinique used in libXtst and libXi.
&gt; However, this &nbsp;introduces a new problem whereby man pages
&gt; are not created or installed when Xcomposite.man is present
&gt; (which is shipped in a tarball).
&gt;
&gt; Both libraries work the same way now. The make dist will fail
&gt; when xmlto is missing unless Xcomposite.man is present. This is
&gt; what we want, not being able to create a crippled tarball.
&gt;
&gt; Signed-off-by: Gaetan Nadon &lt;<A HREF="mailto:memsize@videotron.ca">memsize@videotron.ca</A>&gt;
&gt; ---
&gt; &nbsp;man/Makefile.am | &nbsp; &nbsp;2 ++
&gt; &nbsp;1 files changed, 2 insertions(+), 0 deletions(-)
&gt;
&gt; diff --git a/man/Makefile.am b/man/Makefile.am
&gt; index 13a75c5..2438efa 100644
&gt; --- a/man/Makefile.am
&gt; +++ b/man/Makefile.am
&gt; @@ -21,8 +21,10 @@ Xcomposite_man_aliases = &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \
&gt;
&gt; &nbsp;Xcomposite_shadowmen = $(Xcomposite_man_aliases:=.@LIB_MAN_SUFFIX@)
&gt;
&gt; +if HAVE_XMLTO
&gt; &nbsp;libman_DATA = $(libman_PRE:man=@LIB_MAN_SUFFIX@) \
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$(Xcomposite_shadowmen)
&gt; +endif
&gt;
&gt; &nbsp;EXTRA_DIST &nbsp;= $(libman_PRE) $(libman_xml)
&gt;

This is not the right approach. The entire purpose of distributing the
generated pages is so that people installing from a tarball can get
the man pages without needing xml doc tools. What needs to happen is
another AM_CONDITIONAL that checks for either xmlto or existence of
processed man pages. Something like this:

configure.ac:
AM_CONDITIONAL([INSTALL_XML_DOCS], [test -f
&quot;$srcdir/man/Xcomposite.man&quot; || test &quot;x$have_xmlto&quot; = xyes])

man/Makefile.am:
if INSTALL_XML_DOCS
libman_DATA = ...
endif

</PRE>
</BLOCKQUOTE>
I had prototyped a similar fix, but I was not sure if I should have gone that far. <BR>
The same situation is in libXi and libXtst. I thought perhaps this was the accepted<BR>
practise. <BR>
<BR>
I'll resubmit this patch and provide additional patches for the other two. It's preferable they<BR>
work the same way.<BR>
<BR>
Thanks
<BLOCKQUOTE TYPE=CITE>
<PRE>
That way we cover all three important cases:

1. Developer with a git checkout who does not have doc tools and
doesn't want to build docs.
2. Developer with a git checkout who does have the doc tools and wants
to build docs (e.g., for make dist)
3. User installing from tarball who does not have doc tools but wants
to install the pregenerated docs.

The only use case not catered for is the user installing from tarball
who has doc tools and wants to rebuild the docs themselves. I'll argue
that this case is not important and they can figure out how to get
make to rebuild the pages themselves.
</PRE>
</BLOCKQUOTE>
It's not a problem. The makefile correctly used MAINTAINECLEAN, so the person is aware.
<BLOCKQUOTE TYPE=CITE>
<PRE>

--
Dan
</PRE>
</BLOCKQUOTE>
</BODY>
</HTML>