| Index: xz/m4/tuklib_integer.m4
|
| ===================================================================
|
| --- xz/m4/tuklib_integer.m4 (revision 0)
|
| +++ xz/m4/tuklib_integer.m4 (revision 0)
|
| @@ -0,0 +1,74 @@
|
| +#
|
| +# SYNOPSIS
|
| +#
|
| +# TUKLIB_INTEGER
|
| +#
|
| +# DESCRIPTION
|
| +#
|
| +# Checks for tuklib_integer.h:
|
| +# - Endianness
|
| +# - Does operating system provide byte swapping macros
|
| +# - Does the hardware support fast unaligned access to 16-bit
|
| +# and 32-bit integers
|
| +#
|
| +# COPYING
|
| +#
|
| +# Author: Lasse Collin
|
| +#
|
| +# This file has been put into the public domain.
|
| +# You can do whatever you want with this file.
|
| +#
|
| +
|
| +AC_DEFUN_ONCE([TUKLIB_INTEGER], [
|
| +AC_REQUIRE([TUKLIB_COMMON])
|
| +AC_REQUIRE([AC_C_BIGENDIAN])
|
| +AC_CHECK_HEADERS([byteswap.h sys/endian.h sys/byteorder.h], [break])
|
| +
|
| +# Even if we have byteswap.h, we may lack the specific macros/functions.
|
| +if test x$ac_cv_header_byteswap_h = xyes ; then
|
| + m4_foreach([FUNC], [bswap_16,bswap_32,bswap_64], [
|
| + AC_MSG_CHECKING([if FUNC is available])
|
| + AC_LINK_IFELSE([AC_LANG_SOURCE([
|
| +#include <byteswap.h>
|
| +int
|
| +main(void)
|
| +{
|
| + FUNC[](42);
|
| + return 0;
|
| +}
|
| + ])], [
|
| + AC_DEFINE(HAVE_[]m4_toupper(FUNC), [1],
|
| + [Define to 1 if] FUNC [is available.])
|
| + AC_MSG_RESULT([yes])
|
| + ], [AC_MSG_RESULT([no])])
|
| +
|
| + ])dnl
|
| +fi
|
| +
|
| +AC_MSG_CHECKING([if unaligned memory access should be used])
|
| +AC_ARG_ENABLE([unaligned-access], AC_HELP_STRING([--enable-unaligned-access],
|
| + [Enable if the system supports *fast* unaligned memory access
|
| + with 16-bit and 32-bit integers. By default, this is enabled
|
| + only on x86, x86_64, and big endian PowerPC.]),
|
| + [], [enable_unaligned_access=auto])
|
| +if test "x$enable_unaligned_access" = xauto ; then
|
| + # TODO: There may be other architectures, on which unaligned access
|
| + # is OK.
|
| + case $host_cpu in
|
| + i?86|x86_64|powerpc|powerpc64)
|
| + enable_unaligned_access=yes
|
| + ;;
|
| + *)
|
| + enable_unaligned_access=no
|
| + ;;
|
| + esac
|
| +fi
|
| +if test "x$enable_unaligned_access" = xyes ; then
|
| + AC_DEFINE([TUKLIB_FAST_UNALIGNED_ACCESS], [1], [Define to 1 if
|
| + the system supports fast unaligned access to 16-bit and
|
| + 32-bit integers.])
|
| + AC_MSG_RESULT([yes])
|
| +else
|
| + AC_MSG_RESULT([no])
|
| +fi
|
| +])dnl
|
|
|
| Property changes on: xz/m4/tuklib_integer.m4
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|