File alac-endian.patch of Package alac

Index: codec/EndianPortable.c
===================================================================
--- codec/EndianPortable.c.orig
+++ codec/EndianPortable.c
@@ -25,20 +25,15 @@
 //
 
 #include <stdio.h>
+#include <byteswap.h>
+#include <endian.h>
 #include "EndianPortable.h"
 
-#define BSWAP16(x) (((x << 8) | ((x >> 8) & 0x00ff)))
-#define BSWAP32(x) (((x << 24) | ((x << 8) & 0x00ff0000) | ((x >> 8) & 0x0000ff00) | ((x >> 24) & 0x000000ff)))
-#define BSWAP64(x) ((((int64_t)x << 56) | (((int64_t)x << 40) & 0x00ff000000000000LL) | \
-                    (((int64_t)x << 24) & 0x0000ff0000000000LL) | (((int64_t)x << 8) & 0x000000ff00000000LL) | \
-                    (((int64_t)x >> 8) & 0x00000000ff000000LL) | (((int64_t)x >> 24) & 0x0000000000ff0000LL) | \
-                    (((int64_t)x >> 40) & 0x000000000000ff00LL) | (((int64_t)x >> 56) & 0x00000000000000ffLL)))
+#define BSWAP16(x) bswap_16(x)
+#define BSWAP32(x) bswap_32(x)
+#define BSWAP64(x) bswap_64(x)
 
-#if defined(__i386__)
-#define TARGET_RT_LITTLE_ENDIAN 1
-#elif defined(__x86_64__)
-#define TARGET_RT_LITTLE_ENDIAN 1
-#elif defined (TARGET_OS_WIN32)
+#if __BYTE_ORDER == __LITTLE_ENDIAN
 #define TARGET_RT_LITTLE_ENDIAN 1
 #endif
 
Index: codec/ALACAudioTypes.h
===================================================================
--- codec/ALACAudioTypes.h.orig
+++ codec/ALACAudioTypes.h
@@ -42,10 +42,9 @@ extern "C" {
 #endif
 
 #include <stdint.h>
+#include <endian.h>
 
-#if defined(__ppc__)
-#define TARGET_RT_BIG_ENDIAN 1
-#elif defined(__ppc64__)
+#if __BYTE_ORDER == __BIG_ENDIAN
 #define TARGET_RT_BIG_ENDIAN 1
 #endif