1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
|
# Master Makefile for the GNU Concurrent Versions System.
# Copyright (C) 1986, 1988-1992, 1994 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
SHELL = /bin/sh
#### Start of system configuration section. ####
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
# If you use gcc, you should either run the fixincludes script that
# comes with it or else use gcc with the -traditional option. Otherwise
# ioctl calls will be compiled incorrectly on some systems.
CC = @CC@
AR = ar
@SET_MAKE@
# Set RANLIB = echo if your system doesn't have or need ranlib.
RANLIB = @RANLIB@
# Set YACC = bison or yacc, depending on which you have on your system
YACC = @YACC@
# Use cp if you don't have install.
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
DEFS = @DEFS@
LIBS = @LIBS@
INCLUDES = -I. -I../lib @includeopt@
CFLAGS = @CFLAGS@
LDFLAGS = @LDFLAGS@
MAKEINFO = makeinfo
TEXI2DVI = texi2dvi
prefix = @prefix@
exec_prefix = @exec_prefix@
# Where to install the executables.
bindir = $(exec_prefix)/bin
# Where to put the system-wide .cvsrc file
libdir = $(prefix)/lib
# Where to put the Info files
infodir = $(prefix)/info
# Where to put the manual pages.
mandir = $(prefix)/man
#### End of system configuration section. ####
FLAGS_TO_PASS = \
AR='$(AR)' \
CC='$(CC)' \
CFLAGS='$(CFLAGS)' \
LDFLAGS='$(LDFLAGS)' \
LIBPROGS='$(LIBPROGS)' \
LIBS='$(LIBS)' \
MAKE='$(MAKE)' \
MAKEINFO='$(MAKEINFO)' \
RANLIB='$(RANLIB)' \
TEXI2DVI='$(TEXI2DVI)' \
YACC='$(YACC)' \
bindir='$(bindir)' \
infodir='$(infodir)' \
libdir='$(libdir)' \
mandir='$(mandir)' \
prefix='$(prefix)' \
exec_prefix='$(exec_prefix)'
DISTFILES = \
COPYING COPYING.LIB INSTALL README TODO PROJECTS \
BUGS MINOR-BUGS FAQ HACKING DEVEL-CVS TESTS \
README.VMS build.com \
ChangeLog NEWS ChangeLog.zoo \
configure configure.in stamp-h.in config.h.in Makefile.in acconfig.h \
cvs-format.el mkinstalldirs install-sh \
cvsnt.mak \
.cvsignore cvs.spec
### Subdirectories to run make in for the primary targets.
# Unix source subdirs, where we'll want to run lint and etags:
USOURCE_SUBDIRS = lib zlib src
# Documentation directories; special handling
INSTALL_MAN=man
# All other subdirs:
SUBDIRS = ${USOURCE_SUBDIRS} ${INSTALL_MAN} doc contrib tools \
windows-NT os2 macintosh vms
# Only make TAGS/tags files in these directories.
TSUBDIRS= src lib
# Set default target.
all:
.PHONY: all install uninstall installdirs
all install uninstall installdirs: config.h Makefile all-local
@for subdir in $(SUBDIRS); do \
echo "making $@ in $$subdir"; \
( cd $$subdir && $(MAKE) $(FLAGS_TO_PASS) $@ ) || exit 1; \
done
installdirs: installdirs-local
install: all install-local install-info
.PHONY: all-local
all-local:
.PHONY: info dvi clean-info install-info
info dvi clean-info install-info:
cd doc && $(MAKE) $(FLAGS_TO_PASS) $@ || exit 1
.PHONY: install-local
install-local: all-local
@: nothing to do locally
.PHONY: installdirs-local
installdirs-local: all-local
@: nothing to do locally
.PHONY: tags
tags:
@for dir in $(TSUBDIRS); do echo making $@ in $$dir; cd $$dir && $(MAKE) $(FLAGS_TO_PASS) $@ || exit 1; cd ..; done
@echo making $@ in .
@ctags `for i in \`$(MAKE) SUBDIRS="$(TSUBDIRS)" ls\` ; do echo $(srcdir)/$$i ; done`
.PHONY: TAGS
TAGS:
@for dir in $(TSUBDIRS); do echo making $@ in $$dir; cd $$dir && $(MAKE) $(FLAGS_TO_PASS) $@ || exit 1; cd ..; done
@echo making $@ in .
@etags `for i in \`$(MAKE) SUBDIRS="$(TSUBDIRS)" ls | grep -v 'make\[[0-9]\]'\` ; do echo $(srcdir)/$$i ; done`
.PHONY: ls
ls:
@echo $(DISTFILES)
@for dir in $(SUBDIRS); do \
for i in `cd $$dir && $(MAKE) $(FLAGS_TO_PASS) $@ | grep -v 'make\[[0-9]\]'` ; do \
echo $$dir/$$i ; \
done ; \
done
.PHONY: clean
clean: clean-local
@for dir in $(SUBDIRS); do echo making $@ in $$dir; cd $$dir && $(MAKE) $(FLAGS_TO_PASS) $@ || exit 1; cd ..; done
.PHONY: distclean
distclean: distclean-local
@for dir in $(SUBDIRS); do echo making $@ in $$dir; cd $$dir && $(MAKE) $(FLAGS_TO_PASS) $@ || exit 1; cd ..; done
rm -f config.status
.PHONY: realclean
realclean: realclean-local
@for dir in $(SUBDIRS); do echo making $@ in $$dir; cd $$dir && $(MAKE) $(FLAGS_TO_PASS) $@ || exit 1; cd ..; done
rm -f config.status
.PHONY: mostlyclean-local
mostlyclean-local:
rm -f *~
.PHONY: clean-local
clean-local: mostlyclean-local
.PHONY: distclean-local
distclean-local: clean-local
rm -f Makefile config.cache config.h config.log stamp-h
rm -f tags TAGS
.PHONY: realclean-local
realclean-local: distclean-local
.PHONY: saber
saber:
@for dir in $(SUBDIRS); do cd $$dir && $(MAKE) $(FLAGS_TO_PASS) $@ || exit 1; cd ..; done
.PHONY: check
check:
cd lib ; $(MAKE) $(FLAGS_TO_PASS)
cd zlib ; $(MAKE) $(FLAGS_TO_PASS)
cd src ; $(MAKE) $(FLAGS_TO_PASS) check
.PHONY: remotecheck
remotecheck:
cd lib ; $(MAKE) $(FLAGS_TO_PASS)
cd zlib ; $(MAKE) $(FLAGS_TO_PASS)
cd src ; $(MAKE) $(FLAGS_TO_PASS) remotecheck
.PHONY: installcheck
installcheck:
cd lib ; $(MAKE) $(FLAGS_TO_PASS)
cd zlib ; $(MAKE) $(FLAGS_TO_PASS)
cd src ; $(MAKE) $(FLAGS_TO_PASS) installcheck
.PHONY: lint
lint:
@for dir in $(USOURCE_SUBDIRS); do cd $$dir && $(MAKE) $(FLAGS_TO_PASS) xlint || exit 1; cd ..; done
.PHONY: dist
GZIP=gzip --best
GZIP_EXT=.gz
TAR_VERBOSE=
dist: spec
rm -rf `cat .fname`
${MAKE} dist-dir DISTDIR="`cat .fname`"
for dir in ${SUBDIRS}; do \
( DISTDIR="../`cat .fname`/$${dir}"; \
cd $${dir} && \
${MAKE} dist-dir DISTDIR="$${DISTDIR}" \
); \
done
tar chf${TAR_VERBOSE} - `cat .fname` | ${GZIP} > "`cat .fname`.tar${GZIP_EXT}"
rm -rf `cat .fname` .fname .version
.PHONY: dist-dir
dist-dir:
mkdir ${DISTDIR}
for i in ${DISTFILES}; do \
ln $(srcdir)/$${i} ${DISTDIR}; \
done
.PHONY: spec
spec:
rm -f .version .fname
sed < $(srcdir)/src/version.c \
-e '/version_string/!d' \
-e 's/[^0-9.]*\([0-9.]*\).*/\1/' \
-e q > .version
echo > .fname cvs-`cat .version`
rm -f `cat .fname`.spec
sed < $(top_srcdir)/cvs.spec \
-e 's/@VERSION@/'`cat .version`'/' \
> `cat .fname`.spec
# For the justification of the following Makefile rules, see node
# `Automatic Remaking' in GNU Autoconf documentation.
Makefile: Makefile.in config.status
CONFIG_FILES=$@ CONFIG_HEADERS= ./config.status
# Use @CFLAGS@ not $(CFLAGS) because it would be confusing for "make CFLAGS="
# to sometimes (i.e., if configure is modified) change the configured CFLAGS,
# and sometimes not.
config.status: configure
CFLAGS="@CFLAGS@" ./config.status --recheck
# The rules to run autoconf and autoheader are commented out. This is because
# when the user unpacks a tarfile, configure.in might end up newer than
# configure, but the user might not have (and does not need to have) autoconf
# installed.
#configure: configure.in #aclocal.m4
# cd $(srcdir); autoconf
config.h: stamp-h
# This used to do a ./config.status --recheck, to update config.status with
# any new #defines from config.h.in. The problem was that the rule itself
# depends on config.status, so that the --recheck would get run several
# times, which is bad if the user was trying to specify CFLAGS manually.
# It was a big pain in the neck.
stamp-h: config.h.in config.status
CONFIG_FILES=$@ CONFIG_HEADERS=config.h ./config.status
#config.h.in: stamp-h.in
#stamp-h.in: configure.in #aclocal.m4 acconfig.h
# cd $(srcdir); autoheader
# date > $(srcdir)/stamp-h.in
# Tell versions [3.59,3.63) of GNU make not to export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
|