1 /* config.h.W32 -- hand-massaged config.h file for Windows builds -*-C-*-
3 Copyright (C) 1996-2022 Free Software Foundation, Inc.
4 This file is part of GNU Make.
6 GNU Make is free software; you can redistribute it and/or modify it under the
7 terms of the GNU General Public License as published by the Free Software
8 Foundation; either version 3 of the License, or (at your option) any later
11 GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
12 WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
13 A PARTICULAR PURPOSE. See the GNU General Public License for more details.
15 You should have received a copy of the GNU General Public License along with
16 this program. If not, see <https://www.gnu.org/licenses/>. */
22 /* Build for the WINDOWS32 API. */
25 /* Suppress some Visual C++ warnings.
26 Maybe after the code cleanup for ISO C we can remove some/all of these. */
28 # pragma warning(disable:4100) /* unreferenced formal parameter */
29 # pragma warning(disable:4130) /* logical operation on address of string constant */
30 # pragma warning(disable:4131) /* uses old-style declarator */
31 # pragma warning(disable:4702) /* unreachable code */
32 # define _CRT_SECURE_NO_WARNINGS 1 /* function or variable may be unsafe */
33 # define _CRT_NONSTDC_NO_WARNINGS 1 /* functions w/o a leading underscore */
36 /* Define to 1 if the 'closedir' function returns void instead of 'int'. */
37 /* #undef CLOSEDIR_VOID */
39 /* Define to 1 if using 'alloca.c'. */
42 /* Define to 1 for DGUX with <sys/dg_sys_info.h>. */
45 /* Define to 1 if translation of program messages to the user's native
46 language is requested. */
47 /* #undef ENABLE_NLS */
49 /* Use high resolution file timestamps if nonzero. */
50 #define FILE_TIMESTAMP_HI_RES 0
52 /* Define to 1 if you have 'alloca' after including <alloca.h>, a header that
53 may be supplied by this distribution. */
56 /* Define to 1 if <alloca.h> works. */
57 /* #undef HAVE_ALLOCA_H */
59 /* Define to 1 if you have the 'atexit' function. */
62 /* Use case insensitive file names */
63 /* #undef HAVE_CASE_INSENSITIVE_FS */
65 /* Define to 1 if you have the clock_gettime function. */
66 /* #undef HAVE_CLOCK_GETTIME */
68 /* Define if the GNU dcgettext() function is already present or preinstalled.
70 /* #undef HAVE_DCGETTEXT */
72 /* Define to 1 if you have the declaration of 'bsd_signal', and to 0 if you
74 #define HAVE_DECL_BSD_SIGNAL 0
76 /* Define to 1 if you have the declaration of `dlerror', and to 0 if you
78 #define HAVE_DECL_DLERROR 0
80 /* Define to 1 if you have the declaration of `dlopen', and to 0 if you don't.
82 #define HAVE_DECL_DLOPEN 0
84 /* Define to 1 if you have the declaration of `dlsym', and to 0 if you don't.
86 #define HAVE_DECL_DLSYM 0
88 /* Define to 1 if you have the declaration of 'getloadavg'. */
89 /* #undef HAVE_DECL_GETLOADAVG */
91 /* Define to 1 if you have the declaration of 'sys_siglist', and to 0 if you
93 #define HAVE_DECL_SYS_SIGLIST 0
95 /* Define to 1 if you have the declaration of '_sys_siglist', and to 0 if you
97 #define HAVE_DECL__SYS_SIGLIST 0
99 /* Define to 1 if you have the declaration of '__sys_siglist', and to 0 if you
101 #define HAVE_DECL___SYS_SIGLIST 0
103 /* Define to 1 if you have the <dirent.h> header file, and it defines 'DIR'.
105 #define HAVE_DIRENT_H 1
107 /* Define to 1 if you have the <direct.h> header file, and it defines getcwd()
110 #if (defined(_MSC_VER) || defined(__BORLANDC__) || defined(__TINYC__)) && !defined(__INTERIX)
111 # define HAVE_DIRECT_H 1
114 /* Support DOS-style pathnames. */
115 #define HAVE_DOS_PATHS 1
117 /* Define to 1 if you have the 'dup' function. */
120 /* Define to 1 if you have the 'dup2' function. */
123 /* Define to 1 if you have the <fcntl.h> header file. */
124 #define HAVE_FCNTL_H 1
126 /* Define to 1 if you have the 'fdopen' function. */
128 #define HAVE_FDOPEN 1
131 /* Define to 1 if you have the `fork' function. */
132 /* #undef HAVE_FORK */
134 /* Define to 1 if you have the 'getcwd' function. */
135 #define HAVE_GETCWD 1
137 /* Define to 1 if you have the 'getgroups' function. */
138 /* #undef HAVE_GETGROUPS */
140 /* Define to 1 if you have the 'gethostbyname' function. */
141 /* #undef HAVE_GETHOSTBYNAME */
143 /* Define to 1 if you have the 'gethostname' function. */
144 /* #undef HAVE_GETHOSTNAME */
146 /* Define to 1 if you have the 'getrlimit' function. */
147 /* #undef HAVE_GETRLIMIT */
149 /* Define if the GNU gettext() function is already present or preinstalled. */
150 /* #undef HAVE_GETTEXT */
152 /* Define to 1 if you have a standard gettimeofday function */
154 #define HAVE_GETTIMEOFDAY 1
157 /* Embed GNU Guile support. Windows build sets this on the
158 compilation command line. */
159 /* #undef HAVE_GUILE */
161 /* Define if you have the iconv() function. */
162 /* #undef HAVE_ICONV */
164 /* Define to 1 if you have the <inttypes.h> header file. */
166 #define HAVE_INTTYPES_H 1
169 /* Define to 1 if you have the `isatty' function. */
170 #define HAVE_ISATTY 1
172 /* Define to 1 if you have the 'dgc' library (-ldgc). */
173 /* #undef HAVE_LIBDGC */
175 /* Define to 1 if you have the 'kstat' library (-lkstat). */
176 /* #undef HAVE_LIBKSTAT */
178 /* Define to 1 if you have the `perfstat' library (-lperfstat). */
179 /* #undef HAVE_LIBPERFSTAT */
181 /* Define to 1 if you have the <limits.h> header file. */
182 #define HAVE_LIMITS_H 1
184 /* Define to 1 if you have the <locale.h> header file. */
185 /* #undef HAVE_LOCALE_H */
187 /* Define to 1 if the system has the type 'long long int'. */
188 #define HAVE_LONG_LONG_INT 1
190 /* Define to 1 if you have the 'lstat' function. */
191 /* #undef HAVE_LSTAT */
193 /* Define to 1 if you have the <mach/mach.h> header file. */
194 /* #undef HAVE_MACH_MACH_H */
196 /* Define to 1 if you have the <memory.h> header file. */
197 #define HAVE_MEMORY_H 1
199 /* Define to 1 if you have the `mempcpy' function. */
200 /* #undef HAVE_MEMPCPY */
202 /* Define to 1 if you have the `memrchr' function. */
203 /* #undef HAVE_MEMRCHR */
205 /* Define to 1 if you have the <minix/config.h> header file. */
206 /* #undef HAVE_MINIX_CONFIG_H */
208 /* Define to 1 if you have the 'mkfifo' function. */
209 /* #undef HAVE_MKFIFO */
211 /* Define to 1 if you have the 'mkstemp' function. */
212 /* #undef HAVE_MKSTEMP */
214 /* Define to 1 if you have the `mkstemp' function. */
215 /* #undef HAVE_MKSTEMP */
217 /* Define to 1 if you have the 'mktemp' function. */
218 #define HAVE_MKTEMP 1
220 /* Define to 1 if you have the <ndir.h> header file, and it defines 'DIR'. */
221 /* #undef HAVE_NDIR_H */
223 /* Define to 1 if you have the <nlist.h> header file. */
224 /* #undef HAVE_NLIST_H */
226 /* Define to 1 if you have the 'pipe' function. */
227 /* #undef HAVE_PIPE */
229 /* Define to 1 if you have the `posix_spawn' function. */
230 /* #undef HAVE_POSIX_SPAWN */
232 /* Define to 1 if you have the `posix_spawnattr_setsigmask' function. */
233 /* #undef HAVE_POSIX_SPAWNATTR_SETSIGMASK */
235 /* Define to 1 if you have the `pselect' function. */
236 /* #undef HAVE_PSELECT */
238 /* Define to 1 if you have the 'pstat_getdynamic' function. */
239 /* #undef HAVE_PSTAT_GETDYNAMIC */
241 /* Define to 1 if you have the 'readlink' function. */
242 /* #undef HAVE_READLINK */
244 /* Define to 1 if you have the 'realpath' function. */
245 /* #undef HAVE_REALPATH */
247 /* Define to 1 if <signal.h> defines the SA_RESTART constant. */
248 /* #undef HAVE_SA_RESTART */
250 /* Define to 1 if you have the 'setegid' function. */
251 /* #undef HAVE_SETEGID */
253 /* Define to 1 if you have the 'seteuid' function. */
254 /* #undef HAVE_SETEUID */
256 /* Define to 1 if you have the 'setlinebuf' function. */
257 /* #undef HAVE_SETLINEBUF */
259 /* Define to 1 if you have the 'setregid' function. */
260 /* #undef HAVE_SETREGID */
262 /* Define to 1 if you have the 'setreuid' function. */
263 /* #undef HAVE_SETREUID */
265 /* Define to 1 if you have the 'setrlimit' function. */
266 /* #undef HAVE_SETRLIMIT */
268 /* Define to 1 if you have the 'setvbuf' function. */
269 #define HAVE_SETVBUF 1
271 /* Define to 1 if you have the 'sigaction' function. */
272 /* #undef HAVE_SIGACTION */
274 /* Define to 1 if you have the 'sigsetmask' function. */
275 /* #undef HAVE_SIGSETMASK */
277 /* Define to 1 if you have the 'socket' function. */
278 /* #undef HAVE_SOCKET */
280 /* Define to 1 if you have the <spawn.h> header file. */
281 /* #undef HAVE_SPAWN_H */
283 /* Define to 1 if you have the <stdint.h> header file. */
285 #define HAVE_STDINT_H 1
288 /* Define to 1 if you have the <stdio.h> header file. */
289 #define HAVE_STDIO_H 1
291 /* Define to 1 if you have the <stdlib.h> header file. */
292 #define HAVE_STDLIB_H 1
294 /* Define to 1 if you have the `stpcpy' function. */
295 /* #undef HAVE_STPCPY */
297 /* Define to 1 if you have the 'strcasecmp' function. */
298 #if defined(__MINGW32__) || defined(__TINYC__)
299 #define HAVE_STRCASECMP 1
302 /* Define to 1 if you have the 'strcmpi' function. */
303 #define HAVE_STRCMPI 1
305 /* Define to 1 if you have the 'strcoll' function and it is properly defined.
307 #define HAVE_STRCOLL 1
309 /* Define to 1 if you have the 'strdup' function. */
310 #define HAVE_STRDUP 1
312 /* Define to 1 if you have the `strerror' function. */
313 #define HAVE_STRERROR 1
315 /* Define to 1 if you have the 'stricmp' function. */
316 #define HAVE_STRICMP 1
318 /* Define to 1 if you have the <strings.h> header file. */
320 #define HAVE_STRINGS_H 1
323 /* Define to 1 if you have the <string.h> header file. */
324 #define HAVE_STRING_H 1
326 /* Define to 1 if you have the 'strncasecmp' function. */
327 #if defined(__MINGW32__) || defined(__TINYC__)
328 #define HAVE_STRNCASECMP 1
331 /* Define to 1 if you have the 'strncmpi' function. */
332 /* #undef HAVE_STRNCMPI */
334 /* Define to 1 if you have the 'strndup' function. */
335 /* #undef HAVE_STRNDUP */
337 /* Define to 1 if you have the 'strnicmp' function. */
339 #define HAVE_STRNICMP 1
342 /* Define to 1 if you have the 'strsignal' function. */
343 /* #undef HAVE_STRSIGNAL */
345 /* Define to 1 if you have the `strtoll' function. */
346 #define HAVE_STRTOLL 1
348 /* Define to 1 if `d_type' is a member of `struct dirent'. */
349 /* SV 57152: MinGW64 version of dirent doesn't support d_type. */
351 # define HAVE_STRUCT_DIRENT_D_TYPE 1
354 /* Define to 1 if 'n_un.n_name' is a member of 'struct nlist'. */
355 /* #undef HAVE_STRUCT_NLIST_N_UN_N_NAME */
357 /* Define to 1 if you have the <sys/dir.h> header file, and it defines 'DIR'.
359 /* #undef HAVE_SYS_DIR_H */
361 /* Define to 1 if you have the <sys/file.h> header file. */
362 /* #undef HAVE_SYS_FILE_H */
364 /* Define to 1 if you have the <sys/loadavg.h> header file. */
365 /* #undef HAVE_SYS_LOADAVG_H */
367 /* Define to 1 if you have the <sys/ndir.h> header file, and it defines 'DIR'.
369 /* #undef HAVE_SYS_NDIR_H */
371 /* Define to 1 if you have the <sys/param.h> header file. */
373 #define HAVE_SYS_PARAM_H 1
376 /* Define to 1 if you have the <sys/resource.h> header file. */
377 /* #undef HAVE_SYS_RESOURCE_H */
379 /* Define to 1 if you have the <sys/select.h> header file. */
380 /* #undef HAVE_SYS_SELECT_H */
382 /* Define to 1 if you have the <sys/stat.h> header file. */
383 #define HAVE_SYS_STAT_H 1
385 /* Define to 1 if you have the <sys/timeb.h> header file. */
386 #define HAVE_SYS_TIMEB_H 1
388 /* Define to 1 if you have the <sys/time.h> header file. */
390 #define HAVE_SYS_TIME_H 1
393 /* Define to 1 if you have the <sys/types.h> header file. */
394 #define HAVE_SYS_TYPES_H 1
396 /* Define to 1 if you have the <sys/wait.h> header file. */
397 /* #undef HAVE_SYS_WAIT_H */
399 /* Define to 1 if you have the `ttyname' function. */
400 #define HAVE_TTYNAME 1
403 /* Define to 1 if the system has the type `intmax_t'. */
404 #define HAVE_INTMAX_T 1
406 /* Define to 1 if the system has the type `uintmax_t'. */
407 #define HAVE_UINTMAX_T 1
409 /* Define to 1 if you have the `umask' function. */
410 #if defined(__MINGW32__) || defined(__TINYC__)
411 # define HAVE_UMASK 1
414 /* Define to 1 if you have the \'union wait' type in <sys/wait.h>. */
415 /* #undef HAVE_UNION_WAIT */
417 /* Define to 1 if you have the <unistd.h> header file. */
419 #define HAVE_UNISTD_H 1
422 /* Define to 1 if the system has the type 'unsigned long long int'. */
423 #define HAVE_UNSIGNED_LONG_LONG_INT 1
425 /* Define to 1 if you have the `vfork' function. */
426 /* #undef HAVE_VFORK */
428 /* Define to 1 if you have the <vfork.h> header file. */
429 /* #undef HAVE_VFORK_H */
431 /* Define to 1 if you have the 'wait3' function. */
432 /* #undef HAVE_WAIT3 */
434 /* Define to 1 if you have the 'waitpid' function. */
435 /* #undef HAVE_WAITPID */
437 /* Define to 1 if you have the <wchar.h> header file. */
438 /* #undef HAVE_WCHAR_H */
440 /* Define to 1 if `fork' works. */
441 /* #undef HAVE_WORKING_FORK */
443 /* Define to 1 if `vfork' works. */
444 /* #undef HAVE_WORKING_VFORK */
446 /* Define to 1 if the system has the type `_Bool'. */
447 /* #undef HAVE__BOOL */
449 /* Build host information. */
450 #define MAKE_HOST "Windows32"
452 /* Define to 1 to enable job server support in GNU make. */
453 #define MAKE_JOBSERVER 1
455 /* Define to 1 to enable 'load' support in GNU make. */
458 /* Define to 1 to enable symbolic link timestamp checking. */
459 /* #undef MAKE_SYMLINKS */
461 /* Define to 1 if your 'struct nlist' has an 'n_un' member. Obsolete, depend
462 on 'HAVE_STRUCT_NLIST_N_UN_N_NAME */
463 /* #undef NLIST_NAME_UNION */
465 /* Define to 1 if struct nlist.n_name is a pointer rather than an array. */
466 /* #undef NLIST_STRUCT */
468 /* Define to 1 if your C compiler doesn't accept -c and -o together. */
469 /* #undef NO_MINUS_C_MINUS_O */
471 /* Define to the character that separates directories in PATH. */
472 #define PATH_SEPARATOR_CHAR ';'
474 /* Define to the name of the SCCS 'get' command. */
475 #define SCCS_GET "echo no sccs get"
477 /* Define this if the SCCS 'get' command understands the '-G<file>' option. */
478 /* #undef SCCS_GET_MINUS_G */
480 /* If using the C implementation of alloca, define if you know the
481 direction of stack growth for your system; otherwise it will be
482 automatically deduced at run time.
483 STACK_DIRECTION > 0 => grows toward higher addresses
484 STACK_DIRECTION < 0 => grows toward lower addresses
485 STACK_DIRECTION = 0 => direction of growth unknown */
486 /* #undef STACK_DIRECTION */
488 /* Define to 1 if the 'S_IS*' macros in <sys/stat.h> do not work properly. */
489 /* #undef STAT_MACROS_BROKEN */
491 /* Define to 1 if you have the ANSI C header files. */
492 #define STDC_HEADERS 1
494 /* Define if struct stat contains a nanoseconds field */
495 /* #undef ST_MTIM_NSEC */
497 /* Define to 1 on System V Release 4. */
500 /* Define to 1 for Encore UMAX. */
503 /* Define to 1 for Encore UMAX 4.3 that has <inq_status/cpustats.h> instead of
507 /* Define if using the dmalloc debugging malloc package */
508 /* #undef WITH_DMALLOC */
510 /* Define to 1 if on AIX 3.
511 System headers sometimes define this.
512 We just want to avoid a redefinition error message. */
514 /* # undef _ALL_SOURCE */
517 /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
518 significant byte first (like Motorola and SPARC, unlike Intel). */
519 /* # undef WORDS_BIGENDIAN */
521 /* Number of bits in a file offset, on hosts where this is settable. */
522 /* #undef _FILE_OFFSET_BITS */
524 /* Define for large files, on AIX-style hosts. */
525 /* #undef _LARGE_FILES */
527 /* Define to 1 if on MINIX. */
530 /* Define to 2 if the system does not provide POSIX.1 features except with
532 /* #undef _POSIX_1_SOURCE */
534 /* Define to 1 if you need to in order for 'stat' and other things to work. */
535 /* #undef _POSIX_SOURCE */
537 /* Define to empty if 'const' does not conform to ANSI C. */
541 # undef __USE_MINGW_ANSI_STDIO
542 # define __USE_MINGW_ANSI_STDIO 1
545 /* Number of bits in a timestamp, on hosts where this is settable. */
546 /* #undef _TIME_BITS */
548 /* For 64-bit time_t on 32-bit mingw. */
550 # define __MINGW_USE_VC2005_COMPAT 1
553 #include <sys/types.h>
555 /* Define to 'int' if <sys/types.h> doesn't define. */
558 /* Define to 'int' if <sys/types.h> does not define. */
559 /* GCC 4.x reportedly defines pid_t. */
562 #define pid_t __int64
568 /* Define to `int' if <sys/types.h> does not define. */
571 /* Define to 'int' if <sys/types.h> doesn't define. */
574 /* Define {u,}intmax_t if not defined in <stdint.h> or <inttypes.h>. */
575 #if !HAVE_STDINT_H && !HAVE_INTTYPES_H
576 #define intmax_t long long
577 #define uintmax_t unsigned long long
580 /* Define if you have <sys/wait.h> that is POSIX.1 compatible. */
581 /* #undef HAVE_SYS_WAIT_H */
583 /* Define to the installation directory for locales. */
587 * Refer to README.W32 for info on the following settings
592 * If you have a shell that does not grok 'sh -c quoted-command-line'
593 * correctly, you need this setting; it is the default for tcc.
594 * Please see below for specific shell support.
596 #if defined(__TINYC__)
597 #define BATCH_MODE_ONLY_SHELL 1
599 /*#define BATCH_MODE_ONLY_SHELL 1 */
603 * Define if you have the Cygnus "Cygwin" GNU Windows32 tool set.
604 * Do NOT define BATCH_MODE_ONLY_SHELL if you define HAVE_CYGWIN_SHELL
606 /*#define HAVE_CYGWIN_SHELL 1 */
609 * Define if you have the MKS tool set or shell. Do NOT define
610 * BATCH_MODE_ONLY_SHELL if you define HAVE_MKS_SHELL
612 /*#define HAVE_MKS_SHELL 1 */
615 * Enforce the mutual exclusivity restriction.
617 #ifdef HAVE_MKS_SHELL
618 #undef BATCH_MODE_ONLY_SHELL
621 #ifdef HAVE_CYGWIN_SHELL
622 #undef BATCH_MODE_ONLY_SHELL