]> arthur.barton.de Git - netdata.git/blobdiff - configure.ac
properly define the sse optimization on x86 flag; #1032
[netdata.git] / configure.ac
index eeeeb32c07659cd58e3a50a8bfe8ed51699d060b..97e88e9ded44136443d6bb18a8796d57fbea95ba 100644 (file)
@@ -72,6 +72,12 @@ AC_ARG_WITH(
        ,
        [with_user="nobody"]
 )
+AC_ARG_ENABLE(
+       [x86-sse],
+       [AS_HELP_STRING([--disable-x86-sse], [SSE/SS2 optimizations on x86 @<:@default enabled@:>@])],
+       ,
+       [enable_x86_sse="yes"]
+)
 
 ACX_PTHREAD(, [AC_MSG_ERROR([Cannot initialize pthread environment])])
 LIBS="${PTHREAD_LIBS} ${LIBS}"
@@ -82,37 +88,21 @@ AC_TYPE_UINT8_T
 AC_TYPE_UINT16_T
 AC_TYPE_UINT32_T
 AC_C_INLINE
+AC_FUNC_STRERROR_R
+AC_C__GENERIC
+AC_C___ATOMIC
+AC_CHECK_SIZEOF([void *])
+AC_CANONICAL_HOST
 
-# https://lists.gnu.org/archive/html/autoconf-commit/2012-12/msg00004.html
-# AC_C__GENERIC
-# -------------
-# Define HAVE_C__GENERIC if _Generic works, a la C11.
-AN_IDENTIFIER([_Generic], [AC_C__GENERIC])
-AC_DEFUN([AC_C__GENERIC],
-[AC_CACHE_CHECK([for _Generic], ac_cv_c__Generic,
-[AC_COMPILE_IFELSE(
-   [AC_LANG_SOURCE(
-      [[int
-        main (int argc, char **argv)
-        {
-          int a = _Generic (argc, int: argc = 1);
-          int *b = &_Generic (argc, default: argc);
-          char ***c = _Generic (argv, int: argc, default: argv ? &argv : 0);
-          _Generic (1 ? 0 : b, int: a, default: b) = &argc;
-          _Generic (a = 1, default: a) = 3;
-          return a + !b + !c;
-        }
-      ]])],
-   [ac_cv_c__Generic=yes],
-   [ac_cv_c__Generic=no])])
-if test $ac_cv_c__Generic = yes; then
-  AC_DEFINE([HAVE_C__GENERIC], 1,
-           [Define to 1 if C11-style _Generic works.])
+AC_ARG_VAR([SSE_CANDIDATE], [C compiler flags for SSE])
+AS_CASE([$host_cpu],
+       [i?86], [SSE_CANDIDATE="yes"]
+)
+AC_SUBST([SSE_CANDIDATE])
+if test "${SSE_CANDIDATE}" = "yes" -a "${enable_x86_sse}" = "yes"; then
+       opt="-msse2 -mfpmath=sse"
+       AX_CHECK_COMPILE_FLAG($opt, [CFLAGS="$CFLAGS $opt"], [])
 fi
-])# AC_C__GENERIC
-
-AC_C__GENERIC
-AC_FUNC_STRERROR_R
 
 AC_ARG_VAR([MATH_CFLAGS], [C compiler flags for math])
 AC_ARG_VAR([MATH_LIBS], [linker flags for math])