Code

store.h: Updated some documentation comments.
[sysdb.git] / configure.ac
index baf1137b530197b1689be9106ff4f9751b70377b..897112ef97192f7ffa847b3fc7b4ad2c842ecd8e 100644 (file)
@@ -33,6 +33,12 @@ AC_INIT([System DataBase],[m4_esyscmd(./version-gen.sh)],
 PACKAGE_MAINTAINER="Sebastian 'tokkee' Harl <tokkee@sysdb.io>"
 AC_DEFINE_UNQUOTED([PACKAGE_MAINTAINER], ["$PACKAGE_MAINTAINER"],
                [Define to the name of the maintainer of this package.])
+if test "x$PACKAGE_URL" = "x"; then
+       PACKAGE_URL="https://sysdb.io/"
+       AC_DEFINE_UNQUOTED([PACKAGE_URL], ["$PACKAGE_URL"],
+                       [Define to the home page for this package.])
+fi
+
 AC_CONFIG_SRCDIR([src/sysdb.c])
 AC_CONFIG_HEADERS([src/config.h])
 AC_PREFIX_DEFAULT([/opt/sysdb])
@@ -341,6 +347,66 @@ fi
 AC_SUBST([PROFILING_CFLAGS])
 AC_SUBST([PROFILING_LDFLAGS])
 
+ieee754_layout="unknown"
+AC_MSG_CHECKING([the memory layout of double precision values])
+AC_COMPILE_IFELSE(
+               [AC_LANG_PROGRAM(
+                       [[
+#include <string.h>
+#include <inttypes.h>
+                       ]],
+                       [[
+double d = 3.141592653e130;
+char c[8];
+if (sizeof(d) != 8)
+       return 2;
+memcpy(&c, &d, 8);
+if (c[0] == '\x04' && c[1] == '\x10' && c[2] == '\x1E' && c[3] == '\x66' &&
+       c[4] == '\x40' && c[5] == '\xA9' && c[6] == '\x06' && c[7] == '\x5B')
+       return 0;
+else
+       return 1;
+                       ]]
+               )],
+               [ieee754_layout="little-endian"], [ieee754_layout="unknown"])
+if test "x$ieee754_layout" = "xunknown"; then
+       AC_COMPILE_IFELSE(
+                       [AC_LANG_PROGRAM(
+                               [[
+#include <string.h>
+#include <inttypes.h>
+                               ]],
+                               [[
+double d = 3.141592653e130;
+char c[8];
+if (sizeof(d) != 8)
+       return 2;
+memcpy(&c, &d, 8);
+if (c[7] == '\x04' && c[6] == '\x10' && c[5] == '\x1E' && c[4] == '\x66' &&
+       c[3] == '\x40' && c[2] == '\xA9' && c[1] == '\x06' && c[0] == '\x5B')
+       return 0;
+else
+       return 1;
+                               ]]
+                       )],
+                       [ieee754_layout="big-endian"], [ieee754_layout="unknown"])
+fi
+AC_MSG_RESULT([IEEE-754 $ieee754_layout])
+
+AC_DEFINE([IEEE754_DOUBLE_LITTLE_ENDIAN], 1234,
+               [Identifier for IEEE-754 little-endian encoding of double precision values])
+AC_DEFINE([IEEE754_DOUBLE_BIG_ENDIAN], 4321,
+               [Identifier for IEEE-754 big-endian encoding of double precision values])
+if test "x$ieee754_layout" = "xlittle-endian"; then
+       AC_DEFINE([IEEE754_DOUBLE_BYTE_ORDER], 1234,
+                       [Define to 1 if double precision values use IEEE-754 little-endian encoding])
+else if test "x$ieee754_layout" = "xbig-endian"; then
+       AC_DEFINE([IEEE754_DOUBLE_BYTE_ORDER], 4321,
+                       [Define to 1 if double precision values use IEEE-754 little-endian encoding])
+else
+       AC_MSG_ERROR([Unknown memory layout of double precision values])
+fi; fi
+
 m4_divert_once([HELP_ENABLE], [
 Build dependencies:])
 
@@ -423,6 +489,12 @@ if test "x$have_fopencookie" = "xyes"; then
        AC_DEFINE([HAVE_FOPENCOOKIE], 1)
 fi
 
+dnl OpenSSL support
+PKG_CHECK_MODULES([OPENSSL], [openssl], [have_openssl="yes"], [have_openssl="no"])
+if test "x$have_openssl" != "xyes"; then
+       AC_MSG_ERROR([OpenSSL not found])
+fi
+
 dnl readline support
 AC_ARG_WITH([readline],
                [AS_HELP_STRING([--with-readline],
@@ -612,6 +684,13 @@ Time-series fetchers:])
 AC_SDB_PLUGIN([timeseries-rrdtool], [$rrdtool_default],
                [fetch time-series data from RRD files])
 
+m4_divert_once([HELP_ENABLE], [
+Store implementations:])
+AC_SDB_PLUGIN([store-memory], [yes],
+               [store objects in a volatile, in-memory database (read/write)])
+AC_SDB_PLUGIN([store-network], [yes],
+               [send stored objects to a remote instance (write only)])
+
 m4_divert_once([HELP_ENABLE], [
 Plugins:])
 
@@ -629,6 +708,32 @@ AC_OUTPUT
 
 BUILD_DATE="`date --utc '+%F %T'` (UTC)"
 
+asciidoc_info="$have_asciidoc"
+if test "x$have_asciidoc" = "xyes"; then
+       asciidoc_info="`$ASCIIDOC --version`"
+fi
+xmlto_info="$have_xmlto"
+if test "x$have_xmlto" = "xyes"; then
+       xmlto_info="`$XMLTO --version`"
+fi
+
+if test "x$unit_tests" = "xyes"; then
+       unit_tests="yes (check `$PKG_CONFIG --modversion check`)"
+fi
+
+openssl_info="$have_openssl"
+if test "x$have_openssl" = "xyes"; then
+       openssl_info="yes (version `$PKG_CONFIG --modversion openssl`)"
+fi
+libedit_info="$have_libedit"
+if test "x$have_libedit" = "xyes"; then
+       libedit_info="yes (version `$PKG_CONFIG --modversion libedit`)"
+fi
+librrd_info="$have_librrd"
+if test "x$have_librrd" = "xyes"; then
+       librrd_info="yes (version `$PKG_CONFIG --modversion librrd`)"
+fi
+
 AC_MSG_RESULT()
 AC_MSG_RESULT([$PACKAGE_NAME has been configured successfully.])
 AC_MSG_RESULT()
@@ -641,8 +746,8 @@ AC_MSG_RESULT([  package version: $PACKAGE_VERSION])
 AC_MSG_RESULT([  build date: $BUILD_DATE])
 AC_MSG_RESULT()
 AC_MSG_RESULT([  Tools:])
-AC_MSG_RESULT([    AsciiDoc: . . . . . . . . . $have_asciidoc])
-AC_MSG_RESULT([    xmlto:  . . . . . . . . . . $have_xmlto])
+AC_MSG_RESULT([    AsciiDoc: . . . . . . . . . $asciidoc_info])
+AC_MSG_RESULT([    xmlto:  . . . . . . . . . . $xmlto_info])
 AC_MSG_RESULT()
 AC_MSG_RESULT([  Features:])
 AC_MSG_RESULT([    documentation:  . . . . . . $build_documentation])
@@ -654,9 +759,10 @@ AC_MSG_RESULT([    profiling:  . . . . . . . . $enable_gprof])
 AC_MSG_RESULT()
 AC_MSG_RESULT([  Libraries:])
 AC_MSG_RESULT([    libdbi: . . . . . . . . . . $with_libdbi])
-AC_MSG_RESULT([    libedit:  . . . . . . . . . $have_libedit])
+AC_MSG_RESULT([    libedit:  . . . . . . . . . $libedit_info])
+AC_MSG_RESULT([    libopenssl: . . . . . . . . $openssl_info])
 AC_MSG_RESULT([    libreadline:  . . . . . . . $have_libreadline])
-AC_MSG_RESULT([    librrd: . . . . . . . . . . $have_librrd])
+AC_MSG_RESULT([    librrd: . . . . . . . . . . $librrd_info])
 AC_MSG_RESULT()
 AC_MSG_RESULT([  Backends:])
 AC_MSG_RESULT([    collectd::unixsock: . . . . $enable_collectd_unixsock])
@@ -667,6 +773,10 @@ AC_MSG_RESULT()
 AC_MSG_RESULT([  Time-series fetchers:])
 AC_MSG_RESULT([    rrdtool:  . . . . . . . . . $enable_timeseries_rrdtool])
 AC_MSG_RESULT()
+AC_MSG_RESULT([  Store implementations:])
+AC_MSG_RESULT([    memory: . . . . . . . . . . $enable_store_memory])
+AC_MSG_RESULT([    network (writer): . . . . . $enable_store_network])
+AC_MSG_RESULT()
 AC_MSG_RESULT([  Plugins:])
 AC_MSG_RESULT([    cname::dns: . . . . . . . . $enable_cname_dns])
 AC_MSG_RESULT([    syslog: . . . . . . . . . . $enable_syslog])