1dnl Copyright (C) 1993-2003 Free Software Foundation, Inc. 2dnl This file is free software, distributed under the terms of the GNU 3dnl General Public License. As a special exception to the GNU General 4dnl Public License, this file may be distributed as part of a program 5dnl that contains a configuration script generated by Autoconf, under 6dnl the same distribution terms as the rest of that program. 7 8dnl From Bruno Haible, Marcus Daniels. 9 10AC_PREREQ(2.13) 11 12AC_DEFUN([CL_WORDS_LITTLEENDIAN], 13[AC_CACHE_CHECK(byte ordering, cl_cv_sys_endian, [ 14AC_TRY_RUN([int main () { 15 /* Are we little or big endian? From Harbison&Steele. */ 16 union 17 { 18 long l; 19 char c[sizeof (long)]; 20 } u; 21 u.l = 1; 22 exit (u.c[0] == 1); 23}], 24cl_cv_sys_endian="big endian", 25cl_cv_sys_endian="little endian", 26: # must guess the endianness 27) 28if test -z "$cl_cv_sys_endian"; then 29AC_EGREP_CPP(yes,[#if defined(m68k) || defined(__m68k__) || defined(mc68000) || defined(mc68020) || defined(__mc68020__) || defined(sparc) || defined(__sparc__) || defined(MIPSEB) || defined(__MIPSEB__) || defined(hppa) || defined(__hppa) || defined(m88000) || defined(__m88k__) 30 yes 31#endif 32], cl_cv_sys_endian="big endian") 33fi 34if test -z "$cl_cv_sys_endian"; then 35AC_EGREP_CPP(yes,[#if defined(i386) || defined(__i386) || defined(__i386__) || defined(_I386) || defined(MIPSEL) || defined(__MIPSEL__) || defined(__alpha) 36 yes 37#endif 38], cl_cv_sys_endian="little endian") 39fi 40if test -z "$cl_cv_sys_endian"; then 41cl_cv_sys_endian="guessing little endian" 42fi 43]) 44case "$cl_cv_sys_endian" in 45 *little*) 46 AC_DEFINE(WORDS_LITTLEENDIAN, 1, 47 [Define if the machine's byte ordering is little endian.]) ;; 48 *big*) ;; 49esac 50]) 51