summaryrefslogtreecommitdiffstats
path: root/PC/pyconfig.h
diff options
context:
space:
mode:
Diffstat (limited to 'PC/pyconfig.h')
-rw-r--r--PC/pyconfig.h315
1 files changed, 199 insertions, 116 deletions
diff --git a/PC/pyconfig.h b/PC/pyconfig.h
index 6a437ce..5fa6398 100644
--- a/PC/pyconfig.h
+++ b/PC/pyconfig.h
@@ -14,6 +14,7 @@ the following #defines
MS_WIN64 - Code specific to the MS Win64 API
MS_WIN32 - Code specific to the MS Win32 (and Win64) API (obsolete, this covers all supported APIs)
MS_WINDOWS - Code specific to Windows, but all versions.
+MS_WINCE - Code specific to Windows CE
Py_ENABLE_SHARED - Code if the Python core is built as a DLL.
Also note that neither "_M_IX86" or "_MSC_VER" should be used for
@@ -29,9 +30,13 @@ WIN32 is still required for the locale module.
*/
+#ifdef _WIN32_WCE
+#define MS_WINCE
+#endif
+
/* Deprecated USE_DL_EXPORT macro - please use Py_BUILD_CORE */
#ifdef USE_DL_EXPORT
-# define Py_BUILD_CORE
+# define Py_BUILD_CORE
#endif /* USE_DL_EXPORT */
/* Visual Studio 2005 introduces deprecation warnings for
@@ -48,6 +53,8 @@ WIN32 is still required for the locale module.
#define _CRT_NONSTDC_NO_DEPRECATE 1
#endif
+/* Windows CE does not have these */
+#ifndef MS_WINCE
#define HAVE_IO_H
#define HAVE_SYS_UTIME_H
#define HAVE_TEMPNAM
@@ -55,20 +62,25 @@ WIN32 is still required for the locale module.
#define HAVE_TMPNAM
#define HAVE_CLOCK
#define HAVE_STRERROR
+#endif
+#ifdef HAVE_IO_H
#include <io.h>
+#endif
#define HAVE_HYPOT
#define HAVE_STRFTIME
#define DONT_HAVE_SIG_ALARM
#define DONT_HAVE_SIG_PAUSE
-#define LONG_BIT 32
+#define LONG_BIT 32
#define WORD_BIT 32
+#define PREFIX ""
+#define EXEC_PREFIX ""
#define MS_WIN32 /* only support win32 and greater. */
#define MS_WINDOWS
#ifndef PYTHONPATH
-# define PYTHONPATH L".\\DLLs;.\\lib"
+# define PYTHONPATH ".\\DLLs;.\\lib;.\\lib\\plat-win;.\\lib\\lib-tk"
#endif
#define NT_THREADS
#define WITH_THREAD
@@ -76,6 +88,17 @@ WIN32 is still required for the locale module.
#define USE_SOCKET
#endif
+/* CE6 doesn't have strdup() but _strdup(). Assume the same for earlier versions. */
+#if defined(MS_WINCE)
+# include <stdlib.h>
+# define strdup _strdup
+#endif
+
+#ifdef MS_WINCE
+/* Windows CE does not support environment variables */
+#define getenv(v) (NULL)
+#define environ (NULL)
+#endif
/* Compiler specific defines */
@@ -90,9 +113,9 @@ WIN32 is still required for the locale module.
* literally in the string.
*/
#define _Py_PASTE_VERSION(SUFFIX) \
- ("[MSC v." _Py_STRINGIZE(_MSC_VER) " " SUFFIX "]")
+ ("[MSC v." _Py_STRINGIZE(_MSC_VER) " " SUFFIX "]")
/* e.g., this produces, after compile-time string catenation,
- * ("[MSC v.1200 32 bit (Intel)]")
+ * ("[MSC v.1200 32 bit (Intel)]")
*
* _Py_STRINGIZE(_MSC_VER) expands to
* _Py_STRINGIZE1((_MSC_VER)) expands to
@@ -111,7 +134,9 @@ WIN32 is still required for the locale module.
*and* on Win64. For the same reasons, in Python, MS_WIN32 is
defined on Win32 *and* Win64. Win32 only code must therefore be
guarded as follows:
- #if defined(MS_WIN32) && !defined(MS_WIN64)
+ #if defined(MS_WIN32) && !defined(MS_WIN64)
+ Some modules are disabled on Itanium processors, therefore we
+ have MS_WINI64 set for those targets, otherwise MS_WINX64
*/
#ifdef _WIN64
#define MS_WIN64
@@ -119,25 +144,35 @@ WIN32 is still required for the locale module.
/* set the COMPILER */
#ifdef MS_WIN64
-#if defined(_M_X64) || defined(_M_AMD64)
-#if defined(__INTEL_COMPILER)
+#if defined(_M_IA64)
+#define COMPILER _Py_PASTE_VERSION("64 bit (Itanium)")
+#define MS_WINI64
+#elif defined(_M_X64) || defined(_M_AMD64)
+#ifdef __INTEL_COMPILER
#define COMPILER ("[ICC v." _Py_STRINGIZE(__INTEL_COMPILER) " 64 bit (amd64) with MSC v." _Py_STRINGIZE(_MSC_VER) " CRT]")
#else
#define COMPILER _Py_PASTE_VERSION("64 bit (AMD64)")
#endif /* __INTEL_COMPILER */
-#define PYD_PLATFORM_TAG "win_amd64"
-#elif defined(_M_ARM64)
-#define COMPILER _Py_PASTE_VERSION("64 bit (ARM64)")
-#define PYD_PLATFORM_TAG "win_arm64"
+#define MS_WINX64
#else
#define COMPILER _Py_PASTE_VERSION("64 bit (Unknown)")
#endif
#endif /* MS_WIN64 */
/* set the version macros for the windows headers */
-/* Python 3.9+ requires Windows 8 or greater */
-#define Py_WINVER 0x0602 /* _WIN32_WINNT_WIN8 */
-#define Py_NTDDI NTDDI_WIN8
+#ifdef MS_WINX64
+/* 64 bit only runs on XP or greater */
+#define Py_WINVER _WIN32_WINNT_WINXP
+#define Py_NTDDI NTDDI_WINXP
+#else
+/* Python 2.6+ requires Windows 2000 or greater */
+#ifdef _WIN32_WINNT_WIN2K
+#define Py_WINVER _WIN32_WINNT_WIN2K
+#else
+#define Py_WINVER 0x0500
+#endif
+#define Py_NTDDI NTDDI_WIN2KSP4
+#endif
/* We only set these values when building Python - we don't want to force
these values on extensions, as that will affect the prototypes and
@@ -146,7 +181,7 @@ WIN32 is still required for the locale module.
structures etc so it can optionally use new Windows features if it
determines at runtime they are available.
*/
-#if defined(Py_BUILD_CORE) || defined(Py_BUILD_CORE_BUILTIN) || defined(Py_BUILD_CORE_MODULE)
+#if defined(Py_BUILD_CORE) || defined(Py_BUILD_CORE_MODULE)
#ifndef NTDDI_VERSION
#define NTDDI_VERSION Py_NTDDI
#endif
@@ -172,16 +207,12 @@ typedef _W64 int ssize_t;
#define HAVE_SSIZE_T 1
#if defined(MS_WIN32) && !defined(MS_WIN64)
-#if defined(_M_IX86)
-#if defined(__INTEL_COMPILER)
+#ifdef _M_IX86
+#ifdef __INTEL_COMPILER
#define COMPILER ("[ICC v." _Py_STRINGIZE(__INTEL_COMPILER) " 32 bit (Intel) with MSC v." _Py_STRINGIZE(_MSC_VER) " CRT]")
#else
#define COMPILER _Py_PASTE_VERSION("32 bit (Intel)")
#endif /* __INTEL_COMPILER */
-#define PYD_PLATFORM_TAG "win32"
-#elif defined(_M_ARM)
-#define COMPILER _Py_PASTE_VERSION("32 bit (ARM)")
-#define PYD_PLATFORM_TAG "win_arm32"
#else
#define COMPILER _Py_PASTE_VERSION("32 bit (Unknown)")
#endif
@@ -195,18 +226,42 @@ typedef int pid_t;
#define Py_IS_FINITE(X) _finite(X)
#define copysign _copysign
-/* Side by Side assemblies supported in VS 2005 and VS 2008 but not 2010*/
-#if _MSC_VER >= 1400 && _MSC_VER < 1600
-#define HAVE_SXS 1
-#endif
+#endif /* _MSC_VER */
/* define some ANSI types that are not defined in earlier Win headers */
-#if _MSC_VER >= 1200
+#if defined(_MSC_VER) && _MSC_VER >= 1200
/* This file only exists in VC 6.0 or higher */
#include <basetsd.h>
#endif
-#endif /* _MSC_VER */
+/* ------------------------------------------------------------------------*/
+/* The Borland compiler defines __BORLANDC__ */
+/* XXX These defines are likely incomplete, but should be easy to fix. */
+#ifdef __BORLANDC__
+#define COMPILER "[Borland]"
+
+#ifdef _WIN32
+/* tested with BCC 5.5 (__BORLANDC__ >= 0x0550)
+ */
+
+typedef int pid_t;
+/* BCC55 seems to understand __declspec(dllimport), it is used in its
+ own header files (winnt.h, ...) - so we can do nothing and get the default*/
+
+#undef HAVE_SYS_UTIME_H
+#define HAVE_UTIME_H
+#define HAVE_DIRENT_H
+
+/* rename a few functions for the Borland compiler */
+#include <io.h>
+#define _chsize chsize
+#define _setmode setmode
+
+#else /* !_WIN32 */
+#error "Only Win32 and later are supported"
+#endif /* !_WIN32 */
+
+#endif /* BORLANDC */
/* ------------------------------------------------------------------------*/
/* egcs/gnu-win32 defines __GNUC__ and _WIN32 */
@@ -244,22 +299,23 @@ typedef int pid_t;
/* End of compilers - finish up */
#ifndef NO_STDIO_H
-# include <stdio.h>
+# include <stdio.h>
#endif
/* 64 bit ints are usually spelt __int64 unless compiler has overridden */
+#define HAVE_LONG_LONG 1
#ifndef PY_LONG_LONG
-# define PY_LONG_LONG __int64
-# define PY_LLONG_MAX _I64_MAX
-# define PY_LLONG_MIN _I64_MIN
-# define PY_ULLONG_MAX _UI64_MAX
+# define PY_LONG_LONG __int64
+# define PY_LLONG_MAX _I64_MAX
+# define PY_LLONG_MIN _I64_MIN
+# define PY_ULLONG_MAX _UI64_MAX
#endif
/* For Windows the Python core is in a DLL by default. Test
Py_NO_ENABLE_SHARED to find out. Also support MS_NO_COREDLL for b/w compat */
#if !defined(MS_NO_COREDLL) && !defined(Py_NO_ENABLE_SHARED)
-# define Py_ENABLE_SHARED 1 /* standard symbol for shared library */
-# define MS_COREDLL /* deprecated old symbol */
+# define Py_ENABLE_SHARED 1 /* standard symbol for shared library */
+# define MS_COREDLL /* deprecated old symbol */
#endif /* !MS_NO_COREDLL && ... */
/* All windows compilers that use this header support __declspec */
@@ -267,58 +323,55 @@ Py_NO_ENABLE_SHARED to find out. Also support MS_NO_COREDLL for b/w compat */
/* For an MSVC DLL, we can nominate the .lib files used by extensions */
#ifdef MS_COREDLL
-# if !defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_BUILTIN)
- /* not building the core - must be an ext */
-# if defined(_MSC_VER)
- /* So MSVC users need not specify the .lib
- file in their Makefile (other compilers are
- generally taken care of by distutils.) */
-# if defined(_DEBUG)
-# pragma comment(lib,"python39_d.lib")
-# elif defined(Py_LIMITED_API)
-# pragma comment(lib,"python3.lib")
-# else
-# pragma comment(lib,"python39.lib")
-# endif /* _DEBUG */
-# endif /* _MSC_VER */
-# endif /* Py_BUILD_CORE */
+# ifndef Py_BUILD_CORE /* not building the core - must be an ext */
+# if defined(_MSC_VER)
+ /* So MSVC users need not specify the .lib file in
+ their Makefile (other compilers are generally
+ taken care of by distutils.) */
+# ifdef _DEBUG
+# pragma comment(lib,"python27_d.lib")
+# else
+# pragma comment(lib,"python27.lib")
+# endif /* _DEBUG */
+# endif /* _MSC_VER */
+# endif /* Py_BUILD_CORE */
#endif /* MS_COREDLL */
#if defined(MS_WIN64)
/* maintain "win32" sys.platform for backward compatibility of Python code,
the Win64 API should be close enough to the Win32 API to make this
preferable */
-# define PLATFORM "win32"
-# define SIZEOF_VOID_P 8
-# define SIZEOF_TIME_T 8
-# define SIZEOF_OFF_T 4
-# define SIZEOF_FPOS_T 8
-# define SIZEOF_HKEY 8
-# define SIZEOF_SIZE_T 8
-/* configure.ac defines HAVE_LARGEFILE_SUPPORT iff
- sizeof(off_t) > sizeof(long), and sizeof(long long) >= sizeof(off_t).
+# define PLATFORM "win32"
+# define SIZEOF_VOID_P 8
+# define SIZEOF_TIME_T 8
+# define SIZEOF_OFF_T 4
+# define SIZEOF_FPOS_T 8
+# define SIZEOF_HKEY 8
+# define SIZEOF_SIZE_T 8
+/* configure.ac defines HAVE_LARGEFILE_SUPPORT iff HAVE_LONG_LONG,
+ sizeof(off_t) > sizeof(long), and sizeof(PY_LONG_LONG) >= sizeof(off_t).
On Win64 the second condition is not true, but if fpos_t replaces off_t
then this is true. The uses of HAVE_LARGEFILE_SUPPORT imply that Win64
should define this. */
-# define HAVE_LARGEFILE_SUPPORT
+# define HAVE_LARGEFILE_SUPPORT
#elif defined(MS_WIN32)
-# define PLATFORM "win32"
-# define HAVE_LARGEFILE_SUPPORT
-# define SIZEOF_VOID_P 4
-# define SIZEOF_OFF_T 4
-# define SIZEOF_FPOS_T 8
-# define SIZEOF_HKEY 4
-# define SIZEOF_SIZE_T 4
- /* MS VS2005 changes time_t to a 64-bit type on all platforms */
-# if defined(_MSC_VER) && _MSC_VER >= 1400
-# define SIZEOF_TIME_T 8
-# else
-# define SIZEOF_TIME_T 4
-# endif
+# define PLATFORM "win32"
+# define HAVE_LARGEFILE_SUPPORT
+# define SIZEOF_VOID_P 4
+# define SIZEOF_OFF_T 4
+# define SIZEOF_FPOS_T 8
+# define SIZEOF_HKEY 4
+# define SIZEOF_SIZE_T 4
+ /* MS VS2005 changes time_t to a 64-bit type on all platforms */
+# if defined(_MSC_VER) && _MSC_VER >= 1400
+# define SIZEOF_TIME_T 8
+# else
+# define SIZEOF_TIME_T 4
+# endif
#endif
#ifdef _DEBUG
-# define Py_DEBUG
+# define Py_DEBUG
#endif
@@ -342,17 +395,46 @@ Py_NO_ENABLE_SHARED to find out. Also support MS_NO_COREDLL for b/w compat */
#else
/* VC6, VS 2002 and eVC4 don't support the C99 LL suffix for 64-bit integer literals */
#define Py_LL(x) x##I64
-#endif /* _MSC_VER > 1300 */
+#endif /* _MSC_VER > 1200 */
#endif /* _MSC_VER */
#endif
/* define signed and unsigned exact-width 32-bit and 64-bit types, used in the
- implementation of Python integers. */
-#define PY_UINT32_T uint32_t
-#define PY_UINT64_T uint64_t
-#define PY_INT32_T int32_t
-#define PY_INT64_T int64_t
+ implementation of Python long integers. */
+#ifndef PY_UINT32_T
+#if SIZEOF_INT == 4
+#define HAVE_UINT32_T 1
+#define PY_UINT32_T unsigned int
+#elif SIZEOF_LONG == 4
+#define HAVE_UINT32_T 1
+#define PY_UINT32_T unsigned long
+#endif
+#endif
+
+#ifndef PY_UINT64_T
+#if SIZEOF_LONG_LONG == 8
+#define HAVE_UINT64_T 1
+#define PY_UINT64_T unsigned PY_LONG_LONG
+#endif
+#endif
+
+#ifndef PY_INT32_T
+#if SIZEOF_INT == 4
+#define HAVE_INT32_T 1
+#define PY_INT32_T int
+#elif SIZEOF_LONG == 4
+#define HAVE_INT32_T 1
+#define PY_INT32_T long
+#endif
+#endif
+
+#ifndef PY_INT64_T
+#if SIZEOF_LONG_LONG == 8
+#define HAVE_INT64_T 1
+#define PY_INT64_T PY_LONG_LONG
+#endif
+#endif
/* Fairly standard from here! */
@@ -381,14 +463,14 @@ Py_NO_ENABLE_SHARED to find out. Also support MS_NO_COREDLL for b/w compat */
/* #define const */
/* Define to 1 if you have the <conio.h> header file. */
+#ifndef MS_WINCE
#define HAVE_CONIO_H 1
+#endif
/* Define to 1 if you have the <direct.h> header file. */
+#ifndef MS_WINCE
#define HAVE_DIRECT_H 1
-
-/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't.
- */
-#define HAVE_DECL_TZNAME 1
+#endif
/* Define if you have dirent.h. */
/* #define DIRENT 1 */
@@ -461,7 +543,9 @@ Py_NO_ENABLE_SHARED to find out. Also support MS_NO_COREDLL for b/w compat */
/* #define HAVE_ALTZONE */
/* Define if you have the putenv function. */
+#ifndef MS_WINCE
#define HAVE_PUTENV
+#endif
/* Define if your compiler supports function prototypes */
#define HAVE_PROTOTYPES
@@ -479,6 +563,13 @@ Py_NO_ENABLE_SHARED to find out. Also support MS_NO_COREDLL for b/w compat */
/* Define if you want to use the GNU readline library */
/* #define WITH_READLINE 1 */
+/* Define if you want to have a Unicode type. */
+#define Py_USING_UNICODE
+
+/* Define as the size of the unicode type. */
+/* This is enough for unicodeobject.h to do the "right thing" on Windows. */
+#define Py_UNICODE_SIZE 2
+
/* Use Python's own small-block memory-allocator. */
#define WITH_PYMALLOC 1
@@ -489,7 +580,9 @@ Py_NO_ENABLE_SHARED to find out. Also support MS_NO_COREDLL for b/w compat */
#define HAVE_DYNAMIC_LOADING
/* Define if you have ftime. */
+#ifndef MS_WINCE
#define HAVE_FTIME
+#endif
/* Define if you have getpeername. */
#define HAVE_GETPEERNAME
@@ -498,7 +591,9 @@ Py_NO_ENABLE_SHARED to find out. Also support MS_NO_COREDLL for b/w compat */
/* #undef HAVE_GETPGRP */
/* Define if you have getpid. */
+#ifndef MS_WINCE
#define HAVE_GETPID
+#endif
/* Define if you have gettimeofday. */
/* #undef HAVE_GETTIMEOFDAY */
@@ -518,6 +613,9 @@ Py_NO_ENABLE_SHARED to find out. Also support MS_NO_COREDLL for b/w compat */
/* Define if you have readlink. */
/* #undef HAVE_READLINK */
+/* Define if you have select. */
+/* #undef HAVE_SELECT */
+
/* Define if you have setpgid. */
/* #undef HAVE_SETPGID */
@@ -551,16 +649,10 @@ Py_NO_ENABLE_SHARED to find out. Also support MS_NO_COREDLL for b/w compat */
/* Define if you have waitpid. */
/* #undef HAVE_WAITPID */
-/* Define to 1 if you have the `wcsftime' function. */
-#if defined(_MSC_VER) && _MSC_VER >= 1310
-#define HAVE_WCSFTIME 1
-#endif
-
/* Define to 1 if you have the `wcscoll' function. */
+#ifndef MS_WINCE
#define HAVE_WCSCOLL 1
-
-/* Define to 1 if you have the `wcsxfrm' function. */
-#define HAVE_WCSXFRM 1
+#endif
/* Define if the zlib library has inflateCopy */
#define HAVE_ZLIB_COPY 1
@@ -569,16 +661,24 @@ Py_NO_ENABLE_SHARED to find out. Also support MS_NO_COREDLL for b/w compat */
/* #undef HAVE_DLFCN_H */
/* Define to 1 if you have the <errno.h> header file. */
+#ifndef MS_WINCE
#define HAVE_ERRNO_H 1
+#endif
/* Define if you have the <fcntl.h> header file. */
+#ifndef MS_WINCE
#define HAVE_FCNTL_H 1
+#endif
/* Define to 1 if you have the <process.h> header file. */
+#ifndef MS_WINCE
#define HAVE_PROCESS_H 1
+#endif
/* Define to 1 if you have the <signal.h> header file. */
+#ifndef MS_WINCE
#define HAVE_SIGNAL_H 1
+#endif
/* Define if you have the <stdarg.h> prototypes. */
#define HAVE_STDARG_PROTOTYPES
@@ -596,7 +696,9 @@ Py_NO_ENABLE_SHARED to find out. Also support MS_NO_COREDLL for b/w compat */
/* #define HAVE_SYS_SELECT_H 1 */
/* Define to 1 if you have the <sys/stat.h> header file. */
+#ifndef MS_WINCE
#define HAVE_SYS_STAT_H 1
+#endif
/* Define if you have the <sys/time.h> header file. */
/* #define HAVE_SYS_TIME_H 1 */
@@ -605,7 +707,9 @@ Py_NO_ENABLE_SHARED to find out. Also support MS_NO_COREDLL for b/w compat */
/* #define HAVE_SYS_TIMES_H 1 */
/* Define to 1 if you have the <sys/types.h> header file. */
+#ifndef MS_WINCE
#define HAVE_SYS_TYPES_H 1
+#endif
/* Define if you have the <sys/un.h> header file. */
/* #define HAVE_SYS_UN_H 1 */
@@ -616,6 +720,9 @@ Py_NO_ENABLE_SHARED to find out. Also support MS_NO_COREDLL for b/w compat */
/* Define if you have the <sys/utsname.h> header file. */
/* #define HAVE_SYS_UTSNAME_H 1 */
+/* Define if you have the <thread.h> header file. */
+/* #undef HAVE_THREAD_H */
+
/* Define if you have the <unistd.h> header file. */
/* #define HAVE_UNISTD_H 1 */
@@ -625,15 +732,6 @@ Py_NO_ENABLE_SHARED to find out. Also support MS_NO_COREDLL for b/w compat */
/* Define if the compiler provides a wchar.h header file. */
#define HAVE_WCHAR_H 1
-/* The size of `wchar_t', as computed by sizeof. */
-#define SIZEOF_WCHAR_T 2
-
-/* The size of `_Bool', as computed by sizeof. */
-#define SIZEOF__BOOL 1
-
-/* The size of `pid_t', as computed by sizeof. */
-#define SIZEOF_PID_T SIZEOF_INT
-
/* Define if you have the dl library (-ldl). */
/* #undef HAVE_LIBDL */
@@ -669,19 +767,4 @@ Py_NO_ENABLE_SHARED to find out. Also support MS_NO_COREDLL for b/w compat */
least significant byte first */
#define DOUBLE_IS_LITTLE_ENDIAN_IEEE754 1
-/* Define to 1 if you have the `erf' function. */
-#define HAVE_ERF 1
-
-/* Define to 1 if you have the `erfc' function. */
-#define HAVE_ERFC 1
-
-/* Define if you have the 'inet_pton' function. */
-#define HAVE_INET_PTON 1
-
-/* framework name */
-#define _PYTHONFRAMEWORK ""
-
-/* Define if libssl has X509_VERIFY_PARAM_set1_host and related function */
-#define HAVE_X509_VERIFY_PARAM_SET1_HOST 1
-
#endif /* !Py_CONFIG_H */