INSTALL revision 267654
1208538Sraj-------------------------------------------------------------------------------
2208538Sraj
3208538SrajCVS is Copyright (C) 1986-2006 The Free Software Foundation, Inc.
4208538Sraj
5208538SrajCVS is free software; you can redistribute it and/or modify
6208538Srajit under the terms of the GNU General Public License as published by
7208538Srajthe Free Software Foundation; either version 1, or (at your option)
8208538Srajany later version.
9208538Sraj
10208538SrajThis program is distributed in the hope that it will be useful,
11208538Srajbut WITHOUT ANY WARRANTY; without even the implied warranty of
12208538SrajMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13208538SrajGNU General Public License for more details.
14208538Sraj
15208538Sraj-------------------------------------------------------------------------------
16208538Sraj
17208538SrajNow back to our regularly scheduled program:
18208538Sraj
19208538SrajPlease read the README file before reading this INSTALL file.  Then, to
20208538Srajinstall CVS:
21208538Sraj
22208538Sraj
23208538SrajFirst you need to obtain and install the CVS executables.  If you got
24208538Sraja distribution which contains executables, consult the installation
25208538Srajinstructions for that distribution.  If you got source code, do not
26208538Srajpanic.  On many platforms building CVS from source code is a
27208538Srajstraightforward process requiring no programming knowledge.  See the
28208538Srajsection BUILDING FROM SOURCE CODE at the end of this file, which
29208538Srajincludes a list of platforms which have been tested.
30208538Sraj
31208538Sraj-------------------------------------------------------------------------------
32208538Sraj
33208538Sraj1) Take a look at the CVS documentation, if desired.  For most
34208538Sraj   purposes you want doc/cvs.texinfo, also known as _Version Management
35208538Sraj   with CVS_ by Per Cederqvist et al.  Looking at it might be as simple
36233230Sraj   as "info cvs" but this will depend on your installation; see README
37233230Sraj   for more details.
38233230Sraj
39208538Sraj   See what CVS can do for you, and if it fits your environment (or can
40208538Sraj   possibly be made to fit your environment).  If things look good,
41208538Sraj   continue on.  Alternately, just give CVS a try first then figure out
42208538Sraj   what it is good for.
43208538Sraj
44208538Sraj2) Set the CVSROOT environment variable to where you want to put your
45208538Sraj   source repository.  See the "Setting up the repository" section of
46208538Sraj   the Cederqvist manual for details, but the quick summary is just to
47208538Sraj   pick some directory.  We'll use /src/master as an example.  For
48208538Sraj   users of a POSIX shell (sh/bash/ksh) on unix, the following
49208538Sraj   commands can be placed in user's ~/.profile, ~/.bash_profile file;
50208538Sraj   or in the site-wide /etc/profile:
51208538Sraj
52208538Sraj       CVSROOT=/src/master; export CVSROOT
53208538Sraj
54208538Sraj   For C shell users on unix place the following commands in the
55208538Sraj   user's ~/.cshrc, ~/.login, or /etc/chsrc file:
56208538Sraj
57208538Sraj       setenv CVSROOT /src/master
58235529Skientzle
59235529Skientzle   For Windows users, supposing the repository will be in
60233230Sraj   d:\src\master, place the following line in c:\autoexec.bat.  On
61233230Sraj   Windows 95, autoexec.bat might not already exist.  In that case,
62233230Sraj   just create a new file containing the following line.
63243693Sgonzo
64243693Sgonzo       set CVSROOT=:local:d:\src\master
65247201Skientzle
66247250Skientzle   If these environment variables are not already set in your current
67247201Skientzle   shell, set them now by typing the above line at the command prompt
68247250Skientzle   (or source the login script you just edited).
69247250Skientzle   The instructions for the remaining steps assume that you have set
70208538Sraj   the CVSROOT environment variable.
71235529Skientzle
72235529Skientzle3) Create the master source repository.  Again, the details are in
73247250Skientzle   the "Setting up the repository" section of cvs.texinfo; the
74247250Skientzle   one-line summary is:
75247250Skientzle
76235529Skientzle       $ cvs init
77208538Sraj
78243693Sgonzo   In this and subsequent examples we use "$" to indicate the command
79243693Sgonzo   prompt; do not type the "$".
80208538Sraj
81208538Sraj4) It might be a good idea to jump right in and put some sources or
82243693Sgonzo   documents directly under CVS control.  From within the top-level
83208538Sraj   directory of your source tree, run the following commands:
84208538Sraj
85208538Sraj       $ cvs import -m "test distribution" ccvs CVS_DIST CVS-TEST
86208538Sraj
87208538Sraj   (Those last three items are, respectively, a repository location, a
88208538Sraj   "vendor tag", and a "release tag".  You don't need to understand
89208538Sraj   them yet, but read the section "Starting new projects" in the
90208538Sraj   Cederqvist manual for details).
91243693Sgonzo
92208538Sraj5) Having done step 4, one should be able to checkout a fresh copy of the
93208538Sraj   sources you just imported and hack away at the sources with the
94208538Sraj   following command:
95208538Sraj
96208538Sraj      $ cd
97208538Sraj      $ cvs checkout ccvs
98243693Sgonzo
99208538Sraj   This will make the directory "ccvs" in your current directory and
100208538Sraj   populate it with the appropriate files and directories.
101208538Sraj
102243693Sgonzo6) You may wish to customize the various administrative files, in particular
103243693Sgonzo   modules.  See the Cederqvist manual for details.
104243693Sgonzo
105243693Sgonzo7) Read the NEWS file to see what's new.
106243693Sgonzo
107243693Sgonzo8) Hack away.
108243693Sgonzo
109243693Sgonzo-------------------------------------------------------------------------------
110243693Sgonzo
111243693SgonzoBUILDING FROM SOURCE CODE
112243693Sgonzo
113208538SrajTested platforms
114208538Sraj
115208538SrajCVS has been tested on the following platforms.  The most recent
116208538Srajversion of CVS reported to have been tested is indicated, but more
117208538Srajrecent versions of CVS probably will work too.  Please send updates to
118233230Srajthis list to bug-cvs@nongnu.org (doing so in the form of a diff
119235529Skientzleto this file, or at least exact suggested text, is encouraged).
120233230Sraj"tested" means, at a minimum, that CVS compiles and appears to work on
121248121Siansimple (manual) testing.  In many cases it also means "make check"
122248121Sianand/or "make remotecheck" passes, but we don't try to list the
123233230Srajplatforms for which that is true.
124248121Sian
125233230SrajAlpha:
126233230Sraj	DEC Alpha running OSF/1 version 1.3 using cc (about 1.4A2)
127233230Sraj	DEC Alpha running OSF/1 version 2.0 (1.8)
128235529Skientzle	DEC Alpha running OSF/1 version 2.1 (about 1.4A2)
129248121Sian	DEC Alpha running OSF/1 version 3.0 (1.5.95) (footnote 7)
130233230Sraj	DEC Alpha running OSF/1 version 3.2 (1.9)
131248934Skientzle	Alpha running alpha-dec-osf4.0 (1.10)
132235529Skientzle	DEC Alpha running Digital UNIX v4.0C using gcc 2.7.2.2 (1.9.14)
133233230Sraj	DEC Alpha running VMS 6.2 (1.8.85 client-only)
134233230Sraj	Alpha running NetBSD 1.2E (1.10)
135233230SrajCray:
136233230Sraj	J90 (CVS 970215 snapshot)
137233230Sraj	T3E (CVS 970215 snapshot)
138233230SrajHPPA:
139233230Sraj	HP 9000/710 running HP-UX 8.07A using gcc (about 1.4A2)
140248121Sian	HPPA running HP-UX 9 (1.8)
141248121Sian        HPPA 1.1 running HP-UX A.09.03 (1.5.95) (footnote 8)
142233230Sraj        HPPA 1.1 running HP-UX A.09.04 (1.7.1)
143233230Sraj	HPPA running HP-UX 9.05 (1.9)
144248121Sian	HPPA running HP-UX 10.01 (1.7)
145233230Sraj	HPPA running HP-UX 10.20 (1.10.7)
146248121Sian	HPPA running HP-UX 11.11 (1.11.13) (footnote 12)
147233230Sraj	HPPA 2.0 running HP-UX 10.20 (1.10.9) (footnote 13)
148233230Sraj	NextSTEP 3.3 (1.7)
149248121Siani386 family:
150233230Sraj	Solaris 2.4 using gcc (about 1.4A2)
151248121Sian	Solaris 2.6 (1.9)
152248121Sian	UnixWare v1.1.1 using gcc (about 1.4A2)
153248121Sian	Unixware 2.1 (1.8.86)
154248121Sian	Unixware 7 (1.9.29)
155248121Sian	ISC 4.0.1 (1.8.87)
156248121Sian	Linux (kernel 1.2.x) (1.8.86)
157233230Sraj	Linux (kernel 2.0.x, RedHat 4.2) (1.10)
158233230Sraj	Linux (kernel 2.0.x, RedHat 5.x) (1.10)
159233230Sraj	Linux (kernel 2.2.x, RedHat 6.x) (1.10.8)
160233230Sraj	Linux (kernel 2.2.x, RedHat 7.x) (1.11)
161233230Sraj	BSDI 4.0 (1.10.7)
162233230Sraj	FreeBSD 2.1.5-stable (1.8.87)
163233230Sraj	NextSTEP 3.3 (1.7)
164233230Sraj	SCO Unix 3.2.4.2, gcc 2.7.2 (1.8.87) (footnote 4)
165233230Sraj	SCO OpenServer 5.0.5 (1.10.2)
166233230Sraj	Sequent DYNIX/ptx4.0 (1.10 or so) (remove -linet)
167233230Sraj	Sequent Dynix/PTX 4.1.4 (1.9.20 or so + patches)
168233230Sraj	Lynx 2.3.0 080695 (1.6.86) (footnote 9)
169233230Sraj	Windows NT 3.51 (1.8.86 client; 1.8.3 local)
170235529Skientzle	Windows NT 3.51 service pack 4 (1.9)
171235529Skientzle	Windows NT 3.51 service pack 5 (1.9) -- DOES NOT WORK (footnote 11)
172235529Skientzle	Windows NT 4.0 (1.9 client and local)
173235529Skientzle	Windows NT 4.0 (1.11 client and local - build & test, but no test suite)
174235529Skientzle	Windows 95 (1.9 client and local)
175233230Sraj	QNX (1.9.1 + patches for strippath() and va_list)
176233230Sraj	OS/2 Version 3 using IBM C/C++ Tools 2.01 (1.8.86 + patches, client)
177233230Sraj	OS/2 Version 3 using EMX 0.9c (1.9.22, client)
178235529Skientzle	OS/2 Version 3 using Watcom version ? (? - has this been tested?)
179235529Skientzlem68k:
180235529Skientzle	Sun 3 running SunOS 4.1.1_U1 w/ bundled K&R /usr/5bin/cc (1.8.86+)
181233230Sraj	NextSTEP 3.3p1 (1.8.87)
182233230Sraj	Lynx 2.3.0 062695 (1.6.86) (footnote 9)
183235529Skientzle	NetBSD/mac68k (1.9.28)
184233230Srajm88k:
185233230Sraj	Data General AViiON running dgux 5.4R2.10 (1.5)
186208538Sraj	Data General AViiON running dgux 5.4R3.10 (1.7.1)
187243693Sgonzo	Harris Nighthawk 5800 running CX/UX 7.1 (1.5) (footnote 6)
188208538SrajMIPS:
189235529Skientzle	DECstation running Ultrix 4.2a (1.4.90)
190208538Sraj	DECstation running Ultrix 4.3 (1.10)
191208538Sraj	SGI running Irix 4.0.5H using gcc and cc (about 1.4A2) (footnote 2)
192243693Sgonzo	SGI running Irix 5.3 (1.10)
193243693Sgonzo	SGI running Irix 6.2 using SGI MIPSpro 6.2 and beta 7.2 compilers (1.9)
194243693Sgonzo	SGI running Irix-6.2 (1.9.8)
195243693Sgonzo	SGI running IRIX 6.4 (1.10)
196243693Sgonzo	SGI running IRIX 6.5 (1.10.7)
197243693Sgonzo	Siemens-Nixdorf RM600 running SINIX-Y (1.6)
198243693SgonzoPowerPC or RS/6000:
199243693Sgonzo	IBM RS/6000 running AIX 3.1 using gcc and cc (1.6.86)
200243693Sgonzo	IBM RS/6000 running AIX 3.2.5 (1.8)
201243693Sgonzo	IBM RS/6000 running AIX 4.1 (1.9)
202243693Sgonzo	IBM RS/6000 running AIX 4.3 (1.10.7)
203243693Sgonzo	Lynx 2.3.1 120495 (1.6.86) (footnote 9)
204243693Sgonzo	Lynx 2.5 (1.9) (footnote 10)
205243693Sgonzo	Linux DR3 GENERIC #6 (1.10.5.1) (presumably LinuxPPC too)
206208538Sraj	Mac OS X ALL (footnote 14)
207243693Sgonzo	Mac OS X Darwin 6.6 Darwin Kernel Version 6.6 (1.11.1p1)
208208538Sraj	Mac OS X Darwin 5.5 Darwin Kernel Version 5.5 (1.11.6) (footnote 12)
209243693Sgonzo	Mac OS X Darwin 5.5 Darwin Kernel Version 5.5 (1.12.1) (footnote 12)
210243693SgonzoSPARC:
211208538Sraj	Sun SPARC running SunOS 4.1.x (1.10)
212235529Skientzle	Sun SPARCstation 10 running Solaris 2.3 using gcc and cc (about 1.4A2)
213235529Skientzle	Sun SPARCstation running Solaris 2.4 using gcc and cc (about 1.5.91)
214243693Sgonzo	Sun SPARC running Solaris 2.5 (1.8.87)
215235529Skientzle	Sun SPARC running Solaris 2.5.1 using gcc 2.7.2.2 (1.9.14)
216235529Skientzle	Sun SPARC running Solaris 2.6 (1.10.7)
217243693Sgonzo	Sun UltraSPARC running Solaris 2.6 using gcc 2.8.1 (1.10)
218235529Skientzle	NextSTEP 3.3 (1.7)
219235529Skientzle	Sun SPARC running Linux 2.0.17, gcc 2.7.2 (1.8.87)
220243693Sgonzo	Sun UltraSPARC running Solaris 2.8 using gcc 2.95.3
221243693SgonzoVAX:
222243693Sgonzo	VAX running VMS 6.2 (1.9+patches, client-only)
223208538Sraj	  (see README.VMS for information on necessary hacks).
224243693Sgonzo
225243693Sgonzo(footnote 2)
226243693Sgonzo	Some Irix 4.0 systems may core dump in malloc while running
227243693Sgonzo	CVS.  We believe this is a bug in the Irix malloc.  You can
228247045Skientzle	workaround this bug by linking with "-lmalloc" if necessary.
229243693Sgonzo	(about 1.4A2).
230265065Sian
231243693Sgonzo(footnote 4) Comment out the include of sys/time.h in src/server.c. (1.4.93)
232247250Skientzle	You also may have to make sure TIME_WITH_SYS_TIME is undef'ed.
233265065Sian
234265065Sian(footnote 6) Build in ucb universe with COFF compiler tools.  Put
235265065Sian	/usr/local/bin first in PATH while doing a configure, make
236265065Sian	and install of GNU diffutils-2.7, rcs-5.7, then cvs-1.5.
237265065Sian
238265065Sian(footnote 7) Manoj Srivastava <srivasta@pilgrim.umass.edu> reports
239247250Skientzle        success with this configure command:
240247250Skientzle  CC=cc CFLAGS='-O2 -Olimit 2000 -std1' ./configure --verbose alpha-dec-osf
241247250Skientzle
242247045Skientzle(footnote 8) Manoj Srivastava <srivasta@pilgrim.umass.edu> reports
243208538Sraj        success with this configure command:
244247250Skientzle  CC=cc CFLAGS='+O2 -Aa -D_HPUX_SOURCE' ./configure --verbose hppa1.1-hp-hpux
245247250Skientzle
246247250Skientzle(footnote 9) 
247247250Skientzle    Had to configure with ./configure --host=<arch>-lynx.
248247045Skientzle
249243693Sgonzo    In src/cvs.h, protected the waitpid prototype with ifdef _POSIX_SOURCE.
250247045Skientzle    (I might try building with gcc -mposix -D_POSIX_SOURCE.)
251247045Skientzle
252247045Skientzle    LynxOS has <dirent.h>, but you don't want to use it.
253247045Skientzle    You want to use <sys/dir.h> instead.
254247045Skientzle    So after running configure I had to undef HAVE_DIRENT_H and
255247201Skientzle    define HAVE_SYS_DIR_H.
256247201Skientzle
257247045Skientzle(footnote 10)
258247045Skientzle    Had to compile with "make LIBS=-lbsd" (to get gethostbyname
259247045Skientzle    and getservbyname).
260247045Skientzle
261247045Skientzle(footnote 11)
262247201Skientzle    when I do a `cvs init' I get this message:
263247045Skientzle      ci: 'RCS/loginfo,v' is not a regular file
264247201Skientzle      ci:  RCS/loginfo,v: Invalid argument
265247201Skientzle      cvs [init aborted]: failed to checkin n:/safe/CVSROOT/loginfo
266247201Skientzle
267247201Skientzle(footnote 12)
268247201Skientzle    Need to `configure --without-gssapi' unless you have installed Kerberos 5
269247201Skientzle    libraries on the system yourself.  For some reason Apple ships OS X with
270247045Skientzle    the Kerberos 5 headers installed and not the libraries, which confuses the
271247045Skientzle    current configure script.  Some HP, BSD, & Sun boxes have similar problems.
272247045Skientzle
273247045Skientzle(footnote 13)
274247045Skientzle    A build under HP PA-RISC 2.0 will probably not run under PA-RISC 1.1
275247045Skientzle    unless "+DAportable" is added to the HP ANSI cc compiler flags.
276247045Skientzle
277247045Skientzle(footnote 14)
278247045Skientzle    Because of the case-insensitive file system on Mac OS X, you cannot build
279247045Skientzle    CVS directly from a checkout from CVS.  The name of the built executable,
280247045Skientzle    `cvs', conflicts with name of the CVS administration directory, `CVS'.
281247045Skientzle    The work-around is to build the executable from a build directory separate
282247045Skientzle    from the source directory.  i.e.:
283247045Skientzle
284247045Skientzle	cvs co ccvs; cd ccvs
285247045Skientzle	mkdir build; cd build
286208538Sraj	../configure && make
287208538Sraj
288208538Sraj-------------------------------------------------------------------------------
289208538Sraj
290208538SrajBuilding from source code under Unix:
291208538Sraj
292208538Sraj1)  Run "configure":
293208538Sraj
294208538Sraj	$ ./configure
295208538Sraj
296208538Sraj    You can specify an alternate destination to override the default with
297208538Sraj    the --prefix option:
298208538Sraj
299208538Sraj	$ ./configure --prefix=/usr/local/gnu
300208538Sraj
301208538Sraj    or some path that is more appropriate for your site.  The default prefix
302208538Sraj    value is "/usr/local", with binaries in sub-directory "bin", manual
303208538Sraj    pages in sub-directory "man", and libraries in sub-directory "lib".
304208538Sraj
305208538Sraj    A normal build of CVS will create an executable which supports
306208538Sraj    local, server, or client CVS (if you don't know the difference,
307208538Sraj    it is described in the Repository chapter of doc/cvs.texinfo).  If
308208538Sraj    you do not intend to use client or server CVS, you may want to
309208538Sraj    prevent these features from being included in the executable you
310208538Sraj    build. You can do this with the --disable-client and
311208538Sraj    --disable-server options:
312208538Sraj
313208538Sraj	$ ./configure --disable-client --disable-server
314208538Sraj
315208538Sraj    Typically this can reduce the size of the executable by around 30%.
316208538Sraj
317208538Sraj    If you are building CVS with the server enabled, you can disable
318208538Sraj    server flow control using the --disable-server-flow-control
319208538Sraj    If you are working with a large remote repository and a 'cvs
320208538Sraj    checkout' is swamping your network and memory, enable flow control.
321208538Sraj    You will end up with even less probability of a consistent checkout
322208538Sraj    (see Concurrency in cvs.texinfo), but CVS doesn't try to guarantee
323208538Sraj    that anyway.  The master server process will monitor how far it is
324208538Sraj    getting behind, if it reaches the high water mark, it will signal
325208538Sraj    the child process to stop generating data when convenient (ie: no
326208538Sraj    locks are held, currently at the beginning of a new directory).
327208538Sraj    Once the buffer has drained sufficiently to reach the low water
328208538Sraj    mark, it will be signalled to start again.  You may override the
329208538Sraj    default hi/low watermarks here too by passing
330208538Sraj    '<lowwater>,<highwater>', in bytes, as an argument to
331208538Sraj    --enable-server-flow-control.  The low water mark defaults to one
332208538Sraj    megabyte and the high water mark defaults to two megabytes.
333208538Sraj
334208538Sraj	$ ./configure --enable-server-flow-control=1M,2M
335208538Sraj
336208538Sraj    The --with-tmpdir argument to configure may be used to set a
337208538Sraj    specific directory for use as a default temporary directory.  If not
338208538Sraj    set, configure will pick the first directory it finds which it has
339208538Sraj    read, write, and execute permissions to from $TMPDIR, $TMP, $TEMP,
340247250Skientzle    /tmp, and /var/tmp, in that order.  Failing that, it will use /tmp.
341208538Sraj
342208538Sraj    The --with-umask argument to configure can be used to change
343208538Sraj    the default umask used by the CVS server executable.
344208538Sraj
345208538Sraj    Unlike previous versions of CVS, you do not need to install RCS
346208538Sraj    or GNU diff.  
347208538Sraj
348208538Sraj    If you are using gcc and are planning to modify CVS, you may want to
349208538Sraj    configure with -Wall; see the file HACKING for details.
350208538Sraj
351208538Sraj    If you have Kerberos 4 installed, you can specify the location of
352208538Sraj    the header files and libraries using the --with-krb4=DIR option.
353208538Sraj    DIR should be a directory with subdirectories include and lib
354208538Sraj    holding the Kerberos 4 header files and libraries, respectively.
355208538Sraj    The default value is /usr/kerberos.
356208538Sraj
357208538Sraj    If you want to enable support for encryption over Kerberos, use
358208538Sraj    the --enable-encryption option.  This option is disabled by
359208538Sraj    default.
360208538Sraj
361208538Sraj    If you want to disable automatic dependency tracking in the makefiles,
362208538Sraj    use the '--disable-dependency-tracking' option:
363208538Sraj
364208538Sraj	$ ./configure --disable-dependency-tracking
365208538Sraj
366208538Sraj    This avoids problems on some platforms.  See the note at the end of this
367208538Sraj    file on BSD.
368208538Sraj
369208538Sraj    Try './configure --help' for further information on its usage.
370208538Sraj
371208538Sraj    NOTE ON CVS's USE OF NDBM:
372208538Sraj
373208538Sraj	By default, CVS uses some built-in ndbm emulation code to allow
374208538Sraj	CVS to work in a heterogeneous environment.  However, if you have
375208538Sraj	a very large modules database, this may not work well.  You will
376208538Sraj	need to supply the --disable-cvs-ndbm option to configure to
377247250Skientzle	accomplish this.  If you do this, the following comments apply.  If
378208538Sraj	not, you may safely skip these comments.
379208538Sraj
380208538Sraj	If you configure CVS to use the real ndbm(3) libraries and
381208538Sraj	you do not have them installed in a "normal" place, you will
382208538Sraj	probably want to get the GNU version of ndbm (gdbm) and install
383208538Sraj	that before running the CVS configure script.  Be aware that the
384208538Sraj	GDBM 1.5 release does NOT install the <ndbm.h> header file included
385235261Skientzle	with the release automatically.  You may have to install it by hand.
386235261Skientzle
387208538Sraj	If you configure CVS to use the ndbm(3) libraries, you cannot
388208538Sraj	compile CVS with GNU cc (gcc) on Sun-4 SPARC systems.  However, gcc
389208538Sraj	2.0 may have fixed this limitation if -fpcc-struct-return is
390208538Sraj	defined.  When using gcc on other systems to compile CVS, you *may*
391208538Sraj	need to specify the -fpcc-struct-return option to gcc (you will
392208538Sraj	*know* you have to if "cvs checkout" core dumps in some ndbm
393208538Sraj	function).  You can do this as follows:
394208538Sraj
395208538Sraj	    $ CC='gcc -fpcc-struct-return' ./configure
396208538Sraj
397208538Sraj	for sh, bash, and ksh users and:
398208538Sraj
399208538Sraj	    % setenv CC 'gcc -fpcc-struct-return'
400208538Sraj	    % ./configure
401208538Sraj
402208538Sraj	for csh and tcsh users.
403208538Sraj
404208538Sraj    END OF NOTE FOR NDBM GUNK.
405208538Sraj
406208538Sraj2)  Try to build it:
407208538Sraj
408208538Sraj	$ make
409208538Sraj
410208538Sraj    This will (hopefully) make the needed CVS binaries within the
411208538Sraj    "src" directory.  If something fails for your system, and you want
412208538Sraj    to submit a bug report, you may wish to include your
413208538Sraj    "config.status" file, your host type, operating system and
414208538Sraj    compiler information, make output, and anything else you think
415208538Sraj    will be helpful.
416208538Sraj
417208538Sraj3)  Run the regression tests (optional).
418208538Sraj
419208538Sraj    You may also wish to validate the correctness of the new binary by
420208538Sraj    running the regression tests.  If they succeed, that is nice to
421208538Sraj    know.  However, if they fail, it doesn't tell you much.  Often it
422208538Sraj    will just be a problem with running the tests on your machine,
423208538Sraj    rather than a problem with CVS.  Unless you will have the time to
424208538Sraj    determine which of the two it is in case of failure, you might
425247250Skientzle    want to save yourself the time and just not run the tests.
426208538Sraj
427208538Sraj    If you want to run the tests, see the file TESTS for more information.
428208538Sraj
429208538Sraj4)  Install the binaries/documentation:
430208538Sraj
431208538Sraj	$ make install
432208538Sraj
433208538Sraj    Depending on your installation's configuration, you may need to be
434208538Sraj    root to do this.
435208538Sraj
436208538Sraj-------------------------------------------------------------------------------
437208538Sraj
438208538SrajDetailed information about your interaction with "configure":
439208538Sraj
440208538SrajThe "configure" script and its interaction with its options and the
441208538Srajenvironment is described here.  For more detailed documentation about
442208538Sraj"configure", please run `./configure --help' or refer to the GNU Autoconf
443208538Srajdocumentation.
444208538Sraj
445208538SrajSupported options are:
446208538Sraj
447208538Sraj	--srcdir=DIR		Useful for compiling on many different
448208538Sraj				machines sharing one source tree.
449208538Sraj	--prefix=DIR		The root of where to install the
450208538Sraj				various pieces of CVS (/usr/local).
451208538Sraj	--exec_prefix=DIR	If you want executables in a
452208538Sraj				host-dependent place and shared
453208538Sraj				things in a host-independent place.
454208538Sraj
455208538SrajThe following environment variables override configure's default
456208538Srajbehaviour:
457247250Skientzle
458208538Sraj	CC			If not set, tries to use gcc first,
459208538Sraj				then cc.  Also tries to use "-g -O"
460208538Sraj				as options, backing down to -g
461208538Sraj				alone if that doesn't work.
462208538Sraj	INSTALL			If not set, tries to use "install", then
463208538Sraj				"./install-sh" as a final choice.
464208538Sraj	RANLIB			If not set, tries to determine if "ranlib"
465243693Sgonzo				is available, choosing "echo" if it doesn't
466243693Sgonzo				appear to be.
467208538Sraj	YACC			If not set, tries to determine if "bison"
468208538Sraj				is available, choosing "yacc" if it doesn't
469208538Sraj				appear to be.
470208538Sraj
471208538Sraj-------------------------------------------------------------------------------
472208538Sraj
473208538SrajBuilding from source code under Windows NT/95/98/2000:
474208538Sraj
475208538SrajYou may find interesting information in windows-NT/README.
476208538Sraj
477208538Sraj* Using Microsoft Visual C++ 5.x (this is currently broken - someone with
478208538Sraj  MVC++ 5.x needs to regenerate the project files, but the builds using `nmake'
479208538Sraj  below will work).
480208538Sraj
481208538Sraj1) Using Microsoft Visual C++ 5.x, open the project `cvsnt.dsw',
482208538Sraj   in the top directory of the CVS distribution.  If you have an older
483208538Sraj   version of Visual C++, take a look at windows-NT/README.
484208538Sraj2) Choose "Build cvs.exe" from the "Project" menu.
485208538Sraj3) MSVC will place the executable file cvs.exe in WinRel, or whatever
486208538Sraj   your target directory is.
487208538Sraj
488208538Sraj* From the top level directory, with MSVC++ 6.0 installed, something like the
489208538Srajfollowing also works:
490208538Sraj
491208538Sraj	C:\> vcvars32
492208538Sraj	C:\> nmake /f cvsnt.mak CFG="cvsnt - Win32 Debug"
493208538Sraj
494208538Sraj* Using the Cygwin development environment <http://cygwin.com>, Windows clients
495208538Sraj  and servers can be built using the instructions for building on UNIX.  For
496208538Sraj  deploying the CVS server on Windows NT, see the `cygrunsrv' executable that
497208538Sraj  comes with Cygwin.
498208538Sraj
499208538Sraj* You might also try <http://wincvs.org> & <http://www.cvsnt.org>.
500208538Sraj
501208538Sraj-------------------------------------------------------------------------------
502208538Sraj
503208538SrajBuilding from source code under other platforms:
504208538Sraj
505208538SrajFor OS/2, see os2/README and emx/README.
506243693Sgonzo
507243693SgonzoFor VMS, see README.VMS
508243693Sgonzo
509243693SgonzoMac OS X: Builds fine, just like UNIX.
510243693Sgonzo
511243693SgonzoFor older versions of Mac OS, you might try <http://wincvs.org>.
512243693Sgonzo
513243693SgonzoFor a Java client, see jCVS (which is a separate package from CVS
514243693Sgonzoitself, but which might be preferable to the Macintosh port mentioned
515243693Sgonzoabove, for example).
516243693Sgonzo
517243693Sgonzo-------------------------------------------------------------------------------
518243693Sgonzo