# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
-AC_INIT([ust], [0.11], [nils dot carlson at ericsson dot com])
+AC_INIT([ust], [0.12], [nils dot carlson at ericsson dot com])
AC_CONFIG_AUX_DIR([config])
AC_CANONICAL_TARGET
AC_CANONICAL_HOST
AM_INIT_AUTOMAKE([foreign])
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
AC_CONFIG_SRCDIR([ustctl/ustctl.c])
-AC_CONFIG_HEADERS([config.h])
+AC_CONFIG_HEADERS([config.h include/ust/config.h])
+AH_TEMPLATE([HAVE_EFFICIENT_UNALIGNED_ACCESS], [Use efficient unaligned access.])
# Checks for programs.
AC_PROG_CC
AC_FUNC_MALLOC
AC_CHECK_FUNCS([gettimeofday munmap socket strerror strtol])
+CFLAGS="-Wall $CFLAGS"
+
# URCU
# urcu - check if we just find the headers it out of the box.
# urcu - check that URCU lib is available to compilation
AC_CHECK_LIB([urcu-bp], [synchronize_rcu], [], [AC_MSG_ERROR([Cannot find liburcu-bp lib. Use [LDFLAGS]=-Ldir to specify its location.])])
+# urcu - check that URCU lib is at least version 0.5.4
+AC_CHECK_LIB([urcu-bp], [rcu_bp_before_fork], [], [AC_MSG_ERROR([liburcu 0.5.4 or newer is needed, please update your version or use [LDFLAGS]=-Ldir to specify the right location.])])
+
# urcu - check that URCU lib is at least version 0.5
AC_CHECK_DECL([cds_list_add(0, 0)], [], [AC_MSG_ERROR([liburcu 0.5 or newer is needed, please update your version or use [LDFLAGS]=-Ldir to specify the right location.])], [[#include <urcu/list.h>]])
+
# Check for various supplementary host information (beyond the
# triplet) which might affect the library format choices. E.g., we
# can be building with `i686-unknown-linux-gnu-gcc -m64'
ppc64) LIBFORMAT="elf64-powerpc" ;;
s390) LIBFORMAT="elf32-s390" ;;
s390x) LIBFORMAT="elf64-s390" ;;
+ armv5) LIBFORMAT="elf32-littlearm"; NO_UNALIGNED_ACCESS=1 ;;
+ arm) LIBFORMAT="elf32-littlearm" ;;
+ mips*) LIBFORMAT="" ;;
*) AC_MSG_ERROR([unable to detect library format (unsupported architecture ($host_cpu)?)]) ;;
esac
AC_SUBST(LIBFORMAT)
AC_MSG_RESULT($LIBFORMAT)
+if test "x$host_cpu" = "xarm" ; then
+AC_MSG_CHECKING([checking for armv5])
+AC_TRY_COMPILE(
+[
+],
+[
+#ifndef __ARM_ARCH_5TEJ__
+#error "no arm5 here"
+#endif
+],
+[
+ AC_MSG_RESULT([yes])
+ NO_UNALIGNED_ACCESS=1
+]
+,
+[
+ AC_MSG_RESULT([no])
+]
+)
+fi
+if test x$NO_UNALIGNED_ACCESS = x ; then
+AC_DEFINE([HAVE_EFFICIENT_UNALIGNED_ACCESS], [1])
+fi
+
AC_CONFIG_FILES([
Makefile
doc/Makefile
tests/tracepoint/Makefile
tests/tracepoint/benchmark/Makefile
tests/register_test/Makefile
- tests/ustcmd_function_tests/Makefile
+ tests/libustctl_function_tests/Makefile
libustinstr-malloc/Makefile
libustfork/Makefile
libustconsumer/Makefile
ust-consumerd/Makefile
ustctl/Makefile
libustcomm/Makefile
- libustcmd/Makefile
+ libustctl/Makefile
snprintf/Makefile
])
AC_OUTPUT