Merge branch 'mirbsd', mostly reverting commit a4bdd3373a67c89fb350e619958b5a7e144c9c3b
[alioth/cvs.git] / doc / Makefile.am
1 ## Process this file with automake to produce Makefile.in
2 # $MirOS: src/gnu/usr.bin/cvs/doc/Makefile.am,v 1.5 2017/01/09 22:54:22 tg Exp $
3 # Makefile for GNU CVS documentation (excluding man pages - see ../man).
4 #
5 # Copyright (C) 1986-2005 The Free Software Foundation, Inc.
6 #
7 # Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
8 #                                  and others.
9
10 # This program is free software; you can redistribute it and/or modify
11 # it under the terms of the GNU General Public License as published by
12 # the Free Software Foundation; either version 2, or (at your option)
13 # any later version.
14
15 # This program is distributed in the hope that it will be useful,
16 # but WITHOUT ANY WARRANTY; without even the implied warranty of
17 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 # GNU General Public License for more details.
19
20 SUBDIRS = i18n
21
22 info_TEXINFOS = cvs.texinfo cvsclient.texi
23 man_MANS = $(srcdir)/cvs.1
24
25 PSS = \
26         cvs.ps \
27         cvs-paper.ps \
28         cvsclient.ps
29
30 PDFS = \
31         cvs.pdf \
32         $(srcdir)/cvs-paper.pdf \
33         cvsclient.pdf
34
35 TXTS = \
36         cvs.txt \
37         cvsclient.txt
38
39 EXTRA_DIST = \
40         .cvsignore \
41         ChangeLog.fsf \
42         HACKING.DOCS \
43         RCSFILES \
44         $(srcdir)/cvs.1 \
45         cvs-paper.ms \
46         cvs.man.header \
47         cvs.man.footer \
48         getdate.texi \
49         mdate-sh \
50         writeproxy.rtf \
51         $(PDFS)
52
53 MOSTLYCLEANFILES =
54
55 CLEANFILES = \
56         $(PSS) \
57         $(TXTS)
58
59 DISTCLEANFILES =
60
61 MAINTAINERCLEANFILES = \
62         $(PDFS)
63
64 doc: info pdf
65 .PHONY: doc
66
67 txt: $(TXTS)
68 .PHONY: txt
69
70 dvi: cvs.dvi cvsclient.dvi
71 .PHONY: dvi
72
73 # FIXME-AUTOMAKE:
74 # For some reason if I remove version.texi, it doesn't get built automatically.
75 # This needs to be fixed in automake.
76 cvs.txt: cvs.texinfo $(srcdir)/version.texi
77 cvsclient.txt: cvsclient.texi $(srcdir)/version-client.texi
78
79 # The cvs-paper.pdf target needs to be very specific so that the other PDFs get
80 # generated correctly.  If a more generic .ps.pdf implicit target is defined,
81 # and cvs.ps is made before cvs.pdf, then cvs.pdf can be generated from the
82 # .ps.pdf target and the PS source, which contains less information (hyperlinks
83 # and such) than the usual texinfo source.
84 #
85 # It is possible that an implicit .ms.ps target could be safely defined.  I
86 # don't recall looking into it.
87 cvs-paper.ps: cvs-paper.ms
88         $(ROFF) -t -p -ms -Tps -P-p28c,21c $(srcdir)/cvs-paper.ms >cvs-paper.ps-t
89         cp cvs-paper.ps-t $@
90         -@rm -f cvs-paper.ps-t
91
92 # This rule introduces some redundancy, but `make distcheck' requires that
93 # Nothing in $(srcdir) be rebuilt, and this will always be rebuilt when it
94 # is dependant on cvs-paper.ps and cvs-paper.ps isn't distributed.
95 $(srcdir)/cvs-paper.pdf: cvs-paper.ms
96         $(ROFF) -t -p -ms -Tps -P-p28c,21c $(srcdir)/cvs-paper.ms >cvs-paper.ps-t
97         ps2pdf14 -sPAPERSIZE=pa4 cvs-paper.ps-t cvs-paper.pdf-t
98         cp cvs-paper.pdf-t $@
99         -@rm -f cvs-paper.pdf-t cvs-paper.ps-t
100
101 MOSTLYCLEANFILES += cvs-paper.pdf-t cvs-paper.ps-t
102
103 # Targets to build a man page from cvs.texinfo.
104 $(srcdir)/cvs.1: @MAINTAINER_MODE_TRUE@ mkman cvs.man.header cvs.texinfo cvs.man.footer
105         $(PERL) ./mkman $(srcdir)/cvs.man.header $(srcdir)/cvs.texinfo \
106                 $(srcdir)/cvs.man.footer >cvs.tmp
107         cp cvs.tmp $(srcdir)/cvs.1
108         -@rm -f cvs.tmp
109 MAINTAINERCLEANFILES += $(srcdir)/cvs.1
110
111 cvs.dvi cvs.html $(srcdir)/cvs.info cvs.pdf cvs.ps cvs.txt: $(srcdir)/getdate-cvs.texi
112 $(srcdir)/getdate-cvs.texi: stamp-gdt
113 stamp-gdt: getdate.texi
114         @echo "@c This file is generated via a rule in Makefile.am from the" \
115           >getdate-cvs.tmp
116         @echo "@c getdate.texi file." >>getdate-cvs.tmp
117         @echo "@c" >>getdate-cvs.tmp
118         @echo "@c *** DO NOT EDIT THIS FILE DIRECTLY ***" >>getdate-cvs.tmp
119         @echo "@c" >>getdate-cvs.tmp
120         @echo "@c Edit getdate.texi instead." >>getdate-cvs.tmp
121         @echo >>getdate-cvs.tmp
122         sed -e "s/^@chapter /@appendixsec /" \
123             -e "s/^@section /@appendixsubsec /" \
124           <$(srcdir)/getdate.texi >>getdate-cvs.tmp
125         @cmp -s getdate-cvs.tmp $(srcdir)/getdate-cvs.texi \
126           || (echo "Updating getdate-cvs.texi"; \
127               cp getdate-cvs.tmp $(srcdir)/getdate-cvs.texi)
128         -@rm -f getdate-cvs.tmp
129         @cp $(srcdir)/getdate-cvs.texi $@
130
131 ## If getdate-cvs.texi is not distributed, infos get rebuilt at every install.
132 ## This is a pretty big no-no.
133 EXTRA_DIST += getdate-cvs.texi
134 MOSTLYCLEANFILES += getdate-cvs.tmp
135 DISTCLEANFILES += stamp-gdt
136
137 # texinfo based targets automake neglects to include
138 SUFFIXES = .txt
139 .texinfo.txt:
140         $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
141          --no-headers -o $@ `test -f '$<' || echo '$(srcdir)/'`$<
142 .txi.txt:
143         $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
144          --no-headers -o $@ `test -f '$<' || echo '$(srcdir)/'`$<
145 .texi.txt:
146         $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
147          --no-headers -o $@ `test -f '$<' || echo '$(srcdir)/'`$<
148
149 ##
150 ## MAINTAINER Targets
151 ##
152
153 # for backwards compatibility with the old makefiles
154 realclean: maintainer-clean
155 .PHONY: realclean