1 /* config.h - OpenVMS/AXP specific configuration
2 June 1995 - <benjamin@cyclic.com> */
4 /* The following macro are defined by running ./configure under UNIX OSs. */
5 #define PACKAGE_STRING "Concurrent Versions System (CVS) %PACKAGE_VERSION%"
7 /* We only want to build the client */
8 #define CLIENT_SUPPORT 1
11 /* Define as the maximum value of type 'size_t', if the system doesn't define
13 #define SIZE_MAX SSIZE_MAX
15 /* Set up for other #if's which follow */
23 /* VMS is case insensitive */
24 /* #define FOLD_FN_CHAR(c) tolower(c) */
26 /* Temporary files named "#booger.3.6~" aren't legal under VMS,
27 Define this if you want to use names which are legal for VMS */
28 #define USE_VMS_FILENAMES 1
30 /* What VMS calls /dev/null. */
31 #define DEVNULL "NLA0:"
33 /* Define to empty if the keyword does not work. */
36 /* Define if you have <dirent.h>. */
39 /* Define if you have <sys/param.h> */
40 /* #undef HAVE_SYS_PARAM_H */
42 /* Define to `int' if <sys/types.h> doesn't define. */
45 /* Define to `__inline__' or `__inline' if that's what the C compiler
46 calls it, or to nothing if 'inline' is not supported under any name. */
51 /* Define if you support file names longer than 14 characters. */
52 /* #undef HAVE_LONG_FILE_NAMES */
54 /* Define if you have <sys/wait.h> that is POSIX.1 compatible. */
55 /* #define HAVE_SYS_WAIT_H 1 OpenVMS POSIX has it, but VMS does not. */
58 /* Define if utime(file, NULL) sets file's timestamp to the present. */
59 /* #undef HAVE_UTIME_NULL */
61 /* Define if on MINIX. */
64 /* Define to `int' if <sys/types.h> doesn't define. */
67 /* Define if you don't have <dirent.h>, but have <ndir.h>. */
70 /* Define to `int' if <sys/types.h> doesn't define. */
73 /* Define if the system does not provide POSIX.1 features except
75 /* #undef _POSIX_1_SOURCE */
77 /* Define if you need to in order for stat and other things to work. */
78 /* #undef _POSIX_SOURCE */
80 /* Define as the return type of signal handlers (int or void). */
81 #define RETSIGTYPE void
83 /* The default remote shell to use, if one does not specify the CVS_RSH
84 environment variable. */
85 #define RSH_DFLT "rsh"
87 /* Define to `unsigned' if <sys/types.h> doesn't define. */
90 /* Define if you have the ANSI C header files. */
91 #define STDC_HEADERS 1
93 /* Define if you don't have <dirent.h>, but have <sys/dir.h>. */
96 /* Define if you don't have <dirent.h>, but have <sys/ndir.h>. */
99 /* Define if your <sys/time.h> declares struct tm. */
100 /* #undef TM_IN_SYS_TIME */
102 /* Define to `int' if <sys/types.h> doesn't define. */
105 /* Define if the closedir function returns void instead of int. */
106 /* #undef VOID_CLOSEDIR */
108 /* Define if you have MIT Kerberos version 4 available. */
109 /* #undef HAVE_KERBEROS */
111 /* Define if you have the fchmod function. */
112 /* #undef HAVE_FCHMOD */
114 /* Define if you have the fsync function. */
115 /* #undef HAVE_FSYNC */
117 /* Define if you have the ftime function. */
118 /* #undef HAVE_FTIME */
120 /* Define if you have the ftruncate function. */
121 /* #undef HAVE_FTRUNCATE */
123 /* Define if you have the getpagesize function. */
124 /* #undef HAVE_GETPAGESIZE */
126 /* Define if you have the krb_get_err_text function. */
127 /* #undef HAVE_KRB_GET_ERR_TEXT */
129 /* Define if you have the mkdir function */
132 /* Define if you have the rmdir function */
135 /* Define if you have the rename function */
136 #define HAVE_RENAME 1
138 /* Define if you have the timezone function. */
139 /* #undef HAVE_TIMEZONE */
141 /* Define if you have the vfork function. */
144 /* Define if you have the vprintf function. */
147 /* Define if you have the <errno.h> header file. */
148 /* #undef HAVE_ERRNO_H */
150 /* Define if you have the <fcntl.h> header file. */
151 #if __DECC_VER >= 50700000
152 # define HAVE_FCNTL_H 1
155 /* Define if you have the <memory.h> header file. */
156 /* #undef HAVE_MEMORY_H */
158 /* Define if you have the <ndbm.h> header file. */
159 /* #undef HAVE_NDBM_H */
161 /* Define if you have the <string.h> header file. */
162 #define HAVE_STRING_H 1
164 /* Define to force lib/regex.c to use malloc instead of alloca. */
165 #define REGEX_MALLOC 1
167 /* Define to force lib/regex.c to define re_comp et al. */
168 #define _REGEX_RE_COMP 1
170 /* Define if you have the <sys/select.h> header file. */
171 /* #undef HAVE_SYS_SELECT_H */
173 /* Define this if your <sys/socket.h> defines select() */
174 #define SYS_SOCKET_H_DEFINES_SELECT 1
176 /* Define if you have the <unistd.h> header file. */
177 #define HAVE_UNISTD_H 1
179 /* Define if you have the <utime.h> header file. */
180 /* #undef HAVE_UTIME_H */
182 /* Define if you have the nsl library (-lnsl). */
183 /* #undef HAVE_LIBNSL */
185 /* Define if you have the socket library (-lsocket). */
186 /* #undef HAVE_LIBSOCKET */
188 /* Under VMS, filenames are case-insensitive. */
189 #define FILENAMES_CASE_INSENSITIVE 1
191 #define RSH_NOT_TRANSPARENT 1
192 #define START_SERVER vms_start_server
193 #define NO_SOCKET_TO_FD 1
194 #define START_SERVER_RETURNS_SOCKET 1
195 #define SEND_NEVER_PARTIAL 1
196 #define SYSTEM_GETCALLER() getlogin ()
197 #define GETPWNAM_MISSING 1
199 /* Avoid name conflicts with VMS libraries. */
200 #define getopt cvs_getopt
201 #define optind cvs_optind
202 #define optopt cvs_optopt
203 #define optarg cvs_optarg
204 #define opterr cvs_opterr
206 /* Avoid open/read/closedir name conflicts with DEC C 5.7 libraries,
207 and fix the problem with readdir() retaining the trailing period. */
208 #define CVS_OPENDIR vms_opendir
209 #define CVS_READDIR vms_readdir
210 #define CVS_CLOSEDIR vms_closedir
212 /* argv[0] in VMS is the full pathname which would look really ugly in error
213 messages. Even if we stripped out the directory and ".EXE;5", it would
214 still be misleading, as if one has used "OLDCVS :== ...CVS-JULY.EXE",
215 then argv[0] does not contain the name of the command which the user
216 invokes CVS with. If there is a way for VMS to find the latter, that
217 might be worth messing with, but it also seems fine to just always call
219 #define ARGV0_NOT_PROGRAM_NAME
221 #define CVS_UNLINK vms_unlink
223 /* There is some pretty unixy code in src/commit.c which tries to
224 prevent people from commiting changes as "root" (which would prevent
225 CVS from making a log entry with the actual user). On VMS, I suppose
226 one could say that SYSTEM is equivalent, but I would think that it
227 actually is not necessary; at least at the VMS sites I've worked at
228 people just used their own accounts (turning privileges on and off
232 #define NO_SOCKET_TO_FD 1
235 * The following configuration options used to be defined in options.h.
239 * For portability and heterogeneity reasons, CVS is shipped by default using
240 * my own text-file version of the ndbm database library in the src/myndbm.c
241 * file. If you want better performance and are not concerned about
242 * heterogeneous hosts accessing your modules file, turn this option off.
248 /* Directory used for storing temporary files, if not overridden by
249 environment variables or the -T global option. There should be little
250 need to change this (-T is a better mechanism if you need to use a
251 different directory for temporary files). */
253 #define TMPDIR_DFLT "sys$scratch"
257 * The default editor to use, if one does not specify the "-e" option to cvs,
258 * or does not have an EDITOR environment variable. I set this to just "vi",
259 * and use the shell to find where "vi" actually is. This allows sites with
260 * /usr/bin/vi or /usr/ucb/vi to work equally well (assuming that your PATH
264 #define EDITOR_DFLT ""
268 * The default umask to use when creating or otherwise setting file or
269 * directory permissions in the repository. Must be a value in the
270 * range of 0 through 0777. For example, a value of 002 allows group
271 * rwx access and world rx access; a value of 007 allows group rwx
272 * access but no world access. This value is overridden by the value
273 * of the CVSUMASK environment variable, which is interpreted as an
277 #define UMASK_DFLT 002
281 * The cvs admin command is restricted to the members of the group
282 * CVS_ADMIN_GROUP. If this group does not exist, all users are
283 * allowed to run cvs admin. To disable the cvs admin for all users,
284 * create an empty group CVS_ADMIN_GROUP. To disable access control for
285 * cvs admin, comment out the define below.
287 #ifndef CVS_ADMIN_GROUP
288 /* #define CVS_ADMIN_GROUP "cvsadmin" */
292 * When committing or importing files, you must enter a log message.
293 * Normally, you can do this either via the -m flag on the command line or an
294 * editor will be started for you. If you like to use logging templates (the
295 * rcsinfo file within the $CVSROOT/CVSROOT directory), you might want to
296 * force people to use the editor even if they specify a message with -m.
297 * Enabling FORCE_USE_EDITOR will cause the -m message to be appended to the
298 * temp file when the editor is started.
300 #ifndef FORCE_USE_EDITOR
301 /* #define FORCE_USE_EDITOR */
305 * Yes, we can do the authenticated client.
307 #define AUTH_CLIENT_SUPPORT 1
310 * If you are working with a large remote repository and a 'cvs checkout' is
311 * swamping your network and memory, define these to enable flow control.
312 * You will end up with even less guarantees of a consistant checkout,
313 * but that may be better than no checkout at all. The master server process
314 * will monitor how far it is getting behind, if it reaches the high water
315 * mark, it will signal the child process to stop generating data when
316 * convenient (ie: no locks are held, currently at the beginning of a
317 * new directory). Once the buffer has drained sufficiently to reach the
318 * low water mark, it will be signalled to start again.
319 * -- EXPERIMENTAL! -- A better solution may be in the works.
320 * You may override the default hi/low watermarks here too.
322 #ifndef SERVER_FLOWCONTROL
323 /* #define SERVER_FLOWCONTROL */
324 /* #define SERVER_HI_WATER (2 * 1024 * 1024) */
325 /* #define SERVER_LO_WATER (1 * 1024 * 1024) */
328 /* End of CVS options.h section */
330 /* Return non-zero iff FILENAME is absolute.
331 Trivial under Unix, but more complicated under other systems. */
332 #define ISABSOLUTE(filename) (filename[0] == '/' || filename[0] == '[' || filename[0] == '<' || strchr(filename, ':'))