INSTALL revision 130303
11573SrgrimesFirst, read the README file.  If you're still happy...
21573Srgrimes
31573SrgrimesFirst you need to obtain and install the CVS executables.  If you got
41573Srgrimesa distribution which contains executables, consult the installation
51573Srgrimesinstructions for that distribution.  If you got source code, do not
61573Srgrimespanic.  On many platforms building CVS from source code is a
71573Srgrimesstraightforward process requiring no programming knowledge.  See the
81573Srgrimessection BUILDING FROM SOURCE CODE at the end of this file, which
91573Srgrimesincludes a list of platforms which have been tested.
101573Srgrimes
111573Srgrimes-------------------------------------------------------------------------------
121573Srgrimes
131573Srgrimes1) Take a look at the CVS documentation, if desired.  For most
141573Srgrimes   purposes you want doc/cvs.texinfo, also known as _Version Management
151573Srgrimes   with CVS_ by Per Cederqvist et al.  Looking at it might be as simple
161573Srgrimes   as "info cvs" but this will depend on your installation; see README
171573Srgrimes   for more details.
181573Srgrimes
191573Srgrimes   See what CVS can do for you, and if it fits your environment (or can
201573Srgrimes   possibly be made to fit your environment).  If things look good,
211573Srgrimes   continue on.  Alternately, just give CVS a try first then figure out
221573Srgrimes   what it is good for.
231573Srgrimes
241573Srgrimes2) Set the CVSROOT environment variable to where you want to put your
251573Srgrimes   source repository.  See the "Setting up the repository" section of
261573Srgrimes   the Cederqvist manual for details, but the quick summary is just to
271573Srgrimes   pick some directory.  We'll use /src/master as an example.  For
281573Srgrimes   users of a POSIX shell (sh/bash/ksh) on unix, the following
291573Srgrimes   commands can be placed in user's ~/.profile, ~/.bash_profile file;
301573Srgrimes   or in the site-wide /etc/profile:
311573Srgrimes
321573Srgrimes       CVSROOT=/src/master; export CVSROOT
331573Srgrimes
341573Srgrimes   For C shell users on unix place the following commands in the
351573Srgrimes   user's ~/.cshrc, ~/.login, or /etc/chsrc file:
361573Srgrimes
371573Srgrimes       setenv CVSROOT /src/master
381573Srgrimes
391573Srgrimes   For Windows users, supposing the repository will be in
4092986Sobrien   d:\src\master, place the following line in c:\autoexec.bat.  On
4192986Sobrien   Windows 95, autoexec.bat might not already exist.  In that case,
4292986Sobrien   just create a new file containing the following line.
431573Srgrimes
441573Srgrimes       set CVSROOT=:local:d:\src\master
451573Srgrimes
461573Srgrimes   If these environment variables are not already set in your current
471573Srgrimes   shell, set them now by typing the above line at the command prompt
481573Srgrimes   (or source the login script you just edited).
491573Srgrimes   The instructions for the remaining steps assume that you have set
501573Srgrimes   the CVSROOT environment variable.
511573Srgrimes
521573Srgrimes3) Create the master source repository.  Again, the details are in
531573Srgrimes   the "Setting up the repository" section of cvs.texinfo; the
541573Srgrimes   one-line summary is:
551573Srgrimes
561573Srgrimes       $ cvs init
571573Srgrimes
581573Srgrimes   In this and subsequent examples we use "$" to indicate the command
591573Srgrimes   prompt; do not type the "$".
601573Srgrimes
611573Srgrimes4) It might be a good idea to jump right in and put some sources or
621573Srgrimes   documents directly under CVS control.  From within the top-level
631573Srgrimes   directory of your source tree, run the following commands:
641573Srgrimes
651573Srgrimes       $ cvs import -m "test distribution" ccvs CVS_DIST CVS-TEST
661573Srgrimes
671573Srgrimes   (Those last three items are, respectively, a repository location, a
681573Srgrimes   "vendor tag", and a "release tag".  You don't need to understand
691573Srgrimes   them yet, but read the section "Starting new projects" in the
701573Srgrimes   Cederqvist manual for details).
711573Srgrimes
721573Srgrimes5) Having done step 4, one should be able to checkout a fresh copy of the
731573Srgrimes   sources you just imported and hack away at the sources with the
741573Srgrimes   following command:
751573Srgrimes
761573Srgrimes      $ cd
771573Srgrimes      $ cvs checkout ccvs
781573Srgrimes
791573Srgrimes   This will make the directory "ccvs" in your current directory and
801573Srgrimes   populate it with the appropriate files and directories.
811573Srgrimes
821573Srgrimes6) You may wish to customize the various administrative files, in particular
831573Srgrimes   modules.  See the Cederqvist manual for details.
841573Srgrimes
851573Srgrimes7) Read the NEWS file to see what's new.
861573Srgrimes
871573Srgrimes8) Hack away.
881573Srgrimes
891573Srgrimes-------------------------------------------------------------------------------
901573Srgrimes
911573SrgrimesBUILDING FROM SOURCE CODE
921573Srgrimes
931573SrgrimesTested platforms
941573Srgrimes
951573SrgrimesCVS has been tested on the following platforms.  The most recent
9692905Sobrienversion of CVS reported to have been tested is indicated, but more
9792905Sobrienrecent versions of CVS probably will work too.  Please send updates to
9892905Sobrienthis list to bug-cvs@gnu.org (doing so in the form of a diff
9992905Sobriento this file, or at least exact suggested text, is encouraged).
10092905Sobrien"tested" means, at a minimum, that CVS compiles and appears to work on
10192905Sobriensimple (manual) testing.  In many cases it also means "make check"
1021573Srgrimesand/or "make remotecheck" passes, but we don't try to list the
1031573Srgrimesplatforms for which that is true.
1041573Srgrimes
1051573SrgrimesAlpha:
1061573Srgrimes	DEC Alpha running OSF/1 version 1.3 using cc (about 1.4A2)
1071573Srgrimes	DEC Alpha running OSF/1 version 2.0 (1.8)
1081573Srgrimes	DEC Alpha running OSF/1 version 2.1 (about 1.4A2)
1091573Srgrimes	DEC Alpha running OSF/1 version 3.0 (1.5.95) (footnote 7)
1101573Srgrimes	DEC Alpha running OSF/1 version 3.2 (1.9)
1111573Srgrimes	Alpha running alpha-dec-osf4.0 (1.10)
11292905Sobrien	DEC Alpha running Digital UNIX v4.0C using gcc 2.7.2.2 (1.9.14)
1131573Srgrimes	DEC Alpha running VMS 6.2 (1.8.85 client-only)
1141573Srgrimes	Alpha running NetBSD 1.2E (1.10)
11592905SobrienCray:
1161573Srgrimes	J90 (CVS 970215 snapshot)
1171573Srgrimes	T3E (CVS 970215 snapshot)
11892905SobrienHPPA:
1191573Srgrimes	HP 9000/710 running HP-UX 8.07A using gcc (about 1.4A2)
1201573Srgrimes	HPPA running HP-UX 9 (1.8)
1211573Srgrimes        HPPA 1.1 running HP-UX A.09.03 (1.5.95) (footnote 8)
1221573Srgrimes        HPPA 1.1 running HP-UX A.09.04 (1.7.1)
1231573Srgrimes	HPPA running HP-UX 9.05 (1.9)
1241573Srgrimes	HPPA running HP-UX 10.01 (1.7)
1251573Srgrimes	HPPA running HP-UX 10.20 (1.10.7)
1261573Srgrimes	HPPA running HP-UX 11.11 (1.11.13) (footnote 12)
1271573Srgrimes	HPPA 2.0 running HP-UX 10.20 (1.10.9) (footnote 13)
1281573Srgrimes	NextSTEP 3.3 (1.7)
1291573Srgrimesi386 family:
1301573Srgrimes	Solaris 2.4 using gcc (about 1.4A2)
1311573Srgrimes	Solaris 2.6 (1.9)
1321573Srgrimes	UnixWare v1.1.1 using gcc (about 1.4A2)
1331573Srgrimes	Unixware 2.1 (1.8.86)
1341573Srgrimes	Unixware 7 (1.9.29)
1351573Srgrimes	ISC 4.0.1 (1.8.87)
1361573Srgrimes	Linux (kernel 1.2.x) (1.8.86)
1371573Srgrimes	Linux (kernel 2.0.x, RedHat 4.2) (1.10)
13892889Sobrien	Linux (kernel 2.0.x, RedHat 5.x) (1.10)
1391573Srgrimes	Linux (kernel 2.2.x, RedHat 6.x) (1.10.8)
1401573Srgrimes	Linux (kernel 2.2.x, RedHat 7.x) (1.11)
1411573Srgrimes	BSDI 4.0 (1.10.7)
1421573Srgrimes	FreeBSD 2.1.5-stable (1.8.87)
14392889Sobrien	NextSTEP 3.3 (1.7)
1441573Srgrimes	SCO Unix 3.2.4.2, gcc 2.7.2 (1.8.87) (footnote 4)
1451573Srgrimes	SCO OpenServer 5.0.5 (1.10.2)
1461573Srgrimes	Sequent DYNIX/ptx4.0 (1.10 or so) (remove -linet)
1471573Srgrimes	Sequent Dynix/PTX 4.1.4 (1.9.20 or so + patches)
1481573Srgrimes	Lynx 2.3.0 080695 (1.6.86) (footnote 9)
14992889Sobrien	Windows NT 3.51 (1.8.86 client; 1.8.3 local)
15092889Sobrien	Windows NT 3.51 service pack 4 (1.9)
1511573Srgrimes	Windows NT 3.51 service pack 5 (1.9) -- DOES NOT WORK (footnote 11)
15292889Sobrien	Windows NT 4.0 (1.9 client and local)
15392889Sobrien	Windows NT 4.0 (1.11 client and local - build & test, but no test suite)
15492889Sobrien	Windows 95 (1.9 client and local)
15592889Sobrien	QNX (1.9.1 + patches for strippath() and va_list)
1561573Srgrimes	OS/2 Version 3 using IBM C/C++ Tools 2.01 (1.8.86 + patches, client)
1571573Srgrimes	OS/2 Version 3 using EMX 0.9c (1.9.22, client)
15862232Sdcs	OS/2 Version 3 using Watcom version ? (? - has this been tested?)
15992889Sobrienm68k:
16062232Sdcs	Sun 3 running SunOS 4.1.1_U1 w/ bundled K&R /usr/5bin/cc (1.8.86+)
16192889Sobrien	NextSTEP 3.3p1 (1.8.87)
16292889Sobrien	Lynx 2.3.0 062695 (1.6.86) (footnote 9)
16392889Sobrien	NetBSD/mac68k (1.9.28)
16492889Sobrienm88k:
1651573Srgrimes	Data General AViiON running dgux 5.4R2.10 (1.5)
1661573Srgrimes	Data General AViiON running dgux 5.4R3.10 (1.7.1)
1671573Srgrimes	Harris Nighthawk 5800 running CX/UX 7.1 (1.5) (footnote 6)
1681573SrgrimesMIPS:
1691573Srgrimes	DECstation running Ultrix 4.2a (1.4.90)
1701573Srgrimes	DECstation running Ultrix 4.3 (1.10)
1711573Srgrimes	SGI running Irix 4.0.5H using gcc and cc (about 1.4A2) (footnote 2)
1721573Srgrimes	SGI running Irix 5.3 (1.10)
1731573Srgrimes	SGI running Irix 6.2 using SGI MIPSpro 6.2 and beta 7.2 compilers (1.9)
1741573Srgrimes	SGI running Irix-6.2 (1.9.8)
1751573Srgrimes	SGI running IRIX 6.4 (1.10)
1761573Srgrimes	SGI running IRIX 6.5 (1.10.7)
1771573Srgrimes	Siemens-Nixdorf RM600 running SINIX-Y (1.6)
1781573SrgrimesPowerPC or RS/6000:
1791573Srgrimes	IBM RS/6000 running AIX 3.1 using gcc and cc (1.6.86)
1801573Srgrimes	IBM RS/6000 running AIX 3.2.5 (1.8)
18162391Sdcs	IBM RS/6000 running AIX 4.1 (1.9)
18262232Sdcs	IBM RS/6000 running AIX 4.3 (1.10.7)
18362232Sdcs	Lynx 2.3.1 120495 (1.6.86) (footnote 9)
18462232Sdcs	Lynx 2.5 (1.9) (footnote 10)
18562232Sdcs	MkLinux DR3 GENERIC #6 (1.10.5.1) (presumably LinuxPPC too)
18662232Sdcs	Mac OS X Darwin 6.6 Darwin Kernel Version 6.6 (1.11.1p1)
18762754Sdcs	Mac OS X Darwin 5.5 Darwin Kernel Version 5.5 (1.11.6) (footnote 12)
18862232Sdcs	Mac OS X Darwin 5.5 Darwin Kernel Version 5.5 (1.12.1) (footnote 12)
189111010SnectarSPARC:
190111010Snectar	Sun SPARC running SunOS 4.1.x (1.10)
19162232Sdcs	Sun SPARCstation 10 running Solaris 2.3 using gcc and cc (about 1.4A2)
19262754Sdcs	Sun SPARCstation running Solaris 2.4 using gcc and cc (about 1.5.91)
19362232Sdcs	Sun SPARC running Solaris 2.5 (1.8.87)
19462232Sdcs	Sun SPARC running Solaris 2.5.1 using gcc 2.7.2.2 (1.9.14)
19562232Sdcs	Sun SPARC running Solaris 2.6 (1.10.7)
19662232Sdcs	Sun UltraSPARC running Solaris 2.6 using gcc 2.8.1 (1.10)
19762232Sdcs	NextSTEP 3.3 (1.7)
19862232Sdcs	Sun SPARC running Linux 2.0.17, gcc 2.7.2 (1.8.87)
19962754Sdcs	Sun UltraSPARC running Solaris 2.8 using gcc 2.95.3
20062232SdcsVAX:
20162754Sdcs	VAX running VMS 6.2 (1.9+patches, client-only)
20262232Sdcs	  (see README.VMS for information on necessary hacks).
20362232Sdcs
20462232Sdcs(footnote 2)
20562232Sdcs	Some Irix 4.0 systems may core dump in malloc while running
206111010Snectar	CVS.  We believe this is a bug in the Irix malloc.  You can
20762754Sdcs	workaround this bug by linking with "-lmalloc" if necessary.
20862754Sdcs	(about 1.4A2).
20962232Sdcs
21062391Sdcs(footnote 4) Comment out the include of sys/time.h in src/server.c. (1.4.93)
21162232Sdcs	You also may have to make sure TIME_WITH_SYS_TIME is undef'ed.
21262232Sdcs
21362232Sdcs(footnote 6) Build in ucb universe with COFF compiler tools.  Put
21462232Sdcs	/usr/local/bin first in PATH while doing a configure, make
21562232Sdcs	and install of GNU diffutils-2.7, rcs-5.7, then cvs-1.5.
21662232Sdcs
21762232Sdcs(footnote 7) Manoj Srivastava <srivasta@pilgrim.umass.edu> reports
21862232Sdcs        success with this configure command:
21962232Sdcs  CC=cc CFLAGS='-O2 -Olimit 2000 -std1' ./configure --verbose alpha-dec-osf
22062232Sdcs
2211573Srgrimes(footnote 8) Manoj Srivastava <srivasta@pilgrim.umass.edu> reports
2221573Srgrimes        success with this configure command:
2231573Srgrimes  CC=cc CFLAGS='+O2 -Aa -D_HPUX_SOURCE' ./configure --verbose hppa1.1-hp-hpux
2241573Srgrimes
2251573Srgrimes(footnote 9) 
2261573Srgrimes    Had to configure with ./configure --host=<arch>-lynx.
2271573Srgrimes
2281573Srgrimes    In src/cvs.h, protected the waitpid prototype with ifdef _POSIX_SOURCE.
2291573Srgrimes    (I might try building with gcc -mposix -D_POSIX_SOURCE.)
2301573Srgrimes
2311573Srgrimes    LynxOS has <dirent.h>, but you don't want to use it.
2321573Srgrimes    You want to use <sys/dir.h> instead.
2331573Srgrimes    So after running configure I had to undef HAVE_DIRENT_H and
2341573Srgrimes    define HAVE_SYS_DIR_H.
2351573Srgrimes
2361573Srgrimes(footnote 10)
2371573Srgrimes    Had to compile with "make LIBS=-lbsd" (to get gethostbyname
23862391Sdcs    and getservbyname).
23962391Sdcs
24062854Sdcs(footnote 11)
24162391Sdcs    when I do a `cvs init' I get this message:
2421573Srgrimes      ci: 'RCS/loginfo,v' is not a regular file
2431573Srgrimes      ci:  RCS/loginfo,v: Invalid argument
2441573Srgrimes      cvs [init aborted]: failed to checkin n:/safe/CVSROOT/loginfo
2451573Srgrimes
2461573Srgrimes(footnote 12)
2471573Srgrimes    Need to `configure --without-gssapi' unless you have installed Kerberos 5
2481573Srgrimes    libraries on the system yourself.  For some reason Apple ships OS X with
2491573Srgrimes    the Kerberos 5 headers installed and not the libraries, which confuses the
2501573Srgrimes    current configure script.  Some HP, BSD, & Sun boxes have similar problems.
2511573Srgrimes
2521573Srgrimes(footnote 13)
2531573Srgrimes    A build under HP PA-RISC 2.0 will probably not run under PA-RISC 1.1
2541573Srgrimes    unless "+DAportable" is added to the HP ANSI cc compiler flags.
2551573Srgrimes
2561573Srgrimes-------------------------------------------------------------------------------
2571573Srgrimes
2581573SrgrimesBuilding from source code under Unix:
2591573Srgrimes
2601573Srgrimes1)  Run "configure":
2611573Srgrimes
2621573Srgrimes	$ ./configure
2631573Srgrimes
2641573Srgrimes    You can specify an alternate destination to override the default with
2651573Srgrimes    the --prefix option:
2661573Srgrimes
2671573Srgrimes	$ ./configure --prefix=/usr/local/gnu
2681573Srgrimes
2691573Srgrimes    or some path that is more appropriate for your site.  The default prefix
2701573Srgrimes    value is "/usr/local", with binaries in sub-directory "bin", manual
2711573Srgrimes    pages in sub-directory "man", and libraries in sub-directory "lib".
2721573Srgrimes
2731573Srgrimes    A normal build of CVS will create an executable which supports
2741573Srgrimes    local, server, or client CVS (if you don't know the difference,
2751573Srgrimes    it is described in the Repository chapter of doc/cvs.texinfo).  If
2761573Srgrimes    you do not intend to use client or server CVS, you may want to
2771573Srgrimes    prevent these features from being included in the executable you
2781573Srgrimes    build. You can do this with the --disable-client and
2791573Srgrimes    --disable-server options:
2801573Srgrimes
2811573Srgrimes	$ ./configure --disable-client --disable-server
2821573Srgrimes
2831573Srgrimes    Typically this can reduce the size of the executable by around 30%.
2841573Srgrimes
2851573Srgrimes    If you are building CVS with the server enabled, you can disable
2861573Srgrimes    server flow control using the --disable-server-flow-control
2871573Srgrimes    If you are working with a large remote repository and a 'cvs
2881573Srgrimes    checkout' is swamping your network and memory, enable flow control.
2891573Srgrimes    You will end up with even less probability of a consistent checkout
2901573Srgrimes    (see Concurrency in cvs.texinfo), but CVS doesn't try to guarantee
2911573Srgrimes    that anyway.  The master server process will monitor how far it is
2921573Srgrimes    getting behind, if it reaches the high water mark, it will signal
2931573Srgrimes    the child process to stop generating data when convenient (ie: no
2941573Srgrimes    locks are held, currently at the beginning of a new directory).
2951573Srgrimes    Once the buffer has drained sufficiently to reach the low water
2961573Srgrimes    mark, it will be signalled to start again.  You may override the
2971573Srgrimes    default hi/low watermarks here too by passing
2981573Srgrimes    '<lowwater>,<highwater>', in bytes, as an argument to
2991573Srgrimes    --enable-server-flow-control.  The low water mark defaults to one
3001573Srgrimes    megabyte and the high water mark defaults to two megabytes.
3011573Srgrimes
3021573Srgrimes	$ ./configure --enable-server-flow-control=1M,2M
3031573Srgrimes
3041573Srgrimes    The --with-tmpdir argument to configure may be used to set a
3051573Srgrimes    specific directory for use as a default temporary directory.  If not
3061573Srgrimes    set, configure will pick the first directory it finds which it has
3071573Srgrimes    read, write, and execute permissions to from $TMPDIR, $TMP, $TEMP,
3081573Srgrimes    /tmp, and /var/tmp, in that order.  Failing that, it will use /tmp.
3091573Srgrimes
3101573Srgrimes    The --with-umask argument to configure can be used to change
3111573Srgrimes    the default umask used by the CVS server executable.
3121573Srgrimes
3131573Srgrimes    Unlike previous versions of CVS, you do not need to install RCS
3141573Srgrimes    or GNU diff.  
3151573Srgrimes
3161573Srgrimes    If you are using gcc and are planning to modify CVS, you may want to
3171573Srgrimes    configure with -Wall; see the file HACKING for details.
3181573Srgrimes
3191573Srgrimes    If you have Kerberos 4 installed, you can specify the location of
3201573Srgrimes    the header files and libraries using the --with-krb4=DIR option.
3211573Srgrimes    DIR should be a directory with subdirectories include and lib
3221573Srgrimes    holding the Kerberos 4 header files and libraries, respectively.
3231573Srgrimes    The default value is /usr/kerberos.
3241573Srgrimes
3251573Srgrimes    If you want to enable support for encryption over Kerberos, use
3261573Srgrimes    the --enable-encryption option.  This option is disabled by
3271573Srgrimes    default.
3281573Srgrimes
3291573Srgrimes    If you want to disable automatic dependency tracking in the makefiles,
3301573Srgrimes    use the '--disable-dependency-tracking' option:
3311573Srgrimes
3321573Srgrimes	$ ./configure --disable-dependency-tracking
3331573Srgrimes
3341573Srgrimes    This avoids problems on some platforms.  See the note at the end of this
3351573Srgrimes    file on BSD.
3361573Srgrimes
3371573Srgrimes    Try './configure --help' for further information on its usage.
3381573Srgrimes
3391573Srgrimes    NOTE ON CVS's USE OF NDBM:
3401573Srgrimes
3411573Srgrimes	By default, CVS uses some built-in ndbm emulation code to allow
3421573Srgrimes	CVS to work in a heterogeneous environment.  However, if you have
3431573Srgrimes	a very large modules database, this may not work well.  You will
3441573Srgrimes	need to supply the --disable-cvs-ndbm option to configure to
3451573Srgrimes	accomplish this.  If you do this, the following comments apply.  If
3461573Srgrimes	not, you may safely skip these comments.
3471573Srgrimes
3481573Srgrimes	If you configure CVS to use the real ndbm(3) libraries and
34992889Sobrien	you do not have them installed in a "normal" place, you will
3501573Srgrimes	probably want to get the GNU version of ndbm (gdbm) and install
3511573Srgrimes	that before running the CVS configure script.  Be aware that the
3521573Srgrimes	GDBM 1.5 release does NOT install the <ndbm.h> header file included
3531573Srgrimes	with the release automatically.  You may have to install it by hand.
35492889Sobrien
3551573Srgrimes	If you configure CVS to use the ndbm(3) libraries, you cannot
3561573Srgrimes	compile CVS with GNU cc (gcc) on Sun-4 SPARC systems.  However, gcc
3571573Srgrimes	2.0 may have fixed this limitation if -fpcc-struct-return is
3581573Srgrimes	defined.  When using gcc on other systems to compile CVS, you *may*
3591573Srgrimes	need to specify the -fpcc-struct-return option to gcc (you will
36092889Sobrien	*know* you have to if "cvs checkout" core dumps in some ndbm
36192889Sobrien	function).  You can do this as follows:
36292889Sobrien
36392889Sobrien	    $ CC='gcc -fpcc-struct-return' ./configure
36492889Sobrien
36592889Sobrien	for sh, bash, and ksh users and:
36692889Sobrien
36792889Sobrien	    % setenv CC 'gcc -fpcc-struct-return'
36892889Sobrien	    % ./configure
36992889Sobrien
37092889Sobrien	for csh and tcsh users.
37192889Sobrien
37292889Sobrien    END OF NOTE FOR NDBM GUNK.
3731573Srgrimes
3741573Srgrimes2)  Try to build it:
3751573Srgrimes
3761573Srgrimes	$ make
3771573Srgrimes
3781573Srgrimes    This will (hopefully) make the needed CVS binaries within the
3791573Srgrimes    "src" directory.  If something fails for your system, and you want
3801573Srgrimes    to submit a bug report, you may wish to include your
3811573Srgrimes    "config.status" file, your host type, operating system and
3821573Srgrimes    compiler information, make output, and anything else you think
3831573Srgrimes    will be helpful.
3841573Srgrimes
3851573Srgrimes3)  Run the regression tests (optional).
3861573Srgrimes
3871573Srgrimes    You may also wish to validate the correctness of the new binary by
3881573Srgrimes    running the regression tests.  If they succeed, that is nice to
3891573Srgrimes    know.  However, if they fail, it doesn't tell you much.  Often it
3901573Srgrimes    will just be a problem with running the tests on your machine,
3911573Srgrimes    rather than a problem with CVS.  Unless you will have the time to
3921573Srgrimes    determine which of the two it is in case of failure, you might
3931573Srgrimes    want to save yourself the time and just not run the tests.
3941573Srgrimes
3951573Srgrimes    If you want to run the tests, see the file TESTS for more information.
3961573Srgrimes
3971573Srgrimes4)  Install the binaries/documentation:
3981573Srgrimes
3991573Srgrimes	$ make install
4001573Srgrimes
4011573Srgrimes    Depending on your installation's configuration, you may need to be
4021573Srgrimes    root to do this.
4031573Srgrimes
4041573Srgrimes-------------------------------------------------------------------------------
4051573Srgrimes
4061573SrgrimesDetailed information about your interaction with "configure":
4071573Srgrimes
4081573SrgrimesThe "configure" script and its interaction with its options and the
4091573Srgrimesenvironment is described here.  For more detailed documentation about
4101573Srgrimes"configure", please run `./configure --help' or refer to the GNU Autoconf
4111573Srgrimesdocumentation.
4121573Srgrimes
4131573SrgrimesSupported options are:
4141573Srgrimes
4151573Srgrimes	--srcdir=DIR		Useful for compiling on many different
4161573Srgrimes				machines sharing one source tree.
4171573Srgrimes	--prefix=DIR		The root of where to install the
4181573Srgrimes				various pieces of CVS (/usr/local).
4191573Srgrimes	--exec_prefix=DIR	If you want executables in a
4201573Srgrimes				host-dependent place and shared
4211573Srgrimes				things in a host-independent place.
4221573Srgrimes
4231573SrgrimesThe following environment variables override configure's default
4241573Srgrimesbehaviour:
4251573Srgrimes
4261573Srgrimes	CC			If not set, tries to use gcc first,
4271573Srgrimes				then cc.  Also tries to use "-g -O"
4281573Srgrimes				as options, backing down to -g
4291573Srgrimes				alone if that doesn't work.
4301573Srgrimes	INSTALL			If not set, tries to use "install", then
4311573Srgrimes				"./install-sh" as a final choice.
4321573Srgrimes	RANLIB			If not set, tries to determine if "ranlib"
4331573Srgrimes				is available, choosing "echo" if it doesn't
4341573Srgrimes				appear to be.
4351573Srgrimes	YACC			If not set, tries to determine if "bison"
4361573Srgrimes				is available, choosing "yacc" if it doesn't
4371573Srgrimes				appear to be.
4381573Srgrimes
4391573Srgrimes-------------------------------------------------------------------------------
4401573Srgrimes
4411573SrgrimesBuilding from source code under Windows NT/95/98/2000:
4421573Srgrimes
4431573SrgrimesYou may find interesting information in windows-NT/README.
4441573Srgrimes
4451573Srgrimes* Using Microsoft Visual C++ 5.x (this is currently broken - someone with
4461573Srgrimes  MVC++ 5.x needs to regenerate the project files, but the builds using `nmake'
4471573Srgrimes  below will work).
4481573Srgrimes
4491573Srgrimes1) Using Microsoft Visual C++ 5.x, open the project `cvsnt.dsw',
4501573Srgrimes   in the top directory of the CVS distribution.  If you have an older
4511573Srgrimes   version of Visual C++, take a look at windows-NT/README.
4521573Srgrimes2) Choose "Build cvs.exe" from the "Project" menu.
4531573Srgrimes3) MSVC will place the executable file cvs.exe in WinRel, or whatever
4541573Srgrimes   your target directory is.
4551573Srgrimes
4561573Srgrimes* From the top level directory, with MSVC++ 6.0 installed, something like the
4571573Srgrimesfollowing also works:
4581573Srgrimes
4591573Srgrimes	C:\> vcvars32
4601573Srgrimes	C:\> nmake /f cvsnt.mak CFG="cvsnt - Win32 Debug"
4611573Srgrimes
4621573Srgrimes* Using the Cygwin development environment <http://cygwin.com>, Windows clients
4631573Srgrimes  and servers can be built using the instructions for building on UNIX.  For
4641573Srgrimes  deploying the CVS server on Windows NT, see the `cygrunsrv' executable that
4651573Srgrimes  comes with Cygwin.
4661573Srgrimes
4671573Srgrimes* You might also try <http://wincvs.org> & <http://www.cvsnt.org>.
4681573Srgrimes
4691573Srgrimes-------------------------------------------------------------------------------
4701573Srgrimes
4711573SrgrimesBuilding from source code under other platforms:
4721573Srgrimes
4731573SrgrimesFor OS/2, see os2/README and emx/README.
4741573Srgrimes
4751573SrgrimesFor VMS, see README.VMS
4761573Srgrimes
4771573SrgrimesMac OS X: Builds fine, just like UNIX.
4781573Srgrimes
4791573SrgrimesFor older versions of Mac OS, you might try <http://wincvs.org>.
4801573Srgrimes
4811573SrgrimesFor a Java client, see jCVS (which is a separate package from CVS
4821573Srgrimesitself, but which might be preferable to the Macintosh port mentioned
4831573Srgrimesabove, for example).
4841573Srgrimes
4851573Srgrimes-------------------------------------------------------------------------------
4861573Srgrimes