perl 4.0 patch 22: patch #20, continued
[p5sagit/p5-mst-13.2.git] / msdos / config.h
1 #ifndef config_h
2 #define config_h
3 /* config.h
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.
19  */
20 #define BUGGY_MSC5                      /**/
21 /*#undef BUGGY_MSC6                     /**/
22
23
24 /* EUNICE
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  */
31 /* VMS
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
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
45  *      This symbol holds the name of the directory in which the user wants
46  *      to keep publicly executable images for the package in question.  It
47  *      is most often a local directory such as /usr/local/bin.
48  */
49 #define BIN "/usr/local/bin"             /**/
50
51 /* BYTEORDER
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  */
55 #define BYTEORDER 0x1234                /**/
56
57 /* CPPSTDIN
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
60  *      output.  Typical value of "cc -E" or "/lib/cpp".
61  */
62 /* CPPMINUS
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  */
68 /* TODO: doesn't work for MSC -- it's more complicated than this */
69 #define CPPSTDIN "cl "
70 #define CPPMINUS ""
71
72 /* HAS_BCMP
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  */
77 /*#undef        HAS_BCMP                /**/
78
79 /* HAS_BCOPY
80  *      This symbol, if defined, indicates that the bcopy routine is available
81  *      to copy blocks of memory.  Otherwise you should probably use memcpy().
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.
89  */
90 /*#undef        HAS_BCOPY               /**/
91 /*#undef        SAFE_BCOPY              /**/
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               /**/
99
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
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  */
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              /**/
127
128 /* HAS_CRYPT
129  *      This symbol, if defined, indicates that the crypt routine is available
130  *      to encrypt passwords and the like.
131  */
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"             /**/
139
140 /* DOSUID
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  */
153 /*#undef DOSUID         /**/
154
155 /* HAS_DUP2
156  *      This symbol, if defined, indicates that the dup2 routine is available
157  *      to dup file descriptors.  Otherwise you should use dup().
158  */
159 #define HAS_DUP2                /**/
160
161 /* HAS_FCHMOD
162  *      This symbol, if defined, indicates that the fchmod routine is available
163  *      to change mode of opened files.  If unavailable, use chmod().
164  */
165 /*#undef        HAS_FCHMOD              /**/
166
167 /* HAS_FCHOWN
168  *      This symbol, if defined, indicates that the fchown routine is available
169  *      to change ownership of opened files.  If unavailable, use chown().
170  */
171 /*#undef        HAS_FCHOWN              /**/
172
173 /* HAS_FCNTL
174  *      This symbol, if defined, indicates to the C program that
175  *      the fcntl() function exists.
176  */
177 /*#undef        HAS_FCNTL               /**/
178
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
186  *      This symbol, if defined, indicates that the flock() routine is
187  *      available to do file locking.
188  */
189 /*#undef        HAS_FLOCK               /**/
190
191 /* HAS_GETGROUPS
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  */
196 /*#undef        HAS_GETGROUPS           /**/
197
198 /* HAS_GETHOSTENT
199  *      This symbol, if defined, indicates that the gethostent() routine is
200  *      available to lookup host names in some data base or other.
201  */
202 /*#undef        HAS_GETHOSTENT          /**/
203
204 /* HAS_GETPGRP
205  *      This symbol, if defined, indicates that the getpgrp() routine is
206  *      available to get the current process group.
207  */
208 /*#undef        HAS_GETPGRP             /**/
209
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
217  *      This symbol, if defined, indicates that the getpriority() routine is
218  *      available to get a process's priority.
219  */
220 /*#undef        HAS_GETPRIORITY         /**/
221
222 /* HAS_HTONS
223  *      This symbol, if defined, indicates that the htons routine (and friends)
224  *      are available to do network order byte swapping.
225  */
226 /* HAS_HTONL
227  *      This symbol, if defined, indicates that the htonl routine (and friends)
228  *      are available to do network order byte swapping.
229  */
230 /* HAS_NTOHS
231  *      This symbol, if defined, indicates that the ntohs routine (and friends)
232  *      are available to do network order byte swapping.
233  */
234 /* HAS_NTOHL
235  *      This symbol, if defined, indicates that the ntohl routine (and friends)
236  *      are available to do network order byte swapping.
237  */
238 /*#undef        HAS_HTONS       /**/
239 /*#undef        HAS_HTONL       /**/
240 /*#undef        HAS_NTOHS       /**/
241 /*#undef        HAS_NTOHL       /**/
242
243 /* index
244  *      This preprocessor symbol is defined, along with rindex, if the system
245  *      uses the strchr and strrchr routines instead.
246  */
247 /* rindex
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
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
260 /* HAS_KILLPG
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  */
265 /*#undef        HAS_KILLPG              /**/
266
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
274  *      This symbol, if defined, indicates that the memcmp routine is available
275  *      to compare blocks of memory.  If undefined, roll your own.
276  */
277 #define HAS_MEMCMP              /**/
278
279 /* HAS_MEMCPY
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  */
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  */
290 #define HAS_MEMCPY              /**/
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              /**/
305
306 /* HAS_MKDIR
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  */
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
321  *      available to control message passing.
322  */
323 /*#undef        HAS_MSGCTL              /**/
324
325 /* HAS_MSGGET
326  *      This symbol, if defined, indicates that the msgget() routine is
327  *      available to get messages.
328  */
329 /*#undef        HAS_MSGGET              /**/
330
331 /* HAS_MSGRCV
332  *      This symbol, if defined, indicates that the msgrcv() routine is
333  *      available to receive messages.
334  */
335 /*#undef        HAS_MSGRCV              /**/
336
337 /* HAS_MSGSND
338  *      This symbol, if defined, indicates that the msgsnd() routine is
339  *      available to send messages.
340  */
341 /*#undef        HAS_MSGSND              /**/
342
343 /* HAS_NDBM
344  *      This symbol, if defined, indicates that ndbm.h exists and should
345  *      be included.
346  */
347 /*#undef        HAS_NDBM                /**/
348
349 /* HAS_ODBM
350  *      This symbol, if defined, indicates that dbm.h exists and should
351  *      be included.
352  */
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               /**/
360
361 /* HAS_READDIR
362  *      This symbol, if defined, indicates that the readdir routine is available
363  *      from the C library to read directories.
364  */
365 #define HAS_READDIR             /**/
366
367 /* HAS_RENAME
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  */
372 #define HAS_RENAME              /**/
373
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
380 /* HAS_RMDIR
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  */
385 #define HAS_RMDIR               /**/
386
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
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         /**/
404
405 /* HAS_SEMCTL
406  *      This symbol, if defined, indicates that the semctl() routine is
407  *      available to control semaphores.
408  */
409 /*#undef        HAS_SEMCTL              /**/
410
411 /* HAS_SEMGET
412  *      This symbol, if defined, indicates that the semget() routine is
413  *      available to get semaphores ids.
414  */
415 /*#undef        HAS_SEMGET              /**/
416
417 /* HAS_SEMOP
418  *      This symbol, if defined, indicates that the semop() routine is
419  *      available to perform semaphore operations.
420  */
421 /*#undef        HAS_SEMOP               /**/
422
423 /* HAS_SETEGID
424  *      This symbol, if defined, indicates that the setegid routine is available
425  *      to change the effective gid of the current program.
426  */
427 /*#undef        HAS_SETEGID             /**/
428
429 /* HAS_SETEUID
430  *      This symbol, if defined, indicates that the seteuid routine is available
431  *      to change the effective uid of the current program.
432  */
433 /*#undef        HAS_SETEUID             /**/
434
435 /* HAS_SETPGRP
436  *      This symbol, if defined, indicates that the setpgrp() routine is
437  *      available to set the current process group.
438  */
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            /**/
446
447 /* HAS_SETPRIORITY
448  *      This symbol, if defined, indicates that the setpriority() routine is
449  *      available to set a process's priority.
450  */
451 /*#undef        HAS_SETPRIORITY         /**/
452
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.
456  */
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           /**/
464
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.
473  */
474 /*#undef        HAS_SETREUID            /**/
475 /*#undef        HAS_SETRESUID           /**/
476
477 /* HAS_SETRGID
478  *      This symbol, if defined, indicates that the setrgid routine is available
479  *      to change the real gid of the current program.
480  */
481 /*#undef        HAS_SETRGID             /**/
482
483 /* HAS_SETRUID
484  *      This symbol, if defined, indicates that the setruid routine is available
485  *      to change the real uid of the current program.
486  */
487 /*#undef        HAS_SETRUID             /**/
488
489 /* HAS_SHM
490  *      This symbol, if defined, indicates that the entire shm*(2) library is
491  *      supported.
492  */
493 /*#undef        HAS_SHM         /**/
494
495 /* HAS_SHMAT
496  *      This symbol, if defined, indicates that the shmat() routine is
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*.
502  */
503 /*#undef        HAS_SHMAT               /**/
504
505 /*#undef        VOIDSHMAT               /**/
506
507 /* HAS_SHMCTL
508  *      This symbol, if defined, indicates that the shmctl() routine is
509  *      available to control a shared memory segment.
510  */
511 /*#undef        HAS_SHMCTL              /**/
512
513 /* HAS_SHMDT
514  *      This symbol, if defined, indicates that the shmdt() routine is
515  *      available to detach a shared memory segment.
516  */
517 /*#undef        HAS_SHMDT               /**/
518
519 /* HAS_SHMGET
520  *      This symbol, if defined, indicates that the shmget() routine is
521  *      available to get a shared memory segment id.
522  */
523 /*#undef        HAS_SHMGET              /**/
524
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
544  *      This symbol is defined if this system has a stat structure declaring
545  *      st_blksize and st_blocks.
546  */
547 /*#undef        STATBLOCKS      /**/
548
549 /* STDSTDIO
550  *      This symbol is defined if this system has a FILE structure declaring
551  *      _ptr and _cnt in stdio.h.
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.
555  */
556 #define STDSTDIO        /**/
557
558 /* STRUCTCOPY
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
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
572  *      This symbol, if defined, indicates that the symlink routine is available
573  *      to create symbolic links.
574  */
575 /*#undef        HAS_SYMLINK             /**/
576
577 /* HAS_SYSCALL
578  *      This symbol, if defined, indicates that the syscall routine is available
579  *      to call arbitrary system calls.  If undefined, that's tough.
580  */
581 /*#undef        HAS_SYSCALL             /**/
582
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
589 /* HAS_TRUNCATE
590  *      This symbol, if defined, indicates that the truncate routine is
591  *      available to truncate files.
592  */
593 /*#undef        HAS_TRUNCATE            /**/
594
595 /* HAS_VFORK
596  *      This symbol, if defined, indicates that vfork() exists.
597  */
598 /*#undef        HAS_VFORK       /**/
599
600 /* VOIDSIG
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  */
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  */
612 #define VOIDSIG         /**/
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     /**/
620
621 /* HAS_VPRINTF
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  */
626 /* CHARVSPRINTF
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  */
632 #define HAS_VPRINTF     /**/
633 /*#undef        CHARVSPRINTF    /**/
634
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
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  */
649 #define GIDTYPE int             /**/
650
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
657 /* I_FCNTL
658  *      This manifest constant tells the C program to include <fcntl.h>.
659  */
660 #define I_FCNTL /**/
661
662 /* I_GDBM
663  *      This symbol, if defined, indicates that gdbm.h exists and should
664  *      be included.
665  */
666 /*#undef        I_GDBM          /**/
667
668 /* I_GRP
669  *      This symbol, if defined, indicates to the C program that it should
670  *      include grp.h.
671  */
672 /*#undef        I_GRP           /**/
673
674 /* I_NETINET_IN
675  *      This symbol, if defined, indicates to the C program that it should
676  *      include netinet/in.h.
677  */
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                /**/
684
685 /* I_PWD
686  *      This symbol, if defined, indicates to the C program that it should
687  *      include pwd.h.
688  */
689 /* PWQUOTA
690  *      This symbol, if defined, indicates to the C program that struct passwd
691  *      contains pw_quota.
692  */
693 /* PWAGE
694  *      This symbol, if defined, indicates to the C program that struct passwd
695  *      contains pw_age.
696  */
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         /**/
715 /*#undef        PWAGE           /**/
716 /*#undef        PWCHANGE        /**/
717 /*#undef        PWCLASS         /**/
718 /*#undef        PWEXPIRE        /**/
719 /*#undef        PWCOMMENT       /**/
720
721 /* I_SYS_FILE
722  *      This manifest constant tells the C program to include <sys/file.h>.
723  */
724 /*#undef        I_SYS_FILE      /**/
725
726 /* I_SYSIOCTL
727  *      This symbol, if defined, indicates that sys/ioctl.h exists and should
728  *      be included.
729  */
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    /**/
749
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
757  *      This symbol, if defined, indicates to the C program that it should
758  *      include varargs.h.
759  */
760 #define I_VARARGS               /**/
761
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
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
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
806 /* MYMALLOC
807  *      This symbol, if defined, indicates that we're using our own malloc.
808  */
809 /* MALLOCPTRTYPE
810  *      This symbol defines the kind of ptr returned by malloc and realloc.
811  */
812 #define MYMALLOC                        /**/
813
814 #define MALLOCPTRTYPE void         /**/
815
816
817 /* RANDBITS
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
823 /* SCRIPTDIR
824  *      This symbol holds the name of the directory in which the user wants
825  *      to keep publicly executable scripts for the package in question.  It
826  *      is often a directory that is mounted across diverse architectures.
827  */
828 #define SCRIPTDIR "C:/bin/perl"             /**/
829
830 /* SIG_NAME
831  *      This symbol contains an list of signal names in order.
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.
837  */
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"          /**/
842
843 /* STDCHAR
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
849 /* UIDTYPE
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
855 /* VOIDHAVE
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  *
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
888 #endif
889 #define VOIDHAVE 1
890 #if (VOIDHAVE & VOIDWANT) != VOIDWANT
891 #define void int                /* is void to be avoided? */
892 #define VOID
893 #define VOIDP (char *)
894 #define M_VOID          /* Xenix strikes again */
895 #else
896 #define VOID void
897 #define VOIDP (void *)
898 #endif
899
900 /* PRIVLIB
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
904  *      should be prepared to do ~ expansion.
905  */
906 #define PRIVLIB "/usr/local/lib/perl"           /**/
907
908 /*
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
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