Chris@87
|
1 #ifndef Py_CONFIG_H
|
Chris@87
|
2 #define Py_CONFIG_H
|
Chris@87
|
3
|
Chris@87
|
4 /* pyconfig.h. NOT Generated automatically by configure.
|
Chris@87
|
5
|
Chris@87
|
6 This is a manually maintained version used for the Watcom,
|
Chris@87
|
7 Borland and Microsoft Visual C++ compilers. It is a
|
Chris@87
|
8 standard part of the Python distribution.
|
Chris@87
|
9
|
Chris@87
|
10 WINDOWS DEFINES:
|
Chris@87
|
11 The code specific to Windows should be wrapped around one of
|
Chris@87
|
12 the following #defines
|
Chris@87
|
13
|
Chris@87
|
14 MS_WIN64 - Code specific to the MS Win64 API
|
Chris@87
|
15 MS_WIN32 - Code specific to the MS Win32 (and Win64) API (obsolete, this covers all supported APIs)
|
Chris@87
|
16 MS_WINDOWS - Code specific to Windows, but all versions.
|
Chris@87
|
17 MS_WINCE - Code specific to Windows CE
|
Chris@87
|
18 Py_ENABLE_SHARED - Code if the Python core is built as a DLL.
|
Chris@87
|
19
|
Chris@87
|
20 Also note that neither "_M_IX86" or "_MSC_VER" should be used for
|
Chris@87
|
21 any purpose other than "Windows Intel x86 specific" and "Microsoft
|
Chris@87
|
22 compiler specific". Therefore, these should be very rare.
|
Chris@87
|
23
|
Chris@87
|
24
|
Chris@87
|
25 NOTE: The following symbols are deprecated:
|
Chris@87
|
26 NT, USE_DL_EXPORT, USE_DL_IMPORT, DL_EXPORT, DL_IMPORT
|
Chris@87
|
27 MS_CORE_DLL.
|
Chris@87
|
28
|
Chris@87
|
29 WIN32 is still required for the locale module.
|
Chris@87
|
30
|
Chris@87
|
31 */
|
Chris@87
|
32
|
Chris@87
|
33 #ifdef _WIN32_WCE
|
Chris@87
|
34 #define MS_WINCE
|
Chris@87
|
35 #endif
|
Chris@87
|
36
|
Chris@87
|
37 /* Deprecated USE_DL_EXPORT macro - please use Py_BUILD_CORE */
|
Chris@87
|
38 #ifdef USE_DL_EXPORT
|
Chris@87
|
39 # define Py_BUILD_CORE
|
Chris@87
|
40 #endif /* USE_DL_EXPORT */
|
Chris@87
|
41
|
Chris@87
|
42 /* Visual Studio 2005 introduces deprecation warnings for
|
Chris@87
|
43 "insecure" and POSIX functions. The insecure functions should
|
Chris@87
|
44 be replaced by *_s versions (according to Microsoft); the
|
Chris@87
|
45 POSIX functions by _* versions (which, according to Microsoft,
|
Chris@87
|
46 would be ISO C conforming). Neither renaming is feasible, so
|
Chris@87
|
47 we just silence the warnings. */
|
Chris@87
|
48
|
Chris@87
|
49 #ifndef _CRT_SECURE_NO_DEPRECATE
|
Chris@87
|
50 #define _CRT_SECURE_NO_DEPRECATE 1
|
Chris@87
|
51 #endif
|
Chris@87
|
52 #ifndef _CRT_NONSTDC_NO_DEPRECATE
|
Chris@87
|
53 #define _CRT_NONSTDC_NO_DEPRECATE 1
|
Chris@87
|
54 #endif
|
Chris@87
|
55
|
Chris@87
|
56 /* Windows CE does not have these */
|
Chris@87
|
57 #ifndef MS_WINCE
|
Chris@87
|
58 #define HAVE_IO_H
|
Chris@87
|
59 #define HAVE_SYS_UTIME_H
|
Chris@87
|
60 #define HAVE_TEMPNAM
|
Chris@87
|
61 #define HAVE_TMPFILE
|
Chris@87
|
62 #define HAVE_TMPNAM
|
Chris@87
|
63 #define HAVE_CLOCK
|
Chris@87
|
64 #define HAVE_STRERROR
|
Chris@87
|
65 #endif
|
Chris@87
|
66
|
Chris@87
|
67 #ifdef HAVE_IO_H
|
Chris@87
|
68 #include <io.h>
|
Chris@87
|
69 #endif
|
Chris@87
|
70
|
Chris@87
|
71 #define HAVE_HYPOT
|
Chris@87
|
72 #define HAVE_STRFTIME
|
Chris@87
|
73 #define DONT_HAVE_SIG_ALARM
|
Chris@87
|
74 #define DONT_HAVE_SIG_PAUSE
|
Chris@87
|
75 #define LONG_BIT 32
|
Chris@87
|
76 #define WORD_BIT 32
|
Chris@87
|
77 #define PREFIX ""
|
Chris@87
|
78 #define EXEC_PREFIX ""
|
Chris@87
|
79
|
Chris@87
|
80 #define MS_WIN32 /* only support win32 and greater. */
|
Chris@87
|
81 #define MS_WINDOWS
|
Chris@87
|
82 #ifndef PYTHONPATH
|
Chris@87
|
83 # define PYTHONPATH ".\\DLLs;.\\lib;.\\lib\\plat-win;.\\lib\\lib-tk"
|
Chris@87
|
84 #endif
|
Chris@87
|
85 #define NT_THREADS
|
Chris@87
|
86 #define WITH_THREAD
|
Chris@87
|
87 #ifndef NETSCAPE_PI
|
Chris@87
|
88 #define USE_SOCKET
|
Chris@87
|
89 #endif
|
Chris@87
|
90
|
Chris@87
|
91 /* CE6 doesn't have strdup() but _strdup(). Assume the same for earlier versions. */
|
Chris@87
|
92 #if defined(MS_WINCE)
|
Chris@87
|
93 # include <stdlib.h>
|
Chris@87
|
94 # define strdup _strdup
|
Chris@87
|
95 #endif
|
Chris@87
|
96
|
Chris@87
|
97 #ifdef MS_WINCE
|
Chris@87
|
98 /* Windows CE does not support environment variables */
|
Chris@87
|
99 #define getenv(v) (NULL)
|
Chris@87
|
100 #define environ (NULL)
|
Chris@87
|
101 #endif
|
Chris@87
|
102
|
Chris@87
|
103 /* Compiler specific defines */
|
Chris@87
|
104
|
Chris@87
|
105 /* ------------------------------------------------------------------------*/
|
Chris@87
|
106 /* Microsoft C defines _MSC_VER */
|
Chris@87
|
107 #ifdef _MSC_VER
|
Chris@87
|
108
|
Chris@87
|
109 /* We want COMPILER to expand to a string containing _MSC_VER's *value*.
|
Chris@87
|
110 * This is horridly tricky, because the stringization operator only works
|
Chris@87
|
111 * on macro arguments, and doesn't evaluate macros passed *as* arguments.
|
Chris@87
|
112 * Attempts simpler than the following appear doomed to produce "_MSC_VER"
|
Chris@87
|
113 * literally in the string.
|
Chris@87
|
114 */
|
Chris@87
|
115 #define _Py_PASTE_VERSION(SUFFIX) \
|
Chris@87
|
116 ("[MSC v." _Py_STRINGIZE(_MSC_VER) " " SUFFIX "]")
|
Chris@87
|
117 /* e.g., this produces, after compile-time string catenation,
|
Chris@87
|
118 * ("[MSC v.1200 32 bit (Intel)]")
|
Chris@87
|
119 *
|
Chris@87
|
120 * _Py_STRINGIZE(_MSC_VER) expands to
|
Chris@87
|
121 * _Py_STRINGIZE1((_MSC_VER)) expands to
|
Chris@87
|
122 * _Py_STRINGIZE2(_MSC_VER) but as this call is the result of token-pasting
|
Chris@87
|
123 * it's scanned again for macros and so further expands to (under MSVC 6)
|
Chris@87
|
124 * _Py_STRINGIZE2(1200) which then expands to
|
Chris@87
|
125 * "1200"
|
Chris@87
|
126 */
|
Chris@87
|
127 #define _Py_STRINGIZE(X) _Py_STRINGIZE1((X))
|
Chris@87
|
128 #define _Py_STRINGIZE1(X) _Py_STRINGIZE2 ## X
|
Chris@87
|
129 #define _Py_STRINGIZE2(X) #X
|
Chris@87
|
130
|
Chris@87
|
131 /* MSVC defines _WINxx to differentiate the windows platform types
|
Chris@87
|
132
|
Chris@87
|
133 Note that for compatibility reasons _WIN32 is defined on Win32
|
Chris@87
|
134 *and* on Win64. For the same reasons, in Python, MS_WIN32 is
|
Chris@87
|
135 defined on Win32 *and* Win64. Win32 only code must therefore be
|
Chris@87
|
136 guarded as follows:
|
Chris@87
|
137 #if defined(MS_WIN32) && !defined(MS_WIN64)
|
Chris@87
|
138 Some modules are disabled on Itanium processors, therefore we
|
Chris@87
|
139 have MS_WINI64 set for those targets, otherwise MS_WINX64
|
Chris@87
|
140 */
|
Chris@87
|
141 #ifdef _WIN64
|
Chris@87
|
142 #define MS_WIN64
|
Chris@87
|
143 #endif
|
Chris@87
|
144
|
Chris@87
|
145 /* set the COMPILER */
|
Chris@87
|
146 #ifdef MS_WIN64
|
Chris@87
|
147 #if defined(_M_IA64)
|
Chris@87
|
148 #define COMPILER _Py_PASTE_VERSION("64 bit (Itanium)")
|
Chris@87
|
149 #define MS_WINI64
|
Chris@87
|
150 #elif defined(_M_X64) || defined(_M_AMD64)
|
Chris@87
|
151 #define COMPILER _Py_PASTE_VERSION("64 bit (AMD64)")
|
Chris@87
|
152 #define MS_WINX64
|
Chris@87
|
153 #else
|
Chris@87
|
154 #define COMPILER _Py_PASTE_VERSION("64 bit (Unknown)")
|
Chris@87
|
155 #endif
|
Chris@87
|
156 #endif /* MS_WIN64 */
|
Chris@87
|
157
|
Chris@87
|
158 /* set the version macros for the windows headers */
|
Chris@87
|
159 #ifdef MS_WINX64
|
Chris@87
|
160 /* 64 bit only runs on XP or greater */
|
Chris@87
|
161 #define Py_WINVER _WIN32_WINNT_WINXP
|
Chris@87
|
162 #define Py_NTDDI NTDDI_WINXP
|
Chris@87
|
163 #else
|
Chris@87
|
164 /* Python 2.6+ requires Windows 2000 or greater */
|
Chris@87
|
165 #ifdef _WIN32_WINNT_WIN2K
|
Chris@87
|
166 #define Py_WINVER _WIN32_WINNT_WIN2K
|
Chris@87
|
167 #else
|
Chris@87
|
168 #define Py_WINVER 0x0500
|
Chris@87
|
169 #endif
|
Chris@87
|
170 #define Py_NTDDI NTDDI_WIN2KSP4
|
Chris@87
|
171 #endif
|
Chris@87
|
172
|
Chris@87
|
173 /* We only set these values when building Python - we don't want to force
|
Chris@87
|
174 these values on extensions, as that will affect the prototypes and
|
Chris@87
|
175 structures exposed in the Windows headers. Even when building Python, we
|
Chris@87
|
176 allow a single source file to override this - they may need access to
|
Chris@87
|
177 structures etc so it can optionally use new Windows features if it
|
Chris@87
|
178 determines at runtime they are available.
|
Chris@87
|
179 */
|
Chris@87
|
180 #if defined(Py_BUILD_CORE) || defined(Py_BUILD_CORE_MODULE)
|
Chris@87
|
181 #ifndef NTDDI_VERSION
|
Chris@87
|
182 #define NTDDI_VERSION Py_NTDDI
|
Chris@87
|
183 #endif
|
Chris@87
|
184 #ifndef WINVER
|
Chris@87
|
185 #define WINVER Py_WINVER
|
Chris@87
|
186 #endif
|
Chris@87
|
187 #ifndef _WIN32_WINNT
|
Chris@87
|
188 #define _WIN32_WINNT Py_WINVER
|
Chris@87
|
189 #endif
|
Chris@87
|
190 #endif
|
Chris@87
|
191
|
Chris@87
|
192 /* _W64 is not defined for VC6 or eVC4 */
|
Chris@87
|
193 #ifndef _W64
|
Chris@87
|
194 #define _W64
|
Chris@87
|
195 #endif
|
Chris@87
|
196
|
Chris@87
|
197 /* Define like size_t, omitting the "unsigned" */
|
Chris@87
|
198 #ifdef MS_WIN64
|
Chris@87
|
199 typedef __int64 ssize_t;
|
Chris@87
|
200 #else
|
Chris@87
|
201 typedef _W64 int ssize_t;
|
Chris@87
|
202 #endif
|
Chris@87
|
203 #define HAVE_SSIZE_T 1
|
Chris@87
|
204
|
Chris@87
|
205 #if defined(MS_WIN32) && !defined(MS_WIN64)
|
Chris@87
|
206 #ifdef _M_IX86
|
Chris@87
|
207 #define COMPILER _Py_PASTE_VERSION("32 bit (Intel)")
|
Chris@87
|
208 #else
|
Chris@87
|
209 #define COMPILER _Py_PASTE_VERSION("32 bit (Unknown)")
|
Chris@87
|
210 #endif
|
Chris@87
|
211 #endif /* MS_WIN32 && !MS_WIN64 */
|
Chris@87
|
212
|
Chris@87
|
213 typedef int pid_t;
|
Chris@87
|
214
|
Chris@87
|
215 #include <float.h>
|
Chris@87
|
216 #define Py_IS_NAN _isnan
|
Chris@87
|
217 #define Py_IS_INFINITY(X) (!_finite(X) && !_isnan(X))
|
Chris@87
|
218 #define Py_IS_FINITE(X) _finite(X)
|
Chris@87
|
219 #define copysign _copysign
|
Chris@87
|
220
|
Chris@87
|
221 /* VS 2010 and above already defines hypot as _hypot */
|
Chris@87
|
222 #if _MSC_VER < 1600
|
Chris@87
|
223 #define hypot _hypot
|
Chris@87
|
224 #endif
|
Chris@87
|
225
|
Chris@87
|
226 #endif /* _MSC_VER */
|
Chris@87
|
227
|
Chris@87
|
228 /* define some ANSI types that are not defined in earlier Win headers */
|
Chris@87
|
229 #if defined(_MSC_VER) && _MSC_VER >= 1200
|
Chris@87
|
230 /* This file only exists in VC 6.0 or higher */
|
Chris@87
|
231 #include <basetsd.h>
|
Chris@87
|
232 #endif
|
Chris@87
|
233
|
Chris@87
|
234 /* ------------------------------------------------------------------------*/
|
Chris@87
|
235 /* The Borland compiler defines __BORLANDC__ */
|
Chris@87
|
236 /* XXX These defines are likely incomplete, but should be easy to fix. */
|
Chris@87
|
237 #ifdef __BORLANDC__
|
Chris@87
|
238 #define COMPILER "[Borland]"
|
Chris@87
|
239
|
Chris@87
|
240 #ifdef _WIN32
|
Chris@87
|
241 /* tested with BCC 5.5 (__BORLANDC__ >= 0x0550)
|
Chris@87
|
242 */
|
Chris@87
|
243
|
Chris@87
|
244 typedef int pid_t;
|
Chris@87
|
245 /* BCC55 seems to understand __declspec(dllimport), it is used in its
|
Chris@87
|
246 own header files (winnt.h, ...) - so we can do nothing and get the default*/
|
Chris@87
|
247
|
Chris@87
|
248 #undef HAVE_SYS_UTIME_H
|
Chris@87
|
249 #define HAVE_UTIME_H
|
Chris@87
|
250 #define HAVE_DIRENT_H
|
Chris@87
|
251
|
Chris@87
|
252 /* rename a few functions for the Borland compiler */
|
Chris@87
|
253 #include <io.h>
|
Chris@87
|
254 #define _chsize chsize
|
Chris@87
|
255 #define _setmode setmode
|
Chris@87
|
256
|
Chris@87
|
257 #else /* !_WIN32 */
|
Chris@87
|
258 #error "Only Win32 and later are supported"
|
Chris@87
|
259 #endif /* !_WIN32 */
|
Chris@87
|
260
|
Chris@87
|
261 #endif /* BORLANDC */
|
Chris@87
|
262
|
Chris@87
|
263 /* ------------------------------------------------------------------------*/
|
Chris@87
|
264 /* egcs/gnu-win32 defines __GNUC__ and _WIN32 */
|
Chris@87
|
265 #if defined(__GNUC__) && defined(_WIN32)
|
Chris@87
|
266 /* XXX These defines are likely incomplete, but should be easy to fix.
|
Chris@87
|
267 They should be complete enough to build extension modules. */
|
Chris@87
|
268 /* Suggested by Rene Liebscher <R.Liebscher@gmx.de> to avoid a GCC 2.91.*
|
Chris@87
|
269 bug that requires structure imports. More recent versions of the
|
Chris@87
|
270 compiler don't exhibit this bug.
|
Chris@87
|
271 */
|
Chris@87
|
272 #if (__GNUC__==2) && (__GNUC_MINOR__<=91)
|
Chris@87
|
273 #warning "Please use an up-to-date version of gcc! (>2.91 recommended)"
|
Chris@87
|
274 #endif
|
Chris@87
|
275
|
Chris@87
|
276 #define COMPILER "[gcc]"
|
Chris@87
|
277 #define hypot _hypot
|
Chris@87
|
278 #define PY_LONG_LONG long long
|
Chris@87
|
279 #define PY_LLONG_MIN LLONG_MIN
|
Chris@87
|
280 #define PY_LLONG_MAX LLONG_MAX
|
Chris@87
|
281 #define PY_ULLONG_MAX ULLONG_MAX
|
Chris@87
|
282 #endif /* GNUC */
|
Chris@87
|
283
|
Chris@87
|
284 /* ------------------------------------------------------------------------*/
|
Chris@87
|
285 /* lcc-win32 defines __LCC__ */
|
Chris@87
|
286 #if defined(__LCC__)
|
Chris@87
|
287 /* XXX These defines are likely incomplete, but should be easy to fix.
|
Chris@87
|
288 They should be complete enough to build extension modules. */
|
Chris@87
|
289
|
Chris@87
|
290 #define COMPILER "[lcc-win32]"
|
Chris@87
|
291 typedef int pid_t;
|
Chris@87
|
292 /* __declspec() is supported here too - do nothing to get the defaults */
|
Chris@87
|
293
|
Chris@87
|
294 #endif /* LCC */
|
Chris@87
|
295
|
Chris@87
|
296 /* ------------------------------------------------------------------------*/
|
Chris@87
|
297 /* End of compilers - finish up */
|
Chris@87
|
298
|
Chris@87
|
299 #ifndef NO_STDIO_H
|
Chris@87
|
300 # include <stdio.h>
|
Chris@87
|
301 #endif
|
Chris@87
|
302
|
Chris@87
|
303 /* 64 bit ints are usually spelt __int64 unless compiler has overridden */
|
Chris@87
|
304 #define HAVE_LONG_LONG 1
|
Chris@87
|
305 #ifndef PY_LONG_LONG
|
Chris@87
|
306 # define PY_LONG_LONG __int64
|
Chris@87
|
307 # define PY_LLONG_MAX _I64_MAX
|
Chris@87
|
308 # define PY_LLONG_MIN _I64_MIN
|
Chris@87
|
309 # define PY_ULLONG_MAX _UI64_MAX
|
Chris@87
|
310 #endif
|
Chris@87
|
311
|
Chris@87
|
312 /* For Windows the Python core is in a DLL by default. Test
|
Chris@87
|
313 Py_NO_ENABLE_SHARED to find out. Also support MS_NO_COREDLL for b/w compat */
|
Chris@87
|
314 #if !defined(MS_NO_COREDLL) && !defined(Py_NO_ENABLE_SHARED)
|
Chris@87
|
315 # define Py_ENABLE_SHARED 1 /* standard symbol for shared library */
|
Chris@87
|
316 # define MS_COREDLL /* deprecated old symbol */
|
Chris@87
|
317 #endif /* !MS_NO_COREDLL && ... */
|
Chris@87
|
318
|
Chris@87
|
319 /* All windows compilers that use this header support __declspec */
|
Chris@87
|
320 #define HAVE_DECLSPEC_DLL
|
Chris@87
|
321
|
Chris@87
|
322 /* For an MSVC DLL, we can nominate the .lib files used by extensions */
|
Chris@87
|
323 #ifdef MS_COREDLL
|
Chris@87
|
324 # ifndef Py_BUILD_CORE /* not building the core - must be an ext */
|
Chris@87
|
325 # if defined(_MSC_VER)
|
Chris@87
|
326 /* So MSVC users need not specify the .lib file in
|
Chris@87
|
327 their Makefile (other compilers are generally
|
Chris@87
|
328 taken care of by distutils.) */
|
Chris@87
|
329 # ifdef _DEBUG
|
Chris@87
|
330 # pragma comment(lib,"python27_d.lib")
|
Chris@87
|
331 # else
|
Chris@87
|
332 # pragma comment(lib,"python27.lib")
|
Chris@87
|
333 # endif /* _DEBUG */
|
Chris@87
|
334 # endif /* _MSC_VER */
|
Chris@87
|
335 # endif /* Py_BUILD_CORE */
|
Chris@87
|
336 #endif /* MS_COREDLL */
|
Chris@87
|
337
|
Chris@87
|
338 #if defined(MS_WIN64)
|
Chris@87
|
339 /* maintain "win32" sys.platform for backward compatibility of Python code,
|
Chris@87
|
340 the Win64 API should be close enough to the Win32 API to make this
|
Chris@87
|
341 preferable */
|
Chris@87
|
342 # define PLATFORM "win32"
|
Chris@87
|
343 # define SIZEOF_VOID_P 8
|
Chris@87
|
344 # define SIZEOF_TIME_T 8
|
Chris@87
|
345 # define SIZEOF_OFF_T 4
|
Chris@87
|
346 # define SIZEOF_FPOS_T 8
|
Chris@87
|
347 # define SIZEOF_HKEY 8
|
Chris@87
|
348 # define SIZEOF_SIZE_T 8
|
Chris@87
|
349 /* configure.ac defines HAVE_LARGEFILE_SUPPORT iff HAVE_LONG_LONG,
|
Chris@87
|
350 sizeof(off_t) > sizeof(long), and sizeof(PY_LONG_LONG) >= sizeof(off_t).
|
Chris@87
|
351 On Win64 the second condition is not true, but if fpos_t replaces off_t
|
Chris@87
|
352 then this is true. The uses of HAVE_LARGEFILE_SUPPORT imply that Win64
|
Chris@87
|
353 should define this. */
|
Chris@87
|
354 # define HAVE_LARGEFILE_SUPPORT
|
Chris@87
|
355 #elif defined(MS_WIN32)
|
Chris@87
|
356 # define PLATFORM "win32"
|
Chris@87
|
357 # define HAVE_LARGEFILE_SUPPORT
|
Chris@87
|
358 # define SIZEOF_VOID_P 4
|
Chris@87
|
359 # define SIZEOF_OFF_T 4
|
Chris@87
|
360 # define SIZEOF_FPOS_T 8
|
Chris@87
|
361 # define SIZEOF_HKEY 4
|
Chris@87
|
362 # define SIZEOF_SIZE_T 4
|
Chris@87
|
363 /* MS VS2005 changes time_t to an 64-bit type on all platforms */
|
Chris@87
|
364 # if defined(_MSC_VER) && _MSC_VER >= 1400
|
Chris@87
|
365 # define SIZEOF_TIME_T 8
|
Chris@87
|
366 # else
|
Chris@87
|
367 # define SIZEOF_TIME_T 4
|
Chris@87
|
368 # endif
|
Chris@87
|
369 #endif
|
Chris@87
|
370
|
Chris@87
|
371 #ifdef _DEBUG
|
Chris@87
|
372 # define Py_DEBUG
|
Chris@87
|
373 #endif
|
Chris@87
|
374
|
Chris@87
|
375
|
Chris@87
|
376 #ifdef MS_WIN32
|
Chris@87
|
377
|
Chris@87
|
378 #define SIZEOF_SHORT 2
|
Chris@87
|
379 #define SIZEOF_INT 4
|
Chris@87
|
380 #define SIZEOF_LONG 4
|
Chris@87
|
381 #define SIZEOF_LONG_LONG 8
|
Chris@87
|
382 #define SIZEOF_DOUBLE 8
|
Chris@87
|
383 #define SIZEOF_FLOAT 4
|
Chris@87
|
384
|
Chris@87
|
385 /* VC 7.1 has them and VC 6.0 does not. VC 6.0 has a version number of 1200.
|
Chris@87
|
386 Microsoft eMbedded Visual C++ 4.0 has a version number of 1201 and doesn't
|
Chris@87
|
387 define these.
|
Chris@87
|
388 If some compiler does not provide them, modify the #if appropriately. */
|
Chris@87
|
389 #if defined(_MSC_VER)
|
Chris@87
|
390 #if _MSC_VER > 1300
|
Chris@87
|
391 #define HAVE_UINTPTR_T 1
|
Chris@87
|
392 #define HAVE_INTPTR_T 1
|
Chris@87
|
393 #else
|
Chris@87
|
394 /* VC6, VS 2002 and eVC4 don't support the C99 LL suffix for 64-bit integer literals */
|
Chris@87
|
395 #define Py_LL(x) x##I64
|
Chris@87
|
396 #endif /* _MSC_VER > 1200 */
|
Chris@87
|
397 #endif /* _MSC_VER */
|
Chris@87
|
398
|
Chris@87
|
399 #endif
|
Chris@87
|
400
|
Chris@87
|
401 /* define signed and unsigned exact-width 32-bit and 64-bit types, used in the
|
Chris@87
|
402 implementation of Python long integers. */
|
Chris@87
|
403 #ifndef PY_UINT32_T
|
Chris@87
|
404 #if SIZEOF_INT == 4
|
Chris@87
|
405 #define HAVE_UINT32_T 1
|
Chris@87
|
406 #define PY_UINT32_T unsigned int
|
Chris@87
|
407 #elif SIZEOF_LONG == 4
|
Chris@87
|
408 #define HAVE_UINT32_T 1
|
Chris@87
|
409 #define PY_UINT32_T unsigned long
|
Chris@87
|
410 #endif
|
Chris@87
|
411 #endif
|
Chris@87
|
412
|
Chris@87
|
413 #ifndef PY_UINT64_T
|
Chris@87
|
414 #if SIZEOF_LONG_LONG == 8
|
Chris@87
|
415 #define HAVE_UINT64_T 1
|
Chris@87
|
416 #define PY_UINT64_T unsigned PY_LONG_LONG
|
Chris@87
|
417 #endif
|
Chris@87
|
418 #endif
|
Chris@87
|
419
|
Chris@87
|
420 #ifndef PY_INT32_T
|
Chris@87
|
421 #if SIZEOF_INT == 4
|
Chris@87
|
422 #define HAVE_INT32_T 1
|
Chris@87
|
423 #define PY_INT32_T int
|
Chris@87
|
424 #elif SIZEOF_LONG == 4
|
Chris@87
|
425 #define HAVE_INT32_T 1
|
Chris@87
|
426 #define PY_INT32_T long
|
Chris@87
|
427 #endif
|
Chris@87
|
428 #endif
|
Chris@87
|
429
|
Chris@87
|
430 #ifndef PY_INT64_T
|
Chris@87
|
431 #if SIZEOF_LONG_LONG == 8
|
Chris@87
|
432 #define HAVE_INT64_T 1
|
Chris@87
|
433 #define PY_INT64_T PY_LONG_LONG
|
Chris@87
|
434 #endif
|
Chris@87
|
435 #endif
|
Chris@87
|
436
|
Chris@87
|
437 /* Fairly standard from here! */
|
Chris@87
|
438
|
Chris@87
|
439 /* Define to 1 if you have the `copysign' function. */
|
Chris@87
|
440 #define HAVE_COPYSIGN 1
|
Chris@87
|
441
|
Chris@87
|
442 /* Define to 1 if you have the `round' function. */
|
Chris@87
|
443 #if _MSC_VER >= 1800
|
Chris@87
|
444 #define HAVE_ROUND 1
|
Chris@87
|
445 #endif
|
Chris@87
|
446
|
Chris@87
|
447 /* Define to 1 if you have the `isinf' macro. */
|
Chris@87
|
448 #define HAVE_DECL_ISINF 1
|
Chris@87
|
449
|
Chris@87
|
450 /* Define to 1 if you have the `isnan' function. */
|
Chris@87
|
451 #define HAVE_DECL_ISNAN 1
|
Chris@87
|
452
|
Chris@87
|
453 /* Define if on AIX 3.
|
Chris@87
|
454 System headers sometimes define this.
|
Chris@87
|
455 We just want to avoid a redefinition error message. */
|
Chris@87
|
456 #ifndef _ALL_SOURCE
|
Chris@87
|
457 /* #undef _ALL_SOURCE */
|
Chris@87
|
458 #endif
|
Chris@87
|
459
|
Chris@87
|
460 /* Define to empty if the keyword does not work. */
|
Chris@87
|
461 /* #define const */
|
Chris@87
|
462
|
Chris@87
|
463 /* Define to 1 if you have the <conio.h> header file. */
|
Chris@87
|
464 #ifndef MS_WINCE
|
Chris@87
|
465 #define HAVE_CONIO_H 1
|
Chris@87
|
466 #endif
|
Chris@87
|
467
|
Chris@87
|
468 /* Define to 1 if you have the <direct.h> header file. */
|
Chris@87
|
469 #ifndef MS_WINCE
|
Chris@87
|
470 #define HAVE_DIRECT_H 1
|
Chris@87
|
471 #endif
|
Chris@87
|
472
|
Chris@87
|
473 /* Define if you have dirent.h. */
|
Chris@87
|
474 /* #define DIRENT 1 */
|
Chris@87
|
475
|
Chris@87
|
476 /* Define to the type of elements in the array set by `getgroups'.
|
Chris@87
|
477 Usually this is either `int' or `gid_t'. */
|
Chris@87
|
478 /* #undef GETGROUPS_T */
|
Chris@87
|
479
|
Chris@87
|
480 /* Define to `int' if <sys/types.h> doesn't define. */
|
Chris@87
|
481 /* #undef gid_t */
|
Chris@87
|
482
|
Chris@87
|
483 /* Define if your struct tm has tm_zone. */
|
Chris@87
|
484 /* #undef HAVE_TM_ZONE */
|
Chris@87
|
485
|
Chris@87
|
486 /* Define if you don't have tm_zone but do have the external array
|
Chris@87
|
487 tzname. */
|
Chris@87
|
488 #define HAVE_TZNAME
|
Chris@87
|
489
|
Chris@87
|
490 /* Define to `int' if <sys/types.h> doesn't define. */
|
Chris@87
|
491 /* #undef mode_t */
|
Chris@87
|
492
|
Chris@87
|
493 /* Define if you don't have dirent.h, but have ndir.h. */
|
Chris@87
|
494 /* #undef NDIR */
|
Chris@87
|
495
|
Chris@87
|
496 /* Define to `long' if <sys/types.h> doesn't define. */
|
Chris@87
|
497 /* #undef off_t */
|
Chris@87
|
498
|
Chris@87
|
499 /* Define to `int' if <sys/types.h> doesn't define. */
|
Chris@87
|
500 /* #undef pid_t */
|
Chris@87
|
501
|
Chris@87
|
502 /* Define if the system does not provide POSIX.1 features except
|
Chris@87
|
503 with this defined. */
|
Chris@87
|
504 /* #undef _POSIX_1_SOURCE */
|
Chris@87
|
505
|
Chris@87
|
506 /* Define if you need to in order for stat and other things to work. */
|
Chris@87
|
507 /* #undef _POSIX_SOURCE */
|
Chris@87
|
508
|
Chris@87
|
509 /* Define as the return type of signal handlers (int or void). */
|
Chris@87
|
510 #define RETSIGTYPE void
|
Chris@87
|
511
|
Chris@87
|
512 /* Define to `unsigned' if <sys/types.h> doesn't define. */
|
Chris@87
|
513 /* #undef size_t */
|
Chris@87
|
514
|
Chris@87
|
515 /* Define if you have the ANSI C header files. */
|
Chris@87
|
516 #define STDC_HEADERS 1
|
Chris@87
|
517
|
Chris@87
|
518 /* Define if you don't have dirent.h, but have sys/dir.h. */
|
Chris@87
|
519 /* #undef SYSDIR */
|
Chris@87
|
520
|
Chris@87
|
521 /* Define if you don't have dirent.h, but have sys/ndir.h. */
|
Chris@87
|
522 /* #undef SYSNDIR */
|
Chris@87
|
523
|
Chris@87
|
524 /* Define if you can safely include both <sys/time.h> and <time.h>. */
|
Chris@87
|
525 /* #undef TIME_WITH_SYS_TIME */
|
Chris@87
|
526
|
Chris@87
|
527 /* Define if your <sys/time.h> declares struct tm. */
|
Chris@87
|
528 /* #define TM_IN_SYS_TIME 1 */
|
Chris@87
|
529
|
Chris@87
|
530 /* Define to `int' if <sys/types.h> doesn't define. */
|
Chris@87
|
531 /* #undef uid_t */
|
Chris@87
|
532
|
Chris@87
|
533 /* Define if the closedir function returns void instead of int. */
|
Chris@87
|
534 /* #undef VOID_CLOSEDIR */
|
Chris@87
|
535
|
Chris@87
|
536 /* Define if getpgrp() must be called as getpgrp(0)
|
Chris@87
|
537 and (consequently) setpgrp() as setpgrp(0, 0). */
|
Chris@87
|
538 /* #undef GETPGRP_HAVE_ARGS */
|
Chris@87
|
539
|
Chris@87
|
540 /* Define this if your time.h defines altzone */
|
Chris@87
|
541 /* #define HAVE_ALTZONE */
|
Chris@87
|
542
|
Chris@87
|
543 /* Define if you have the putenv function. */
|
Chris@87
|
544 #ifndef MS_WINCE
|
Chris@87
|
545 #define HAVE_PUTENV
|
Chris@87
|
546 #endif
|
Chris@87
|
547
|
Chris@87
|
548 /* Define if your compiler supports function prototypes */
|
Chris@87
|
549 #define HAVE_PROTOTYPES
|
Chris@87
|
550
|
Chris@87
|
551 /* Define if you can safely include both <sys/select.h> and <sys/time.h>
|
Chris@87
|
552 (which you can't on SCO ODT 3.0). */
|
Chris@87
|
553 /* #undef SYS_SELECT_WITH_SYS_TIME */
|
Chris@87
|
554
|
Chris@87
|
555 /* Define if you want documentation strings in extension modules */
|
Chris@87
|
556 #define WITH_DOC_STRINGS 1
|
Chris@87
|
557
|
Chris@87
|
558 /* Define if you want to compile in rudimentary thread support */
|
Chris@87
|
559 /* #undef WITH_THREAD */
|
Chris@87
|
560
|
Chris@87
|
561 /* Define if you want to use the GNU readline library */
|
Chris@87
|
562 /* #define WITH_READLINE 1 */
|
Chris@87
|
563
|
Chris@87
|
564 /* Define if you want to have a Unicode type. */
|
Chris@87
|
565 #define Py_USING_UNICODE
|
Chris@87
|
566
|
Chris@87
|
567 /* Define as the size of the unicode type. */
|
Chris@87
|
568 /* This is enough for unicodeobject.h to do the "right thing" on Windows. */
|
Chris@87
|
569 #define Py_UNICODE_SIZE 2
|
Chris@87
|
570
|
Chris@87
|
571 /* Use Python's own small-block memory-allocator. */
|
Chris@87
|
572 #define WITH_PYMALLOC 1
|
Chris@87
|
573
|
Chris@87
|
574 /* Define if you have clock. */
|
Chris@87
|
575 /* #define HAVE_CLOCK */
|
Chris@87
|
576
|
Chris@87
|
577 /* Define when any dynamic module loading is enabled */
|
Chris@87
|
578 #define HAVE_DYNAMIC_LOADING
|
Chris@87
|
579
|
Chris@87
|
580 /* Define if you have ftime. */
|
Chris@87
|
581 #ifndef MS_WINCE
|
Chris@87
|
582 #define HAVE_FTIME
|
Chris@87
|
583 #endif
|
Chris@87
|
584
|
Chris@87
|
585 /* Define if you have getpeername. */
|
Chris@87
|
586 #define HAVE_GETPEERNAME
|
Chris@87
|
587
|
Chris@87
|
588 /* Define if you have getpgrp. */
|
Chris@87
|
589 /* #undef HAVE_GETPGRP */
|
Chris@87
|
590
|
Chris@87
|
591 /* Define if you have getpid. */
|
Chris@87
|
592 #ifndef MS_WINCE
|
Chris@87
|
593 #define HAVE_GETPID
|
Chris@87
|
594 #endif
|
Chris@87
|
595
|
Chris@87
|
596 /* Define if you have gettimeofday. */
|
Chris@87
|
597 /* #undef HAVE_GETTIMEOFDAY */
|
Chris@87
|
598
|
Chris@87
|
599 /* Define if you have getwd. */
|
Chris@87
|
600 /* #undef HAVE_GETWD */
|
Chris@87
|
601
|
Chris@87
|
602 /* Define if you have lstat. */
|
Chris@87
|
603 /* #undef HAVE_LSTAT */
|
Chris@87
|
604
|
Chris@87
|
605 /* Define if you have the mktime function. */
|
Chris@87
|
606 #define HAVE_MKTIME
|
Chris@87
|
607
|
Chris@87
|
608 /* Define if you have nice. */
|
Chris@87
|
609 /* #undef HAVE_NICE */
|
Chris@87
|
610
|
Chris@87
|
611 /* Define if you have readlink. */
|
Chris@87
|
612 /* #undef HAVE_READLINK */
|
Chris@87
|
613
|
Chris@87
|
614 /* Define if you have select. */
|
Chris@87
|
615 /* #undef HAVE_SELECT */
|
Chris@87
|
616
|
Chris@87
|
617 /* Define if you have setpgid. */
|
Chris@87
|
618 /* #undef HAVE_SETPGID */
|
Chris@87
|
619
|
Chris@87
|
620 /* Define if you have setpgrp. */
|
Chris@87
|
621 /* #undef HAVE_SETPGRP */
|
Chris@87
|
622
|
Chris@87
|
623 /* Define if you have setsid. */
|
Chris@87
|
624 /* #undef HAVE_SETSID */
|
Chris@87
|
625
|
Chris@87
|
626 /* Define if you have setvbuf. */
|
Chris@87
|
627 #define HAVE_SETVBUF
|
Chris@87
|
628
|
Chris@87
|
629 /* Define if you have siginterrupt. */
|
Chris@87
|
630 /* #undef HAVE_SIGINTERRUPT */
|
Chris@87
|
631
|
Chris@87
|
632 /* Define if you have symlink. */
|
Chris@87
|
633 /* #undef HAVE_SYMLINK */
|
Chris@87
|
634
|
Chris@87
|
635 /* Define if you have tcgetpgrp. */
|
Chris@87
|
636 /* #undef HAVE_TCGETPGRP */
|
Chris@87
|
637
|
Chris@87
|
638 /* Define if you have tcsetpgrp. */
|
Chris@87
|
639 /* #undef HAVE_TCSETPGRP */
|
Chris@87
|
640
|
Chris@87
|
641 /* Define if you have times. */
|
Chris@87
|
642 /* #undef HAVE_TIMES */
|
Chris@87
|
643
|
Chris@87
|
644 /* Define if you have uname. */
|
Chris@87
|
645 /* #undef HAVE_UNAME */
|
Chris@87
|
646
|
Chris@87
|
647 /* Define if you have waitpid. */
|
Chris@87
|
648 /* #undef HAVE_WAITPID */
|
Chris@87
|
649
|
Chris@87
|
650 /* Define to 1 if you have the `wcscoll' function. */
|
Chris@87
|
651 #ifndef MS_WINCE
|
Chris@87
|
652 #define HAVE_WCSCOLL 1
|
Chris@87
|
653 #endif
|
Chris@87
|
654
|
Chris@87
|
655 /* Define if the zlib library has inflateCopy */
|
Chris@87
|
656 #define HAVE_ZLIB_COPY 1
|
Chris@87
|
657
|
Chris@87
|
658 /* Define if you have the <dlfcn.h> header file. */
|
Chris@87
|
659 /* #undef HAVE_DLFCN_H */
|
Chris@87
|
660
|
Chris@87
|
661 /* Define to 1 if you have the <errno.h> header file. */
|
Chris@87
|
662 #ifndef MS_WINCE
|
Chris@87
|
663 #define HAVE_ERRNO_H 1
|
Chris@87
|
664 #endif
|
Chris@87
|
665
|
Chris@87
|
666 /* Define if you have the <fcntl.h> header file. */
|
Chris@87
|
667 #ifndef MS_WINCE
|
Chris@87
|
668 #define HAVE_FCNTL_H 1
|
Chris@87
|
669 #endif
|
Chris@87
|
670
|
Chris@87
|
671 /* Define to 1 if you have the <process.h> header file. */
|
Chris@87
|
672 #ifndef MS_WINCE
|
Chris@87
|
673 #define HAVE_PROCESS_H 1
|
Chris@87
|
674 #endif
|
Chris@87
|
675
|
Chris@87
|
676 /* Define to 1 if you have the <signal.h> header file. */
|
Chris@87
|
677 #ifndef MS_WINCE
|
Chris@87
|
678 #define HAVE_SIGNAL_H 1
|
Chris@87
|
679 #endif
|
Chris@87
|
680
|
Chris@87
|
681 /* Define if you have the <stdarg.h> prototypes. */
|
Chris@87
|
682 #define HAVE_STDARG_PROTOTYPES
|
Chris@87
|
683
|
Chris@87
|
684 /* Define if you have the <stddef.h> header file. */
|
Chris@87
|
685 #define HAVE_STDDEF_H 1
|
Chris@87
|
686
|
Chris@87
|
687 /* Define if you have the <sys/audioio.h> header file. */
|
Chris@87
|
688 /* #undef HAVE_SYS_AUDIOIO_H */
|
Chris@87
|
689
|
Chris@87
|
690 /* Define if you have the <sys/param.h> header file. */
|
Chris@87
|
691 /* #define HAVE_SYS_PARAM_H 1 */
|
Chris@87
|
692
|
Chris@87
|
693 /* Define if you have the <sys/select.h> header file. */
|
Chris@87
|
694 /* #define HAVE_SYS_SELECT_H 1 */
|
Chris@87
|
695
|
Chris@87
|
696 /* Define to 1 if you have the <sys/stat.h> header file. */
|
Chris@87
|
697 #ifndef MS_WINCE
|
Chris@87
|
698 #define HAVE_SYS_STAT_H 1
|
Chris@87
|
699 #endif
|
Chris@87
|
700
|
Chris@87
|
701 /* Define if you have the <sys/time.h> header file. */
|
Chris@87
|
702 /* #define HAVE_SYS_TIME_H 1 */
|
Chris@87
|
703
|
Chris@87
|
704 /* Define if you have the <sys/times.h> header file. */
|
Chris@87
|
705 /* #define HAVE_SYS_TIMES_H 1 */
|
Chris@87
|
706
|
Chris@87
|
707 /* Define to 1 if you have the <sys/types.h> header file. */
|
Chris@87
|
708 #ifndef MS_WINCE
|
Chris@87
|
709 #define HAVE_SYS_TYPES_H 1
|
Chris@87
|
710 #endif
|
Chris@87
|
711
|
Chris@87
|
712 /* Define if you have the <sys/un.h> header file. */
|
Chris@87
|
713 /* #define HAVE_SYS_UN_H 1 */
|
Chris@87
|
714
|
Chris@87
|
715 /* Define if you have the <sys/utime.h> header file. */
|
Chris@87
|
716 /* #define HAVE_SYS_UTIME_H 1 */
|
Chris@87
|
717
|
Chris@87
|
718 /* Define if you have the <sys/utsname.h> header file. */
|
Chris@87
|
719 /* #define HAVE_SYS_UTSNAME_H 1 */
|
Chris@87
|
720
|
Chris@87
|
721 /* Define if you have the <thread.h> header file. */
|
Chris@87
|
722 /* #undef HAVE_THREAD_H */
|
Chris@87
|
723
|
Chris@87
|
724 /* Define if you have the <unistd.h> header file. */
|
Chris@87
|
725 /* #define HAVE_UNISTD_H 1 */
|
Chris@87
|
726
|
Chris@87
|
727 /* Define if you have the <utime.h> header file. */
|
Chris@87
|
728 /* #define HAVE_UTIME_H 1 */
|
Chris@87
|
729
|
Chris@87
|
730 /* Define if the compiler provides a wchar.h header file. */
|
Chris@87
|
731 #define HAVE_WCHAR_H 1
|
Chris@87
|
732
|
Chris@87
|
733 /* Define if you have the dl library (-ldl). */
|
Chris@87
|
734 /* #undef HAVE_LIBDL */
|
Chris@87
|
735
|
Chris@87
|
736 /* Define if you have the mpc library (-lmpc). */
|
Chris@87
|
737 /* #undef HAVE_LIBMPC */
|
Chris@87
|
738
|
Chris@87
|
739 /* Define if you have the nsl library (-lnsl). */
|
Chris@87
|
740 #define HAVE_LIBNSL 1
|
Chris@87
|
741
|
Chris@87
|
742 /* Define if you have the seq library (-lseq). */
|
Chris@87
|
743 /* #undef HAVE_LIBSEQ */
|
Chris@87
|
744
|
Chris@87
|
745 /* Define if you have the socket library (-lsocket). */
|
Chris@87
|
746 #define HAVE_LIBSOCKET 1
|
Chris@87
|
747
|
Chris@87
|
748 /* Define if you have the sun library (-lsun). */
|
Chris@87
|
749 /* #undef HAVE_LIBSUN */
|
Chris@87
|
750
|
Chris@87
|
751 /* Define if you have the termcap library (-ltermcap). */
|
Chris@87
|
752 /* #undef HAVE_LIBTERMCAP */
|
Chris@87
|
753
|
Chris@87
|
754 /* Define if you have the termlib library (-ltermlib). */
|
Chris@87
|
755 /* #undef HAVE_LIBTERMLIB */
|
Chris@87
|
756
|
Chris@87
|
757 /* Define if you have the thread library (-lthread). */
|
Chris@87
|
758 /* #undef HAVE_LIBTHREAD */
|
Chris@87
|
759
|
Chris@87
|
760 /* WinSock does not use a bitmask in select, and uses
|
Chris@87
|
761 socket handles greater than FD_SETSIZE */
|
Chris@87
|
762 #define Py_SOCKET_FD_CAN_BE_GE_FD_SETSIZE
|
Chris@87
|
763
|
Chris@87
|
764 /* Define if C doubles are 64-bit IEEE 754 binary format, stored with the
|
Chris@87
|
765 least significant byte first */
|
Chris@87
|
766 #define DOUBLE_IS_LITTLE_ENDIAN_IEEE754 1
|
Chris@87
|
767
|
Chris@87
|
768 #endif /* !Py_CONFIG_H */
|