dnl dnl $Id$ dnl dnl check if this computer is little or big-endian dnl if we can figure it out at compile-time then don't define the cpp symbol dnl otherwise test for it and define it. also allow options for overriding dnl it when cross-compiling AC_DEFUN([OPENAFS_CHECK_BIGENDIAN], [ AC_ARG_ENABLE([bigendian], [AS_HELP_STRING([--enable-bigendian], [the target is big endian])], [openafs_cv_c_bigendian=yes]) AC_ARG_ENABLE([littleendian], [AS_HELP_STRING([--enable-littleendian], [the target is little endian])], [openafs_cv_c_bigendian=no]) AC_CACHE_CHECK(whether byte order is known at compile time, openafs_cv_c_bigendian_compile, [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include #include ]], [[ #if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN bogus endian macros #endif]])],[openafs_cv_c_bigendian_compile=yes],[openafs_cv_c_bigendian_compile=no])]) AC_CACHE_CHECK(whether byte ordering is bigendian, openafs_cv_c_bigendian,[ if test "$openafs_cv_c_bigendian_compile" = "yes"; then AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include #include ]], [[ #if BYTE_ORDER != BIG_ENDIAN not big endian #endif]])],[openafs_cv_c_bigendian=yes],[openafs_cv_c_bigendian=no]) else AC_RUN_IFELSE([AC_LANG_SOURCE([[main () { /* Are we little or big endian? From Harbison&Steele. */ union { long l; char c[sizeof (long)]; } u; u.l = 1; exit (u.c[sizeof (long) - 1] == 1); }]])], [openafs_cv_c_bigendian=no], [openafs_cv_c_bigendian=yes], [AC_MSG_ERROR(specify either --enable-bigendian or --enable-littleendian)]) fi ]) if test "$openafs_cv_c_bigendian" = "yes"; then AC_DEFINE(AUTOCONF_FOUND_BIGENDIAN, 1, [define if target is big endian])dnl fi if test "$openafs_cv_c_bigendian_compile" = "yes"; then AC_DEFINE(ENDIANESS_IN_SYS_PARAM_H, 1, [define if sys/param.h defines the endiness])dnl fi ])