diff options
author | Matt Messier <mmessier@grapetv.org> | 2007-05-02 14:58:55 -0400 |
---|---|---|
committer | Matt Messier <mmessier@grapetv.org> | 2007-05-02 14:58:55 -0400 |
commit | fa333fe2dc2e77ce69d0e212f65106df25b0c07d (patch) | |
tree | 71ea926ac982b9b7ca803d20b6a78f7a969327ea /lib | |
parent | 0cf6cfae1aa92647a8e4550a2818ef94db2b7c73 (diff) | |
download | xine-lib-fa333fe2dc2e77ce69d0e212f65106df25b0c07d.tar.gz xine-lib-fa333fe2dc2e77ce69d0e212f65106df25b0c07d.tar.bz2 |
Mac OS X Universal Binary support
Diffstat (limited to 'lib')
-rw-r--r-- | lib/os_internal.h | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/lib/os_internal.h b/lib/os_internal.h index dd48e04f7..e461b5581 100644 --- a/lib/os_internal.h +++ b/lib/os_internal.h @@ -1,6 +1,83 @@ #ifndef _XINE_OS_INTERNAL_H #define _XINE_OS_INTERNAL_H +/* When using Apple's GCC, __APPLE__ will be defined. This is a whole lot of + * messiness, but it's necessary in order to perform universal builds properly. + * It's meant to over-ride configure time stuff that would be different at + * compile time. + */ +#if defined(__APPLE__) && defined(XINE_MACOSX_UNIVERSAL_BINARY) + +#if !defined(__ppc__) && !defined(__ppc64__) && !defined(__i386__) && !defined(__x86_64__) +#error unrecognized/unsupported CPU type building for Apple Darwin +#endif + +/* First get rid of anything that initial configure might have set */ +#undef ARCH_PPC +#undef ARCH_X86 +#undef ARCH_X86_32 +#undef ARCH_X86_64 +#undef BITFIELD_LSBF +#undef ENABLE_ALTIVEC +#undef FPM_64BIT +#undef FPM_DEFAULT +#undef FPM_INTEL +#undef FPM_PPC +#undef HAVE_MMX +#undef HOST_ARCH +#undef HOST_DARWIN +#undef SIZEOF_INT +#undef SIZEOF_LONG +#undef SIZEOF_LONG_LONG +#undef WORDS_BIGENDIAN + +#define HOST_DARWIN 1 + +/* WORDS_BIGENDIAN (replaces AC_C_BIGENDIAN autoconf test at compile time) */ +#include <machine/endian.h> +#if BYTE_ORDER == BIG_ENDIAN +#define WORDS_BIGENDIAN 1 +#endif + +/* __ppc__, __ppc64__, __i386__, __x86_64__ are interesting arch macros */ +#if defined(__ppc__) +#define ARCH_PPC +#define FPM_PPC 1 +#define HOST_ARCH "darwin/powerpc" +#define SIZEOF_INT 4 +#define SIZEOF_LONG 4 +#define SIZEOF_LONG_LONG 8 +#elif defined(__ppc64__) +#define ARCH_PPC +#define FPM_64BIT 1 +#define SIZEOF_INT 4 +#define SIZEOF_LONG 8 +#define SIZEOF_LONG_LONG 8 +#define HOST_ARCH "darwin/powerpc64" +#elif defined(__i386__) +#define ARCH_X86 +#define ARCH_X86_32 +#define BITFIELD_LSBF +#define FPM_INTEL 1 +#define HAVE_MMX +#define HOST_ARCH "darwin/i386" +#define SIZEOF_INT 4 +#define SIZEOF_LONG 4 +#define SIZEOF_LONG_LONG 8 +#elif defined(__x86_64__) +#define ARCH_X86 +#define ARCH_X86_64 +#define BITFIELD_LSBF +#define FPM_64BIT 1 +#define HAVE_MMX +#define HOST_ARCH "darwin/x64_64" +#define SIZEOF_INT 4 +#define SIZEOF_LONG 8 +#define SIZEOF_LONG_LONG 8 +#endif + +#endif /* __APPLE__ */ + #include <stddef.h> #include <stdarg.h> |