blob: 24e7b8dac61ce52c5e248f01d363bb928e243f73 [file] [log] [blame]
Ronald Oussoren5640ce22008-06-05 12:58:24 +00001#ifndef PYMACCONFIG_H
2#define PYMACCONFIG_H
3 /*
4 * This file moves some of the autoconf magic to compile-time
5 * when building on MacOSX. This is needed for building 4-way
6 * universal binaries and for 64-bit universal binaries because
Antoine Pitrouc83ea132010-05-09 14:46:46 +00007 * the values redefined below aren't configure-time constant but
Ronald Oussoren5640ce22008-06-05 12:58:24 +00008 * only compile-time constant in these scenarios.
9 */
10
11#if defined(__APPLE__)
12
13# undef SIZEOF_LONG
14# undef SIZEOF_PTHREAD_T
15# undef SIZEOF_SIZE_T
16# undef SIZEOF_TIME_T
17# undef SIZEOF_VOID_P
Benjamin Petersonfd9633e2008-12-28 15:37:31 +000018# undef SIZEOF__BOOL
Ronald Oussoren7072f742009-12-01 15:54:01 +000019# undef SIZEOF_UINTPTR_T
20# undef SIZEOF_PTHREAD_T
Benjamin Petersonfd9633e2008-12-28 15:37:31 +000021# undef WORDS_BIGENDIAN
Mark Dickinson1d6e2e12009-10-24 13:28:38 +000022# undef DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754
23# undef DOUBLE_IS_BIG_ENDIAN_IEEE754
24# undef DOUBLE_IS_LITTLE_ENDIAN_IEEE754
Ronald Oussorena2543022009-12-08 16:32:52 +000025# undef HAVE_GCC_ASM_FOR_X87
Ronald Oussoren5640ce22008-06-05 12:58:24 +000026
27# undef VA_LIST_IS_ARRAY
28# if defined(__LP64__) && defined(__x86_64__)
29# define VA_LIST_IS_ARRAY 1
30# endif
31
32# undef HAVE_LARGEFILE_SUPPORT
33# ifndef __LP64__
34# define HAVE_LARGEFILE_SUPPORT 1
35# endif
36
37# undef SIZEOF_LONG
38# ifdef __LP64__
Antoine Pitrouc83ea132010-05-09 14:46:46 +000039# define SIZEOF__BOOL 1
40# define SIZEOF__BOOL 1
41# define SIZEOF_LONG 8
42# define SIZEOF_PTHREAD_T 8
43# define SIZEOF_SIZE_T 8
44# define SIZEOF_TIME_T 8
45# define SIZEOF_VOID_P 8
46# define SIZEOF_UINTPTR_T 8
47# define SIZEOF_PTHREAD_T 8
Ronald Oussoren5640ce22008-06-05 12:58:24 +000048# else
Benjamin Petersonfd9633e2008-12-28 15:37:31 +000049# ifdef __ppc__
Antoine Pitrouc83ea132010-05-09 14:46:46 +000050# define SIZEOF__BOOL 4
Benjamin Petersonfd9633e2008-12-28 15:37:31 +000051# else
Antoine Pitrouc83ea132010-05-09 14:46:46 +000052# define SIZEOF__BOOL 1
Benjamin Petersonfd9633e2008-12-28 15:37:31 +000053# endif
Antoine Pitrouc83ea132010-05-09 14:46:46 +000054# define SIZEOF_LONG 4
55# define SIZEOF_PTHREAD_T 4
56# define SIZEOF_SIZE_T 4
57# define SIZEOF_TIME_T 4
58# define SIZEOF_VOID_P 4
59# define SIZEOF_UINTPTR_T 4
60# define SIZEOF_PTHREAD_T 4
Ronald Oussoren5640ce22008-06-05 12:58:24 +000061# endif
62
63# if defined(__LP64__)
Ezio Melottic2077b02011-03-16 12:34:31 +020064 /* MacOSX 10.4 (the first release to support 64-bit code
Antoine Pitrouc83ea132010-05-09 14:46:46 +000065 * at all) only supports 64-bit in the UNIX layer.
66 * Therefore surpress the toolbox-glue in 64-bit mode.
67 */
Ronald Oussoren5640ce22008-06-05 12:58:24 +000068
Antoine Pitrouc83ea132010-05-09 14:46:46 +000069 /* In 64-bit mode setpgrp always has no argments, in 32-bit
70 * mode that depends on the compilation environment
71 */
72# undef SETPGRP_HAVE_ARG
Ronald Oussoren5640ce22008-06-05 12:58:24 +000073
74# endif
75
Benjamin Petersonfd9633e2008-12-28 15:37:31 +000076#ifdef __BIG_ENDIAN__
77#define WORDS_BIGENDIAN 1
Mark Dickinson1d6e2e12009-10-24 13:28:38 +000078#define DOUBLE_IS_BIG_ENDIAN_IEEE754
79#else
80#define DOUBLE_IS_LITTLE_ENDIAN_IEEE754
Benjamin Petersonfd9633e2008-12-28 15:37:31 +000081#endif /* __BIG_ENDIAN */
82
Ronald Oussorena2543022009-12-08 16:32:52 +000083#ifdef __i386__
84# define HAVE_GCC_ASM_FOR_X87
85#endif
86
Antoine Pitrouc83ea132010-05-09 14:46:46 +000087 /*
88 * The definition in pyconfig.h is only valid on the OS release
89 * where configure ran on and not necessarily for all systems where
90 * the executable can be used on.
91 *
92 * Specifically: OSX 10.4 has limited supported for '%zd', while
93 * 10.5 has full support for '%zd'. A binary built on 10.5 won't
94 * work properly on 10.4 unless we surpress the definition
95 * of PY_FORMAT_SIZE_T
96 */
97#undef PY_FORMAT_SIZE_T
Ronald Oussoren6c0b8722009-04-19 10:38:20 +000098
Benjamin Petersonfd9633e2008-12-28 15:37:31 +000099
Ronald Oussoren5640ce22008-06-05 12:58:24 +0000100#endif /* defined(_APPLE__) */
101
102#endif /* PYMACCONFIG_H */