[Top][All Lists]

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

proper usage of Texinfo-related features of Automake

From: Alexey Mahotkin
Subject: proper usage of Texinfo-related features of Automake
Date: Wed, 27 Jun 2001 00:13:12 +0400 (MSD)


I've removed the need for CVSvn.texi and all related hacks by
exploiting the standard Automake "@include version.texi" feature.

Sequence of steps:

- cvs rm -f CVSvn.texi*

- apply the patch attached below;

- automake -a -c;       # to bring mdate-sh to top-level dir)

- cvs add mdate-sh

- cp mdate-sh doc/;     # work around bug in Automake 1.4f

- cvs add mdate-sh stamp-vti version.texi; 

The Automake bug consists in running $(srcdir)/mdate-sh instead of
$(top_srcdir)/mdate.sh.  When it will be fixed in next release of
Automake, we could leave only top-level mdate.sh.

Given the amount of hackery that goes around CVSvn.texi it seems like
a good thing to do?

Here is the ChangeLog:

2001-06-27  Alexey Mahotkin  <alexm@hsys.msk.ru>

        * cvsclient.texi, cvs.texinfo: @include version.texi and change
        CVSVN to VERSION.

        * version.texi, stamp-vti: Generated

        * Makefile.am, Makefile.in, CVSvn.texi, CVSvn.texi.in: no need for
        CVSvn.texi no more

        * mdate-sh: work-around bug in Automake 1.4f by copying top-level
        mdate-sh here

diff -urN --exclude=*~ --exclude=Makefile ccvs/doc/Makefile.am 
--- ccvs/doc/Makefile.am        Tue Jun 26 23:41:18 2001
+++ ccvs-fixed/doc/Makefile.am  Tue Jun 26 23:55:41 2001
@@ -12,14 +12,7 @@
 # GNU General Public License for more details.
-# FIXME - these rebuild every 'make dist' with some BSD makes due to a bug
-# that prevents make from searching VPATH for targets.  There is some
-# machinery in place in configure.in to work around this for some targets
-# (see the CVSvn.texi target below) now, but fixing the two info_TEXINFOS
-# targets below is probably going to require work on Automake
 info_TEXINFOS = cvs.texinfo cvsclient.texi
-cvs_TEXINFOS = CVSvn.texi
-cvsclient_TEXINFOS = CVSvn.texi
        cvs.ps \
@@ -38,9 +31,9 @@
        $(POSTSCRIPTS) \
        .cvsignore \
-       CVSvn.texi.in \
        ChangeLog.fsf \
        RCSFILES \
+       mdate-sh \
@@ -62,8 +55,8 @@
 dvi: cvs.dvi cvsclient.dvi
 .PHONY: dvi
-cvs.aux cvs.pdf cvs.txt: cvs.texinfo $(cvs_TEXINFOS)
-cvsclient.aux cvsclient.pdf cvsclient.txt: cvsclient.texi $(cvsclient_TEXINFOS)
+cvs.aux cvs.pdf cvs.txt: cvs.texinfo
+cvsclient.aux cvsclient.pdf cvsclient.txt: cvsclient.texi
 # These targets need to be very specific so that the other PDFs get generated 
 # If they are more generic and cvs.ps is made before cvs.pdf, then cvs.pdf 
will be
@@ -100,33 +93,6 @@
          MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(MAKEINFO) $< --no-headers -o $@
 ## MAINTAINER Targets
-## CVSvn.texi ##
-# - CVSvn.texi needs to be updated only once, since it depends on
-#   configure.in, not on the results of a 'configure' run.
-# - It is guaranteed (with GNU Make) that when the version in configure.in
-#   is changed, acversion.m4 is built only after the new version number is
-#   propagated to the Makefile.  (Libtool uses the same guarantee.)
-# - Of the next three targets, only the next one or the following two should be
-#   enabled, not all three
-# - This is the target for systems without the BSD VPATH bug in make or with
-#   $(srcdir) = $(builddir)
-CVSvn.texi: $(srcdir)/CVSvn.texi.in $(top_srcdir)/configure.in
-       sed 's,@VERSION\@,$(VERSION),g' $(srcdir)/CVSvn.texi.in 
-       mv $(srcdir)/CVSvn.ttexi $(srcdir)/CVSvn.texi
-# - The next two targets are a workaround for the fact that some BSD makes
-#   don't look through VPATH for targets, but only for sources.
-# - They should be disabled on systems without the bug and in environments
-#   where $(srcdir) = $(builddir)
-CVSvn.texi: $(srcdir)/CVSvn.texi
-       ## use cat so the time stamp gets set properly
-       cat $(srcdir)/CVSvn.texi >$@
-$(srcdir)/CVSvn.texi: $(srcdir)/CVSvn.texi.in $(top_srcdir)/configure.in
-       sed 's,@VERSION\@,$(VERSION),g' $(srcdir)/CVSvn.texi.in 
-       mv $(srcdir)/CVSvn.ttexi $(srcdir)/CVSvn.texi
 ## realclean ##
 # for backwards compatibility with the old makefiles
diff -urN --exclude=*~ --exclude=Makefile ccvs/doc/cvs.texinfo 
--- ccvs/doc/cvs.texinfo        Tue Jun 26 23:10:40 2001
+++ ccvs-fixed/doc/cvs.texinfo  Wed Jun 27 00:03:56 2001
@@ -38,8 +38,8 @@
 @setfilename cvs.info
-@include CVSvn.texi
-@settitle CVS---Concurrent Versions System v@value{CVSVN}
+@include version.texi
+@settitle CVS---Concurrent Versions System v@value{VERSION}
 @setchapternewpage odd
 @c -- TODO list:
@@ -91,7 +91,7 @@
 @center @titlefont{CVS}
 @sp 2
-@center for @sc{cvs} @value{CVSVN}
+@center for @sc{cvs} @value{VERSION}
 @comment -release-
 @sp 3
 @center Per Cederqvist et al
@@ -132,7 +132,7 @@
 @c something they can both cope with.
 This info manual describes how to use and administer
-@sc{cvs} version @value{CVSVN}.
+@sc{cvs} version @value{VERSION}.
 @end ifnottex
 @c This menu is pretty long.  Not sure how easily that
diff -urN --exclude=*~ --exclude=Makefile ccvs/doc/cvsclient.texi 
--- ccvs/doc/cvsclient.texi     Sat Mar 31 02:23:39 2001
+++ ccvs-fixed/doc/cvsclient.texi       Tue Jun 26 23:27:08 2001
@@ -1,7 +1,7 @@
 \input texinfo @c -*- texinfo -*-
 @setfilename cvsclient.info
-@include CVSvn.texi
+@include version.texi
 @dircategory Programming
@@ -13,7 +13,7 @@
 This document describes the client/server protocol used by CVS.  It does
 not describe how to use or administer client/server CVS; see the regular
-CVS manual for that.  This is version @value{CVSVN} of the protocol
+CVS manual for that.  This is version @value{VERSION} of the protocol
 specification---@xref{Introduction}, for more on what this version number
@@ -59,7 +59,7 @@
 @file{cvsclient.texi}, can be found at the usual GNU FTP sites, with a
 filename such as @file{cvs-@var{version}.tar.gz}.
-This is version @value{CVSVN} of the protocol specification.  This
+This is version @value{VERSION} of the protocol specification.  This
 version number is intended only to aid in distinguishing different
 versions of this specification.  Although the specification is currently
 maintained in conjunction with the CVS implementation, and carries the


reply via email to

[Prev in Thread] Current Thread [Next in Thread]