perl 4.0 patch 33: patch #20, continued
[p5sagit/p5-mst-13.2.git] / msdos / config.h
CommitLineData
fe14fcc3 1#ifndef config_h
2#define config_h
21d892ea 3/* config.h
fe14fcc3 4 *
5 * This file is hand tailored for MS-DOS and MSC 5.1 and 6.00A.
6 * Tom Dinger, March 1991.
7 */
8
9
10/*
11 * BUGGY_MSC5:
12 * This symbol is defined if you are the unfortunate owner of the buggy
13 * Microsoft C compiler version 5.1. It is used as a conditional to
14 * guard code sections that are known to break this compiler.
15 * BUGGY_MSC6:
16 * This symbol is defined if you are the unfortunate owner of the buggy
17 * Microsoft C compiler version 6.0A. It is used as a conditional to
18 * guard code sections that are known to break this compiler.
21d892ea 19 */
fe14fcc3 20#define BUGGY_MSC5 /**/
21/*#undef BUGGY_MSC6 /**/
21d892ea 22
23
fe14fcc3 24/* EUNICE
21d892ea 25 * This symbol, if defined, indicates that the program is being compiled
26 * under the EUNICE package under VMS. The program will need to handle
27 * things like files that don't go away the first time you unlink them,
28 * due to version numbering. It will also need to compensate for lack
29 * of a respectable link() command.
30 */
fe14fcc3 31/* VMS
21d892ea 32 * This symbol, if defined, indicates that the program is running under
33 * VMS. It is currently only set in conjunction with the EUNICE symbol.
34 */
35/*#undef EUNICE /**/
36/*#undef VMS /**/
37
fe14fcc3 38/* ALIGNBYTES
39 * This symbol contains the number of bytes required to align a double.
40 * Usual values are 2, 4, and 8.
41 */
42#define ALIGNBYTES 4 /**/
43
44/* BIN
21d892ea 45 * This symbol holds the name of the directory in which the user wants
2b317908 46 * to keep publicly executable images for the package in question. It
21d892ea 47 * is most often a local directory such as /usr/local/bin.
48 */
49#define BIN "/usr/local/bin" /**/
50
fe14fcc3 51/* BYTEORDER
21d892ea 52 * This symbol contains an encoding of the order of bytes in a long.
53 * Usual values (in octal) are 01234, 04321, 02143, 03412...
54 */
21d892ea 55#define BYTEORDER 0x1234 /**/
56
fe14fcc3 57/* CPPSTDIN
21d892ea 58 * This symbol contains the first part of the string which will invoke
59 * the C preprocessor on the standard input and produce to standard
fe14fcc3 60 * output. Typical value of "cc -E" or "/lib/cpp".
21d892ea 61 */
fe14fcc3 62/* CPPMINUS
21d892ea 63 * This symbol contains the second part of the string which will invoke
64 * the C preprocessor on the standard input and produce to standard
65 * output. This symbol will have the value "-" if CPPSTDIN needs a minus
66 * to specify standard input, otherwise the value is "".
67 */
fe14fcc3 68/* TODO: doesn't work for MSC -- it's more complicated than this */
69#define CPPSTDIN "cl "
21d892ea 70#define CPPMINUS ""
71
fe14fcc3 72/* HAS_BCMP
21d892ea 73 * This symbol, if defined, indicates that the bcmp routine is available
74 * to compare blocks of memory. If undefined, use memcmp. If that's
75 * not available, roll your own.
76 */
fe14fcc3 77/*#undef HAS_BCMP /**/
21d892ea 78
fe14fcc3 79/* HAS_BCOPY
21d892ea 80 * This symbol, if defined, indicates that the bcopy routine is available
81 * to copy blocks of memory. Otherwise you should probably use memcpy().
68decaef 82 * If neither is defined, roll your own.
83 */
84/* SAFE_BCOPY
85 * This symbol, if defined, indicates that the bcopy routine is available
86 * to copy potentially overlapping copy blocks of bcopy. Otherwise you
87 * should probably use memmove() or memcpy(). If neither is defined,
88 * roll your own.
21d892ea 89 */
fe14fcc3 90/*#undef HAS_BCOPY /**/
68decaef 91/*#undef SAFE_BCOPY /**/
fe14fcc3 92
93/* HAS_BZERO
94 * This symbol, if defined, indicates that the bzero routine is available
95 * to zero blocks of memory. Otherwise you should probably use memset()
96 * or roll your own.
97 */
98/*#undef HAS_BZERO /**/
21d892ea 99
fe14fcc3 100/* CASTNEGFLOAT
101 * This symbol, if defined, indicates that this C compiler knows how to
102 * cast negative or large floating point numbers to unsigned longs, ints
103 * and shorts.
104 */
105/* CASTFLAGS
106 * This symbol contains flags that say what difficulties the compiler
107 * has casting odd floating values to unsigned long:
108 * 1 = couldn't cast < 0
109 * 2 = couldn't cast >= 0x80000000
110 */
111#define CASTNEGFLOAT /**/
112#define CASTFLAGS 0 /**/
113
114/* CHARSPRINTF
21d892ea 115 * This symbol is defined if this system declares "char *sprintf()" in
116 * stdio.h. The trend seems to be to declare it as "int sprintf()". It
117 * is up to the package author to declare sprintf correctly based on the
118 * symbol.
119 */
fe14fcc3 120/*#undef CHARSPRINTF /**/
121
122/* HAS_CHSIZE
123 * This symbol, if defined, indicates that the chsize routine is available
124 * to truncate files. You might need a -lx to get this routine.
125 */
126#define HAS_CHSIZE /**/
21d892ea 127
fe14fcc3 128/* HAS_CRYPT
21d892ea 129 * This symbol, if defined, indicates that the crypt routine is available
130 * to encrypt passwords and the like.
131 */
fe14fcc3 132/*#undef HAS_CRYPT /**/
133
134/* CSH
135 * This symbol, if defined, indicates that the C-shell exists.
136 * If defined, contains the full pathname of csh.
137 */
138/*#undef CSH "/usr/bin/csh" /**/
21d892ea 139
fe14fcc3 140/* DOSUID
21d892ea 141 * This symbol, if defined, indicates that the C program should
142 * check the script that it is executing for setuid/setgid bits, and
143 * attempt to emulate setuid/setgid on systems that have disabled
144 * setuid #! scripts because the kernel can't do it securely.
145 * It is up to the package designer to make sure that this emulation
146 * is done securely. Among other things, it should do an fstat on
147 * the script it just opened to make sure it really is a setuid/setgid
148 * script, it should make sure the arguments passed correspond exactly
149 * to the argument on the #! line, and it should not trust any
150 * subprocesses to which it must pass the filename rather than the
151 * file descriptor of the script to be executed.
152 */
fe14fcc3 153/*#undef DOSUID /**/
21d892ea 154
fe14fcc3 155/* HAS_DUP2
21d892ea 156 * This symbol, if defined, indicates that the dup2 routine is available
157 * to dup file descriptors. Otherwise you should use dup().
158 */
fe14fcc3 159#define HAS_DUP2 /**/
21d892ea 160
fe14fcc3 161/* HAS_FCHMOD
21d892ea 162 * This symbol, if defined, indicates that the fchmod routine is available
163 * to change mode of opened files. If unavailable, use chmod().
164 */
fe14fcc3 165/*#undef HAS_FCHMOD /**/
21d892ea 166
fe14fcc3 167/* HAS_FCHOWN
21d892ea 168 * This symbol, if defined, indicates that the fchown routine is available
169 * to change ownership of opened files. If unavailable, use chown().
170 */
fe14fcc3 171/*#undef HAS_FCHOWN /**/
21d892ea 172
fe14fcc3 173/* HAS_FCNTL
174 * This symbol, if defined, indicates to the C program that
175 * the fcntl() function exists.
21d892ea 176 */
fe14fcc3 177/*#undef HAS_FCNTL /**/
21d892ea 178
fe14fcc3 179/* FLEXFILENAMES
180 * This symbol, if defined, indicates that the system supports filenames
181 * longer than 14 characters.
182 */
183/*#undef FLEXFILENAMES /**/
184
185/* HAS_FLOCK
21d892ea 186 * This symbol, if defined, indicates that the flock() routine is
187 * available to do file locking.
188 */
fe14fcc3 189/*#undef HAS_FLOCK /**/
21d892ea 190
fe14fcc3 191/* HAS_GETGROUPS
21d892ea 192 * This symbol, if defined, indicates that the getgroups() routine is
193 * available to get the list of process groups. If unavailable, multiple
194 * groups are probably not supported.
195 */
fe14fcc3 196/*#undef HAS_GETGROUPS /**/
21d892ea 197
fe14fcc3 198/* HAS_GETHOSTENT
21d892ea 199 * This symbol, if defined, indicates that the gethostent() routine is
200 * available to lookup host names in some data base or other.
201 */
fe14fcc3 202/*#undef HAS_GETHOSTENT /**/
21d892ea 203
fe14fcc3 204/* HAS_GETPGRP
21d892ea 205 * This symbol, if defined, indicates that the getpgrp() routine is
206 * available to get the current process group.
207 */
fe14fcc3 208/*#undef HAS_GETPGRP /**/
21d892ea 209
fe14fcc3 210/* HAS_GETPGRP2
211 * This symbol, if defined, indicates that the getpgrp2() (as in DG/UX)
212 * routine is available to get the current process group.
213 */
214/*#undef HAS_GETPGRP2 /**/
215
216/* HAS_GETPRIORITY
21d892ea 217 * This symbol, if defined, indicates that the getpriority() routine is
218 * available to get a process's priority.
219 */
fe14fcc3 220/*#undef HAS_GETPRIORITY /**/
21d892ea 221
fe14fcc3 222/* HAS_HTONS
21d892ea 223 * This symbol, if defined, indicates that the htons routine (and friends)
224 * are available to do network order byte swapping.
225 */
fe14fcc3 226/* HAS_HTONL
21d892ea 227 * This symbol, if defined, indicates that the htonl routine (and friends)
228 * are available to do network order byte swapping.
229 */
fe14fcc3 230/* HAS_NTOHS
21d892ea 231 * This symbol, if defined, indicates that the ntohs routine (and friends)
232 * are available to do network order byte swapping.
233 */
fe14fcc3 234/* HAS_NTOHL
21d892ea 235 * This symbol, if defined, indicates that the ntohl routine (and friends)
236 * are available to do network order byte swapping.
237 */
fe14fcc3 238/*#undef HAS_HTONS /**/
239/*#undef HAS_HTONL /**/
240/*#undef HAS_NTOHS /**/
241/*#undef HAS_NTOHL /**/
21d892ea 242
fe14fcc3 243/* index
21d892ea 244 * This preprocessor symbol is defined, along with rindex, if the system
245 * uses the strchr and strrchr routines instead.
246 */
fe14fcc3 247/* rindex
21d892ea 248 * This preprocessor symbol is defined, along with index, if the system
249 * uses the strchr and strrchr routines instead.
250 */
251#define index strchr /* cultural */
252#define rindex strrchr /* differences? */
253
68decaef 254/* HAS_ISASCII
255 * This symbol, if defined, indicates that the isascii routine is available
256 * to test characters for asciiness.
257 */
258#define HAS_ISASCII /**/
259
fe14fcc3 260/* HAS_KILLPG
21d892ea 261 * This symbol, if defined, indicates that the killpg routine is available
262 * to kill process groups. If unavailable, you probably should use kill
263 * with a negative process number.
264 */
fe14fcc3 265/*#undef HAS_KILLPG /**/
21d892ea 266
fe14fcc3 267/* HAS_LSTAT
268 * This symbol, if defined, indicates that the lstat() routine is
269 * available to stat symbolic links.
270 */
271/*#undef HAS_LSTAT /**/
272
273/* HAS_MEMCMP
21d892ea 274 * This symbol, if defined, indicates that the memcmp routine is available
275 * to compare blocks of memory. If undefined, roll your own.
276 */
fe14fcc3 277#define HAS_MEMCMP /**/
21d892ea 278
fe14fcc3 279/* HAS_MEMCPY
21d892ea 280 * This symbol, if defined, indicates that the memcpy routine is available
281 * to copy blocks of memory. Otherwise you should probably use bcopy().
282 * If neither is defined, roll your own.
283 */
68decaef 284/* SAFE_MEMCPY
285 * This symbol, if defined, indicates that the memcpy routine is available
286 * to copy potentially overlapping copy blocks of memory. Otherwise you
287 * should probably use memmove() or bcopy(). If neither is defined,
288 * roll your own.
289 */
fe14fcc3 290#define HAS_MEMCPY /**/
68decaef 291/*#undef SAFE_MEMCPY /**/
292
293/* HAS_MEMMOVE
294 * This symbol, if defined, indicates that the memmove routine is available
295 * to move potentially overlapping blocks of memory. Otherwise you
296 * should use bcopy() or roll your own.
297 */
298/*#undef HAS_MEMMOVE /**/
299
300/* HAS_MEMSET
301 * This symbol, if defined, indicates that the memset routine is available
302 * to set a block of memory to a character. If undefined, roll your own.
303 */
304#define HAS_MEMSET /**/
21d892ea 305
fe14fcc3 306/* HAS_MKDIR
21d892ea 307 * This symbol, if defined, indicates that the mkdir routine is available
308 * to create directories. Otherwise you should fork off a new process to
309 * exec /bin/mkdir.
310 */
fe14fcc3 311#define HAS_MKDIR /**/
312
313/* HAS_MSG
314 * This symbol, if defined, indicates that the entire msg*(2) library is
315 * supported.
316 */
317/*#undef HAS_MSG /**/
318
319/* HAS_MSGCTL
320 * This symbol, if defined, indicates that the msgctl() routine is
68decaef 321 * available to control message passing.
fe14fcc3 322 */
323/*#undef HAS_MSGCTL /**/
324
325/* HAS_MSGGET
326 * This symbol, if defined, indicates that the msgget() routine is
68decaef 327 * available to get messages.
fe14fcc3 328 */
329/*#undef HAS_MSGGET /**/
330
331/* HAS_MSGRCV
332 * This symbol, if defined, indicates that the msgrcv() routine is
68decaef 333 * available to receive messages.
fe14fcc3 334 */
335/*#undef HAS_MSGRCV /**/
336
337/* HAS_MSGSND
338 * This symbol, if defined, indicates that the msgsnd() routine is
68decaef 339 * available to send messages.
fe14fcc3 340 */
341/*#undef HAS_MSGSND /**/
21d892ea 342
fe14fcc3 343/* HAS_NDBM
21d892ea 344 * This symbol, if defined, indicates that ndbm.h exists and should
345 * be included.
346 */
fe14fcc3 347/*#undef HAS_NDBM /**/
21d892ea 348
fe14fcc3 349/* HAS_ODBM
21d892ea 350 * This symbol, if defined, indicates that dbm.h exists and should
351 * be included.
352 */
fe14fcc3 353/*#undef HAS_ODBM /**/
354
355/* HAS_OPEN3
356 * This manifest constant lets the C program know that the three
357 * argument form of open(2) is available.
358 */
359#define HAS_OPEN3 /**/
21d892ea 360
fe14fcc3 361/* HAS_READDIR
21d892ea 362 * This symbol, if defined, indicates that the readdir routine is available
fe14fcc3 363 * from the C library to read directories.
21d892ea 364 */
fe14fcc3 365#define HAS_READDIR /**/
21d892ea 366
fe14fcc3 367/* HAS_RENAME
21d892ea 368 * This symbol, if defined, indicates that the rename routine is available
369 * to rename files. Otherwise you should do the unlink(), link(), unlink()
370 * trick.
371 */
fe14fcc3 372#define HAS_RENAME /**/
21d892ea 373
68decaef 374/* HAS_REWINDDIR
375 * This symbol, if defined, indicates that the rewindir routine is
376 * available to rewind directories.
377 */
378#define HAS_REWINDDIR /**/
379
fe14fcc3 380/* HAS_RMDIR
21d892ea 381 * This symbol, if defined, indicates that the rmdir routine is available
382 * to remove directories. Otherwise you should fork off a new process to
383 * exec /bin/rmdir.
384 */
fe14fcc3 385#define HAS_RMDIR /**/
386
68decaef 387/* HAS_SEEKDIR
388 * This symbol, if defined, indicates that the seekdir routine is
389 * available to seek into directories.
390 */
391#define HAS_SEEKDIR /**/
392
fe14fcc3 393/* HAS_SELECT
394 * This symbol, if defined, indicates that the select() subroutine
395 * exists.
396 */
397/*#undef HAS_SELECT /**/
398
399/* HAS_SEM
400 * This symbol, if defined, indicates that the entire sem*(2) library is
401 * supported.
402 */
403/*#undef HAS_SEM /**/
21d892ea 404
fe14fcc3 405/* HAS_SEMCTL
406 * This symbol, if defined, indicates that the semctl() routine is
68decaef 407 * available to control semaphores.
fe14fcc3 408 */
409/*#undef HAS_SEMCTL /**/
410
411/* HAS_SEMGET
412 * This symbol, if defined, indicates that the semget() routine is
68decaef 413 * available to get semaphores ids.
fe14fcc3 414 */
415/*#undef HAS_SEMGET /**/
416
417/* HAS_SEMOP
418 * This symbol, if defined, indicates that the semop() routine is
68decaef 419 * available to perform semaphore operations.
fe14fcc3 420 */
421/*#undef HAS_SEMOP /**/
422
423/* HAS_SETEGID
21d892ea 424 * This symbol, if defined, indicates that the setegid routine is available
425 * to change the effective gid of the current program.
426 */
fe14fcc3 427/*#undef HAS_SETEGID /**/
21d892ea 428
fe14fcc3 429/* HAS_SETEUID
21d892ea 430 * This symbol, if defined, indicates that the seteuid routine is available
431 * to change the effective uid of the current program.
432 */
fe14fcc3 433/*#undef HAS_SETEUID /**/
21d892ea 434
fe14fcc3 435/* HAS_SETPGRP
21d892ea 436 * This symbol, if defined, indicates that the setpgrp() routine is
437 * available to set the current process group.
438 */
fe14fcc3 439/*#undef HAS_SETPGRP /**/
440
441/* HAS_SETPGRP2
442 * This symbol, if defined, indicates that the setpgrp2() (as in DG/UX)
443 * routine is available to set the current process group.
444 */
445/*#undef HAS_SETPGRP2 /**/
21d892ea 446
fe14fcc3 447/* HAS_SETPRIORITY
21d892ea 448 * This symbol, if defined, indicates that the setpriority() routine is
449 * available to set a process's priority.
450 */
fe14fcc3 451/*#undef HAS_SETPRIORITY /**/
21d892ea 452
fe14fcc3 453/* HAS_SETREGID
454 * This symbol, if defined, indicates that the setregid routine is
455 * available to change the real and effective gid of the current program.
21d892ea 456 */
fe14fcc3 457/* HAS_SETRESGID
458 * This symbol, if defined, indicates that the setresgid routine is
459 * available to change the real, effective and saved gid of the current
460 * program.
461 */
462/*#undef HAS_SETREGID /**/
463/*#undef HAS_SETRESGID /**/
21d892ea 464
fe14fcc3 465/* HAS_SETREUID
466 * This symbol, if defined, indicates that the setreuid routine is
467 * available to change the real and effective uid of the current program.
468 */
469/* HAS_SETRESUID
470 * This symbol, if defined, indicates that the setresuid routine is
471 * available to change the real, effective and saved uid of the current
472 * program.
21d892ea 473 */
fe14fcc3 474/*#undef HAS_SETREUID /**/
475/*#undef HAS_SETRESUID /**/
21d892ea 476
fe14fcc3 477/* HAS_SETRGID
21d892ea 478 * This symbol, if defined, indicates that the setrgid routine is available
479 * to change the real gid of the current program.
480 */
fe14fcc3 481/*#undef HAS_SETRGID /**/
21d892ea 482
fe14fcc3 483/* HAS_SETRUID
21d892ea 484 * This symbol, if defined, indicates that the setruid routine is available
485 * to change the real uid of the current program.
486 */
fe14fcc3 487/*#undef HAS_SETRUID /**/
21d892ea 488
fe14fcc3 489/* HAS_SHM
490 * This symbol, if defined, indicates that the entire shm*(2) library is
491 * supported.
21d892ea 492 */
fe14fcc3 493/*#undef HAS_SHM /**/
494
495/* HAS_SHMAT
496 * This symbol, if defined, indicates that the shmat() routine is
68decaef 497 * available to attach a shared memory segment.
498 */
499/* VOID_SHMAT
500 * This symbol, if defined, indicates that the shmat() routine
501 * returns a pointer of type void*.
21d892ea 502 */
fe14fcc3 503/*#undef HAS_SHMAT /**/
504
68decaef 505/*#undef VOIDSHMAT /**/
506
fe14fcc3 507/* HAS_SHMCTL
508 * This symbol, if defined, indicates that the shmctl() routine is
68decaef 509 * available to control a shared memory segment.
21d892ea 510 */
fe14fcc3 511/*#undef HAS_SHMCTL /**/
21d892ea 512
fe14fcc3 513/* HAS_SHMDT
514 * This symbol, if defined, indicates that the shmdt() routine is
68decaef 515 * available to detach a shared memory segment.
fe14fcc3 516 */
517/*#undef HAS_SHMDT /**/
21d892ea 518
fe14fcc3 519/* HAS_SHMGET
520 * This symbol, if defined, indicates that the shmget() routine is
68decaef 521 * available to get a shared memory segment id.
fe14fcc3 522 */
523/*#undef HAS_SHMGET /**/
21d892ea 524
fe14fcc3 525/* HAS_SOCKET
526 * This symbol, if defined, indicates that the BSD socket interface is
527 * supported.
528 */
529/* HAS_SOCKETPAIR
530 * This symbol, if defined, indicates that the BSD socketpair call is
531 * supported.
532 */
533/* OLDSOCKET
534 * This symbol, if defined, indicates that the 4.1c BSD socket interface
535 * is supported instead of the 4.2/4.3 BSD socket interface.
536 */
537/*#undef HAS_SOCKET /**/
538
539/*#undef HAS_SOCKETPAIR /**/
540
541/*#undef OLDSOCKET /**/
542
543/* STATBLOCKS
21d892ea 544 * This symbol is defined if this system has a stat structure declaring
545 * st_blksize and st_blocks.
546 */
fe14fcc3 547/*#undef STATBLOCKS /**/
21d892ea 548
fe14fcc3 549/* STDSTDIO
21d892ea 550 * This symbol is defined if this system has a FILE structure declaring
551 * _ptr and _cnt in stdio.h.
fe14fcc3 552 *
553 * NOTE: [Tom Dinger, 23 February 1991] You also need the _filbuf()
554 * function, usually referred to by the getc() macro in stdio.h.
21d892ea 555 */
556#define STDSTDIO /**/
557
fe14fcc3 558/* STRUCTCOPY
21d892ea 559 * This symbol, if defined, indicates that this C compiler knows how
560 * to copy structures. If undefined, you'll need to use a block copy
561 * routine of some sort instead.
562 */
563#define STRUCTCOPY /**/
564
fe14fcc3 565/* HAS_STRERROR
566 * This symbol, if defined, indicates that the strerror() routine is
567 * available to translate error numbers to strings.
568 */
569#define HAS_STRERROR /**/
570
571/* HAS_SYMLINK
21d892ea 572 * This symbol, if defined, indicates that the symlink routine is available
573 * to create symbolic links.
574 */
fe14fcc3 575/*#undef HAS_SYMLINK /**/
21d892ea 576
fe14fcc3 577/* HAS_SYSCALL
21d892ea 578 * This symbol, if defined, indicates that the syscall routine is available
579 * to call arbitrary system calls. If undefined, that's tough.
580 */
fe14fcc3 581/*#undef HAS_SYSCALL /**/
21d892ea 582
68decaef 583/* HAS_TELLDIR
584 * This symbol, if defined, indicates that the telldir routine is
585 * available to tell your location in directories.
586 */
587#define HAS_TELLDIR /**/
588
fe14fcc3 589/* HAS_TRUNCATE
590 * This symbol, if defined, indicates that the truncate routine is
591 * available to truncate files.
21d892ea 592 */
fe14fcc3 593/*#undef HAS_TRUNCATE /**/
21d892ea 594
fe14fcc3 595/* HAS_VFORK
596 * This symbol, if defined, indicates that vfork() exists.
21d892ea 597 */
fe14fcc3 598/*#undef HAS_VFORK /**/
21d892ea 599
fe14fcc3 600/* VOIDSIG
21d892ea 601 * This symbol is defined if this system declares "void (*signal())()" in
602 * signal.h. The old way was to declare it as "int (*signal())()". It
603 * is up to the package author to declare things correctly based on the
604 * symbol.
605 */
fe14fcc3 606/* TO_SIGNAL
607 * This symbol's value is either "void" or "int", corresponding to the
608 * appropriate return "type" of a signal handler. Thus, one can declare
609 * a signal handler using "TO_SIGNAL (*handler())()", and define the
610 * handler using "TO_SIGNAL handler(sig)".
611 */
21d892ea 612#define VOIDSIG /**/
fe14fcc3 613#define TO_SIGNAL int /**/
614
615/* HASVOLATILE
616 * This symbol, if defined, indicates that this C compiler knows about
617 * the volatile declaration.
618 */
619/*#undef HASVOLATILE /**/
21d892ea 620
fe14fcc3 621/* HAS_VPRINTF
21d892ea 622 * This symbol, if defined, indicates that the vprintf routine is available
623 * to printf with a pointer to an argument list. If unavailable, you
624 * may need to write your own, probably in terms of _doprnt().
625 */
fe14fcc3 626/* CHARVSPRINTF
21d892ea 627 * This symbol is defined if this system has vsprintf() returning type
628 * (char*). The trend seems to be to declare it as "int vsprintf()". It
629 * is up to the package author to declare vsprintf correctly based on the
630 * symbol.
631 */
fe14fcc3 632#define HAS_VPRINTF /**/
21d892ea 633/*#undef CHARVSPRINTF /**/
634
fe14fcc3 635/* HAS_WAIT4
636 * This symbol, if defined, indicates that wait4() exists.
637 */
638/*#undef HAS_WAIT4 /**/
639
640/* HAS_WAITPID
641 * This symbol, if defined, indicates that waitpid() exists.
642 */
643/*#undef HAS_WAITPID /**/
644
645/* GIDTYPE
21d892ea 646 * This symbol has a value like gid_t, int, ushort, or whatever type is
647 * used to declare group ids in the kernel.
648 */
21d892ea 649#define GIDTYPE int /**/
650
2b317908 651/* GROUPSTYPE
652 * This symbol has a value like gid_t, int, ushort, or whatever type is
653 * used in the return value of getgroups().
654 */
655#define GROUPSTYPE int /**/
656
fe14fcc3 657/* I_FCNTL
658 * This manifest constant tells the C program to include <fcntl.h>.
21d892ea 659 */
fe14fcc3 660#define I_FCNTL /**/
21d892ea 661
2b317908 662/* I_GDBM
663 * This symbol, if defined, indicates that gdbm.h exists and should
664 * be included.
665 */
666/*#undef I_GDBM /**/
667
fe14fcc3 668/* I_GRP
21d892ea 669 * This symbol, if defined, indicates to the C program that it should
fe14fcc3 670 * include grp.h.
21d892ea 671 */
fe14fcc3 672/*#undef I_GRP /**/
21d892ea 673
fe14fcc3 674/* I_NETINET_IN
21d892ea 675 * This symbol, if defined, indicates to the C program that it should
fe14fcc3 676 * include netinet/in.h.
21d892ea 677 */
fe14fcc3 678/* I_SYS_IN
679 * This symbol, if defined, indicates to the C program that it should
680 * include sys/in.h.
681 */
682/*#undef I_NETINET_IN /**/
683/*#undef I_SYS_IN /**/
21d892ea 684
fe14fcc3 685/* I_PWD
21d892ea 686 * This symbol, if defined, indicates to the C program that it should
687 * include pwd.h.
688 */
fe14fcc3 689/* PWQUOTA
21d892ea 690 * This symbol, if defined, indicates to the C program that struct passwd
691 * contains pw_quota.
692 */
fe14fcc3 693/* PWAGE
21d892ea 694 * This symbol, if defined, indicates to the C program that struct passwd
695 * contains pw_age.
696 */
fe14fcc3 697/* PWCHANGE
698 * This symbol, if defined, indicates to the C program that struct passwd
699 * contains pw_change.
700 */
701/* PWCLASS
702 * This symbol, if defined, indicates to the C program that struct passwd
703 * contains pw_class.
704 */
705/* PWEXPIRE
706 * This symbol, if defined, indicates to the C program that struct passwd
707 * contains pw_expire.
708 */
709/* PWCOMMENT
710 * This symbol, if defined, indicates to the C program that struct passwd
711 * contains pw_comment.
712 */
713/*#undef I_PWD /**/
714/*#undef PWQUOTA /**/
21d892ea 715/*#undef PWAGE /**/
fe14fcc3 716/*#undef PWCHANGE /**/
717/*#undef PWCLASS /**/
718/*#undef PWEXPIRE /**/
719/*#undef PWCOMMENT /**/
21d892ea 720
fe14fcc3 721/* I_SYS_FILE
722 * This manifest constant tells the C program to include <sys/file.h>.
21d892ea 723 */
fe14fcc3 724/*#undef I_SYS_FILE /**/
21d892ea 725
fe14fcc3 726/* I_SYSIOCTL
21d892ea 727 * This symbol, if defined, indicates that sys/ioctl.h exists and should
728 * be included.
729 */
fe14fcc3 730/*#undef I_SYSIOCTL /**/
731
732/* I_TIME
733 * This symbol is defined if the program should include <time.h>.
734 */
735/* I_SYS_TIME
736 * This symbol is defined if the program should include <sys/time.h>.
737 */
738/* SYSTIMEKERNEL
739 * This symbol is defined if the program should include <sys/time.h>
740 * with KERNEL defined.
741 */
742/* I_SYS_SELECT
743 * This symbol is defined if the program should include <sys/select.h>.
744 */
745#define I_TIME /**/
746/*#undef I_SYS_TIME /**/
747/*#undef SYSTIMEKERNEL /**/
748/*#undef I_SYS_SELECT /**/
21d892ea 749
fe14fcc3 750/* I_UTIME
751 * This symbol, if defined, indicates to the C program that it should
752 * include utime.h.
753 */
754/*#undef I_UTIME /**/
755
756/* I_VARARGS
21d892ea 757 * This symbol, if defined, indicates to the C program that it should
758 * include varargs.h.
759 */
760#define I_VARARGS /**/
761
fe14fcc3 762/* I_VFORK
763 * This symbol, if defined, indicates to the C program that it should
764 * include vfork.h.
765 */
766/*#undef I_VFORK /**/
767
768/* INTSIZE
21d892ea 769 * This symbol contains the size of an int, so that the C preprocessor
770 * can make decisions based on it.
771 */
772#define INTSIZE 2 /**/
773
fe14fcc3 774/* I_DIRENT
775 * This symbol, if defined, indicates that the program should use the
776 * P1003-style directory routines, and include <dirent.h>.
777 */
778/* I_SYS_DIR
779 * This symbol, if defined, indicates that the program should use the
780 * directory functions by including <sys/dir.h>.
781 */
782/* I_NDIR
783 * This symbol, if defined, indicates that the program should include the
784 * system's version of ndir.h, rather than the one with this package.
785 */
786/* I_SYS_NDIR
787 * This symbol, if defined, indicates that the program should include the
788 * system's version of sys/ndir.h, rather than the one with this package.
789 */
790/* I_MY_DIR
791 * This symbol, if defined, indicates that the program should compile
792 * the ndir.c code provided with the package.
793 */
794/* DIRNAMLEN
795 * This symbol, if defined, indicates to the C program that the length
796 * of directory entry names is provided by a d_namlen field. Otherwise
797 * you need to do strlen() on the d_name field.
798 */
799/*#undef I_DIRENT /**/
800#define I_SYS_DIR /**/
801/*#undef I_NDIR /**/
802/*#undef I_SYS_NDIR /**/
803/*#undef I_MY_DIR /**/
804/*#undef DIRNAMLEN /**/
805
68decaef 806/* MYMALLOC
807 * This symbol, if defined, indicates that we're using our own malloc.
808 */
2b317908 809/* MALLOCPTRTYPE
810 * This symbol defines the kind of ptr returned by malloc and realloc.
811 */
68decaef 812#define MYMALLOC /**/
813
2b317908 814#define MALLOCPTRTYPE void /**/
fe14fcc3 815
68decaef 816
fe14fcc3 817/* RANDBITS
21d892ea 818 * This symbol contains the number of bits of random number the rand()
819 * function produces. Usual values are 15, 16, and 31.
820 */
821#define RANDBITS 31 /**/
822
fe14fcc3 823/* SCRIPTDIR
824 * This symbol holds the name of the directory in which the user wants
68decaef 825 * to keep publicly executable scripts for the package in question. It
fe14fcc3 826 * is often a directory that is mounted across diverse architectures.
827 */
828#define SCRIPTDIR "C:/bin/perl" /**/
829
830/* SIG_NAME
21d892ea 831 * This symbol contains an list of signal names in order.
fe14fcc3 832 *
833 * Note: This list is specific for Microsoft C 5.1 and 6.0, which only
834 * support SIGINT, SIGFPE, SIGILL, SIGSEGV, and SIGABRT on
835 * DOS 3.x, but in addition defines SIGTERM, SIGBREAK, SIGUSR1,
836 * SIGUSR2, and SIGUSR3.
21d892ea 837 */
fe14fcc3 838#define SIG_NAME \
839 "ZERO","HUP","INT","QUIT","ILL","TRAP","IOT","EMT","FPE","KILL",\
840 "BUS","SEGV","SYS","PIPE","ALRM","TERM","USR1","USR2","TSTP","CONT",\
841 "USR3","BREAK","ABRT" /**/
21d892ea 842
fe14fcc3 843/* STDCHAR
21d892ea 844 * This symbol is defined to be the type of char used in stdio.h.
845 * It has the values "unsigned char" or "char".
846 */
847#define STDCHAR char /**/
848
fe14fcc3 849/* UIDTYPE
21d892ea 850 * This symbol has a value like uid_t, int, ushort, or whatever type is
851 * used to declare user ids in the kernel.
852 */
853#define UIDTYPE int /**/
854
fe14fcc3 855/* VOIDHAVE
21d892ea 856 * This symbol indicates how much support of the void type is given by this
857 * compiler. What various bits mean:
858 *
859 * 1 = supports declaration of void
860 * 2 = supports arrays of pointers to functions returning void
861 * 4 = supports comparisons between pointers to void functions and
862 * addresses of void functions
863 *
fe14fcc3 864 * The package designer should define VOIDWANT to indicate the requirements
865 * of the package. This can be done either by #defining VOIDWANT before
866 * including config.h, or by defining voidwant in Myinit.U. If the level
867 * of void support necessary is not present, config.h defines void to "int",
868 * VOID to the empty string, and VOIDP to "char *".
869 */
870/* void
871 * This symbol is used for void casts. On implementations which support
872 * void appropriately, its value is "void". Otherwise, its value maps
873 * to "int".
874 */
875/* VOID
876 * This symbol's value is "void" if the implementation supports void
877 * appropriately. Otherwise, its value is the empty string. The primary
878 * use of this symbol is in specifying void parameter lists for function
879 * prototypes.
880 */
881/* VOIDP
882 * This symbol is used for casting generic pointers. On implementations
883 * which support void appropriately, its value is "void *". Otherwise,
884 * its value is "char *".
885 */
886#ifndef VOIDWANT
887#define VOIDWANT 1
21d892ea 888#endif
fe14fcc3 889#define VOIDHAVE 1
890#if (VOIDHAVE & VOIDWANT) != VOIDWANT
21d892ea 891#define void int /* is void to be avoided? */
fe14fcc3 892#define VOID
893#define VOIDP (char *)
21d892ea 894#define M_VOID /* Xenix strikes again */
fe14fcc3 895#else
896#define VOID void
897#define VOIDP (void *)
21d892ea 898#endif
899
fe14fcc3 900/* PRIVLIB
21d892ea 901 * This symbol contains the name of the private library for this package.
902 * The library is private in the sense that it needn't be in anyone's
903 * execution path, but it should be accessible by the world. The program
fe14fcc3 904 * should be prepared to do ~ expansion.
21d892ea 905 */
906#define PRIVLIB "/usr/local/lib/perl" /**/
907
908/*
21d892ea 909 * BINARY:
910 * This symbol is defined if you run under an operating system that
911 * distinguishes between binary and text files. If so the function
912 * setmode will be used to set the file into binary mode.
913 */
914#define BINARY
915
916#define S_ISUID 0
917#define S_ISGID 0
fe14fcc3 918
919/* For MSC5.1, toke.c "runs out of heap space" unless CRIPPLED_CC is
920 * defined.
921 */
922#if defined(BUGGY_MSC5) || defined(BUGGY_MSC6)
923#define CRIPPLED_CC /**/
924#endif
925
926/* MSC (5.1 and 6.0) doesn't know about S_IFBLK or S_IFIFO -- these are
927 * normally found in sys/stat.h
928 */
929#define S_IFBLK (S_IFDIR | S_IFCHR)
930#define S_IFIFO 0010000
931
932/* Define SUFFIX to get special DOS suffix-replacement code */
933#define SUFFIX /**/
934
935/* Add this for the DOS-specific chdir() function */
936#define chdir perl_chdir
937
938#endif