Commit | Line | Data |
---|---|---|
d304b67d WJ |
1 | First, read the README file. If you're still happy... |
2 | ||
3 | The CVS 1.3 Beta testers (bless their hearts) verified that CVS compiled | |
4 | correctly on the following platforms: | |
5 | ||
6 | 386 running Interactive Unix ISC 2.2.1 | |
7 | 386 running SCO Xenix 386, 2.3.2 | |
8 | ATT 3B2 running System VR3 (*) | |
9 | Altos running Altos Unix v5.3a System V/386 R3.2 (**) | |
10 | Atari/ST (2.5MB) running Minix 1.6.16 | |
11 | Cray X-MP running Unicos 6.1 | |
12 | DEC 3100 running Ultrix 4.0 | |
13 | Decstation 5000/200 running Ultrix 4.0, 4.1 (***), 4.2 | |
14 | Gateway2000 486/33C (486@33MHZ) running BSDI BSD/386 0.3 (Beta) | |
15 | HP 9000/360 running HP-UX 6.5 | |
16 | HP 9000/710 running HP-UX 8.07 | |
17 | HP 9000/730 running HP-UX 8.05 | |
18 | HP PA-RISC 800 running HP-UX 8.01 | |
19 | IBM RS/6000 running AIX 3.1, 3.2 | |
20 | Motorola 68030 running a System 5.3.2 derivative | |
21 | Motorola VME187 running SYSVR3 | |
22 | Motorola 88100 running R32V3 | |
23 | NEC EWS4800 running System VR4.0.2 | |
24 | NeXT 68040 running NeXT Mach 2.1 | |
25 | Omron Luna running UNIOS-B 4.3BSD 1.60 | |
26 | SGI Iris 4D running Irix 3.3.2 (****), Irix 4.0.1, Irix 4.0.2C | |
27 | Sony NEWS Workstation running NEWS-OS 4.0C | |
28 | Sumitomo Ustation running SEIUX3.2 | |
29 | Sun-3 running SunOS 4.0.3, 4.1, 4.1.1 | |
30 | Sun-386i running SunOS 4.0.2 | |
31 | Sun-4/Sun-4c/Sun-4m running SunOS 4.1.1, 4.1.2, Solaris 2.0 | |
32 | ||
33 | (*) On the ATT 3B2, "tr" was not available (?). | |
34 | (**) The Altos system and had problems compiling lib/regex.c. | |
35 | (***) Ultrix 4.1 apparently has a nasty compiler/linker that doesn't work | |
36 | well with the CVS "configure" script. You will need to add | |
37 | fnmatch.o to the OBJECTS macro in lib/Makefile for CVS to compile | |
38 | on this system. | |
39 | (****) It has been reported that SGI machines running Irix 3.3.2 may hang | |
40 | during "cvs add" and leave an un-killable process. If you | |
41 | experience this, you can define "FSYNC_MISSING", re-compile | |
42 | src/subr.o and the problem should go away. This appears not to be | |
43 | a problem in Irix 4.0.1. | |
44 | ||
45 | CVS had some problems compiling/running on the following machines: | |
46 | ||
47 | None! | |
48 | ||
49 | NOTE: CVS relies on having some form of the opendir/readdir/closedir | |
50 | functions being available. Some older systems do not support these | |
51 | calls. CVS will not work with these systems unless a suitable | |
52 | readdir implementation is installed on the system. Take a look at | |
53 | the file "contrib/dirfns", which contains some code that might add | |
54 | this support to your system. | |
55 | ||
56 | ------------------------------------------------------------------------------- | |
57 | ||
58 | Installation: | |
59 | ||
60 | 1) Edit the src/config.h header file. Appropriate things to look at may be | |
61 | the invocation locations of programs like DIFF, GREP, RM, and SORT. | |
62 | Also glance at the default values for the environment variables that | |
63 | CVS uses, in particular, the RCSBIN variable, which holds the path to | |
64 | where the RCS programs live on your system. The likelihood is that you | |
65 | don't have to change anything here, except perhaps adding the -a | |
66 | option to DIFF if you are using GNU diff (which is recommended). | |
67 | ||
68 | 2) Run "configure": | |
69 | ||
70 | $ ./configure | |
71 | ||
72 | You can specify an alternate destination to override the default with | |
73 | the --prefix option: | |
74 | ||
75 | $ ./configure --prefix=/usr/local/gnu | |
76 | ||
77 | or some path that is more appropriate for your site. The default prefix | |
78 | value is "/usr/local", with binaries in sub-directory "bin", manual | |
79 | pages in sub-directory "man", and libraries in sub-directory "lib". | |
80 | ||
81 | "configure" tries to use "gcc -g -O" first. If that doesn't work, it | |
82 | will try to use "cc -g -O". If that doesn't work, it uses "cc -g". To | |
83 | override this, simply specify the options in the CC environment variable: | |
84 | ||
85 | $ CC="cc -O" ./configure | |
86 | ||
87 | for sh, bash, or ksh shell users or: | |
88 | ||
89 | % setenv CC "cc -O" | |
90 | % ./configure | |
91 | ||
92 | for csh, tcsh shell users. | |
93 | ||
94 | NOTE ON CVS's USE OF NDBM: | |
95 | ||
96 | By default, CVS uses some built-in ndbm emulation code to allow | |
97 | CVS to work in a heterogeneous environment. However, if you have | |
98 | a very large modules database, this may not work well. You will | |
99 | need to edit src/config.h to turn off the MY_NDBM #define and | |
100 | re-run configure. If you do this, the following comments apply. | |
101 | If not, you may safely skip these comments. | |
102 | ||
103 | If you configure CVS to use the real ndbm(3) libraries and | |
104 | you do not have them installed in a "normal" place, you will | |
105 | probably want to get the GNU version of ndbm (gdbm) and install | |
106 | that before running the CVS configure script. Be aware that the | |
107 | GDBM 1.5 release does NOT install the <ndbm.h> header file included | |
108 | with the release automatically. You may have to install it by hand. | |
109 | ||
110 | If you configure CVS to use the ndbm(3) libraries, you cannot | |
111 | compile CVS with GNU cc (gcc) on Sun-4 SPARC systems. However, gcc | |
112 | 2.0 may have fixed this limitation if -fpcc-struct-return is | |
113 | defined. When using gcc on other systems to compile CVS, you *may* | |
114 | need to specify the -fpcc-struct-return option to gcc (you will | |
115 | *know* you have to if "cvs checkout" core dumps in some ndbm | |
116 | function). You can do this as follows: | |
117 | ||
118 | $ CC=gcc DEFS=-fpcc-struct-return ./configure | |
119 | ||
120 | for sh, bash, and ksh users and: | |
121 | ||
122 | % setenv CC gcc | |
123 | % setenv DEFS -fpcc-struct-return | |
124 | % ./configure | |
125 | ||
126 | for csh and tcsh users. | |
127 | ||
128 | END OF NOTE FOR NDBM GUNK. | |
129 | ||
130 | This release of CVS also requires RCS commands to be installed in the | |
131 | user's PATH (or a path you have configured in src/config.h). If you | |
132 | don't have RCS, you will need to get it from GNU as well. It is best | |
133 | to get the version 5.6 (or later) version of RCS, available from | |
134 | prep.ai.mit.edu in the file pub/gnu/rcs-5.6.tar.Z. Along with RCS, you | |
135 | will want to run GNU diff. This will allow revision control of files | |
136 | with binary data (a real nice feature). You will need at least version | |
137 | 1.15 of GNU diff for this to work. | |
138 | ||
139 | 3) Try to build it: | |
140 | ||
141 | $ make | |
142 | ||
143 | This will (hopefully) make the needed CVS binaries within the "src" | |
144 | directory. Send me your "config.status" file with your host type, | |
145 | operating system information, and make output if something fails for | |
146 | your system. | |
147 | ||
148 | 4) Install the binaries/documentation: | |
149 | ||
150 | $ make install | |
151 | ||
152 | Depending on your installation's configuration, you may need to be | |
153 | root to do this. | |
154 | ||
155 | 5) Take a look at the CVS manual page. | |
156 | ||
157 | $ man cvs | |
158 | ||
159 | See what it can do for you, and if it fits your environment (or can | |
160 | possibly be made to fit your environment). If things look good, | |
161 | continue on... | |
162 | ||
163 | 6) Setup the master source repository. Choose a directory with ample disk | |
164 | space available for source files. This is where the RCS ",v" files | |
165 | will be stored. Note that this should be some shared directory for your | |
166 | site. It should probably be auto-mounted, if you're running NFS. | |
167 | ||
168 | Say you choose "/src/master" as the root of your source repository. | |
169 | Run the "cvsinit" script to help you set it up. It will ask you to | |
170 | enter the path to your CVSROOT area. You would enter /src/master in | |
171 | this example. | |
172 | ||
173 | $ ./cvsinit | |
174 | ||
175 | The cvsinit script will setup a reasonable CVSROOT area to start with. | |
176 | It is also valuable to folks who already have a CVSROOT area setup from | |
177 | using earlier releases of CVS. It assumes that you have installed CVS | |
178 | already (step 4) and that the RCS programs (co and ci) are in your | |
179 | PATH. There are many ways to customize CVS for your site. Read the | |
180 | cvs(5) manual page when you get the chance. | |
181 | ||
182 | 7) Have all users of the CVS system set the CVSROOT environment variable | |
183 | appropriately to reflect the placement of your source repository. If | |
184 | the above example is used, the following commands can be placed in | |
185 | user's ~/.profile, ~/.bash_profile, or ~/.login file: | |
186 | ||
187 | CVSROOT=/src/master; export CVSROOT | |
188 | ||
189 | for sh/bash/ksh users, or | |
190 | ||
191 | setenv CVSROOT /src/master | |
192 | ||
193 | for csh/tcsh users. If these environment variables are not already set | |
194 | in your current shell, set them now (or source the login script you | |
195 | just edited). You will need to have the CVSROOT environment variable | |
196 | set to continue on to the next step. | |
197 | ||
198 | 8) It might be a good idea to jump right in and put the CVS distribution | |
199 | directly under CVS control. From within the top-level directory of the | |
200 | CVS distribution (the one that contains this README file) do the | |
201 | following commands: | |
202 | ||
203 | $ make realclean | |
204 | $ cvs import -m 'CVS 1.3 distribution' cvs CVS CVS1_3 | |
205 | ||
206 | 9) Having done step 8, one should be able to checkout a fresh copy of the | |
207 | CVS distribution and hack away at the sources with the following command: | |
208 | ||
209 | $ cd | |
210 | $ cvs checkout cvs | |
211 | ||
212 | This will make the directory "cvs" in your current directory and | |
213 | populate it with the appropriate CVS files and directories. | |
214 | ||
215 | 10) Remember to edit the modules file manually when sources are checked in | |
216 | with "cvs import" or "cvs add". A copy of the modules file for editing | |
217 | can usually be retrieved with the "cvs checkout modules" command, and | |
218 | definitely with the "cvs checkout CVSROOT" command. See cvs(5). | |
219 | ||
220 | 11) Read the ChangeLog file to see what's new. REALLY! I use the | |
221 | ChangeLog file as the Release Notes. | |
222 | ||
223 | 12) Hack away. | |
224 | ||
225 | ------------------------------------------------------------------------------- | |
226 | ||
227 | Detailed info about your interaction with "configure": | |
228 | ||
229 | The "configure" script and its interaction with its options and the | |
230 | environment is described here. | |
231 | ||
232 | Supported options are: | |
233 | --srcdir=DIR Useful for compiling on many different | |
234 | machines sharing one source tree. | |
235 | --prefix=DIR The root of where to install the | |
236 | various pieces of CVS (/usr/local). | |
237 | --exec_prefix=DIR If you want executables in a | |
238 | host-dependent place and shared | |
239 | things in a host-independent place. | |
240 | ||
241 | The following environment variables override configure's default | |
242 | behaviour: | |
243 | CC If not set, tries to use gcc first, | |
244 | then cc. Also tries to use "-g -O" | |
245 | as options, backing down to -g | |
246 | alone if that doesn't work. | |
247 | INSTALL If not set, tries to use "install", then | |
248 | "cp" as a final choice. | |
249 | RANLIB If not set, tries to determine if "ranlib" | |
250 | is available, choosing "echo" if it doesn't | |
251 | appear to be. | |
252 | YACC If not set, tries to determine if "bison" | |
253 | is available, choosing "yacc" if it doesn't | |
254 | appear to be. | |
255 | ||
256 | ------------------------------------------------------------------------------- |