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