2 * This file was hand tailored for compiling under MS-DOS and MSC 5.1.
3 * Diomidis Spinellis, March 1990.
5 * Then it got mangled again for compiling under OS/2 and MSC 6.0.
6 * Raymond Chen, June 1990.
10 /* OS/2 supports some additional things MS-DOS doesn't.
21 * This symbol, if defined, indicates that the function add_suffix has
22 * been supplied in a system-dependent .c file. This function is
23 * recommended for operating systems whose filenaming conventions
24 * do not permit arbitrary strings as filenames.
29 * This symbol, if defined, indicates that the program is being compiled
30 * under the EUNICE package under VMS. The program will need to handle
31 * things like files that don't go away the first time you unlink them,
32 * due to version numbering. It will also need to compensate for lack
33 * of a respectable link() command.
36 * This symbol, if defined, indicates that the program is running under
37 * VMS. It is currently only set in conjunction with the EUNICE symbol.
43 * This symbol holds the name of the directory in which the user wants
44 * to put publicly executable images for the package in question. It
45 * is most often a local directory such as /usr/local/bin.
47 #define BIN "/usr/local/bin" /**/
50 * This symbol contains an encoding of the order of bytes in a long.
51 * Usual values (in octal) are 01234, 04321, 02143, 03412...
54 #define BYTEORDER 0x1234 /**/
57 * This symbol contains the first part of the string which will invoke
58 * the C preprocessor on the standard input and produce to standard
59 * output. Typical value of "cc -{" or "/lib/cpp".
62 * This symbol contains the second part of the string which will invoke
63 * the C preprocessor on the standard input and produce to standard
64 * output. This symbol will have the value "-" if CPPSTDIN needs a minus
65 * to specify standard input, otherwise the value is "".
68 #define CPPSTDIN "cc -{"
72 * This symbol, if defined, indicates that the bcmp routine is available
73 * to compare blocks of memory. If undefined, use memcmp. If that's
74 * not available, roll your own.
79 * This symbol, if defined, indicates that the bcopy routine is available
80 * to copy blocks of memory. Otherwise you should probably use memcpy().
85 * This symbol is defined if this system declares "char *sprintf()" in
86 * stdio.h. The trend seems to be to declare it as "int sprintf()". It
87 * is up to the package author to declare sprintf correctly based on the
90 /*#define CHARSPRINTF /**/
93 * This symbol, if defined, indicates that the crypt routine is available
94 * to encrypt passwords and the like.
100 * This symbol, if defined, indicates that the C program should
101 * check the script that it is executing for setuid/setgid bits, and
102 * attempt to emulate setuid/setgid on systems that have disabled
103 * setuid #! scripts because the kernel can't do it securely.
104 * It is up to the package designer to make sure that this emulation
105 * is done securely. Among other things, it should do an fstat on
106 * the script it just opened to make sure it really is a setuid/setgid
107 * script, it should make sure the arguments passed correspond exactly
108 * to the argument on the #! line, and it should not trust any
109 * subprocesses to which it must pass the filename rather than the
110 * file descriptor of the script to be executed.
112 /*#define DOSUID /**/
115 * This symbol, if defined, indicates that the dup2 routine is available
116 * to dup file descriptors. Otherwise you should use dup().
121 * This symbol, if defined, indicates that the fchmod routine is available
122 * to change mode of opened files. If unavailable, use chmod().
124 /*#define FCHMOD /**/
127 * This symbol, if defined, indicates that the fchown routine is available
128 * to change ownership of opened files. If unavailable, use chown().
130 /*#define FCHOWN /**/
133 * This symbol, if defined, indicates to the C program that it should
139 * This symbol, if defined, indicates that the flock() routine is
140 * available to do file locking.
145 * This symbol, if defined, indicates that the getgroups() routine is
146 * available to get the list of process groups. If unavailable, multiple
147 * groups are probably not supported.
149 /*#define GETGROUPS /**/
152 * This symbol, if defined, indicates that the gethostent() routine is
153 * available to lookup host names in some data base or other.
155 /*#define GETHOSTENT /**/
158 * This symbol, if defined, indicates that the getpgrp() routine is
159 * available to get the current process group.
161 /*#define GETPGRP /**/
164 * This symbol, if defined, indicates that the getpriority() routine is
165 * available to get a process's priority.
167 /*#define GETPRIORITY /**/
170 * This symbol, if defined, indicates that the htons routine (and friends)
171 * are available to do network order byte swapping.
174 * This symbol, if defined, indicates that the htonl routine (and friends)
175 * are available to do network order byte swapping.
178 * This symbol, if defined, indicates that the ntohs routine (and friends)
179 * are available to do network order byte swapping.
182 * This symbol, if defined, indicates that the ntohl routine (and friends)
183 * are available to do network order byte swapping.
191 * This preprocessor symbol is defined, along with rindex, if the system
192 * uses the strchr and strrchr routines instead.
195 * This preprocessor symbol is defined, along with index, if the system
196 * uses the strchr and strrchr routines instead.
198 #define index strchr /* cultural */
199 #define rindex strrchr /* differences? */
202 * This symbol, if defined, indicates that sys/ioctl.h exists and should
208 * This symbol, if defined, indicates that the killpg routine is available
209 * to kill process groups. If unavailable, you probably should use kill
210 * with a negative process number.
212 /*#define KILLPG /**/
215 * This symbol, if defined, indicates that the memcmp routine is available
216 * to compare blocks of memory. If undefined, roll your own.
221 * This symbol, if defined, indicates that the memcpy routine is available
222 * to copy blocks of memory. Otherwise you should probably use bcopy().
223 * If neither is defined, roll your own.
228 * This symbol, if defined, indicates that the mkdir routine is available
229 * to create directories. Otherwise you should fork off a new process to
235 * This symbol, if defined, indicates that ndbm.h exists and should
241 * This symbol, if defined, indicates that dbm.h exists and should
247 * This symbol, if defined, indicates that the readdir routine is available
248 * from the C library to create directories.
253 * This symbol, if defined, indicates that the rename routine is available
254 * to rename files. Otherwise you should do the unlink(), link(), unlink()
260 * This symbol, if defined, indicates that the rmdir routine is available
261 * to remove directories. Otherwise you should fork off a new process to
267 * This symbol, if defined, indicates that the setegid routine is available
268 * to change the effective gid of the current program.
270 /*#define SETEGID /**/
273 * This symbol, if defined, indicates that the seteuid routine is available
274 * to change the effective uid of the current program.
276 /*#define SETEUID /**/
279 * This symbol, if defined, indicates that the setpgrp() routine is
280 * available to set the current process group.
282 /*#define SETPGRP /**/
285 * This symbol, if defined, indicates that the setpriority() routine is
286 * available to set a process's priority.
288 /*#define SETPRIORITY /**/
291 * This symbol, if defined, indicates that the setregid routine is available
292 * to change the real and effective gid of the current program.
294 /*#define SETREGID /**/
297 * This symbol, if defined, indicates that the setreuid routine is available
298 * to change the real and effective uid of the current program.
300 /*#define SETREUID /**/
303 * This symbol, if defined, indicates that the setrgid routine is available
304 * to change the real gid of the current program.
306 /*#define SETRGID /**/
309 * This symbol, if defined, indicates that the setruid routine is available
310 * to change the real uid of the current program.
312 /*#define SETRUID /**/
315 * This symbol, if defined, indicates that the BSD socket interface is
319 * This symbol, if defined, indicates that the BSD socketpair call is
323 * This symbol, if defined, indicates that the 4.1c BSD socket interface
324 * is supported instead of the 4.2/4.3 BSD socket interface.
328 /*#undef SOCKETPAIR /**/
330 /*#undef OLDSOCKET /**/
333 * This symbol is defined if this system has a stat structure declaring
334 * st_blksize and st_blocks.
336 /*#define STATBLOCKS /**/
339 * This symbol is defined if this system has a FILE structure declaring
340 * _ptr and _cnt in stdio.h.
342 #define STDSTDIO /**/
345 * This symbol, if defined, indicates that this C compiler knows how
346 * to copy structures. If undefined, you'll need to use a block copy
347 * routine of some sort instead.
349 #define STRUCTCOPY /**/
352 * This symbol, if defined, indicates that the symlink routine is available
353 * to create symbolic links.
355 /*#define SYMLINK /**/
358 * This symbol, if defined, indicates that the syscall routine is available
359 * to call arbitrary system calls. If undefined, that's tough.
361 /*#define SYSCALL /**/
364 * This symbol is defined if this system declares "struct tm" in
365 * in <sys/time.h> rather than <time.h>. We can't just say
366 * -I/usr/include/sys because some systems have both time files, and
367 * the -I trick gets the wrong one.
370 * This symbol is defined if this system has the file <sys/time.h>.
374 * This symbol is defined if time this system has the file <time.h>.
376 /*#undef TMINSYS /**/
377 /*#define I_SYSTIME /**/
381 * This symbol, if defined, indicates to the C program that it should
387 * This symbol, if defined, remaps the vfork routine to fork if the
388 * vfork() routine isn't supported here.
390 /*#undef vfork fork /**/
393 * This symbol is defined if this system declares "void (*signal())()" in
394 * signal.h. The old way was to declare it as "int (*signal())()". It
395 * is up to the package author to declare things correctly based on the
401 * This symbol, if defined, indicates that the vprintf routine is available
402 * to printf with a pointer to an argument list. If unavailable, you
403 * may need to write your own, probably in terms of _doprnt().
406 * This symbol is defined if this system has vsprintf() returning type
407 * (char*). The trend seems to be to declare it as "int vsprintf()". It
408 * is up to the package author to declare vsprintf correctly based on the
412 /*#undef CHARVSPRINTF /**/
415 * This symbol has a value like gid_t, int, ushort, or whatever type is
416 * used to declare group ids in the kernel.
419 #define GIDTYPE int /**/
422 * This symbol, if defined, indicates to the C program that it should
426 * This symbol, if defined, indicates to the C program that the length
427 * of directory entry names is provided by a d_namlen field. Otherwise
428 * you need to do strlen() on the d_name field.
430 /*#undef I_DIRENT /**/
431 #define DIRNAMLEN /**/
434 * This symbol, if defined, indicates to the C program that it should
437 /*#define I_FCNTL /**/
440 * This symbol, if defined, indicates to the C program that it should
446 * This symbol, if defined, indicates to the C program that it should
450 * This symbol, if defined, indicates to the C program that struct passwd
454 * This symbol, if defined, indicates to the C program that struct passwd
458 /*#define PWQUOTA /**/
462 * This symbol, if defined, indicates to the C program that it should
465 #define I_SYSDIR /**/
468 * This symbol, if defined, indicates that sys/ioctl.h exists and should
471 /*#define I_SYSIOCTL /**/
474 * This symbol, if defined, indicates to the C program that it should
477 #define I_VARARGS /**/
480 * This symbol contains the size of an int, so that the C preprocessor
481 * can make decisions based on it.
483 #define INTSIZE 2 /**/
486 * This symbol contains the number of bits of random number the rand()
487 * function produces. Usual values are 15, 16, and 31.
489 #define RANDBITS 31 /**/
492 * This symbol contains an list of signal names in order.
495 #define SIG_NAME "ZERO","HUP","INT","QUIT","ILL","TRAP","IOT","EMT","FPE",\
496 /* 0 1 2 3 4 5 6 7 8 */\
497 "KILL","BUS","SEGV","SYS","PIPE","ALRM","TERM","USR1","USR2","CLD",\
498 /* 9 10 11 12 13 14 15 16 17 18 */\
499 "PWR","USR3","BREAK","ABRT"
502 #define SIG_NAME "ZERO","HUP","INT","QUIT","ILL","TRAP","IOT","EMT","FPE","KILL","BUS","SEGV","SYS","PIPE","ALRM","TERM","URG","STOP","TSTP","CONT","CHLD","TTIN","TTOU","IO","XCPU","XFSZ","VTALRM","PROF","WINCH","USR1","USR2" /**/
506 * This symbol is defined to be the type of char used in stdio.h.
507 * It has the values "unsigned char" or "char".
509 #define STDCHAR char /**/
512 * This symbol has a value like uid_t, int, ushort, or whatever type is
513 * used to declare user ids in the kernel.
515 #define UIDTYPE int /**/
518 * This symbol indicates how much support of the void type is given by this
519 * compiler. What various bits mean:
521 * 1 = supports declaration of void
522 * 2 = supports arrays of pointers to functions returning void
523 * 4 = supports comparisons between pointers to void functions and
524 * addresses of void functions
526 * The package designer should define VOIDUSED to indicate the requirements
527 * of the package. This can be done either by #defining VOIDUSED before
528 * including config.h, or by defining defvoidused in Myinit.U. If the
529 * latter approach is taken, only those flags will be tested. If the
530 * level of void support necessary is not present, defines void to int.
536 #if (VOIDFLAGS & VOIDUSED) != VOIDUSED
537 #define void int /* is void to be avoided? */
538 #define M_VOID /* Xenix strikes again */
542 * This symbol contains the name of the private library for this package.
543 * The library is private in the sense that it needn't be in anyone's
544 * execution path, but it should be accessible by the world. The program
545 * should be prepared to do ^ expansion.
547 #define PRIVLIB "c:/bin/perl" /**/
551 * This symbol is defined if you are the unfortunate owner of a buggy
552 * Microsoft C compiler and want to use intrinsic functions. Versions
553 * up to 5.1 are known conform to this definition.
555 /*#define BUGGY_MSC /**/
559 * This symbol is defined if you run under an operating system that
560 * distinguishes between binary and text files. If so the function
561 * setmode will be used to set the file into binary mode.