]> arthur.barton.de Git - netdata.git/blobdiff - configure.ac
make PKG_CHECK_MODULES for IPMI fail, non fatal
[netdata.git] / configure.ac
index 002a3aa599acd58d83fcb8c0ee407860d03159ac..924a564dcc38ea6a60d574b72d87749f2c303343 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,9 @@ 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)
@@ -44,6 +51,7 @@ 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
@@ -55,11 +63,13 @@ darwin*)
        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],
@@ -67,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="detect"]
+)
 AC_ARG_ENABLE(
        [pedantic],
        [AS_HELP_STRING([--enable-pedantic], [enable pedantic compiler warnings])],
@@ -122,18 +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_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],
@@ -164,6 +197,24 @@ AC_DEFINE([NETDATA_WITH_UUID], [1], [uuid settings])
 OPTIONAL_UUID_CLFAGS="${UUID_CFLAGS}"
 OPTIONAL_UUID_LIBS="${UUID_LIBS}"
 
+if test ! "${enable_plugin_freeipmi}" = "no"; then
+       PKG_CHECK_MODULES(
+               [IPMIMONITORING],
+               [libipmimonitoring],
+               ,
+               :
+       )
+       if test ! -z "${IPMIMONITORING_LIBS}"; then
+               enable_plugin_freeipmi="yes"
+               AC_DEFINE([HAVE_FREEIPMI], [1], [ipmimonitoring usability])
+               OPTIONAL_IPMIMONITORING_CLFAGS="${IPMIMONITORING_CFLAGS}"
+               OPTIONAL_IPMIMONITORING_LIBS="${IPMIMONITORING_LIBS}"
+       elif test "${enable_plugin_freeipmi}" = "yes"; then
+               AC_MSG_ERROR([ipmimonitoring required but not found. Try installing 'libipmimonitoring-dev' or 'libipmimonitoring-devel'])
+       fi
+fi
+AM_CONDITIONAL([FREEIPMI], [test x$enable_plugin_freeipmi = xyes])
+
 if test "${enable_plugin_nfacct}" = "yes"; then
        PKG_CHECK_MODULES(
                [NFACCT],
@@ -179,6 +230,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],
@@ -189,6 +241,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])
@@ -230,6 +283,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
@@ -247,4 +303,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.]) || :