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 surpress the toolbox-glue in 64-bit mode. 67 */ 68 69 /* 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 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 surpress 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