1/* config.h.W32 -- hand-massaged config.h file for Windows builds       -*-C-*-
2
3Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
42006 Free Software Foundation, Inc.
5This file is part of GNU Make.
6
7GNU Make is free software; you can redistribute it and/or modify it under the
8terms of the GNU General Public License as published by the Free Software
9Foundation; either version 2, or (at your option) any later version.
10
11GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
12WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
13A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
14
15You should have received a copy of the GNU General Public License along with
16GNU Make; see the file COPYING.  If not, write to the Free Software
17Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
18
19#ifndef ___config_h_win
20#define ___config_h_win
21
22/* Suppress some Visual C++ warnings.
23   Maybe after the code cleanup for ISO C we can remove some/all of these.  */
24#if _MSC_VER > 1000
25# pragma warning(disable:4100) /* unreferenced formal parameter */
26# pragma warning(disable:4102) /* unreferenced label */
27# pragma warning(disable:4127) /* conditional expression is constant */
28# pragma warning(disable:4131) /* uses old-style declarator */
29# pragma warning(disable:4702) /* unreachable code */
30#endif
31
32/* Define to 1 if the `closedir' function returns void instead of `int'. */
33/* #undef CLOSEDIR_VOID */
34
35/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
36   systems. This function is required for `alloca.c' support on those systems.
37   */
38/* #undef CRAY_STACKSEG_END */
39
40/* Define to 1 if using `alloca.c'. */
41/* #undef C_ALLOCA */
42
43/* Define to 1 if using `getloadavg.c'. */
44/*#define C_GETLOADAVG 1*/
45
46/* Define to 1 for DGUX with <sys/dg_sys_info.h>. */
47/* #undef DGUX */
48
49/* Define to 1 if translation of program messages to the user's native
50   language is requested. */
51/* #undef ENABLE_NLS */
52
53/* Use high resolution file timestamps if nonzero. */
54#define FILE_TIMESTAMP_HI_RES 0
55
56/* Define to 1 if the `getloadavg' function needs to be run setuid or setgid.
57   */
58/* #undef GETLOADAVG_PRIVILEGED */
59
60/* Define to 1 if you have `alloca', as a function or macro. */
61#define HAVE_ALLOCA 1
62
63/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
64   */
65/* #undef HAVE_ALLOCA_H */
66
67/* Define if your compiler conforms to the ANSI C standard. */
68#define HAVE_ANSI_COMPILER 1
69
70/* Define to 1 if you have the `bsd_signal' function. */
71/* #undef HAVE_BSD_SIGNAL */
72
73/* Use case insensitive file names */
74/* #undef HAVE_CASE_INSENSITIVE_FS */
75
76/* Define if you have the clock_gettime function. */
77/* #undef HAVE_CLOCK_GETTIME */
78
79/* Define if the GNU dcgettext() function is already present or preinstalled.
80   */
81/* #undef HAVE_DCGETTEXT */
82
83/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
84   */
85#define HAVE_DIRENT_H 1
86
87/* Define to 1 if you have the <direct.h> header file, and it defines getcwd()
88   and chdir().
89   */
90#if (defined(_MSC_VER) || defined(__BORLANDC__)) && !defined(__INTERIX)
91# define HAVE_DIRECT_H 1
92#endif
93
94/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */
95/* #undef HAVE_DOPRNT */
96
97/* Use platform specific coding */
98#define HAVE_DOS_PATHS 1
99
100/* Define to 1 if you have the `dup2' function. */
101#define HAVE_DUP2 1
102
103/* Define to 1 if you have the <fcntl.h> header file. */
104#define HAVE_FCNTL_H 1
105
106/* Define to 1 if you have the `fdopen' function. */
107/*#define HAVE_FDOPEN 1*/
108
109/* Define to 1 if you have the `fork' function. */
110/* #undef HAVE_FORK */
111
112/* Define to 1 if you have the `getcwd' function.  */
113#define HAVE_GETCWD 1
114
115/* Define to 1 if you have the `getgroups' function. */
116/* #undef HAVE_GETGROUPS */
117
118/* Define to 1 if you have the `gethostbyname' function. */
119/* #undef HAVE_GETHOSTBYNAME */
120
121/* Define to 1 if you have the `gethostname' function. */
122/* #undef HAVE_GETHOSTNAME */
123
124/* Define to 1 if you have the `getloadavg' function. */
125/* #undef HAVE_GETLOADAVG */
126
127/* Define to 1 if you have the `getrlimit' function. */
128/* #undef HAVE_GETRLIMIT */
129
130/* Define if the GNU gettext() function is already present or preinstalled. */
131/* #undef HAVE_GETTEXT */
132
133/* Define if you have a standard gettimeofday function */
134/* #undef HAVE_GETTIMEOFDAY */
135
136/* Define if you have the iconv() function. */
137/* #undef HAVE_ICONV */
138
139/* Define to 1 if you have the <inttypes.h> header file. */
140/*#define HAVE_INTTYPES_H 1*/
141
142/* Define to 1 if you have the `dgc' library (-ldgc). */
143/* #undef HAVE_LIBDGC */
144
145/* Define to 1 if you have the `kstat' library (-lkstat). */
146/* #undef HAVE_LIBKSTAT */
147
148/* Define to 1 if you have the <limits.h> header file. */
149#define HAVE_LIMITS_H 1
150
151/* Define to 1 if you have the <locale.h> header file. */
152#define HAVE_LOCALE_H 1
153
154/* Define to 1 if you have the <mach/mach.h> header file. */
155/* #undef HAVE_MACH_MACH_H */
156
157/* Define to 1 if you have the `memmove' function. */
158#define HAVE_MEMMOVE 1
159
160/* Define to 1 if you have the <memory.h> header file. */
161#define HAVE_MEMORY_H 1
162
163/* Define to 1 if you have the `mkstemp' function. */
164/* #undef HAVE_MKSTEMP */
165
166/* Define to 1 if you have the `mktemp' function. */
167#define HAVE_MKTEMP 1
168
169/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
170/* #undef HAVE_NDIR_H */
171
172/* Define to 1 if you have the <nlist.h> header file. */
173/* #undef HAVE_NLIST_H */
174
175/* Define to 1 if you have the `pipe' function. */
176/* #undef HAVE_PIPE */
177
178/* Define to 1 if you have the `pstat_getdynamic' function. */
179/* #undef HAVE_PSTAT_GETDYNAMIC */
180
181/* Define to 1 if you have the `realpath' function. */
182/* #undef HAVE_REALPATH */
183
184/* Define if <signal.h> defines the SA_RESTART constant. */
185/* #undef HAVE_SA_RESTART */
186
187/* Define to 1 if you have the `setegid' function. */
188/* #undef HAVE_SETEGID */
189
190/* Define to 1 if you have the `seteuid' function. */
191/* #undef HAVE_SETEUID */
192
193/* Define to 1 if you have the `setlinebuf' function. */
194/* #undef HAVE_SETLINEBUF */
195
196/* Define to 1 if you have the `setlocale' function. */
197/*#define HAVE_SETLOCALE 1*/
198
199/* Define to 1 if you have the `setregid' function. */
200/* #undef HAVE_SETREGID */
201
202/* Define to 1 if you have the `setreuid' function. */
203/* #undef HAVE_SETREUID */
204
205/* Define to 1 if you have the `setrlimit' function. */
206/* #undef HAVE_SETRLIMIT */
207
208/* Define to 1 if you have the `setvbuf' function. */
209/*#define HAVE_SETVBUF 1 */
210
211/* Define to 1 if you have the `sigaction' function. */
212/* #undef HAVE_SIGACTION */
213
214/* Define to 1 if you have the `sigsetmask' function. */
215/* #undef HAVE_SIGSETMASK */
216
217/* Define to 1 if you have the `socket' function. */
218/* #undef HAVE_SOCKET */
219
220/* Define to 1 if you have the <stdarg.h> header file. */
221#define HAVE_STDARG_H 1
222
223/* Define to 1 if you have the <stdint.h> header file. */
224#if _MSC_VER >= 1600
225# define HAVE_STDINT_H 1
226#endif
227
228/* Define to 1 if you have the <stdlib.h> header file. */
229#define HAVE_STDLIB_H 1
230
231/* Define to 1 if you have the `strcasecmp' function. */
232/* #undef HAVE_STRCASECMP */
233
234/* Define to 1 if you have the `strcmpi' function. */
235#define HAVE_STRCMPI 1
236
237/* Define to 1 if you have the `stricmp' function. */
238/* #undef HAVE_STRICMP */
239
240/* Define to 1 if you have the `strchr' function. */
241#define HAVE_STRCHR 1
242
243/* Define to 1 if you have the `strcoll' function and it is properly defined.
244   */
245#define HAVE_STRCOLL 1
246
247/* Define to 1 if you have the `strdup' function. */
248#define HAVE_STRDUP 1 /* bird */
249
250/* Define to 1 if you have the `strerror' function. */
251#define HAVE_STRERROR 1
252
253/* Define to 1 if you have the <strings.h> header file. */
254/* #define HAVE_STRINGS_H 1 */
255
256/* Define to 1 if you have the <string.h> header file. */
257#define HAVE_STRING_H 1
258
259/* Define to 1 if you have the `strsignal' function. */
260/* #undef HAVE_STRSIGNAL */
261
262/* Define to 1 if `n_un.n_name' is member of `struct nlist'. */
263/* #undef HAVE_STRUCT_NLIST_N_UN_N_NAME */
264
265/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
266   */
267/* #undef HAVE_SYS_DIR_H */
268
269/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
270   */
271/* #undef HAVE_SYS_NDIR_H */
272
273/* Define to 1 if you have the <sys/param.h> header file. */
274/* #define HAVE_SYS_PARAM_H 1 */
275
276/* Define to 1 if you have the <sys/resource.h> header file. */
277/* #undef HAVE_SYS_RESOURCE_H */
278
279/* Define to 1 if you have the <sys/stat.h> header file. */
280#define HAVE_SYS_STAT_H 1
281
282/* Define to 1 if you have the <sys/timeb.h> header file. */
283/*#define HAVE_SYS_TIMEB_H 1*/
284
285/* Define to 1 if you have the <sys/time.h> header file. */
286/*#define HAVE_SYS_TIME_H 1*/
287
288/* Define to 1 if you have the <sys/types.h> header file. */
289/*#define HAVE_SYS_TYPES_H 1*/
290
291/* Define to 1 if you have the <sys/wait.h> header file. */
292/* #undef HAVE_SYS_WAIT_H */
293
294/* Define this if you have the \`union wait' type in <sys/wait.h>. */
295/* #undef HAVE_UNION_WAIT */
296
297/* Define to 1 if you have the <unistd.h> header file. */
298/* #define HAVE_UNISTD_H 1*/
299
300/* Define to 1 if you have the <varargs.h> header file. */
301/* #undef HAVE_VARARGS_H */
302
303/* Define to 1 if you have the `vfork' function. */
304/* #undef HAVE_VFORK */
305
306/* Define to 1 if you have the <vfork.h> header file. */
307/* #undef HAVE_VFORK_H */
308
309/* Define to 1 if you have the `vprintf' function. */
310#define HAVE_VPRINTF 1
311
312
313/* Define to 1 if you have the `wait3' function. */
314/* #undef HAVE_WAIT3 */
315
316/* Define to 1 if you have the `waitpid' function. */
317/* #undef HAVE_WAITPID */
318
319/* Define to 1 if `fork' works. */
320/* #undef HAVE_WORKING_FORK */
321
322/* Define to 1 if `vfork' works. */
323/* #undef HAVE_WORKING_VFORK */
324
325/* Build host information. (not used by kmk) */
326#define MAKE_HOST "Windows32"
327
328/* Define this to enable job server support in GNU make. */
329/* #undef MAKE_JOBSERVER */
330
331/* Define to 1 if your `struct nlist' has an `n_un' member. Obsolete, depend
332   on `HAVE_STRUCT_NLIST_N_UN_N_NAME */
333/* #undef NLIST_NAME_UNION */
334
335/* Define if struct nlist.n_name is a pointer rather than an array. */
336/* #undef NLIST_STRUCT */
337
338/* Define to 1 if your C compiler doesn't accept -c and -o together. */
339/* #undef NO_MINUS_C_MINUS_O */
340
341/* Name of this package (needed by automake) */
342#define PACKAGE "make"
343
344/* Define to the address where bug reports for this package should be sent. */
345#define PACKAGE_BUGREPORT "bug-make@gnu.org"
346
347/* Define to the full name of this package. */
348#define PACKAGE_NAME "GNU make"
349
350/* Define to the full name and version of this package. */
351#define PACKAGE_STRING "GNU make 3.82"
352
353/* Define to the one symbol short name of this package. */
354#define PACKAGE_TARNAME "make"
355
356/* Define to the version of this package. */
357#define PACKAGE_VERSION "3.82"
358
359/* Define to 1 if the C compiler supports function prototypes. */
360#define PROTOTYPES 1
361
362/* Define as the return type of signal handlers (`int' or `void'). */
363#define RETSIGTYPE void
364
365/* Define to the name of the SCCS 'get' command. */
366#define SCCS_GET "echo no sccs get"
367
368/* Define this if the SCCS 'get' command understands the '-G<file>' option. */
369/* #undef SCCS_GET_MINUS_G */
370
371/* Define to 1 if the `setvbuf' function takes the buffering type as its
372   second argument and the buffer pointer as the third, as on System V before
373   release 3. */
374/* #undef SETVBUF_REVERSED */
375
376/* If using the C implementation of alloca, define if you know the
377   direction of stack growth for your system; otherwise it will be
378   automatically deduced at run-time.
379	STACK_DIRECTION > 0 => grows toward higher addresses
380	STACK_DIRECTION < 0 => grows toward lower addresses
381	STACK_DIRECTION = 0 => direction of growth unknown */
382/* #undef STACK_DIRECTION */
383
384/* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */
385/* #undef STAT_MACROS_BROKEN */
386
387/* Define to 1 if you have the ANSI C header files. */
388#define STDC_HEADERS 1
389
390/* Define if struct stat contains a nanoseconds field */
391#define ST_MTIM_NSEC tv_nsec
392
393/* Define to 1 on System V Release 4. */
394/* #undef SVR4 */
395
396/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
397/* #define TIME_WITH_SYS_TIME 1 */
398
399/* Define to 1 for Encore UMAX. */
400/* #undef UMAX */
401
402/* Define to 1 for Encore UMAX 4.3 that has <inq_status/cpustats.h> instead of
403   <sys/cpustats.h>. */
404/* #undef UMAX4_3 */
405
406/* Version number of package */
407#define VERSION "3.82"
408
409/* Define if using the dmalloc debugging malloc package */
410/* #undef WITH_DMALLOC */
411
412/* Define to 1 if on AIX 3.
413   System headers sometimes define this.
414   We just want to avoid a redefinition error message.  */
415#ifndef _ALL_SOURCE
416/* # undef _ALL_SOURCE */
417#endif
418
419/* Number of bits in a file offset, on hosts where this is settable. */
420/* #undef _FILE_OFFSET_BITS */
421
422/* Define for large files, on AIX-style hosts. */
423/* #undef _LARGE_FILES */
424
425/* Define to 1 if on MINIX. */
426/* #undef _MINIX */
427
428/* Define to 2 if the system does not provide POSIX.1 features except with
429   this defined. */
430/* #undef _POSIX_1_SOURCE */
431
432/* Define to 1 if you need to in order for `stat' and other things to work. */
433#define _POSIX_SOURCE 1
434
435/* Define like PROTOTYPES; this can be used by system headers. */
436/*#define __PROTOTYPES 1*/
437
438/* Define to empty if `const' does not conform to ANSI C. */
439/* #undef const */
440
441/* Define to `int' if <sys/types.h> doesn't define. */
442#define gid_t int
443
444/* Define to `int' if <sys/types.h> does not define. */
445/* Note (bird)! sub_proc.c needs this to be pointer sized. */
446#define pid_t intptr_t
447
448/* Define to `int' if <sys/types.h> doesn't define. */
449#define uid_t int
450
451/* Define uintmax_t if not defined in <stdint.h> or <inttypes.h>. */
452#if _MSC_VER < 1600
453# if 0
454#  define uintmax_t unsigned long
455# else
456#  define uintmax_t unsigned __int64
457# endif
458#endif
459
460/* Define as `fork' if `vfork' does not work. */
461/*#define vfork fork*/
462
463#if 0/* see above */
464/* Define to `unsigned long' or `unsigned long long'
465   if <inttypes.h> doesn't define.  */
466#define uintmax_t unsigned long
467#endif
468
469/* Define if you support file names longer than 14 characters.  */
470#define HAVE_LONG_FILE_NAMES 1
471
472/* Define if your struct stat has st_rdev.  */
473#undef HAVE_ST_RDEV
474#define HAVE_ST_RDEV 1
475
476/* Define if you have the strftime function.  */
477#undef HAVE_STRFTIME
478#define HAVE_STRFTIME 1
479
480/* Define if you have <sys/wait.h> that is POSIX.1 compatible.  */
481/* #undef HAVE_SYS_WAIT_H */
482
483/* Define if your struct tm has tm_zone.  */
484/* #undef HAVE_TM_ZONE */
485
486/* Define if you don't have tm_zone but do have the external array
487   tzname.  */
488#undef HAVE_TZNAME
489#define HAVE_TZNAME 1
490
491/* Define if utime(file, NULL) sets file's timestamp to the present.  */
492#undef HAVE_UTIME_NULL
493#define HAVE_UTIME_NULL 1
494
495/* Define to the installation directory for locales.  */
496#define LOCALEDIR ""
497
498/*
499 * Refer to README.W32 for info on the following settings
500 */
501
502
503/*
504 * If you have a shell that does not grok 'sh -c quoted-command-line'
505 * correctly, you need this setting. Please see below for specific
506 * shell support.
507 */
508/*#define BATCH_MODE_ONLY_SHELL 1 */
509
510/*
511 * Define if you have the Cygnus "Cygwin" GNU Windows32 tool set.
512 * Do NOT define BATCH_MODE_ONLY_SHELL if you define HAVE_CYGWIN_SHELL
513 */
514/*#define HAVE_CYGWIN_SHELL 1 */
515
516/*
517 * Define if you have the MKS tool set or shell. Do NOT define
518 * BATCH_MODE_ONLY_SHELL if you define HAVE_MKS_SHELL
519 */
520/*#define HAVE_MKS_SHELL 1 */
521
522/*
523 * Enforce the mutual exclusivity restriction.
524 */
525#ifdef HAVE_MKS_SHELL
526#undef BATCH_MODE_ONLY_SHELL
527#endif
528
529#ifdef HAVE_CYGWIN_SHELL
530#undef BATCH_MODE_ONLY_SHELL
531#endif
532
533/* bird stat hacks. */
534#include <io.h>
535#include <direct.h>
536#include "nt/ntstat.h"
537
538/* bird dirent hack. */
539#define _DIRENT_H /* see w32/dirent.h */
540#include "nt/ntdir.h"
541#define _DIRENT_HAVE_D_NAMLEN 1
542#define _DIRENT_HAVE_D_TYPE   1
543
544/* bird: Not sure if this is necessary any more... */
545#define BATCH_MODE_ONLY_SHELL
546
547#include "inlined_memchr.h"
548
549#ifdef CONFIG_WITH_FAST_IS_SPACE
550# include <ctype.h>
551# if _MSC_VER >= 1400
552#  include <intrin.h>
553#  pragma intrinsic(_bittest)
554#  pragma intrinsic(_bittestandset)
555#  define space_map_size          32
556#  define set_space_map_entry(ch) _bittestandset((long *)&space_map[0], (unsigned char)(ch))
557#  define isspace(ch)             _bittest((long *)&space_map[0], (unsigned char)(ch))
558# else
559#  define space_map_size          256
560#  define set_space_map_entry(ch) (space_map[(unsigned char)(ch)] = 1)
561#  define isspace(ch)             (space_map[(unsigned char)(ch)])
562# endif
563extern char space_map[space_map_size];
564#endif
565
566/* bird: Include mscfakes.h to make sure we have all it's tricks applied. */
567#ifndef ___mscfakes_h
568# include "kmkbuiltin/mscfakes.h"
569#endif
570
571#endif /* bird */
572
573