xref: /openbsd/gnu/usr.bin/cvs/doc/Makefile.am (revision 43c1707e)
1## Process this file with automake to produce Makefile.in
2# Makefile for GNU CVS documentation (excluding man pages - see ../man).
3# Copyright (C) 1986, 1988-1990, 2000 Free Software Foundation, Inc.
4
5# This program is free software; you can redistribute it and/or modify
6# it under the terms of the GNU General Public License as published by
7# the Free Software Foundation; either version 2, or (at your option)
8# any later version.
9
10# This program is distributed in the hope that it will be useful,
11# but WITHOUT ANY WARRANTY; without even the implied warranty of
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13# GNU General Public License for more details.
14
15#DISTFILES = \
16#	.cvsignore \
17#	RCSFILES \
18
19# AUTOMAKE_OPTIONS = no-texinfo.tex
20
21# FIXME - these rebuild every 'make dist' with some BSD makes due to a bug
22# that prevents make from searching VPATH for targets.  There is some
23# machinery in place in configure.in to work around this for some targets
24# (see the CVSvn.texi target below) now, but fixing the two info_TEXINFOS
25# targets below is probably going to require work on Automake
26info_TEXINFOS = cvs.texinfo cvsclient.texi
27cvs_TEXINFOS = CVSvn.texi
28cvsclient_TEXINFOS = CVSvn.texi
29
30POSTSCRIPTS = \
31	cvs.ps \
32	cvs-paper.ps \
33	cvsclient.ps
34
35PDFS = \
36	cvs-paper.pdf \
37	cvs.pdf \
38	cvsclient.pdf
39
40TXTS = \
41	cvs.txt \
42	cvsclient.txt
43
44EXTRA_DIST = \
45	$(POSTSCRIPTS) \
46	.cvsignore \
47	CVSvn.texi.in \
48	ChangeLog.fsf \
49	RCSFILES \
50	cvs-paper.ms \
51	cvs.aux \
52	cvsclient.aux
53
54# Listing cvs.cps & cvs.fns here is a workaround for an Automake deficiency
55MOSTLYCLEANFILES = \
56	cvs.cps \
57	cvs.fns
58
59CLEANFILES = \
60	$(PDFS) \
61	$(TXTS)
62
63MAINTAINERCLEANFILES = \
64	cvs-paper.ps
65
66doc ps: $(POSTSCRIPTS)
67.PHONY: doc ps
68
69pdf: $(PDFS)
70.PHONY: pdf
71
72txt: $(TXTS)
73.PHONY: txt
74
75dvi: cvs.dvi cvsclient.dvi
76.PHONY: dvi
77
78cvs.aux cvs.pdf cvs.txt: cvs.texinfo $(cvs_TEXINFOS)
79cvsclient.aux cvsclient.pdf cvsclient.txt: cvsclient.texi $(cvsclient_TEXINFOS)
80
81# These targets need to be very specific so that the other PDFs get generated correctly.
82# If they are more generic and cvs.ps is made before cvs.pdf, then cvs.pdf will be
83# generated from the generic target and the PS source, which contains less information
84# than the usual texinfo source.
85cvs-paper.pdf: cvs-paper.ps
86	$(ROFF) -t -p -ms -Tps $< > $@-t
87	mv $@-t $@
88
89cvs-paper.ps: cvs-paper.ms
90	$(PS2PDF) $< $@
91
92SUFFIXES = .aux .txt .pdf
93
94# texinfo based targets automake neglects to include
95.texinfo.pdf:
96	TEXINPUTS=$(srcdir):$$TEXINPUTS \
97	  MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) --pdf $<
98.txi.pdf:
99	TEXINPUTS=$(srcdir):$$TEXINPUTS \
100	  MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) --pdf $<
101.texi.pdf:
102	TEXINPUTS=$(srcdir):$$TEXINPUTS \
103	  MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) --pdf $<
104
105.texinfo.aux:
106	TEXINPUTS=$(srcdir):$$TEXINPUTS \
107	  MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
108.txi.aux:
109	TEXINPUTS=$(srcdir):$$TEXINPUTS \
110	  MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
111.texi.aux:
112	TEXINPUTS=$(srcdir):$$TEXINPUTS \
113	  MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
114
115.texinfo.txt:
116	TEXINPUTS=$(srcdir):$$TEXINPUTS \
117	  MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(MAKEINFO) $< --no-headers -o $@
118.txi.txt:
119	TEXINPUTS=$(srcdir):$$TEXINPUTS \
120	  MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(MAKEINFO) $< --no-headers -o $@
121.texi.txt:
122	TEXINPUTS=$(srcdir):$$TEXINPUTS \
123	  MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(MAKEINFO) $< --no-headers -o $@
124
125## MAINTAINER Targets
126
127## CVSvn.texi ##
128# - CVSvn.texi needs to be updated only once, since it depends on
129#   configure.in, not on the results of a 'configure' run.
130# - It is guaranteed (with GNU Make) that when the version in configure.in
131#   is changed, acversion.m4 is built only after the new version number is
132#   propagated to the Makefile.  (Libtool uses the same guarantee.)
133# - Of the next three targets, only the next one or the following two should be
134#   enabled, not all three
135if MAKE_TARGETS_IN_VPATH
136# - This is the target for systems without the BSD VPATH bug in make or with
137#   $(srcdir) = $(builddir)
138CVSvn.texi: $(srcdir)/CVSvn.texi.in $(top_srcdir)/configure.in
139	sed 's,@VERSION\@,$(VERSION),g' $(srcdir)/CVSvn.texi.in >$(srcdir)/CVSvn.ttexi
140	mv $(srcdir)/CVSvn.ttexi $(srcdir)/CVSvn.texi
141else
142# - The next two targets are a workaround for the fact that some BSD makes
143#   don't look through VPATH for targets, but only for sources.
144# - They should be disabled on systems without the bug and in environments
145#   where $(srcdir) = $(builddir)
146CVSvn.texi: $(srcdir)/CVSvn.texi
147	# use cat so the time stamp gets set properly
148	cat $(srcdir)/CVSvn.texi >$@
149$(srcdir)/CVSvn.texi: $(srcdir)/CVSvn.texi.in $(top_srcdir)/configure.in
150	sed 's,@VERSION\@,$(VERSION),g' $(srcdir)/CVSvn.texi.in >$(srcdir)/CVSvn.ttexi
151	mv $(srcdir)/CVSvn.ttexi $(srcdir)/CVSvn.texi
152endif
153
154## realclean ##
155# for backwards compatibility with the old makefiles
156realclean: maintainer-clean
157.PHONY: realclean
158