]> arthur.barton.de Git - netdata.git/blobdiff - configure.ac
freeipmi.plugin; fixes #1799; fixes #1794; fixes #1309; fixes #1729
[netdata.git] / configure.ac
index d3a362ebdda3e222b4876f6325091a26accfbb4d..2aa742df86756ac7b82ffdf9bc2ed2cb41be85e6 100644 (file)
@@ -4,15 +4,19 @@
 AC_PREREQ(2.60)
 
 define([VERSION_MAJOR], [1])
-define([VERSION_MINOR], [4])
+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])
@@ -38,17 +51,25 @@ AC_CHECK_FUNCS_ONCE(accept4)
 AC_CHECK_TYPES([struct timespec, clockid_t], [], [], [[#include <time.h>]])
 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],
@@ -56,6 +77,12 @@ AC_ARG_ENABLE(
        ,
        [enable_plugin_nfacct="no"]
 )
+AC_ARG_ENABLE(
+       [plugin-freeipmi],
+       [AS_HELP_STRING([--enable-plugin-freeipmi], [freeipmi plugin, requires root])],
+       ,
+       [enable_plugin_freeipmi="no"]
+)
 AC_ARG_ENABLE(
        [pedantic],
        [AS_HELP_STRING([--enable-pedantic], [enable pedantic compiler warnings])],
@@ -111,17 +138,35 @@ else
        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
 AC_C__GENERIC
 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],
@@ -152,6 +197,19 @@ AC_DEFINE([NETDATA_WITH_UUID], [1], [uuid settings])
 OPTIONAL_UUID_CLFAGS="${UUID_CFLAGS}"
 OPTIONAL_UUID_LIBS="${UUID_LIBS}"
 
+if test "${enable_plugin_freeipmi}" = "yes"; then
+       PKG_CHECK_MODULES(
+               [IPMIMONITORING],
+               [libipmimonitoring],
+       )
+    test -z "${IPMIMONITORING_LIBS}" && AC_MSG_ERROR([ipmimonitoring required but not found. Try installing 'libipmimonitoring-dev' or 'libipmimonitoring-devel'])
+    freeipmi=yes
+    AC_DEFINE([HAVE_FREEIPMI], [1], [ipmimonitoring usability])
+       OPTIONAL_IPMIMONITORING_CLFAGS="${IPMIMONITORING_CFLAGS}"
+       OPTIONAL_IPMIMONITORING_LIBS="${IPMIMONITORING_LIBS}"
+fi
+AM_CONDITIONAL([FREEIPMI], [test x$freeipmi = xyes])
+
 if test "${enable_plugin_nfacct}" = "yes"; then
        PKG_CHECK_MODULES(
                [NFACCT],
@@ -167,6 +225,7 @@ if test "${enable_plugin_nfacct}" = "yes"; then
        OPTIONAL_NFACCT_CLFAGS="${NFACCT_CFLAGS} ${LIBMNL_CFLAGS}"
        OPTIONAL_NFACCT_LIBS="${NFACCT_LIBS} ${LIBMNL_LIBS}"
 fi
+
 if test "${with_zlib}" = "yes"; then
        PKG_CHECK_MODULES(
                [ZLIB],
@@ -177,6 +236,7 @@ if test "${with_zlib}" = "yes"; then
        OPTIONAL_ZLIB_CLFAGS="${ZLIB_CFLAGS}"
        OPTIONAL_ZLIB_LIBS="${ZLIB_LIBS}"
 fi
+
 if test "${with_math}" = "yes"; then
        test -z "${MATH_LIBS}" && AC_MSG_ERROR([math required but not found])
        AC_DEFINE([STORAGE_WITH_MATH], [1], [math settings])
@@ -218,6 +278,9 @@ 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_SUBST([OPTIONAL_IPMIMONITORING_CFLAGS])
+AC_SUBST([OPTIONAL_IPMIMONITORING_LIBS])
 
 AC_CONFIG_FILES([
        Makefile
@@ -235,4 +298,4 @@ AC_CONFIG_FILES([
 AC_OUTPUT
 
 test "${with_math}" != "yes" && AC_MSG_WARN([You are building without math. math allows accurate calculations. It should be enabled.]) || :
-test "${with_zlib}" != "yes" && AC_MSG_WARN([You are building without zlib. zlib allows netdata to trasnfer a lot less data with web clients. It should be enabled.]) || :
+test "${with_zlib}" != "yes" && AC_MSG_WARN([You are building without zlib. zlib allows netdata to transfer a lot less data with web clients. It should be enabled.]) || :