X-Git-Url: http://git.liburcu.org/?p=ust.git;a=blobdiff_plain;f=configure.ac;h=bebc1ab588eadf0a99d18c3792183887ede0fb01;hp=b0320b02453dc62eb4a89998ff8784d778aa6dc3;hb=841f7e9cd6909d5fc1d782d7d1d385b568033869;hpb=43f0d5acc1fc89b5890365f7624a2dd8e946df1f diff --git a/configure.ac b/configure.ac index b0320b0..bebc1ab 100644 --- a/configure.ac +++ b/configure.ac @@ -1,13 +1,13 @@ # -*- Autoconf -*- # Process this file with autoconf to produce a configure script. -#AC_PREREQ([2.63]) -AC_INIT([ust], [0.0], [pierre-marc dot fournier at polymtl dot ca]) +AC_INIT([ust], [0.12], [nils dot carlson at ericsson dot com]) AC_CONFIG_AUX_DIR([config]) AC_CANONICAL_TARGET AC_CANONICAL_HOST -AC_CONFIG_MACRO_DIR([m4]) -AM_INIT_AUTOMAKE([0.0 foreign dist-bzip2 no-dist-gzip]) +AC_CONFIG_MACRO_DIR([config]) +AM_INIT_AUTOMAKE([foreign]) +m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) AC_CONFIG_SRCDIR([ustctl/ustctl.c]) AC_CONFIG_HEADERS([config.h]) @@ -52,36 +52,73 @@ AC_C_INLINE 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. -AC_CHECK_HEADERS([urcu-bp.h], [], [AC_MSG_ERROR([Cannot find [URCU] headers (urcu-bp.h). Use [CFLAGS]=-Idir to specify their location.])]) +AC_CHECK_HEADERS([urcu-bp.h], [], [AC_MSG_ERROR([Cannot find [URCU] headers (urcu-bp.h). Use [CFLAGS]=-Idir to specify their location. +This error can also occur when the liburcu package's configure script has not been run.])]) # 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.])]) -# kcompat +# 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 ]]) + -AC_CHECK_HEADERS([kcompat.h], [], [AC_MSG_ERROR([Cannot find kcompat headers (kcompat.h). Use [CFLAGS]=-Idir to specify their location.])]) + +# 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' + +case "${host}" in +changequote(,)dnl + i[34567]86-*-linux*) +changequote([,])dnl + AC_CACHE_CHECK([if building for x86-64], [ust_cv_i386_is_x86_64], + [save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $CFLAGS" + AC_EGREP_CPP([got it], [ +#if __x86_64__ +got it +#endif + ], [ust_cv_i386_is_x86_64=yes], + [ust_cv_i386_is_x86_64=no]) + CPPFLAGS="$save_CPPFLAGS"]) + ;; +esac AC_MSG_CHECKING([library format for the host system]) case $host_cpu in - i386) LIBFORMAT="elf32-i386" ;; - i486) LIBFORMAT="elf32-i386" ;; - i586) LIBFORMAT="elf32-i386" ;; - i686) LIBFORMAT="elf32-i386" ;; +changequote(,)dnl + i[3456]86) +changequote([,])dnl + if test "$ust_cv_i386_is_x86_64" = yes ; then + LIBFORMAT="elf64-x86-64" + else + LIBFORMAT="elf32-i386" + fi + ;; x86_64) LIBFORMAT="elf64-x86-64" ;; - ppc) LIBFORMAT="elf32-powerpc" ;; + powerpc) LIBFORMAT="elf32-powerpc" ;; ppc64) LIBFORMAT="elf64-powerpc" ;; s390) LIBFORMAT="elf32-s390" ;; s390x) LIBFORMAT="elf64-s390" ;; - *) AC_MSG_ERROR([unable to detect library format (unsupported architecture?)]) ;; + arm) LIBFORMAT="elf32-littlearm" ;; + *) AC_MSG_ERROR([unable to detect library format (unsupported architecture ($host_cpu)?)]) ;; esac AC_SUBST(LIBFORMAT) AC_MSG_RESULT($LIBFORMAT) AC_CONFIG_FILES([ Makefile + doc/Makefile + doc/man/Makefile + doc/info/Makefile include/Makefile libust/Makefile tests/Makefile @@ -91,9 +128,23 @@ AC_CONFIG_FILES([ tests/basic_long/Makefile tests/fork/Makefile tests/simple_include/Makefile - libmallocwrap/Makefile - libinterfork/Makefile - ustd/Makefile + tests/snprintf/Makefile + tests/test-nevents/Makefile + tests/test-libustinstr-malloc/Makefile + tests/dlopen/Makefile + tests/same_line_marker/Makefile + tests/trace_event/Makefile + tests/tracepoint/Makefile + tests/tracepoint/benchmark/Makefile + tests/register_test/Makefile + tests/libustctl_function_tests/Makefile + libustinstr-malloc/Makefile + libustfork/Makefile + libustconsumer/Makefile + ust-consumerd/Makefile ustctl/Makefile + libustcomm/Makefile + libustctl/Makefile + snprintf/Makefile ]) AC_OUTPUT