2007.10.23 16:12 "Re: [Tiff] universal build patch", by Bob Friesenhahn
We can easily switch to this method instead of autoconf macro. I am only concerning about portability of this approach.
It is 100% portable as long as you stick to using Apple's modified GCC 4.X and OS X. Other targets are of no consequence. :-)
Solaris defines _LITTLE_ENDIAN or _BIG_ENDIAN by including <sys/types.h>
OS X (and probably *BSD) define BIG_ENDIAN, LITTLE_ENDIAN and BYTE_ORDER but don't define __BIG_ENDIAN, __LITTLE_ENDIAN nor __BYTE_ORDER
Apple's gcc for ppc-darwin has a built-in define of __BIG_ENDIAN__ as 1, but doesn't define __LITTLE_ENDIAN__ nor __BYTE_ORDER.
Linux glibc headers define both BIG_ENDIAN and __BIG_ENDIAN, LITTLE_ENDIAN and __LITTLE_ENDIAN, and __BYTE_ORDER and BYTE_ORDER
System FOO does whatever it feels like.
My feeling is that it the only completely correct approach is to configure/build on each native target since otherwise some decisions made may be wrong. Perhaps 32-bit OS X has managed to constrain PPC and Intel differences to only endian order but this is the exception rather than the rule. With Mac OS X Leopard (Arriving October 26) perhaps the rules will change (the rules for Apple always change).
GraphicsMagick Maintainer, http://www.GraphicsMagick.org/