4 /* config.h. NOT Generated automatically by configure.
6 This is a manually maintained version used for the Watcom,
7 Borland and and Microsoft Visual C++ compilers. It is a
8 standard part of the Python distribution.
11 The code specific to Windows should be wrapped around one of
12 the following #defines
14 MS_WIN32 - Code specific to the MS Win32 API
15 MS_WIN16 - Code specific to the old 16 bit Windows API.
16 MS_WINDOWS - Code specific to Windows, but all versions.
17 MS_COREDLL - Code if the Python core is built as a DLL.
19 Note that the old defines "NT" and "WIN32" are still supported, but
22 Also note that neither "_M_IX86" or "_MSC_VER" should be used for
23 any purpose other than "Windows Intel x86 specific" and "Microsoft
24 compiler specific". Therefore, these should be very rare.
29 Some systems require special declarations for data items imported
30 or exported from dynamic link libraries. Note that the definition
31 of DL_IMPORT covers both cases. Define USE_DL_IMPORT for the client
32 of a DLL. Define USE_DL_EXPORT when making a DLL.
38 #define DONT_HAVE_SIG_ALARM
39 #define DONT_HAVE_SIG_PAUSE
42 #define EXEC_PREFIX ""
44 /* Microsoft C defines _MSC_VER */
46 #if defined(_MSC_VER) && _MSC_VER > 850
47 /* Start of defines for MS_WIN32 using VC++ 2.0 and up */
48 #define NT /* NT is obsolete - please use MS_WIN32 instead */
52 /* For NT the Python core is in a DLL by default. Test the
53 standard macro MS_COREDLL to find out. If you have an exception
54 you must define MS_NO_COREDLL (do not test this macro) */
56 #define MS_COREDLL /* Python core is in a DLL */
59 #endif /* !USE_DL_EXPORT */
60 #endif /* !MS_NO_COREDLL */
63 #define COMPILER "[MSC 32 bit (Intel)]"
65 #define COMPILER "[MSC (Unknown)]"
67 #define PYTHONPATH ".\\DLLs;.\\lib;.\\lib\\plat-win;.\\lib\\lib-tk"
70 #pragma warning(disable:4113)
82 #define DL_IMPORT(RTYPE) __declspec(dllimport) RTYPE
85 #define DL_IMPORT(RTYPE) __declspec(dllexport) RTYPE
86 #define DL_EXPORT(RTYPE) __declspec(dllexport) RTYPE
89 #define HAVE_LONG_LONG 1
90 #define LONG_LONG __int64
91 #endif /* _MSC_VER && > 850 */
93 #if defined(_MSC_VER) && _MSC_VER <= 850
94 /* Start of defines for 16-bit Windows using VC++ 1.5 */
95 #define COMPILER "[MSC 16-bit]"
98 #define PYTHONPATH ".;.\\lib;.\\lib\\plat-win;.\\lib\\dos-8x3"
99 #define IMPORT_8x3_NAMES
103 #define SIZEOF_LONG 4
104 #define SIZEOF_VOID_P 4
105 #pragma warning(disable:4113)
106 #define memcpy memmove /* memcpy dangerous pointer wrap in Win 3.1 */
110 /* Windows 3.1 will not tolerate any console io in a dll */
116 #define stdin ((FILE *)0)
117 #define stdout ((FILE *)1)
118 #define stderr ((FILE *)2)
119 #define fflush Py_fflush
120 int Py_fflush(FILE *);
121 #define fgets Py_fgets
122 char *Py_fgets(char *, int, FILE *);
123 #define fileno Py_fileno
124 int Py_fileno(FILE *);
125 #define fprintf Py_fprintf
126 int Py_fprintf(FILE *, const char *, ...);
127 #define printf Py_printf
128 int Py_printf(const char *, ...);
129 #define sscanf Py_sscanf
130 int Py_sscanf(const char *, const char *, ...);
134 int sscanf(const char *, const char *, ...);
140 /* use sockets, but not in a Netscape dll */
143 #endif /* MS_WIN16 */
145 /* The Watcom compiler defines __WATCOMC__ */
147 #define COMPILER "[Watcom]"
148 #define PYTHONPATH ".;.\\lib;.\\lib\\plat-win;.\\lib\\dos-8x3"
149 #define IMPORT_8x3_NAMES
157 #define NT /* NT is obsolete - please use MS_WIN32 instead */
163 #elif defined(__WINDOWS__)
170 #define SIZEOF_LONG 4
171 #define SIZEOF_VOID_P 4
175 #define SIZEOF_LONG 4
176 #define SIZEOF_VOID_P 4
178 #define VA_LIST_IS_ARRAY
180 #define HAVE_STRFTIME
182 #define DL_IMPORT(RTYPE) RTYPE __export
184 #endif /* __WATCOMC__ */
186 /* The Borland compiler defines __BORLANDC__ */
187 /* XXX These defines are likely incomplete, but should be easy to fix. */
189 #define COMPILER "[Borland]"
190 #define PYTHONPATH ".;.\\lib;.\\lib\\plat-win;.\\lib\\dos-8x3"
191 #define IMPORT_8x3_NAMES
193 #define HAVE_STRFTIME
195 #define DL_IMPORT(RTYPE) RTYPE __import
197 #endif /* BORLANDC */
199 /* End of compilers - finish up */
202 #define PLATFORM "win32"
205 #define PLATFORM "win16"
207 #define PLATFORM "dos"
208 #endif /* !MS_WIN16 */
209 #endif /* !MS_WIN32 */
213 #ifndef USE_DL_EXPORT
214 /* So nobody needs to specify the .lib in their Makefile any more */
216 #pragma comment(lib,"python15_d.lib")
218 #pragma comment(lib,"python15.lib")
220 #endif /* USE_DL_EXPORT */
223 #define SIZEOF_LONG 4
224 #define SIZEOF_LONG_LONG 8
227 #define SIZEOF_VOID_P 8
229 #define SIZEOF_VOID_P 4
232 /* Smaller stack size limit. (9500 would work too, but we're conservative.) */
234 #ifndef MAX_RECURSION_DEPTH
235 #define MAX_RECURSION_DEPTH 5000
239 /* EXPERIMENTAL FEATURE: When CHECK_IMPORT_CASE is defined, check case of
240 imported modules against case of file; this causes "import String" to fail
241 with a NameError exception when it finds "string.py". Normally, you set
242 the environment variable PYTHONCASEOK (to anything) to disable this
243 feature; to permanently disable it, #undef it here. This only works on
244 case-preserving filesystems; otherwise you definitely want it off. */
245 #define CHECK_IMPORT_CASE
248 /* Fairly standard from here! */
250 /* Define if on AIX 3.
251 System headers sometimes define this.
252 We just want to avoid a redefinition error message. */
254 /* #undef _ALL_SOURCE */
257 /* Define to empty if the keyword does not work. */
260 /* Define if you have dirent.h. */
261 /* #define DIRENT 1 */
263 /* Define to the type of elements in the array set by `getgroups'.
264 Usually this is either `int' or `gid_t'. */
265 /* #undef GETGROUPS_T */
267 /* Define to `int' if <sys/types.h> doesn't define. */
270 /* Define if your struct tm has tm_zone. */
271 /* #undef HAVE_TM_ZONE */
273 /* Define if you don't have tm_zone but do have the external array
277 /* Define if on MINIX. */
280 /* Define to `int' if <sys/types.h> doesn't define. */
283 /* Define if you don't have dirent.h, but have ndir.h. */
286 /* Define to `long' if <sys/types.h> doesn't define. */
289 /* Define to `int' if <sys/types.h> doesn't define. */
292 /* Define if the system does not provide POSIX.1 features except
293 with this defined. */
294 /* #undef _POSIX_1_SOURCE */
296 /* Define if you need to in order for stat and other things to work. */
297 /* #undef _POSIX_SOURCE */
299 /* Define as the return type of signal handlers (int or void). */
300 #define RETSIGTYPE void
302 /* Define to `unsigned' if <sys/types.h> doesn't define. */
305 /* Define if you have the ANSI C header files. */
306 #define STDC_HEADERS 1
308 /* Define if you don't have dirent.h, but have sys/dir.h. */
311 /* Define if you don't have dirent.h, but have sys/ndir.h. */
314 /* Define if you can safely include both <sys/time.h> and <time.h>. */
315 /* #undef TIME_WITH_SYS_TIME */
317 /* Define if your <sys/time.h> declares struct tm. */
318 /* #define TM_IN_SYS_TIME 1 */
320 /* Define to `int' if <sys/types.h> doesn't define. */
323 /* Define if the closedir function returns void instead of int. */
324 /* #undef VOID_CLOSEDIR */
326 /* Define if your <unistd.h> contains bad prototypes for exec*()
327 (as it does on SGI IRIX 4.x) */
328 /* #undef BAD_EXEC_PROTOTYPES */
330 /* Define if your compiler botches static forward declarations
331 (as it does on SCI ODT 3.0) */
332 #define BAD_STATIC_FORWARD 1
334 /* Define if getpgrp() must be called as getpgrp(0)
335 and (consequently) setpgrp() as setpgrp(0, 0). */
336 /* #undef GETPGRP_HAVE_ARGS */
338 /* Define this if your time.h defines altzone */
339 /* #define HAVE_ALTZONE */
341 /* Define if you have the putenv function. */
343 /* Does this exist on Win16? */
347 /* Define if your compiler supports function prototypes */
348 #define HAVE_PROTOTYPES
350 /* Define if you can safely include both <sys/select.h> and <sys/time.h>
351 (which you can't on SCO ODT 3.0). */
352 /* #undef SYS_SELECT_WITH_SYS_TIME */
354 /* Define if you want to use SGI (IRIX 4) dynamic linking.
355 This requires the "dl" library by Jack Jansen,
356 ftp://ftp.cwi.nl/pub/dynload/dl-1.6.tar.Z.
357 Don't bother on IRIX 5, it already has dynamic linking using SunOS
358 style shared libraries */
359 /* #undef WITH_SGI_DL */
361 /* Define if you want to emulate SGI (IRIX 4) dynamic linking.
362 This is rumoured to work on VAX (Ultrix), Sun3 (SunOS 3.4),
363 Sequent Symmetry (Dynix), and Atari ST.
364 This requires the "dl-dld" library,
365 ftp://ftp.cwi.nl/pub/dynload/dl-dld-1.1.tar.Z,
366 as well as the "GNU dld" library,
367 ftp://ftp.cwi.nl/pub/dynload/dld-3.2.3.tar.Z.
368 Don't bother on SunOS 4 or 5, they already have dynamic linking using
370 /* #undef WITH_DL_DLD */
372 /* Define if you want to compile in rudimentary thread support */
373 /* #undef WITH_THREAD */
375 /* Define if you want to use the GNU readline library */
376 /* #define WITH_READLINE 1 */
378 /* Define if you have clock. */
379 /* #define HAVE_CLOCK */
381 /* Define if you have ftime. */
384 /* Define if you have getpeername. */
385 #define HAVE_GETPEERNAME
387 /* Define if you have getpgrp. */
388 /* #undef HAVE_GETPGRP */
390 /* Define if you have getpid. */
393 /* Define if you have gettimeofday. */
394 /* #undef HAVE_GETTIMEOFDAY */
396 /* Define if you have getwd. */
397 /* #undef HAVE_GETWD */
399 /* Define if you have lstat. */
400 /* #undef HAVE_LSTAT */
402 /* Define if you have the mktime function. */
405 /* Define if you have nice. */
406 /* #undef HAVE_NICE */
408 /* Define if you have readlink. */
409 /* #undef HAVE_READLINK */
411 /* Define if you have select. */
412 /* #undef HAVE_SELECT */
414 /* Define if you have setpgid. */
415 /* #undef HAVE_SETPGID */
417 /* Define if you have setpgrp. */
418 /* #undef HAVE_SETPGRP */
420 /* Define if you have setsid. */
421 /* #undef HAVE_SETSID */
423 /* Define if you have setvbuf. */
426 /* Define if you have siginterrupt. */
427 /* #undef HAVE_SIGINTERRUPT */
429 /* Define if you have symlink. */
430 /* #undef HAVE_SYMLINK */
432 /* Define if you have tcgetpgrp. */
433 /* #undef HAVE_TCGETPGRP */
435 /* Define if you have tcsetpgrp. */
436 /* #undef HAVE_TCSETPGRP */
438 /* Define if you have times. */
439 /* #undef HAVE_TIMES */
441 /* Define if you have uname. */
442 /* #undef HAVE_UNAME */
444 /* Define if you have waitpid. */
445 /* #undef HAVE_WAITPID */
447 /* Define if you have the <dlfcn.h> header file. */
448 /* #undef HAVE_DLFCN_H */
450 /* Define if you have the <fcntl.h> header file. */
451 #define HAVE_FCNTL_H 1
453 /* Define if you have the <signal.h> header file. */
454 #define HAVE_SIGNAL_H 1
456 /* Define if you have the <stdarg.h> header file. */
457 #define HAVE_STDARG_H 1
459 /* Define if you have the <stdarg.h> prototypes. */
460 #define HAVE_STDARG_PROTOTYPES
462 /* Define if you have the <stddef.h> header file. */
463 #define HAVE_STDDEF_H 1
465 /* Define if you have the <stdlib.h> header file. */
466 #define HAVE_STDLIB_H 1
468 /* Define if you have the <sys/audioio.h> header file. */
469 /* #undef HAVE_SYS_AUDIOIO_H */
471 /* Define if you have the <sys/param.h> header file. */
472 /* #define HAVE_SYS_PARAM_H 1 */
474 /* Define if you have the <sys/select.h> header file. */
475 /* #define HAVE_SYS_SELECT_H 1 */
477 /* Define if you have the <sys/time.h> header file. */
478 /* #define HAVE_SYS_TIME_H 1 */
480 /* Define if you have the <sys/times.h> header file. */
481 /* #define HAVE_SYS_TIMES_H 1 */
483 /* Define if you have the <sys/un.h> header file. */
484 /* #define HAVE_SYS_UN_H 1 */
486 /* Define if you have the <sys/utime.h> header file. */
487 #define HAVE_SYS_UTIME_H 1
489 /* Define if you have the <sys/utsname.h> header file. */
490 /* #define HAVE_SYS_UTSNAME_H 1 */
492 /* Define if you have the <thread.h> header file. */
493 /* #undef HAVE_THREAD_H */
495 /* Define if you have the <unistd.h> header file. */
496 /* #define HAVE_UNISTD_H 1 */
498 /* Define if you have the <utime.h> header file. */
499 /* #define HAVE_UTIME_H 1 */
501 /* Define if you have the dl library (-ldl). */
502 /* #undef HAVE_LIBDL */
504 /* Define if you have the mpc library (-lmpc). */
505 /* #undef HAVE_LIBMPC */
507 /* Define if you have the nsl library (-lnsl). */
508 #define HAVE_LIBNSL 1
510 /* Define if you have the seq library (-lseq). */
511 /* #undef HAVE_LIBSEQ */
513 /* Define if you have the socket library (-lsocket). */
514 #define HAVE_LIBSOCKET 1
516 /* Define if you have the sun library (-lsun). */
517 /* #undef HAVE_LIBSUN */
519 /* Define if you have the termcap library (-ltermcap). */
520 /* #undef HAVE_LIBTERMCAP */
522 /* Define if you have the termlib library (-ltermlib). */
523 /* #undef HAVE_LIBTERMLIB */
525 /* Define if you have the thread library (-lthread). */
526 /* #undef HAVE_LIBTHREAD */
527 #endif /* !Py_CONFIG_H */