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