-// We use BSD-style defines: BYTE_ORDER is defined to either BIG_ENDIAN or LITTLE_ENDIAN
-
-// Initializations
-#if !defined(BYTE_ORDER) || !defined(LITTLE_ENDIAN) || !defined(BIG_ENDIAN) || (BYTE_ORDER != LITTLE_ENDIAN && BYTE_ORDER != BIG_ENDIAN)
-# undef BYTE_ORDER
-# undef LITTLE_ENDIAN
-# undef BIG_ENDIAN
-# define LITTLE_ENDIAN 1234
-# define BIG_ENDIAN 4321
-#endif
-
-// If we still don't know the CPU endianess at this point, we try to guess
-// normally including sys/types.h includes endian.h for the platform, which defines BYTE_ORDER, LITTLE_ENDIAN, and BIG_ENDIAN, however endian.h is a BSD-ism, and may not be present on all platforms (particularly windows)
-#ifndef BYTE_ORDER
-# if defined(WIN32) || defined (__i386) || defined(__amd64)
-# define BYTE_ORDER LITTLE_ENDIAN
-# else
-# if defined(SUNOS)
-# if defined(__i386) || defined(__amd64)
-# define BYTE_ORDER LITTLE_ENDIAN
-# else
-# define BYTE_ORDER BIG_ENDIAN
-# endif
-# else
-# warning "Unable to determine the CPU endianess. Defaulting to little endian"
-# define BYTE_ORDER LITTLE_ENDIAN
-# endif
-# endif
-#endif