pymacconfig.h 2.71 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
#ifndef PYMACCONFIG_H
#define PYMACCONFIG_H
     /*
      * This file moves some of the autoconf magic to compile-time
      * when building on MacOSX. This is needed for building 4-way
      * universal binaries and for 64-bit universal binaries because
      * the values redefined below aren't configure-time constant but 
      * only compile-time constant in these scenarios.
      */

#if defined(__APPLE__)

# undef SIZEOF_LONG
# undef SIZEOF_PTHREAD_T
# undef SIZEOF_SIZE_T
# undef SIZEOF_TIME_T
# undef SIZEOF_VOID_P
18
# undef SIZEOF__BOOL
19 20
# undef SIZEOF_UINTPTR_T
# undef SIZEOF_PTHREAD_T
21
# undef WORDS_BIGENDIAN
22 23 24
# undef DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754
# undef DOUBLE_IS_BIG_ENDIAN_IEEE754
# undef DOUBLE_IS_LITTLE_ENDIAN_IEEE754
25
# undef HAVE_GCC_ASM_FOR_X87
26 27 28 29 30 31 32 33 34 35 36 37 38

#    undef VA_LIST_IS_ARRAY
#    if defined(__LP64__) && defined(__x86_64__)
#        define VA_LIST_IS_ARRAY 1
#    endif

#    undef HAVE_LARGEFILE_SUPPORT
#    ifndef __LP64__
#         define HAVE_LARGEFILE_SUPPORT 1
#    endif

#    undef SIZEOF_LONG
#    ifdef __LP64__
39 40
#	 define SIZEOF__BOOL		1
#        define SIZEOF__BOOL		1
41 42 43 44 45
#        define SIZEOF_LONG 		8
#        define SIZEOF_PTHREAD_T 	8
#        define SIZEOF_SIZE_T 		8
#        define SIZEOF_TIME_T 		8
#        define SIZEOF_VOID_P 		8
46 47
#        define SIZEOF_UINTPTR_T	8
#        define SIZEOF_PTHREAD_T	8
48
#    else
49 50 51 52 53
#        ifdef __ppc__
#	    define SIZEOF__BOOL		4
#        else
#	    define SIZEOF__BOOL		1
#        endif
54 55 56 57 58
#        define SIZEOF_LONG 		4
#        define SIZEOF_PTHREAD_T 	4
#        define SIZEOF_SIZE_T 		4
#        define SIZEOF_TIME_T 		4
#        define SIZEOF_VOID_P 		4
59 60
#        define SIZEOF_UINTPTR_T 	4
#        define SIZEOF_PTHREAD_T 	4
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
#    endif

#    if defined(__LP64__)
	 /* MacOSX 10.4 (the first release to suppport 64-bit code
	  * at all) only supports 64-bit in the UNIX layer. 
	  * Therefore surpress the toolbox-glue in 64-bit mode.
	  */

	/* In 64-bit mode setpgrp always has no argments, in 32-bit
	 * mode that depends on the compilation environment
	 */
#	undef SETPGRP_HAVE_ARG

#    endif

76 77
#ifdef __BIG_ENDIAN__
#define WORDS_BIGENDIAN 1
78 79 80
#define DOUBLE_IS_BIG_ENDIAN_IEEE754
#else
#define DOUBLE_IS_LITTLE_ENDIAN_IEEE754
81 82
#endif /* __BIG_ENDIAN */

83 84 85 86
#ifdef __i386__
# define HAVE_GCC_ASM_FOR_X87
#endif

Ronald Oussoren's avatar
Ronald Oussoren committed
87 88 89 90 91 92 93 94 95 96 97 98
	/* 
	 * The definition in pyconfig.h is only valid on the OS release
	 * where configure ran on and not necessarily for all systems where
	 * the executable can be used on. 
	 * 
	 * Specifically: OSX 10.4 has limited supported for '%zd', while
	 * 10.5 has full support for '%zd'. A binary built on 10.5 won't
	 * work properly on 10.4 unless we surpress the definition
	 * of PY_FORMAT_SIZE_T
	 */
#undef	PY_FORMAT_SIZE_T

99

100 101 102
#endif /* defined(_APPLE__) */

#endif /* PYMACCONFIG_H */