2 * This file is hand tailored for compiling under MS-DOS and MSC 5.1.
3 * Diomidis Spinellis, March 1990.
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.
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.
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.
26 #define BIN "/usr/local/bin" /**/
29 * This symbol contains an encoding of the order of bytes in a long.
30 * Usual values (in octal) are 01234, 04321, 02143, 03412...
33 #define BYTEORDER 0x1234 /**/
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".
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 "".
47 #define CPPSTDIN "cc -{"
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.
58 * This symbol, if defined, indicates that the bcopy routine is available
59 * to copy blocks of memory. Otherwise you should probably use memcpy().
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
69 /*#define CHARSPRINTF /**/
72 * This symbol, if defined, indicates that the crypt routine is available
73 * to encrypt passwords and the like.
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.
94 * This symbol, if defined, indicates that the dup2 routine is available
95 * to dup file descriptors. Otherwise you should use dup().
100 * This symbol, if defined, indicates that the fchmod routine is available
101 * to change mode of opened files. If unavailable, use chmod().
103 /*#define FCHMOD /**/
106 * This symbol, if defined, indicates that the fchown routine is available
107 * to change ownership of opened files. If unavailable, use chown().
109 /*#define FCHOWN /**/
112 * This symbol, if defined, indicates to the C program that it should
118 * This symbol, if defined, indicates that the flock() routine is
119 * available to do file locking.
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.
128 /*#define GETGROUPS /**/
131 * This symbol, if defined, indicates that the gethostent() routine is
132 * available to lookup host names in some data base or other.
134 /*#define GETHOSTENT /**/
137 * This symbol, if defined, indicates that the getpgrp() routine is
138 * available to get the current process group.
140 /*#define GETPGRP /**/
143 * This symbol, if defined, indicates that the getpriority() routine is
144 * available to get a process's priority.
146 /*#define GETPRIORITY /**/
149 * This symbol, if defined, indicates that the htons routine (and friends)
150 * are available to do network order byte swapping.
153 * This symbol, if defined, indicates that the htonl routine (and friends)
154 * are available to do network order byte swapping.
157 * This symbol, if defined, indicates that the ntohs routine (and friends)
158 * are available to do network order byte swapping.
161 * This symbol, if defined, indicates that the ntohl routine (and friends)
162 * are available to do network order byte swapping.
170 * This preprocessor symbol is defined, along with rindex, if the system
171 * uses the strchr and strrchr routines instead.
174 * This preprocessor symbol is defined, along with index, if the system
175 * uses the strchr and strrchr routines instead.
177 #define index strchr /* cultural */
178 #define rindex strrchr /* differences? */
181 * This symbol, if defined, indicates that sys/ioctl.h exists and should
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.
191 /*#define KILLPG /**/
194 * This symbol, if defined, indicates that the memcmp routine is available
195 * to compare blocks of memory. If undefined, roll your own.
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.
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
214 * This symbol, if defined, indicates that ndbm.h exists and should
220 * This symbol, if defined, indicates that dbm.h exists and should
226 * This symbol, if defined, indicates that the readdir routine is available
227 * from the C library to create directories.
232 * This symbol, if defined, indicates that the rename routine is available
233 * to rename files. Otherwise you should do the unlink(), link(), unlink()
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
246 * This symbol, if defined, indicates that the setegid routine is available
247 * to change the effective gid of the current program.
249 /*#define SETEGID /**/
252 * This symbol, if defined, indicates that the seteuid routine is available
253 * to change the effective uid of the current program.
255 /*#define SETEUID /**/
258 * This symbol, if defined, indicates that the setpgrp() routine is
259 * available to set the current process group.
261 /*#define SETPGRP /**/
264 * This symbol, if defined, indicates that the setpriority() routine is
265 * available to set a process's priority.
267 /*#define SETPRIORITY /**/
270 * This symbol, if defined, indicates that the setregid routine is available
271 * to change the real and effective gid of the current program.
273 /*#define SETREGID /**/
276 * This symbol, if defined, indicates that the setreuid routine is available
277 * to change the real and effective uid of the current program.
279 /*#define SETREUID /**/
282 * This symbol, if defined, indicates that the setrgid routine is available
283 * to change the real gid of the current program.
285 /*#define SETRGID /**/
288 * This symbol, if defined, indicates that the setruid routine is available
289 * to change the real uid of the current program.
291 /*#define SETRUID /**/
294 * This symbol, if defined, indicates that the BSD socket interface is
298 * This symbol, if defined, indicates that the BSD socketpair call is
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.
307 /*#undef SOCKETPAIR /**/
309 /*#undef OLDSOCKET /**/
312 * This symbol is defined if this system has a stat structure declaring
313 * st_blksize and st_blocks.
315 /*#define STATBLOCKS /**/
318 * This symbol is defined if this system has a FILE structure declaring
319 * _ptr and _cnt in stdio.h.
321 #define STDSTDIO /**/
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.
328 #define STRUCTCOPY /**/
331 * This symbol, if defined, indicates that the symlink routine is available
332 * to create symbolic links.
334 /*#define SYMLINK /**/
337 * This symbol, if defined, indicates that the syscall routine is available
338 * to call arbitrary system calls. If undefined, that's tough.
340 /*#define SYSCALL /**/
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.
349 * This symbol is defined if this system has the file <sys/time.h>.
353 * This symbol is defined if time this system has the file <time.h>.
355 /*#undef TMINSYS /**/
356 /*#define I_SYSTIME /**/
360 * This symbol, if defined, indicates to the C program that it should
366 * This symbol, if defined, remaps the vfork routine to fork if the
367 * vfork() routine isn't supported here.
369 /*#undef vfork fork /**/
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
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().
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
391 /*#undef CHARVSPRINTF /**/
394 * This symbol has a value like gid_t, int, ushort, or whatever type is
395 * used to declare group ids in the kernel.
398 #define GIDTYPE int /**/
401 * This symbol, if defined, indicates to the C program that it should
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.
409 /*#undef I_DIRENT /**/
410 #define DIRNAMLEN /**/
413 * This symbol, if defined, indicates to the C program that it should
419 * This symbol, if defined, indicates to the C program that it should
425 * This symbol, if defined, indicates to the C program that it should
429 * This symbol, if defined, indicates to the C program that struct passwd
433 * This symbol, if defined, indicates to the C program that struct passwd
437 /*#define PWQUOTA /**/
441 * This symbol, if defined, indicates to the C program that it should
444 #define I_SYSDIR /**/
447 * This symbol, if defined, indicates that sys/ioctl.h exists and should
450 /*#define I_SYSIOCTL /**/
453 * This symbol, if defined, indicates to the C program that it should
456 #define I_VARARGS /**/
459 * This symbol contains the size of an int, so that the C preprocessor
460 * can make decisions based on it.
462 #define INTSIZE 2 /**/
465 * This symbol contains the number of bits of random number the rand()
466 * function produces. Usual values are 15, 16, and 31.
468 #define RANDBITS 31 /**/
471 * This symbol contains an list of signal names in order.
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" /**/
479 * This symbol is defined to be the type of char used in stdio.h.
480 * It has the values "unsigned char" or "char".
482 #define STDCHAR char /**/
485 * This symbol has a value like uid_t, int, ushort, or whatever type is
486 * used to declare user ids in the kernel.
488 #define UIDTYPE int /**/
491 * This symbol indicates how much support of the void type is given by this
492 * compiler. What various bits mean:
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
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.
509 #if (VOIDFLAGS & VOIDUSED) != VOIDUSED
510 #define void int /* is void to be avoided? */
511 #define M_VOID /* Xenix strikes again */
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.
520 #define PRIVLIB "/usr/local/lib/perl" /**/
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.
528 #define BUGGY_MSC /**/
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.