1 | #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 |
7 | * the values redefined below aren't configure-time constant but |
8 | * 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 |
18 | # undef SIZEOF__BOOL |
19 | # undef SIZEOF_UINTPTR_T |
20 | # undef SIZEOF_PTHREAD_T |
21 | # undef WORDS_BIGENDIAN |
22 | # undef DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 |
23 | # undef DOUBLE_IS_BIG_ENDIAN_IEEE754 |
24 | # undef DOUBLE_IS_LITTLE_ENDIAN_IEEE754 |
25 | # undef HAVE_GCC_ASM_FOR_X87 |
26 | |
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__ |
39 | # 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 |
48 | # else |
49 | # ifdef __ppc__ |
50 | # define SIZEOF__BOOL 4 |
51 | # else |
52 | # define SIZEOF__BOOL 1 |
53 | # endif |
54 | # 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 |
61 | # endif |
62 | |
63 | # if defined(__LP64__) |
64 | /* MacOSX 10.4 (the first release to support 64-bit code |
65 | * at all) only supports 64-bit in the UNIX layer. |
66 | * Therefore suppress the toolbox-glue in 64-bit mode. |
67 | */ |
68 | |
69 | /* In 64-bit mode setpgrp always has no arguments, in 32-bit |
70 | * mode that depends on the compilation environment |
71 | */ |
72 | # undef SETPGRP_HAVE_ARG |
73 | |
74 | # endif |
75 | |
76 | #ifdef __BIG_ENDIAN__ |
77 | #define WORDS_BIGENDIAN 1 |
78 | #define DOUBLE_IS_BIG_ENDIAN_IEEE754 |
79 | #else |
80 | #define DOUBLE_IS_LITTLE_ENDIAN_IEEE754 |
81 | #endif /* __BIG_ENDIAN */ |
82 | |
83 | #ifdef __i386__ |
84 | # define HAVE_GCC_ASM_FOR_X87 |
85 | #endif |
86 | |
87 | /* |
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 suppress the definition |
95 | * of PY_FORMAT_SIZE_T |
96 | */ |
97 | #undef PY_FORMAT_SIZE_T |
98 | |
99 | |
100 | #endif /* defined(_APPLE__) */ |
101 | |
102 | #endif /* PYMACCONFIG_H */ |
103 | |