X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=configure.ac;h=b587e9e7a9e4550cf2b833abe6473c88271ac484;hb=8b2f0590d94f6bc3f1d31bd3e0c9ea744b5b55cb;hp=c36a9fdf10a078b4f8edbdcef0367313efe0cdfd;hpb=78d75878ba59e55d36205d78d98be26496e112c1;p=urcu.git diff --git a/configure.ac b/configure.ac index c36a9fd..b587e9e 100644 --- a/configure.ac +++ b/configure.ac @@ -45,6 +45,58 @@ AM_MAINTAINER_MODE([enable]) # Enable silent rules by default AM_SILENT_RULES([yes]) + +## ## +## OS and Arch specific defaults ## +## ## + +AS_CASE([$host], + [*-cygwin*], [LT_NO_UNDEFINED="-no-undefined"] +) + + +## ## +## C compiler checks ## +## ## + +# Choose the C compiler +AC_PROG_CC +# AC_PROG_CC_STDC was merged in AC_PROG_CC in autoconf 2.70 +m4_version_prereq([2.70], [], [AC_PROG_CC_STDC]) + +# Make sure the C compiler supports C99 +AS_IF([test "$ac_cv_prog_cc_c99" = "no"], [AC_MSG_ERROR([The compiler does not support C99])]) + +# Enable available system extensions and LFS support +AC_USE_SYSTEM_EXTENSIONS +AC_SYS_LARGEFILE + +# Make sure the C compiler supports __attribute__ +AX_C___ATTRIBUTE__ +AS_IF([test "x$ax_cv___attribute__" != "xyes"], + [AC_MSG_ERROR([The compiler does not support __attribute__ extensions])]) + +# Make sure we have pthread support +AX_PTHREAD([], [AC_MSG_ERROR([Could not configure pthread support])]) + +# Make sure the C compiler supports weak symbols +AX_SYS_WEAK_ALIAS +AS_IF([test "x$ax_cv_sys_weak_alias" = "xno"], + [AC_MSG_ERROR([Your platform doesn't support weak symbols.])]) + +# Checks for typedefs, structures, and compiler characteristics. +AC_C_INLINE +AC_C_TYPEOF +AC_TYPE_INT32_T +AC_TYPE_PID_T +AC_TYPE_SIZE_T +AC_TYPE_SSIZE_T +AC_TYPE_UINT16_T +AC_TYPE_UINT32_T +AC_TYPE_UINT64_T +AC_TYPE_UINT8_T + + AH_TEMPLATE([CONFIG_RCU_SMP], [Enable SMP support. With SMP support enabled, uniprocessors are also supported. With SMP support disabled, UP systems work fine, but the behavior of SMP systems is undefined.]) AH_TEMPLATE([CONFIG_RCU_TLS], [TLS provided by the compiler.]) AH_TEMPLATE([CONFIG_RCU_HAVE_CLOCK_GETTIME], [clock_gettime() is detected.]) @@ -66,11 +118,6 @@ AC_ARG_ENABLE([compiler-tls], [def_compiler_tls=$enableval], [def_compiler_tls="yes"]) -# Checks for C compiler -AC_USE_SYSTEM_EXTENSIONS -AC_PROG_CC -# AC_PROG_CC_STDC was merged in AC_PROG_CC in autoconf 2.70 -m4_version_prereq([2.70], [], [AC_PROG_CC_STDC]) AS_IF([test "x$def_compiler_tls" = "xyes"], AC_DEFINE([CONFIG_RCU_TLS], [1]), [:]) # Checks for programs. @@ -89,24 +136,6 @@ AC_SUBST([NPROC_CMD], [$NPROC_CMD]) LT_INIT -# Checks for typedefs, structures, and compiler characteristics. -AC_C_INLINE -AC_TYPE_PID_T -AC_TYPE_SIZE_T -AC_TYPE_SSIZE_T -AC_TYPE_UINT16_T -AC_TYPE_INT32_T -AC_TYPE_UINT32_T -AC_TYPE_UINT64_T -AC_TYPE_UINT8_T - -AX_C___ATTRIBUTE__ -AS_IF([test "x$ax_cv___attribute__" = "xyes"], - [:], - [AC_MSG_ERROR([The compiler does not support __attribute__ extensions])]) - -AX_PTHREAD(,[AC_MSG_ERROR([Could not configure pthreads support])]) - AM_CFLAGS="$AM_CFLAGS $PTHREAD_CFLAGS" # Checks for library functions. @@ -139,11 +168,6 @@ AC_CHECK_HEADERS([ \ sys/time.h \ ]) -AS_CASE([$host],[*-cygwin*], - [AM_CONDITIONAL(USE_CYGWIN, true)], - [AM_CONDITIONAL(USE_CYGWIN, false)] -) - # Search for clock_gettime AC_SEARCH_LIBS([clock_gettime], [rt], [ AC_DEFINE([CONFIG_RCU_HAVE_CLOCK_GETTIME], [1]) @@ -283,6 +307,8 @@ AC_CHECK_FUNCS([sched_setaffinity],[ # Library versions for libtool AC_SUBST([URCU_LIBRARY_VERSION], [urcu_lib_version]) +AC_SUBST(LT_NO_UNDEFINED) + AM_CPPFLAGS="-include config.h" AC_SUBST(AM_CPPFLAGS)