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