configure: regroup library checks
[urcu.git] / configure.ac
index b587e9e7a9e4550cf2b833abe6473c88271ac484..c7492df594c081bcd9a723a4dd1e40ef4bc704c0 100644 (file)
@@ -97,34 +97,28 @@ 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.])
-AH_TEMPLATE([CONFIG_RCU_FORCE_SYS_MEMBARRIER], [Require the operating system to support the membarrier system call for default and bulletproof flavors.])
-AH_TEMPLATE([CONFIG_RCU_DEBUG], [Enable internal debugging self-checks. Introduces a performance penalty.])
-AH_TEMPLATE([CONFIG_CDS_LFHT_ITER_DEBUG], [Enable extra debugging checks for lock-free hash table iterator traversal. Alters the rculfhash ABI. Make sure to compile both library and application with matching configuration.])
+##               ##
+## Header checks ##
+##               ##
 
-# Allow requiring the operating system to support the membarrier system
-# call. Applies to default and bulletproof flavors.
-AC_ARG_ENABLE([sys-membarrier-fallback],
-       AS_HELP_STRING([--disable-sys-membarrier-fallback], [Abort if sys-membarrier is needed but not available rather than using a fallback.]),
-       [def_sys_membarrier_fallback=$enableval],
-       [def_sys_membarrier_fallback="yes"])
-AS_IF([test "x$def_sys_membarrier_fallback" != "xyes"], [AC_DEFINE([CONFIG_RCU_FORCE_SYS_MEMBARRIER], [1])])
+AC_HEADER_STDBOOL
+AC_CHECK_HEADERS([ \
+       limits.h \
+       stddef.h \
+       sys/param.h \
+       sys/time.h \
+])
 
-# Allow overriding storage used for TLS variables.
-AC_ARG_ENABLE([compiler-tls],
-       AS_HELP_STRING([--disable-compiler-tls], [Use pthread_getspecific() to emulate Thread Local Storage (TLS) variables.]),
-       [def_compiler_tls=$enableval],
-       [def_compiler_tls="yes"])
 
-AS_IF([test "x$def_compiler_tls" = "xyes"], AC_DEFINE([CONFIG_RCU_TLS], [1]), [:])
+##                 ##
+## Programs checks ##
+##                 ##
 
-# Checks for programs.
 AC_PROG_AWK
+AC_PROG_GREP
 AC_PROG_MAKE_SET
 AC_CHECK_PROGS(NPROC, [nproc gnproc])
-AC_CHECK_PROGS(GETCONF, [getconf])
+AC_CHECK_PROG(GETCONF, [getconf])
 AS_IF([test "x$NPROC" != "x"],
        [NPROC_CMD=$NPROC],
        [AS_IF([test "x$GETCONF" != "x"],
@@ -134,9 +128,13 @@ AS_IF([test "x$NPROC" != "x"],
 )
 AC_SUBST([NPROC_CMD], [$NPROC_CMD])
 
+# Initialize and configure libtool
 LT_INIT
 
-AM_CFLAGS="$AM_CFLAGS $PTHREAD_CFLAGS"
+
+##                ##
+## Library checks ##
+##                ##
 
 # Checks for library functions.
 AC_FUNC_MMAP
@@ -159,20 +157,37 @@ AC_CHECK_FUNCS([ \
 # AC_FUNC_MALLOC causes problems when cross-compiling.
 #AC_FUNC_MALLOC
 
-# Check for headers
-AC_HEADER_STDBOOL
-AC_CHECK_HEADERS([ \
-       limits.h \
-       stddef.h \
-       sys/param.h \
-       sys/time.h \
+# Search for clock_gettime() in -lrt
+AC_SEARCH_LIBS([clock_gettime], [rt], [
+  AC_DEFINE([CONFIG_RCU_HAVE_CLOCK_GETTIME], [1], [clock_gettime() is detected.])
 ])
 
-# Search for clock_gettime
-AC_SEARCH_LIBS([clock_gettime], [rt], [
-       AC_DEFINE([CONFIG_RCU_HAVE_CLOCK_GETTIME], [1])
-       config_rcu_have_clock_gettime=yes
-], [])
+
+
+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_FORCE_SYS_MEMBARRIER], [Require the operating system to support the membarrier system call for default and bulletproof flavors.])
+AH_TEMPLATE([CONFIG_RCU_DEBUG], [Enable internal debugging self-checks. Introduces a performance penalty.])
+AH_TEMPLATE([CONFIG_CDS_LFHT_ITER_DEBUG], [Enable extra debugging checks for lock-free hash table iterator traversal. Alters the rculfhash ABI. Make sure to compile both library and application with matching configuration.])
+
+# Allow requiring the operating system to support the membarrier system
+# call. Applies to default and bulletproof flavors.
+AC_ARG_ENABLE([sys-membarrier-fallback],
+       AS_HELP_STRING([--disable-sys-membarrier-fallback], [Abort if sys-membarrier is needed but not available rather than using a fallback.]),
+       [def_sys_membarrier_fallback=$enableval],
+       [def_sys_membarrier_fallback="yes"])
+AS_IF([test "x$def_sys_membarrier_fallback" != "xyes"], [AC_DEFINE([CONFIG_RCU_FORCE_SYS_MEMBARRIER], [1])])
+
+# Allow overriding storage used for TLS variables.
+AC_ARG_ENABLE([compiler-tls],
+       AS_HELP_STRING([--disable-compiler-tls], [Use pthread_getspecific() to emulate Thread Local Storage (TLS) variables.]),
+       [def_compiler_tls=$enableval],
+       [def_compiler_tls="yes"])
+
+AS_IF([test "x$def_compiler_tls" = "xyes"], AC_DEFINE([CONFIG_RCU_TLS], [1]), [:])
+
+
+AM_CFLAGS="$AM_CFLAGS $PTHREAD_CFLAGS"
 
 AM_CONDITIONAL([NO_SHARED], [test "x$enable_shared" = "xno"])
 
@@ -424,7 +439,7 @@ test "x$def_compiler_tls" = "xyes" && value="compiler TLS" || value="pthread_get
 PPRINT_PROP_STRING([Thread Local Storage (TLS)], [$value])
 
 # clock_gettime() available
-test "x$config_rcu_have_clock_gettime" = "xyes" && value=1 || value=0
+test "x$ac_cv_search_function_clock_gettime" != "xno" && value=1 || value=0
 PPRINT_PROP_BOOL([clock_gettime()], $value)
 
 # Require membarrier
This page took 0.024792 seconds and 4 git commands to generate.