X-Git-Url: https://arthur.barton.de/gitweb/?a=blobdiff_plain;f=configure.ac;h=1dffbe0f304133bdd1a205da6e3d72c0f2b699d5;hb=62796ac50b1ae2807a187ac39855762fd3aefdc7;hp=15d742a7146e076f3c5a03ccfc5a4c5d03ad0de2;hpb=b8d71e9d940e24ba8f0b2f92dffe6e94d7885872;p=netdata.git diff --git a/configure.ac b/configure.ac index 15d742a7..1dffbe0f 100644 --- a/configure.ac +++ b/configure.ac @@ -4,15 +4,19 @@ AC_PREREQ(2.60) define([VERSION_MAJOR], [1]) -define([VERSION_MINOR], [3]) +define([VERSION_MINOR], [5]) define([VERSION_FIX], [1]) define([VERSION_NUMBER], VERSION_MAJOR[.]VERSION_MINOR[.]VERSION_FIX) -define([VERSION_SUFFIX], [_master]) +define([VERSION_SUFFIX], [_rolling]) dnl Set to "1" for a first RPM release of a new version PACKAGE_RPM_RELEASE="0.0.$(echo VERSION_SUFFIX | sed s/^_//)" -AC_INIT([netdata], VERSION_NUMBER[]VERSION_SUFFIX) +# We do not use m4_esyscmd_s to support older autoconf. +define([VERSION_STRING], m4_esyscmd(git describe 2>/dev/null | sed 's/^v//' | tr -d '\n')) +m4_ifval(VERSION_STRING, [], [define([VERSION_STRING], VERSION_NUMBER)]) + +AC_INIT([netdata], VERSION_STRING[]VERSION_SUFFIX) AM_MAINTAINER_MODE([disable]) if test x"$USE_MAINTAINER_MODE" = xyes; then @@ -24,6 +28,15 @@ PACKAGE_RPM_VERSION="VERSION_NUMBER" AC_SUBST([PACKAGE_RPM_VERSION]) AC_SUBST([PACKAGE_RPM_RELEASE]) +# fails on centos6 +#AX_CHECK_ENABLE_DEBUG() + +AX_GCC_FUNC_ATTRIBUTE(returns_nonnull) +AX_GCC_FUNC_ATTRIBUTE(malloc) +AX_GCC_FUNC_ATTRIBUTE(noreturn) +AX_GCC_FUNC_ATTRIBUTE(format) +AX_GCC_FUNC_ATTRIBUTE(warn_unused_result) + AC_CONFIG_AUX_DIR([.]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_MACRO_DIR([m4]) @@ -35,6 +48,28 @@ AC_PROG_INSTALL PKG_PROG_PKG_CONFIG AC_USE_SYSTEM_EXTENSIONS AC_CHECK_FUNCS_ONCE(accept4) +AC_CHECK_TYPES([struct timespec, clockid_t], [], [], [[#include ]]) +AC_SEARCH_LIBS([clock_gettime], [rt posix4]) +AC_CHECK_FUNCS([clock_gettime]) +AC_CHECK_FUNCS([sched_setscheduler sched_get_priority_min sched_get_priority_max nice]) + +# Check system type +case "$host_os" in +freebsd*) + build_target=freebsd + ;; +darwin*) + build_target=macos + LDFLAGS="${LDFLAGS} -framework CoreFoundation -framework IOKit" + ;; +*) + build_target=linux + ;; +esac + +AM_CONDITIONAL([FREEBSD], [test x$build_target = xfreebsd]) +AM_CONDITIONAL([MACOS], [test x$build_target = xmacos]) +AM_CONDITIONAL([LINUX], [test x$build_target = xlinux]) AC_ARG_ENABLE( [plugin-nfacct], @@ -72,80 +107,70 @@ 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}" CFLAGS="${CFLAGS} ${PTHREAD_CFLAGS}" CC="${PTHREAD_CC}" +TS_CHECK_JEMALLOC +if test "$has_jemalloc" = "1"; then + AC_DEFINE([ENABLE_JEMALLOC], [1], [compile and link with jemalloc]) +else + TS_CHECK_TCMALLOC + if test "$has_tcmalloc" = "1"; then + AC_DEFINE([ENABLE_TCMALLOC], [1], [compile and link with tcmalloc]) + else + AC_C_MALLOPT + AC_C_MALLINFO + fi +fi + +AC_TYPE_INT8_T +AC_TYPE_INT16_T +AC_TYPE_INT32_T +AC_TYPE_INT64_T AC_TYPE_UINT8_T AC_TYPE_UINT16_T AC_TYPE_UINT32_T +AC_TYPE_UINT64_T AC_C_INLINE AC_FUNC_STRERROR_R - -# 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.]) -fi -])# AC_C__GENERIC - AC_C__GENERIC - -# AC_C___ATOMIC -# ------------- -# Define HAVE_C___ATOMIC if __atomic works. -AN_IDENTIFIER([__atomic], [AC_C___ATOMIC]) -AC_DEFUN([AC_C___ATOMIC], -[AC_CACHE_CHECK([for __atomic], ac_cv_c___atomic, -[AC_COMPILE_IFELSE( - [AC_LANG_SOURCE( - [[int - main (int argc, char **argv) - { - volatile unsigned long ul1 = 1, ul2 = 0, ul3 = 2; - __atomic_compare_exchange(&ul1, &ul2, &ul3, 1, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); - __atomic_fetch_add(&ul1, 1, __ATOMIC_SEQ_CST); - __atomic_fetch_sub(&ul3, 1, __ATOMIC_SEQ_CST); - volatile unsigned long long ull1 = 1, ull2 = 0, ull3 = 2; - __atomic_compare_exchange(&ull1, &ull2, &ull3, 1, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); - __atomic_fetch_add(&ull1, 1, __ATOMIC_SEQ_CST); - __atomic_fetch_sub(&ull3, 1, __ATOMIC_SEQ_CST); - return 0; - } - ]])], - [ac_cv_c___atomic=yes], - [ac_cv_c___atomic=no])]) -if test $ac_cv_c___atomic = yes; then - AC_DEFINE([HAVE_C___ATOMIC], 1, - [Define to 1 if __atomic operations work.]) -fi -])# AC_C___ATOMIC - AC_C___ATOMIC +# AC_C_STMT_EXPR +AC_CHECK_SIZEOF([void *]) +AC_CANONICAL_HOST +AC_HEADER_MAJOR +AC_HEADER_RESOLV +AC_CHECK_HEADERS_ONCE([sys/prctl.h]) + +AC_CHECK_LIB([cap], [cap_get_proc, cap_set_proc], + [AC_CHECK_HEADER( + [sys/capability.h], + [ + CAP_LIBS=-lcap + AC_DEFINE([HAVE_CAPABILITY], [1], [libcap usability]) + ] + )] +) +OPTIONAL_CAP_LIBS="${CAP_LIBS}" +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_ARG_VAR([MATH_CFLAGS], [C compiler flags for math]) AC_ARG_VAR([MATH_LIBS], [linker flags for math]) @@ -232,6 +257,7 @@ AC_SUBST([OPTIONAL_ZLIB_CLFAGS]) AC_SUBST([OPTIONAL_ZLIB_LIBS]) AC_SUBST([OPTIONAL_UUID_CLFAGS]) AC_SUBST([OPTIONAL_UUID_LIBS]) +AC_SUBST([OPTIONAL_CAP_LIBS]) AC_CONFIG_FILES([ Makefile