X-Git-Url: https://git.tokkee.org/?p=sysdb.git;a=blobdiff_plain;f=configure.ac;h=b7a07e662bdaf80ccfde933aaf26ce5a38cdf0ba;hp=fe9331df053cb85ef664fa5d3c1c452ef2b4bb27;hb=edba65afec8c547fb6c02346eda68595ce9a5839;hpb=bf3b8e60b2fdc493c4e04b05ce67abf69ca9a4ff diff --git a/configure.ac b/configure.ac index fe9331d..b7a07e6 100644 --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,6 @@ dnl Process this file with autoconf to produce a configure script. dnl -dnl This is the syscollector configure script. +dnl This is the SysDB configure script. dnl dnl Copyright (C) 2012 Sebastian 'tokkee' Harl dnl All rights reserved. @@ -26,18 +26,18 @@ dnl WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR dnl OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF dnl ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -AC_INIT([system collector],[m4_esyscmd(./version-gen.sh)], +AC_INIT([System DataBase],[m4_esyscmd(./version-gen.sh)], [sh@tokkee.org], - [syscollector], - [http://git.tokkee.org/?p=syscollector.git]) + [sysdb], + [http://git.tokkee.org/?p=sysdb.git]) PACKAGE_MAINTAINER="Sebastian 'tokkee' Harl " AC_DEFINE_UNQUOTED([PACKAGE_MAINTAINER], ["$PACKAGE_MAINTAINER"], [Define to the name of the maintainer of this package.]) -AC_CONFIG_SRCDIR([src/syscollector.c]) +AC_CONFIG_SRCDIR([src/sysdb.c]) AC_CONFIG_HEADERS([src/config.h]) -AC_PREFIX_DEFAULT([/opt/syscollector]) +AC_PREFIX_DEFAULT([/opt/sysdb]) -AM_INIT_AUTOMAKE([foreign -Wall]) +AM_INIT_AUTOMAKE([foreign subdir-objects -Wall]) AC_LANG(C) @@ -48,6 +48,7 @@ AC_PROG_CPP AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_MAKE_SET +AM_PROG_AR AM_PROG_CC_C_O AM_PROG_LEX @@ -171,8 +172,7 @@ if test "x$enable_strict_checks" = "xyes"; then -Wmissing-prototypes \ -Wpointer-arith \ -Wshadow \ - -Wstrict-prototypes \ - -Wunreachable-code; do + -Wstrict-prototypes; do AC_MSG_CHECKING([whether $CC accepts $flag]) if test_cc_flags $flag; then @@ -185,11 +185,130 @@ if test "x$enable_strict_checks" = "xyes"; then fi AC_SUBST([STRICT_CFLAGS]) +m4_divert_once([HELP_ENABLE], [ +Build dependencies:]) + +dnl Testing. +PKG_CHECK_MODULES([CHECK], [check >= 0.9.4], + [build_testing="yes"], [build_testing="no"]) + AC_CHECK_HEADERS(libgen.h) dnl Check for dependencies. +AC_ARG_WITH([libdbi], + [AS_HELP_STRING([--with-libdbi], [libdbi support (default: auto)])], + [with_libdbi="$withval"], + [with_libdbi="yes"]) +if test "x$with_libdbi" = "xyes"; then + AC_CHECK_HEADERS([dbi/dbi.h], + [with_libdbi="yes"], + [with_libdbi="no (dbi/dbi.h) not found"]) +fi +if test "x$with_libdbi" = "xyes"; then + AC_CHECK_LIB([dbi], [dbi_initialize], + [with_libdbi="yes"], + [with_libdbi="no (libdbi or symbol 'dbi_initialize' not found)"]) +fi +AM_CONDITIONAL([BUILD_WITH_LIBDBI], test "x$with_libdbi" = "xyes") + +dnl Required for mocking FILE related functions. +orig_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS -D_GNU_SOURCE" +AC_CHECK_FUNCS([fopencookie], + [have_fopencookie="yes"], + [have_fopencookie="no (fopencookie not available)"]) +CFLAGS="$orig_CFLAGS" +AM_CONDITIONAL([BUILD_WITH_FOPENCOOKIE], test "x$have_fopencookie" = "xyes") +if test "x$have_fopencookie" = "xyes"; then + AC_DEFINE([HAVE_FOPENCOOKIE], 1) +fi + +dnl readline support +AC_ARG_WITH([readline], + [AS_HELP_STRING([--with-readline], + [readline support (libedit/libreadline) (default: auto, prefer libedit)])], + [readline_support="$withval"], + [readline_support="auto"]) + +if test "x$readline_support" = "xyes"; then + readline_support="auto" +fi + +have_libedit="no" +if test "x$readline_support" = "xauto" \ + || test "x$readline_support" = "xlibedit"; then + PKG_CHECK_MODULES([LIBEDIT], [libedit], + [have_libedit="yes"], [have_libedit="no"]) + if test "x$have_libedit" = "xyes"; then + AC_CHECK_HEADERS([editline/readline.h], [], + [AC_CHECK_HEADERS([readline.h], [], + [have_libedit="no (readline header not found"])]) + fi + if test "x$have_libedit" = "xyes"; then + AC_CHECK_HEADERS([editline/history.h], [], + [AC_CHECK_HEADERS([history.h], [], + [have_libedit="no (history header not found"])]) + fi +else + have_libedit="disabled on command-line" +fi + +have_libreadline="no" +if test "x$have_libedit" = "xno"; then + if test "x$readline_support" = "xauto" \ + || test "x$readline_support" = "xlibreadline"; then + AC_CHECK_LIB([readline], [readline], + [have_libreadline="yes"], + [have_libreadline="no (libreadline or symbol 'readline' not found)"]) + fi + if test "x$have_libreadline" = "xyes"; then + AC_CHECK_HEADERS([readline/readline.h], [], + [AC_CHECK_HEADERS([readline.h], [], + [have_libreadline="no (readline header not found"])]) + fi + if test "x$have_libreadline" = "xyes"; then + AC_CHECK_HEADERS([readline/history.h], [], + [AC_CHECK_HEADERS([history.h], [], + [have_libreadline="no (history header not found"])]) + fi +else + have_libreadline="unchecked (prefer libedit)" +fi + +if test "x$have_libedit" = "xyes"; then + READLINE_LIBS="$LIBEDIT_LIBS" + READLINE_CFLAGS="$LIBEDIT_CFLAGS" + readline_support="libedit" +else if test "x$have_libreadline" = "xyes"; then + READLINE_LIBS="-lreadline -lhistory" + READLINE_CFLAGS="" + readline_support="libreadline" +else + READLINE_LIBS="" + READLINE_CFLAGS="" + if test "x$readline_support" = "xno"; then + AC_MSG_WARN([*** readline support disabled; disabling SysDB client]) + else if test "x$readline_support" = "xauto"; then + AC_MSG_WARN([*** readline not found; disabling SysDB client]) + else + AC_MSG_ERROR([readline not found]) + fi; fi + readline_support="no" +fi; fi +AC_SUBST([READLINE_LIBS]) +AC_SUBST([READLINE_CFLAGS]) +AM_CONDITIONAL([BUILD_CLIENT], test "x$readline_support" != "no") + +dnl Feature checks. build_documentation="yes" +have_xmlto="yes" +AC_PATH_PROG([XMLTO], [xmlto]) +if test "x$XMLTO" = "x"; then + have_xmlto="no" + build_documentation="no (missing xmlto)" +fi + have_xsltproc="yes" AC_PATH_PROG([XSLTPROC], [xsltproc]) if test "x$XSLTPROC" = "x"; then @@ -205,17 +324,32 @@ if test "x$A2X" = "x"; then fi AC_SUBST([A2X]) +dnl Plugin checks. +puppet_storeconfigs_default=$with_libdbi +if test "x$puppet_storeconfigs_default" != "xyes"; then + puppet_storeconfigs_default="no (requires libdbi)" +fi + m4_divert_once([HELP_ENABLE], [ Backends:]) -AC_SC_PLUGIN_INIT -AC_SC_PLUGIN([collectd], [yes], +AC_SDB_PLUGIN_INIT +AC_SDB_PLUGIN([collectd], [yes], [backend accessing the system statistics collection daemon]) +AC_SDB_PLUGIN([mk-livestatus], [yes], + [backend accessing Nagios/Icinga/Shinken using MK Livestatus]) +AC_SDB_PLUGIN([puppet-storeconfigs], [$puppet_storeconfigs_default], + [backend accessing the Puppet stored configuration database]) +AC_SDB_PLUGIN([syslog], [yes], + [plugin logging to syslog]) +AC_SDB_PLUGIN([cname-dns], [yes], + [canonicalize hostnames by querying DNS]) AM_CONDITIONAL([BUILD_DOCUMENTATION], test "x$build_documentation" = "xyes") +AM_CONDITIONAL([BUILD_TESTING], test "x$build_testing" = "xyes") AC_CONFIG_FILES([Makefile doc/Makefile src/Makefile - src/liboconfig/Makefile]) + src/liboconfig/Makefile t/Makefile]) AC_OUTPUT BUILD_DATE="`date --utc '+%F %T'` (UTC)" @@ -233,15 +367,28 @@ AC_MSG_RESULT([ build date: $BUILD_DATE]) AC_MSG_RESULT() AC_MSG_RESULT([ Tools:]) AC_MSG_RESULT([ AsciiDoc (a2x): . . . . . . $have_a2x]) -AC_MSG_RESULT([ xsltproc: . . . . . . . . . $have_xsltproc]) +AC_MSG_RESULT([ xmlto / xsltproc: . . . . . $have_xmlto / $have_xsltproc]) AC_MSG_RESULT() AC_MSG_RESULT([ Features:]) AC_MSG_RESULT([ documentation: . . . . . . $build_documentation]) +AC_MSG_RESULT([ unit testing: . . . . . . . $build_testing]) +AC_MSG_RESULT([ stdio mocking: . . . . . $have_fopencookie]) +AC_MSG_RESULT() +AC_MSG_RESULT([ Libraries:]) +AC_MSG_RESULT([ libdbi: . . . . . . . . . . $with_libdbi]) +AC_MSG_RESULT([ libedit: . . . . . . . . . $have_libedit]) +AC_MSG_RESULT([ libreadline: . . . . . . . $have_libreadline]) AC_MSG_RESULT() AC_MSG_RESULT([ Backends:]) AC_MSG_RESULT([ collectd: . . . . . . . . . $enable_collectd]) +AC_MSG_RESULT([ mk-livestatus: . . . . . . $enable_mk_livestatus]) +AC_MSG_RESULT([ puppet-storeconfigs: . . . $enable_puppet_storeconfigs]) +AC_MSG_RESULT() +AC_MSG_RESULT([ Plugins:]) +AC_MSG_RESULT([ cname::dns: . . . . . . . . $enable_cname_dns]) AC_MSG_RESULT() AC_MSG_RESULT([This package is maintained by $PACKAGE_MAINTAINER.]) AC_MSG_RESULT([Please report bugs to $PACKAGE_BUGREPORT.]) AC_MSG_RESULT() +dnl vim: set tw=78 sw=4 ts=4 noexpandtab :