perl 3.0 patch #16 (combined patch)
[p5sagit/p5-mst-13.2.git] / msdos / config.h
CommitLineData
21d892ea 1/* config.h
2 * This file is hand tailored for compiling under MS-DOS and MSC 5.1.
3 * Diomidis Spinellis, March 1990.
4 */
5
6
7/* EUNICE:
8 * This symbol, if defined, indicates that the program is being compiled
9 * under the EUNICE package under VMS. The program will need to handle
10 * things like files that don't go away the first time you unlink them,
11 * due to version numbering. It will also need to compensate for lack
12 * of a respectable link() command.
13 */
14/* VMS:
15 * This symbol, if defined, indicates that the program is running under
16 * VMS. It is currently only set in conjunction with the EUNICE symbol.
17 */
18/*#undef EUNICE /**/
19/*#undef VMS /**/
20
21/* BIN:
22 * This symbol holds the name of the directory in which the user wants
23 * to put publicly executable images for the package in question. It
24 * is most often a local directory such as /usr/local/bin.
25 */
26#define BIN "/usr/local/bin" /**/
27
28/* BYTEORDER:
29 * This symbol contains an encoding of the order of bytes in a long.
30 * Usual values (in octal) are 01234, 04321, 02143, 03412...
31 */
32/* CHECK */
33#define BYTEORDER 0x1234 /**/
34
35/* CPPSTDIN:
36 * This symbol contains the first part of the string which will invoke
37 * the C preprocessor on the standard input and produce to standard
38 * output. Typical value of "cc -{" or "/lib/cpp".
39 */
40/* CPPMINUS:
41 * This symbol contains the second part of the string which will invoke
42 * the C preprocessor on the standard input and produce to standard
43 * output. This symbol will have the value "-" if CPPSTDIN needs a minus
44 * to specify standard input, otherwise the value is "".
45 */
46/* TODO */
47#define CPPSTDIN "cc -{"
48#define CPPMINUS ""
49
50/* BCMP:
51 * This symbol, if defined, indicates that the bcmp routine is available
52 * to compare blocks of memory. If undefined, use memcmp. If that's
53 * not available, roll your own.
54 */
55/*#define BCMP /**/
56
57/* BCOPY:
58 * This symbol, if defined, indicates that the bcopy routine is available
59 * to copy blocks of memory. Otherwise you should probably use memcpy().
60 */
61/*#define BCOPY /**/
62
63/* CHARSPRINTF:
64 * This symbol is defined if this system declares "char *sprintf()" in
65 * stdio.h. The trend seems to be to declare it as "int sprintf()". It
66 * is up to the package author to declare sprintf correctly based on the
67 * symbol.
68 */
69/*#define CHARSPRINTF /**/
70
71/* CRYPT:
72 * This symbol, if defined, indicates that the crypt routine is available
73 * to encrypt passwords and the like.
74 */
75/* TODO */
76/*#define CRYPT /**/
77
78/* DOSUID:
79 * This symbol, if defined, indicates that the C program should
80 * check the script that it is executing for setuid/setgid bits, and
81 * attempt to emulate setuid/setgid on systems that have disabled
82 * setuid #! scripts because the kernel can't do it securely.
83 * It is up to the package designer to make sure that this emulation
84 * is done securely. Among other things, it should do an fstat on
85 * the script it just opened to make sure it really is a setuid/setgid
86 * script, it should make sure the arguments passed correspond exactly
87 * to the argument on the #! line, and it should not trust any
88 * subprocesses to which it must pass the filename rather than the
89 * file descriptor of the script to be executed.
90 */
91/*#define DOSUID /**/
92
93/* DUP2:
94 * This symbol, if defined, indicates that the dup2 routine is available
95 * to dup file descriptors. Otherwise you should use dup().
96 */
97#define DUP2 /**/
98
99/* FCHMOD:
100 * This symbol, if defined, indicates that the fchmod routine is available
101 * to change mode of opened files. If unavailable, use chmod().
102 */
103/*#define FCHMOD /**/
104
105/* FCHOWN:
106 * This symbol, if defined, indicates that the fchown routine is available
107 * to change ownership of opened files. If unavailable, use chown().
108 */
109/*#define FCHOWN /**/
110
111/* FCNTL:
112 * This symbol, if defined, indicates to the C program that it should
113 * include fcntl.h.
114 */
115/*#define FCNTL /**/
116
117/* FLOCK:
118 * This symbol, if defined, indicates that the flock() routine is
119 * available to do file locking.
120 */
121/*#define FLOCK /**/
122
123/* GETGROUPS:
124 * This symbol, if defined, indicates that the getgroups() routine is
125 * available to get the list of process groups. If unavailable, multiple
126 * groups are probably not supported.
127 */
128/*#define GETGROUPS /**/
129
130/* GETHOSTENT:
131 * This symbol, if defined, indicates that the gethostent() routine is
132 * available to lookup host names in some data base or other.
133 */
134/*#define GETHOSTENT /**/
135
136/* GETPGRP:
137 * This symbol, if defined, indicates that the getpgrp() routine is
138 * available to get the current process group.
139 */
140/*#define GETPGRP /**/
141
142/* GETPRIORITY:
143 * This symbol, if defined, indicates that the getpriority() routine is
144 * available to get a process's priority.
145 */
146/*#define GETPRIORITY /**/
147
148/* HTONS:
149 * This symbol, if defined, indicates that the htons routine (and friends)
150 * are available to do network order byte swapping.
151 */
152/* HTONL:
153 * This symbol, if defined, indicates that the htonl routine (and friends)
154 * are available to do network order byte swapping.
155 */
156/* NTOHS:
157 * This symbol, if defined, indicates that the ntohs routine (and friends)
158 * are available to do network order byte swapping.
159 */
160/* NTOHL:
161 * This symbol, if defined, indicates that the ntohl routine (and friends)
162 * are available to do network order byte swapping.
163 */
164/*#define HTONS /**/
165/*#define HTONL /**/
166/*#define NTOHS /**/
167/*#define NTOHL /**/
168
169/* index:
170 * This preprocessor symbol is defined, along with rindex, if the system
171 * uses the strchr and strrchr routines instead.
172 */
173/* rindex:
174 * This preprocessor symbol is defined, along with index, if the system
175 * uses the strchr and strrchr routines instead.
176 */
177#define index strchr /* cultural */
178#define rindex strrchr /* differences? */
179
180/* IOCTL:
181 * This symbol, if defined, indicates that sys/ioctl.h exists and should
182 * be included.
183 */
184/*#define IOCTL /**/
185
186/* KILLPG:
187 * This symbol, if defined, indicates that the killpg routine is available
188 * to kill process groups. If unavailable, you probably should use kill
189 * with a negative process number.
190 */
191/*#define KILLPG /**/
192
193/* MEMCMP:
194 * This symbol, if defined, indicates that the memcmp routine is available
195 * to compare blocks of memory. If undefined, roll your own.
196 */
197#define MEMCMP /**/
198
199/* MEMCPY:
200 * This symbol, if defined, indicates that the memcpy routine is available
201 * to copy blocks of memory. Otherwise you should probably use bcopy().
202 * If neither is defined, roll your own.
203 */
204#define MEMCPY /**/
205
206/* MKDIR:
207 * This symbol, if defined, indicates that the mkdir routine is available
208 * to create directories. Otherwise you should fork off a new process to
209 * exec /bin/mkdir.
210 */
211#define MKDIR /**/
212
213/* NDBM:
214 * This symbol, if defined, indicates that ndbm.h exists and should
215 * be included.
216 */
217/*#define NDBM /**/
218
219/* ODBM:
220 * This symbol, if defined, indicates that dbm.h exists and should
221 * be included.
222 */
223/*#define ODBM /**/
224
225/* READDIR:
226 * This symbol, if defined, indicates that the readdir routine is available
227 * from the C library to create directories.
228 */
229#define READDIR /**/
230
231/* RENAME:
232 * This symbol, if defined, indicates that the rename routine is available
233 * to rename files. Otherwise you should do the unlink(), link(), unlink()
234 * trick.
235 */
236#define RENAME /**/
237
238/* RMDIR:
239 * This symbol, if defined, indicates that the rmdir routine is available
240 * to remove directories. Otherwise you should fork off a new process to
241 * exec /bin/rmdir.
242 */
243#define RMDIR /**/
244
245/* SETEGID:
246 * This symbol, if defined, indicates that the setegid routine is available
247 * to change the effective gid of the current program.
248 */
249/*#define SETEGID /**/
250
251/* SETEUID:
252 * This symbol, if defined, indicates that the seteuid routine is available
253 * to change the effective uid of the current program.
254 */
255/*#define SETEUID /**/
256
257/* SETPGRP:
258 * This symbol, if defined, indicates that the setpgrp() routine is
259 * available to set the current process group.
260 */
261/*#define SETPGRP /**/
262
263/* SETPRIORITY:
264 * This symbol, if defined, indicates that the setpriority() routine is
265 * available to set a process's priority.
266 */
267/*#define SETPRIORITY /**/
268
269/* SETREGID:
270 * This symbol, if defined, indicates that the setregid routine is available
271 * to change the real and effective gid of the current program.
272 */
273/*#define SETREGID /**/
274
275/* SETREUID:
276 * This symbol, if defined, indicates that the setreuid routine is available
277 * to change the real and effective uid of the current program.
278 */
279/*#define SETREUID /**/
280
281/* SETRGID:
282 * This symbol, if defined, indicates that the setrgid routine is available
283 * to change the real gid of the current program.
284 */
285/*#define SETRGID /**/
286
287/* SETRUID:
288 * This symbol, if defined, indicates that the setruid routine is available
289 * to change the real uid of the current program.
290 */
291/*#define SETRUID /**/
292
293/* SOCKET:
294 * This symbol, if defined, indicates that the BSD socket interface is
295 * supported.
296 */
297/* SOCKETPAIR:
298 * This symbol, if defined, indicates that the BSD socketpair call is
299 * supported.
300 */
301/* OLDSOCKET:
302 * This symbol, if defined, indicates that the 4.1c BSD socket interface
303 * is supported instead of the 4.2/4.3 BSD socket interface.
304 */
305/*#undef SOCKET /**/
306
307/*#undef SOCKETPAIR /**/
308
309/*#undef OLDSOCKET /**/
310
311/* STATBLOCKS:
312 * This symbol is defined if this system has a stat structure declaring
313 * st_blksize and st_blocks.
314 */
315/*#define STATBLOCKS /**/
316
317/* STDSTDIO:
318 * This symbol is defined if this system has a FILE structure declaring
319 * _ptr and _cnt in stdio.h.
320 */
321#define STDSTDIO /**/
322
323/* STRUCTCOPY:
324 * This symbol, if defined, indicates that this C compiler knows how
325 * to copy structures. If undefined, you'll need to use a block copy
326 * routine of some sort instead.
327 */
328#define STRUCTCOPY /**/
329
330/* SYMLINK:
331 * This symbol, if defined, indicates that the symlink routine is available
332 * to create symbolic links.
333 */
334/*#define SYMLINK /**/
335
336/* SYSCALL:
337 * This symbol, if defined, indicates that the syscall routine is available
338 * to call arbitrary system calls. If undefined, that's tough.
339 */
340/*#define SYSCALL /**/
341
342/* TMINSYS:
343 * This symbol is defined if this system declares "struct tm" in
344 * in <sys/time.h> rather than <time.h>. We can't just say
345 * -I/usr/include/sys because some systems have both time files, and
346 * the -I trick gets the wrong one.
347 */
348/* I_SYSTIME:
349 * This symbol is defined if this system has the file <sys/time.h>.
350 */
351/*
352 * I_TIME:
353 * This symbol is defined if time this system has the file <time.h>.
354 */
355/*#undef TMINSYS /**/
356/*#define I_SYSTIME /**/
357#define I_TIME
358
359/* VARARGS:
360 * This symbol, if defined, indicates to the C program that it should
361 * include varargs.h.
362 */
363#define VARARGS /**/
364
365/* vfork:
366 * This symbol, if defined, remaps the vfork routine to fork if the
367 * vfork() routine isn't supported here.
368 */
369/*#undef vfork fork /**/
370
371/* VOIDSIG:
372 * This symbol is defined if this system declares "void (*signal())()" in
373 * signal.h. The old way was to declare it as "int (*signal())()". It
374 * is up to the package author to declare things correctly based on the
375 * symbol.
376 */
377#define VOIDSIG /**/
378
379/* VPRINTF:
380 * This symbol, if defined, indicates that the vprintf routine is available
381 * to printf with a pointer to an argument list. If unavailable, you
382 * may need to write your own, probably in terms of _doprnt().
383 */
384/* CHARVSPRINTF:
385 * This symbol is defined if this system has vsprintf() returning type
386 * (char*). The trend seems to be to declare it as "int vsprintf()". It
387 * is up to the package author to declare vsprintf correctly based on the
388 * symbol.
389 */
390#define VPRINTF /**/
391/*#undef CHARVSPRINTF /**/
392
393/* GIDTYPE:
394 * This symbol has a value like gid_t, int, ushort, or whatever type is
395 * used to declare group ids in the kernel.
396 */
397/* TODO */
398#define GIDTYPE int /**/
399
400/* I_DIRENT:
401 * This symbol, if defined, indicates to the C program that it should
402 * include dirent.h.
403 */
404/* DIRNAMLEN:
405 * This symbol, if defined, indicates to the C program that the length
406 * of directory entry names is provided by a d_namlen field. Otherwise
407 * you need to do strlen() on the d_name field.
408 */
409/*#undef I_DIRENT /**/
410#define DIRNAMLEN /**/
411
412/* I_FCNTL:
413 * This symbol, if defined, indicates to the C program that it should
414 * include fcntl.h.
415 */
416#define I_FCNTL /**/
417
418/* I_GRP:
419 * This symbol, if defined, indicates to the C program that it should
420 * include grp.h.
421 */
422/*#define I_GRP /**/
423
424/* I_PWD:
425 * This symbol, if defined, indicates to the C program that it should
426 * include pwd.h.
427 */
428/* PWQUOTA:
429 * This symbol, if defined, indicates to the C program that struct passwd
430 * contains pw_quota.
431 */
432/* PWAGE:
433 * This symbol, if defined, indicates to the C program that struct passwd
434 * contains pw_age.
435 */
436/*#define I_PWD /**/
437/*#define PWQUOTA /**/
438/*#undef PWAGE /**/
439
440/* I_SYSDIR:
441 * This symbol, if defined, indicates to the C program that it should
442 * include sys/dir.h.
443 */
444#define I_SYSDIR /**/
445
446/* I_SYSIOCTL:
447 * This symbol, if defined, indicates that sys/ioctl.h exists and should
448 * be included.
449 */
450/*#define I_SYSIOCTL /**/
451
452/* I_VARARGS:
453 * This symbol, if defined, indicates to the C program that it should
454 * include varargs.h.
455 */
456#define I_VARARGS /**/
457
458/* INTSIZE:
459 * This symbol contains the size of an int, so that the C preprocessor
460 * can make decisions based on it.
461 */
462#define INTSIZE 2 /**/
463
464/* RANDBITS:
465 * This symbol contains the number of bits of random number the rand()
466 * function produces. Usual values are 15, 16, and 31.
467 */
468#define RANDBITS 31 /**/
469
470/* SIG_NAME:
471 * This symbol contains an list of signal names in order.
472 */
473#define SIG_NAME
474 "ZERO","HUP","INT","QUIT","ILL","TRAP","IOT","EMT","FPE","KILL","BUS","SEGV","S
475YS","PIPE","ALRM","TERM","URG","STOP","TSTP","CONT","CHLD","TTIN","TTOU","IO","X
476CPU","XFSZ","VTALRM","PROF","WINCH","USR1","USR2" /**/
477
478/* STDCHAR:
479 * This symbol is defined to be the type of char used in stdio.h.
480 * It has the values "unsigned char" or "char".
481 */
482#define STDCHAR char /**/
483
484/* UIDTYPE:
485 * This symbol has a value like uid_t, int, ushort, or whatever type is
486 * used to declare user ids in the kernel.
487 */
488#define UIDTYPE int /**/
489
490/* VOIDFLAGS:
491 * This symbol indicates how much support of the void type is given by this
492 * compiler. What various bits mean:
493 *
494 * 1 = supports declaration of void
495 * 2 = supports arrays of pointers to functions returning void
496 * 4 = supports comparisons between pointers to void functions and
497 * addresses of void functions
498 *
499 * The package designer should define VOIDUSED to indicate the requirements
500 * of the package. This can be done either by #defining VOIDUSED before
501 * including config.h, or by defining defvoidused in Myinit.U. If the
502 * latter approach is taken, only those flags will be tested. If the
503 * level of void support necessary is not present, defines void to int.
504 */
505#ifndef VOIDUSED
506#define VOIDUSED 7
507#endif
508#define VOIDFLAGS 7
509#if (VOIDFLAGS & VOIDUSED) != VOIDUSED
510#define void int /* is void to be avoided? */
511#define M_VOID /* Xenix strikes again */
512#endif
513
514/* PRIVLIB:
515 * This symbol contains the name of the private library for this package.
516 * The library is private in the sense that it needn't be in anyone's
517 * execution path, but it should be accessible by the world. The program
518 * should be prepared to do ^ expansion.
519 */
520#define PRIVLIB "/usr/local/lib/perl" /**/
521
522/*
523 * BUGGY_MSC:
524 * This symbol is defined if you are the unfortunate owner of a buggy
525 * Microsoft C compiler and want to use intrinsic functions. Versions
526 * up to 5.1 are known conform to this definition.
527 */
528#define BUGGY_MSC /**/
529
530/*
531 * BINARY:
532 * This symbol is defined if you run under an operating system that
533 * distinguishes between binary and text files. If so the function
534 * setmode will be used to set the file into binary mode.
535 */
536#define BINARY
537
538#define S_ISUID 0
539#define S_ISGID 0
540#define CASTNEGFLOAT