Commit | Line | Data |
21d892ea |
1 | /* config.h |
2 | * This file is hand tailored for compiling under MS-DOS and MSC 5.1. |
3 | * Diomidis Spinellis, March 1990. |
4 | */ |
5 | |
6 | |
7 | /* EUNICE: |
8 | * This symbol, if defined, indicates that the program is being compiled |
9 | * under the EUNICE package under VMS. The program will need to handle |
10 | * things like files that don't go away the first time you unlink them, |
11 | * due to version numbering. It will also need to compensate for lack |
12 | * of a respectable link() command. |
13 | */ |
14 | /* VMS: |
15 | * This symbol, if defined, indicates that the program is running under |
16 | * VMS. It is currently only set in conjunction with the EUNICE symbol. |
17 | */ |
18 | /*#undef EUNICE /**/ |
19 | /*#undef VMS /**/ |
20 | |
21 | /* BIN: |
22 | * This symbol holds the name of the directory in which the user wants |
23 | * to put publicly executable images for the package in question. It |
24 | * is most often a local directory such as /usr/local/bin. |
25 | */ |
26 | #define BIN "/usr/local/bin" /**/ |
27 | |
28 | /* BYTEORDER: |
29 | * This symbol contains an encoding of the order of bytes in a long. |
30 | * Usual values (in octal) are 01234, 04321, 02143, 03412... |
31 | */ |
32 | /* CHECK */ |
33 | #define BYTEORDER 0x1234 /**/ |
34 | |
35 | /* CPPSTDIN: |
36 | * This symbol contains the first part of the string which will invoke |
37 | * the C preprocessor on the standard input and produce to standard |
38 | * output. Typical value of "cc -{" or "/lib/cpp". |
39 | */ |
40 | /* CPPMINUS: |
41 | * This symbol contains the second part of the string which will invoke |
42 | * the C preprocessor on the standard input and produce to standard |
43 | * output. This symbol will have the value "-" if CPPSTDIN needs a minus |
44 | * to specify standard input, otherwise the value is "". |
45 | */ |
46 | /* TODO */ |
47 | #define CPPSTDIN "cc -{" |
48 | #define CPPMINUS "" |
49 | |
50 | /* BCMP: |
51 | * This symbol, if defined, indicates that the bcmp routine is available |
52 | * to compare blocks of memory. If undefined, use memcmp. If that's |
53 | * not available, roll your own. |
54 | */ |
55 | /*#define BCMP /**/ |
56 | |
57 | /* BCOPY: |
58 | * This symbol, if defined, indicates that the bcopy routine is available |
59 | * to copy blocks of memory. Otherwise you should probably use memcpy(). |
60 | */ |
61 | /*#define BCOPY /**/ |
62 | |
63 | /* CHARSPRINTF: |
64 | * This symbol is defined if this system declares "char *sprintf()" in |
65 | * stdio.h. The trend seems to be to declare it as "int sprintf()". It |
66 | * is up to the package author to declare sprintf correctly based on the |
67 | * symbol. |
68 | */ |
69 | /*#define CHARSPRINTF /**/ |
70 | |
71 | /* CRYPT: |
72 | * This symbol, if defined, indicates that the crypt routine is available |
73 | * to encrypt passwords and the like. |
74 | */ |
75 | /* TODO */ |
76 | /*#define CRYPT /**/ |
77 | |
78 | /* DOSUID: |
79 | * This symbol, if defined, indicates that the C program should |
80 | * check the script that it is executing for setuid/setgid bits, and |
81 | * attempt to emulate setuid/setgid on systems that have disabled |
82 | * setuid #! scripts because the kernel can't do it securely. |
83 | * It is up to the package designer to make sure that this emulation |
84 | * is done securely. Among other things, it should do an fstat on |
85 | * the script it just opened to make sure it really is a setuid/setgid |
86 | * script, it should make sure the arguments passed correspond exactly |
87 | * to the argument on the #! line, and it should not trust any |
88 | * subprocesses to which it must pass the filename rather than the |
89 | * file descriptor of the script to be executed. |
90 | */ |
91 | /*#define DOSUID /**/ |
92 | |
93 | /* DUP2: |
94 | * This symbol, if defined, indicates that the dup2 routine is available |
95 | * to dup file descriptors. Otherwise you should use dup(). |
96 | */ |
97 | #define DUP2 /**/ |
98 | |
99 | /* FCHMOD: |
100 | * This symbol, if defined, indicates that the fchmod routine is available |
101 | * to change mode of opened files. If unavailable, use chmod(). |
102 | */ |
103 | /*#define FCHMOD /**/ |
104 | |
105 | /* FCHOWN: |
106 | * This symbol, if defined, indicates that the fchown routine is available |
107 | * to change ownership of opened files. If unavailable, use chown(). |
108 | */ |
109 | /*#define FCHOWN /**/ |
110 | |
111 | /* FCNTL: |
112 | * This symbol, if defined, indicates to the C program that it should |
113 | * include fcntl.h. |
114 | */ |
115 | /*#define FCNTL /**/ |
116 | |
117 | /* FLOCK: |
118 | * This symbol, if defined, indicates that the flock() routine is |
119 | * available to do file locking. |
120 | */ |
121 | /*#define FLOCK /**/ |
122 | |
123 | /* GETGROUPS: |
124 | * This symbol, if defined, indicates that the getgroups() routine is |
125 | * available to get the list of process groups. If unavailable, multiple |
126 | * groups are probably not supported. |
127 | */ |
128 | /*#define GETGROUPS /**/ |
129 | |
130 | /* GETHOSTENT: |
131 | * This symbol, if defined, indicates that the gethostent() routine is |
132 | * available to lookup host names in some data base or other. |
133 | */ |
134 | /*#define GETHOSTENT /**/ |
135 | |
136 | /* GETPGRP: |
137 | * This symbol, if defined, indicates that the getpgrp() routine is |
138 | * available to get the current process group. |
139 | */ |
140 | /*#define GETPGRP /**/ |
141 | |
142 | /* GETPRIORITY: |
143 | * This symbol, if defined, indicates that the getpriority() routine is |
144 | * available to get a process's priority. |
145 | */ |
146 | /*#define GETPRIORITY /**/ |
147 | |
148 | /* HTONS: |
149 | * This symbol, if defined, indicates that the htons routine (and friends) |
150 | * are available to do network order byte swapping. |
151 | */ |
152 | /* HTONL: |
153 | * This symbol, if defined, indicates that the htonl routine (and friends) |
154 | * are available to do network order byte swapping. |
155 | */ |
156 | /* NTOHS: |
157 | * This symbol, if defined, indicates that the ntohs routine (and friends) |
158 | * are available to do network order byte swapping. |
159 | */ |
160 | /* NTOHL: |
161 | * This symbol, if defined, indicates that the ntohl routine (and friends) |
162 | * are available to do network order byte swapping. |
163 | */ |
164 | /*#define HTONS /**/ |
165 | /*#define HTONL /**/ |
166 | /*#define NTOHS /**/ |
167 | /*#define NTOHL /**/ |
168 | |
169 | /* index: |
170 | * This preprocessor symbol is defined, along with rindex, if the system |
171 | * uses the strchr and strrchr routines instead. |
172 | */ |
173 | /* rindex: |
174 | * This preprocessor symbol is defined, along with index, if the system |
175 | * uses the strchr and strrchr routines instead. |
176 | */ |
177 | #define index strchr /* cultural */ |
178 | #define rindex strrchr /* differences? */ |
179 | |
180 | /* IOCTL: |
181 | * This symbol, if defined, indicates that sys/ioctl.h exists and should |
182 | * be included. |
183 | */ |
184 | /*#define IOCTL /**/ |
185 | |
186 | /* KILLPG: |
187 | * This symbol, if defined, indicates that the killpg routine is available |
188 | * to kill process groups. If unavailable, you probably should use kill |
189 | * with a negative process number. |
190 | */ |
191 | /*#define KILLPG /**/ |
192 | |
193 | /* MEMCMP: |
194 | * This symbol, if defined, indicates that the memcmp routine is available |
195 | * to compare blocks of memory. If undefined, roll your own. |
196 | */ |
197 | #define MEMCMP /**/ |
198 | |
199 | /* MEMCPY: |
200 | * This symbol, if defined, indicates that the memcpy routine is available |
201 | * to copy blocks of memory. Otherwise you should probably use bcopy(). |
202 | * If neither is defined, roll your own. |
203 | */ |
204 | #define MEMCPY /**/ |
205 | |
206 | /* MKDIR: |
207 | * This symbol, if defined, indicates that the mkdir routine is available |
208 | * to create directories. Otherwise you should fork off a new process to |
209 | * exec /bin/mkdir. |
210 | */ |
211 | #define MKDIR /**/ |
212 | |
213 | /* NDBM: |
214 | * This symbol, if defined, indicates that ndbm.h exists and should |
215 | * be included. |
216 | */ |
217 | /*#define NDBM /**/ |
218 | |
219 | /* ODBM: |
220 | * This symbol, if defined, indicates that dbm.h exists and should |
221 | * be included. |
222 | */ |
223 | /*#define ODBM /**/ |
224 | |
225 | /* READDIR: |
226 | * This symbol, if defined, indicates that the readdir routine is available |
227 | * from the C library to create directories. |
228 | */ |
229 | #define READDIR /**/ |
230 | |
231 | /* RENAME: |
232 | * This symbol, if defined, indicates that the rename routine is available |
233 | * to rename files. Otherwise you should do the unlink(), link(), unlink() |
234 | * trick. |
235 | */ |
236 | #define RENAME /**/ |
237 | |
238 | /* RMDIR: |
239 | * This symbol, if defined, indicates that the rmdir routine is available |
240 | * to remove directories. Otherwise you should fork off a new process to |
241 | * exec /bin/rmdir. |
242 | */ |
243 | #define RMDIR /**/ |
244 | |
245 | /* SETEGID: |
246 | * This symbol, if defined, indicates that the setegid routine is available |
247 | * to change the effective gid of the current program. |
248 | */ |
249 | /*#define SETEGID /**/ |
250 | |
251 | /* SETEUID: |
252 | * This symbol, if defined, indicates that the seteuid routine is available |
253 | * to change the effective uid of the current program. |
254 | */ |
255 | /*#define SETEUID /**/ |
256 | |
257 | /* SETPGRP: |
258 | * This symbol, if defined, indicates that the setpgrp() routine is |
259 | * available to set the current process group. |
260 | */ |
261 | /*#define SETPGRP /**/ |
262 | |
263 | /* SETPRIORITY: |
264 | * This symbol, if defined, indicates that the setpriority() routine is |
265 | * available to set a process's priority. |
266 | */ |
267 | /*#define SETPRIORITY /**/ |
268 | |
269 | /* SETREGID: |
270 | * This symbol, if defined, indicates that the setregid routine is available |
271 | * to change the real and effective gid of the current program. |
272 | */ |
273 | /*#define SETREGID /**/ |
274 | |
275 | /* SETREUID: |
276 | * This symbol, if defined, indicates that the setreuid routine is available |
277 | * to change the real and effective uid of the current program. |
278 | */ |
279 | /*#define SETREUID /**/ |
280 | |
281 | /* SETRGID: |
282 | * This symbol, if defined, indicates that the setrgid routine is available |
283 | * to change the real gid of the current program. |
284 | */ |
285 | /*#define SETRGID /**/ |
286 | |
287 | /* SETRUID: |
288 | * This symbol, if defined, indicates that the setruid routine is available |
289 | * to change the real uid of the current program. |
290 | */ |
291 | /*#define SETRUID /**/ |
292 | |
293 | /* SOCKET: |
294 | * This symbol, if defined, indicates that the BSD socket interface is |
295 | * supported. |
296 | */ |
297 | /* SOCKETPAIR: |
298 | * This symbol, if defined, indicates that the BSD socketpair call is |
299 | * supported. |
300 | */ |
301 | /* OLDSOCKET: |
302 | * This symbol, if defined, indicates that the 4.1c BSD socket interface |
303 | * is supported instead of the 4.2/4.3 BSD socket interface. |
304 | */ |
305 | /*#undef SOCKET /**/ |
306 | |
307 | /*#undef SOCKETPAIR /**/ |
308 | |
309 | /*#undef OLDSOCKET /**/ |
310 | |
311 | /* STATBLOCKS: |
312 | * This symbol is defined if this system has a stat structure declaring |
313 | * st_blksize and st_blocks. |
314 | */ |
315 | /*#define STATBLOCKS /**/ |
316 | |
317 | /* STDSTDIO: |
318 | * This symbol is defined if this system has a FILE structure declaring |
319 | * _ptr and _cnt in stdio.h. |
320 | */ |
321 | #define STDSTDIO /**/ |
322 | |
323 | /* STRUCTCOPY: |
324 | * This symbol, if defined, indicates that this C compiler knows how |
325 | * to copy structures. If undefined, you'll need to use a block copy |
326 | * routine of some sort instead. |
327 | */ |
328 | #define STRUCTCOPY /**/ |
329 | |
330 | /* SYMLINK: |
331 | * This symbol, if defined, indicates that the symlink routine is available |
332 | * to create symbolic links. |
333 | */ |
334 | /*#define SYMLINK /**/ |
335 | |
336 | /* SYSCALL: |
337 | * This symbol, if defined, indicates that the syscall routine is available |
338 | * to call arbitrary system calls. If undefined, that's tough. |
339 | */ |
340 | /*#define SYSCALL /**/ |
341 | |
342 | /* TMINSYS: |
343 | * This symbol is defined if this system declares "struct tm" in |
344 | * in <sys/time.h> rather than <time.h>. We can't just say |
345 | * -I/usr/include/sys because some systems have both time files, and |
346 | * the -I trick gets the wrong one. |
347 | */ |
348 | /* I_SYSTIME: |
349 | * This symbol is defined if this system has the file <sys/time.h>. |
350 | */ |
351 | /* |
352 | * I_TIME: |
353 | * This symbol is defined if time this system has the file <time.h>. |
354 | */ |
355 | /*#undef TMINSYS /**/ |
356 | /*#define I_SYSTIME /**/ |
357 | #define I_TIME |
358 | |
359 | /* VARARGS: |
360 | * This symbol, if defined, indicates to the C program that it should |
361 | * include varargs.h. |
362 | */ |
363 | #define VARARGS /**/ |
364 | |
365 | /* vfork: |
366 | * This symbol, if defined, remaps the vfork routine to fork if the |
367 | * vfork() routine isn't supported here. |
368 | */ |
369 | /*#undef vfork fork /**/ |
370 | |
371 | /* VOIDSIG: |
372 | * This symbol is defined if this system declares "void (*signal())()" in |
373 | * signal.h. The old way was to declare it as "int (*signal())()". It |
374 | * is up to the package author to declare things correctly based on the |
375 | * symbol. |
376 | */ |
377 | #define VOIDSIG /**/ |
378 | |
379 | /* VPRINTF: |
380 | * This symbol, if defined, indicates that the vprintf routine is available |
381 | * to printf with a pointer to an argument list. If unavailable, you |
382 | * may need to write your own, probably in terms of _doprnt(). |
383 | */ |
384 | /* CHARVSPRINTF: |
385 | * This symbol is defined if this system has vsprintf() returning type |
386 | * (char*). The trend seems to be to declare it as "int vsprintf()". It |
387 | * is up to the package author to declare vsprintf correctly based on the |
388 | * symbol. |
389 | */ |
390 | #define VPRINTF /**/ |
391 | /*#undef CHARVSPRINTF /**/ |
392 | |
393 | /* GIDTYPE: |
394 | * This symbol has a value like gid_t, int, ushort, or whatever type is |
395 | * used to declare group ids in the kernel. |
396 | */ |
397 | /* TODO */ |
398 | #define GIDTYPE int /**/ |
399 | |
400 | /* I_DIRENT: |
401 | * This symbol, if defined, indicates to the C program that it should |
402 | * include dirent.h. |
403 | */ |
404 | /* DIRNAMLEN: |
405 | * This symbol, if defined, indicates to the C program that the length |
406 | * of directory entry names is provided by a d_namlen field. Otherwise |
407 | * you need to do strlen() on the d_name field. |
408 | */ |
409 | /*#undef I_DIRENT /**/ |
410 | #define DIRNAMLEN /**/ |
411 | |
412 | /* I_FCNTL: |
413 | * This symbol, if defined, indicates to the C program that it should |
414 | * include fcntl.h. |
415 | */ |
416 | #define I_FCNTL /**/ |
417 | |
418 | /* I_GRP: |
419 | * This symbol, if defined, indicates to the C program that it should |
420 | * include grp.h. |
421 | */ |
422 | /*#define I_GRP /**/ |
423 | |
424 | /* I_PWD: |
425 | * This symbol, if defined, indicates to the C program that it should |
426 | * include pwd.h. |
427 | */ |
428 | /* PWQUOTA: |
429 | * This symbol, if defined, indicates to the C program that struct passwd |
430 | * contains pw_quota. |
431 | */ |
432 | /* PWAGE: |
433 | * This symbol, if defined, indicates to the C program that struct passwd |
434 | * contains pw_age. |
435 | */ |
436 | /*#define I_PWD /**/ |
437 | /*#define PWQUOTA /**/ |
438 | /*#undef PWAGE /**/ |
439 | |
440 | /* I_SYSDIR: |
441 | * This symbol, if defined, indicates to the C program that it should |
442 | * include sys/dir.h. |
443 | */ |
444 | #define I_SYSDIR /**/ |
445 | |
446 | /* I_SYSIOCTL: |
447 | * This symbol, if defined, indicates that sys/ioctl.h exists and should |
448 | * be included. |
449 | */ |
450 | /*#define I_SYSIOCTL /**/ |
451 | |
452 | /* I_VARARGS: |
453 | * This symbol, if defined, indicates to the C program that it should |
454 | * include varargs.h. |
455 | */ |
456 | #define I_VARARGS /**/ |
457 | |
458 | /* INTSIZE: |
459 | * This symbol contains the size of an int, so that the C preprocessor |
460 | * can make decisions based on it. |
461 | */ |
462 | #define INTSIZE 2 /**/ |
463 | |
464 | /* RANDBITS: |
465 | * This symbol contains the number of bits of random number the rand() |
466 | * function produces. Usual values are 15, 16, and 31. |
467 | */ |
468 | #define RANDBITS 31 /**/ |
469 | |
470 | /* SIG_NAME: |
471 | * This symbol contains an list of signal names in order. |
472 | */ |
473 | #define SIG_NAME |
474 | "ZERO","HUP","INT","QUIT","ILL","TRAP","IOT","EMT","FPE","KILL","BUS","SEGV","S |
475 | YS","PIPE","ALRM","TERM","URG","STOP","TSTP","CONT","CHLD","TTIN","TTOU","IO","X |
476 | CPU","XFSZ","VTALRM","PROF","WINCH","USR1","USR2" /**/ |
477 | |
478 | /* STDCHAR: |
479 | * This symbol is defined to be the type of char used in stdio.h. |
480 | * It has the values "unsigned char" or "char". |
481 | */ |
482 | #define STDCHAR char /**/ |
483 | |
484 | /* UIDTYPE: |
485 | * This symbol has a value like uid_t, int, ushort, or whatever type is |
486 | * used to declare user ids in the kernel. |
487 | */ |
488 | #define UIDTYPE int /**/ |
489 | |
490 | /* VOIDFLAGS: |
491 | * This symbol indicates how much support of the void type is given by this |
492 | * compiler. What various bits mean: |
493 | * |
494 | * 1 = supports declaration of void |
495 | * 2 = supports arrays of pointers to functions returning void |
496 | * 4 = supports comparisons between pointers to void functions and |
497 | * addresses of void functions |
498 | * |
499 | * The package designer should define VOIDUSED to indicate the requirements |
500 | * of the package. This can be done either by #defining VOIDUSED before |
501 | * including config.h, or by defining defvoidused in Myinit.U. If the |
502 | * latter approach is taken, only those flags will be tested. If the |
503 | * level of void support necessary is not present, defines void to int. |
504 | */ |
505 | #ifndef VOIDUSED |
506 | #define VOIDUSED 7 |
507 | #endif |
508 | #define VOIDFLAGS 7 |
509 | #if (VOIDFLAGS & VOIDUSED) != VOIDUSED |
510 | #define void int /* is void to be avoided? */ |
511 | #define M_VOID /* Xenix strikes again */ |
512 | #endif |
513 | |
514 | /* PRIVLIB: |
515 | * This symbol contains the name of the private library for this package. |
516 | * The library is private in the sense that it needn't be in anyone's |
517 | * execution path, but it should be accessible by the world. The program |
518 | * should be prepared to do ^ expansion. |
519 | */ |
520 | #define PRIVLIB "/usr/local/lib/perl" /**/ |
521 | |
522 | /* |
523 | * BUGGY_MSC: |
524 | * This symbol is defined if you are the unfortunate owner of a buggy |
525 | * Microsoft C compiler and want to use intrinsic functions. Versions |
526 | * up to 5.1 are known conform to this definition. |
527 | */ |
528 | #define BUGGY_MSC /**/ |
529 | |
530 | /* |
531 | * BINARY: |
532 | * This symbol is defined if you run under an operating system that |
533 | * distinguishes between binary and text files. If so the function |
534 | * setmode will be used to set the file into binary mode. |
535 | */ |
536 | #define BINARY |
537 | |
538 | #define S_ISUID 0 |
539 | #define S_ISGID 0 |
540 | #define CASTNEGFLOAT |