Merge branch 'cm/lvm'
authorFlorian Forster <octo@collectd.org>
Wed, 17 Apr 2013 05:56:08 +0000 (07:56 +0200)
committerFlorian Forster <octo@collectd.org>
Wed, 17 Apr 2013 05:56:22 +0000 (07:56 +0200)
Github: #291
Signed-off-by: Florian Forster <octo@collectd.org>
1  2 
configure.in
src/Makefile.am

diff --combined configure.in
@@@ -49,12 -49,15 +49,12 @@@ AC_PROG_YAC
  PKG_PROG_PKG_CONFIG
  
  AC_CHECK_PROG([have_protoc_c], [protoc-c], [yes], [no])
 -if test "x$have_protoc_c" = "xyes"
 -then
 -      AC_CHECK_HEADERS([google/protobuf-c/protobuf-c.h],
 -                       [have_protobuf_c_h="yes"],
 -                       [have_protobuf_c_h="no"])
 -fi
 +AC_CHECK_HEADERS([google/protobuf-c/protobuf-c.h],
 +                 [have_protobuf_c_h="yes"],
 +                 [have_protobuf_c_h="no"])
  if test "x$have_protoc_c" = "xyes" && test "x$have_protobuf_c_h" != "xyes"
  then
 -      have_protoc_c="no (unable to find protobuf-c.h)"
 +      have_protoc_c="no (unable to find <google/protobuf-c/protobuf-c.h>)"
  fi
  AM_CONDITIONAL(HAVE_PROTOC_C, test "x$have_protoc_c" = "xyes")
  
@@@ -591,12 -594,12 +591,12 @@@ AC_CACHE_CHECK([for strtok_r]
    [c_cv_have_strtok_r_default],
    AC_LINK_IFELSE(
      [AC_LANG_PROGRAM(
 -    [[[
 +[[[
  #include <stdlib.h>
  #include <stdio.h>
  #include <string.h>
 -    ]]],
 -    [[[
 +]]],
 +[[[
        char buffer[] = "foo,bar,baz";
        char *token;
        char *dummy;
          dummy = NULL;
          printf ("token = %s;\n", token);
        }
 -    ]]])],
 +]]]
 +    )],
      [c_cv_have_strtok_r_default="yes"],
      [c_cv_have_strtok_r_default="no"]
    )
@@@ -624,12 -626,12 +624,12 @@@ the
      [c_cv_have_strtok_r_reentrant],
      AC_LINK_IFELSE(
        [AC_LANG_PROGRAM(
 -      [[[
 +[[[
  #include <stdlib.h>
  #include <stdio.h>
  #include <string.h>
 -      ]]],
 -      [[[
 +]]],
 +[[[
          char buffer[] = "foo,bar,baz";
          char *token;
          char *dummy;
            dummy = NULL;
            printf ("token = %s;\n", token);
          }
 -      ]]])],
 +]]]
 +      )],
        [c_cv_have_strtok_r_reentrant="yes"],
        [AC_MSG_FAILURE([strtok_r isn't available. Please file a bugreport!])]
      )
@@@ -721,15 -722,15 +721,15 @@@ if test "x$have_strptime" = "xyes
  then
        AC_CACHE_CHECK([whether strptime is exported by default],
                       [c_cv_have_strptime_default],
 -                     AC_COMPILE_IFELSE(
 -[AC_LANG_PROGRAM(
 +                     AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
  [[[
  #include <time.h>
  ]]],
  [[[
   struct tm stm;
   (void) strptime ("2010-12-30%13:42:42", "%Y-%m-%dT%T", &stm);
 -]]])],
 +]]]
 +                     )],
                       [c_cv_have_strptime_default="yes"],
                       [c_cv_have_strptime_default="no"]))
  fi
@@@ -737,7 -738,8 +737,7 @@@ if test "x$have_strptime" = "xyes" && t
  then
        AC_CACHE_CHECK([whether strptime needs standards mode],
                       [c_cv_have_strptime_standards],
 -                     AC_COMPILE_IFELSE(
 -[AC_LANG_PROGRAM(
 +                     AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
  [[[
  #ifndef _ISOC99_SOURCE
  # define _ISOC99_SOURCE 1
  #ifndef _XOPEN_SOURCE
  # define _XOPEN_SOURCE 500
  #endif
 -
  #include <time.h>
  ]]],
  [[[
   struct tm stm;
   (void) strptime ("2010-12-30%13:42:42", "%Y-%m-%dT%T", &stm);
 -]]])],
 +]]]
 +                     )],
                       [c_cv_have_strptime_standards="yes"],
                       [c_cv_have_strptime_standards="no"]))
  
@@@ -770,6 -772,7 +770,6 @@@ if test "x$GCC" = "xyes
  then
        CFLAGS="$SAVE_CFLAGS"
  fi
 -
  # }}} Check for strptime
  
  AC_CHECK_FUNCS(swapctl, [have_swapctl="yes"], [have_swapctl="no"])
@@@ -777,17 -780,17 +777,17 @@@ if test "x$have_swapctl" = "xyes"; the
          AC_CACHE_CHECK([whether swapctl takes two arguments],
                  [c_cv_have_swapctl_two_args],
                  AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
 -[[
 +[[[
  #if HAVE_SYS_SWAP_H && !defined(_LP64) && _FILE_OFFSET_BITS == 64
  #  undef _FILE_OFFSET_BITS
  #  undef _LARGEFILE64_SOURCE
  #endif
  #include <sys/stat.h>
  #include <sys/swap.h>
 -]],
 -[[
 +]]],
 +[[[
  int num = swapctl(0, NULL);
 -]]
 +]]]
                          )],
                          [c_cv_have_swapctl_two_args="yes"],
                          [c_cv_have_swapctl_two_args="no"]
                  [c_cv_have_swapctl_three_args],
                  AC_COMPILE_IFELSE(
                          [AC_LANG_PROGRAM(
 -[[
 +[[[
  #if HAVE_SYS_SWAP_H && !defined(_LP64) && _FILE_OFFSET_BITS == 64
  #  undef _FILE_OFFSET_BITS
  #  undef _LARGEFILE64_SOURCE
  #endif
  #include <sys/stat.h>
  #include <sys/swap.h>
 -]],
 -[[
 +]]],
 +[[[
  int num = swapctl(0, NULL, 0);
 -]]
 +]]]
                          )],
                          [c_cv_have_swapctl_three_args="yes"],
                          [c_cv_have_swapctl_three_args="no"]
@@@ -841,19 -844,19 +841,19 @@@ AC_ARG_WITH(nan-emulation, [AS_HELP_STR
  if test "x$nan_type" = "xnone"; then
    AC_CACHE_CHECK([whether NAN is defined by default],
      [c_cv_have_nan_default],
 -    AC_COMPILE_IFELSE(
 -      [AC_LANG_PROGRAM(
 -      [[[
 +    AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
 +[[[
  #include <stdlib.h>
  #include <math.h>
  static double foo = NAN;
 -      ]]],
 -      [[[
 +]]],
 +[[[
         if (isnan (foo))
          return 0;
         else
        return 1;
 -      ]]])],
 +]]]
 +      )],
        [c_cv_have_nan_default="yes"],
        [c_cv_have_nan_default="no"]
      )
  if test "x$nan_type" = "xnone"; then
    AC_CACHE_CHECK([whether NAN is defined by __USE_ISOC99],
      [c_cv_have_nan_isoc],
 -    AC_COMPILE_IFELSE(
 -      [AC_LANG_PROGRAM(
 -      [[[
 +    AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
 +[[[
  #include <stdlib.h>
  #define __USE_ISOC99 1
  #include <math.h>
  static double foo = NAN;
 -      ]]],
 -      [[[
 +]]],
 +[[[
         if (isnan (foo))
          return 0;
         else
        return 1;
 -      ]]])],
 +]]]
 +      )],
        [c_cv_have_nan_isoc="yes"],
        [c_cv_have_nan_isoc="no"]
      )
@@@ -894,8 -897,9 +894,8 @@@ if test "x$nan_type" = "xnone"; the
    LDFLAGS="$LDFLAGS -lm"
    AC_CACHE_CHECK([whether NAN can be defined by 0/0],
      [c_cv_have_nan_zero],
 -    AC_RUN_IFELSE(
 -      [AC_LANG_PROGRAM(
 -      [[[
 +    AC_RUN_IFELSE([AC_LANG_PROGRAM(
 +[[[
  #include <stdlib.h>
  #include <math.h>
  #ifdef NAN
  # define isnan(f) ((f) != (f))
  #endif
  static double foo = NAN;
 -      ]]],
 -      [[[
 +]]],
 +[[[
         if (isnan (foo))
          return 0;
         else
        return 1;
 -      ]]])],
 +]]]
 +      )],
        [c_cv_have_nan_zero="yes"],
        [c_cv_have_nan_zero="no"]
      )
@@@ -955,8 -958,9 +955,8 @@@ fi; fi; f
  if test "x$fp_layout_type" = "xunknown"; then
    AC_CACHE_CHECK([if doubles are stored in x86 representation],
      [c_cv_fp_layout_need_nothing],
 -    AC_RUN_IFELSE(
 -      [AC_LANG_PROGRAM(
 -      [[[
 +    AC_RUN_IFELSE([AC_LANG_PROGRAM(
 +[[[
  #include <stdlib.h>
  #include <stdio.h>
  #include <string.h>
  #if HAVE_STDBOOL_H
  # include <stdbool.h>
  #endif
 -      ]]],
 -      [[[
 +]]],
 +[[[
        uint64_t i0;
        uint64_t i1;
        uint8_t c[8];
                return (0);
        else
                return (1);
 -      ]]])],
 +]]]
 +      )],
        [c_cv_fp_layout_need_nothing="yes"],
        [c_cv_fp_layout_need_nothing="no"]
      )
  if test "x$fp_layout_type" = "xunknown"; then
    AC_CACHE_CHECK([if endianflip converts to x86 representation],
      [c_cv_fp_layout_need_endianflip],
 -    AC_RUN_IFELSE(
 -      [AC_LANG_PROGRAM(
 -      [[[
 +    AC_RUN_IFELSE([AC_LANG_PROGRAM(
 +[[[
  #include <stdlib.h>
  #include <stdio.h>
  #include <string.h>
                         (((uint64_t)(A) & 0x0000000000ff0000LL) << 24) | \
                         (((uint64_t)(A) & 0x000000000000ff00LL) << 40) | \
                         (((uint64_t)(A) & 0x00000000000000ffLL) << 56))
 -      ]]],
 -      [[[
 +]]],
 +[[[
        uint64_t i0;
        uint64_t i1;
        uint8_t c[8];
                return (0);
        else
                return (1);
 -      ]]])],
 +]]]
 +      )],
        [c_cv_fp_layout_need_endianflip="yes"],
        [c_cv_fp_layout_need_endianflip="no"]
      )
  if test "x$fp_layout_type" = "xunknown"; then
    AC_CACHE_CHECK([if intswap converts to x86 representation],
      [c_cv_fp_layout_need_intswap],
 -    AC_RUN_IFELSE(
 -      [AC_LANG_PROGRAM(
 -      [[[
 +    AC_RUN_IFELSE([AC_LANG_PROGRAM(
 +[[[
  #include <stdlib.h>
  #include <stdio.h>
  #include <string.h>
  #endif
  #define intswap(A)    ((((uint64_t)(A) & 0xffffffff00000000LL) >> 32) | \
                         (((uint64_t)(A) & 0x00000000ffffffffLL) << 32))
 -      ]]],
 -      [[[
 +]]],
 +[[[
        uint64_t i0;
        uint64_t i1;
        uint8_t c[8];
                return (0);
        else
                return (1);
 -      ]]])],
 +]]]
 +      )],
        [c_cv_fp_layout_need_intswap="yes"],
        [c_cv_fp_layout_need_intswap="no"]
      )
@@@ -1141,15 -1144,15 +1141,15 @@@ if test "x$have_getmntent" = "xc"; the
                [c_cv_have_one_getmntent],
                AC_COMPILE_IFELSE(
                        [AC_LANG_PROGRAM(
 -[[
 +[[[
  #include "$srcdir/src/utils_mount.h"
 -]],
 -[[
 +]]],
 +[[[
  FILE *fh;
  struct mntent *me;
  fh = setmntent ("/etc/mtab", "r");
  me = getmntent (fh);
 -]]
 +]]]
                        )],
                        [c_cv_have_one_getmntent="yes"],
                        [c_cv_have_one_getmntent="no"]
                [c_cv_have_two_getmntent],
                AC_COMPILE_IFELSE(
                        [AC_LANG_PROGRAM(
 -[[
 +[[[
  #include "$srcdir/src/utils_mount.h"
 -]],
 -[[
 +]]],
 +[[[
                                 FILE *fh;
                                 struct mnttab mt;
                                 int status;
                                 fh = fopen ("/etc/mnttab", "r");
                                 status = getmntent (fh, &mt);
 -]]
 +]]]
                        )],
                        [c_cv_have_two_getmntent="yes"],
                        [c_cv_have_two_getmntent="no"]
  AC_MSG_CHECKING([if have htonll defined])
  
      have_htonll="no"
 -    AC_LINK_IFELSE([
 -       AC_LANG_PROGRAM([[[
 +    AC_LINK_IFELSE([AC_LANG_PROGRAM(
 +[[[
  #include <sys/types.h>
  #include <netinet/in.h>
  #if HAVE_INTTYPES_H
  # include <inttypes.h>
  #endif
 -       ]]], [[[
 +]]],
 +[[[
            return htonll(0);
 -       ]]])
 -    ], [
 +]]]
 +    )],
 +    [
        have_htonll="yes"
        AC_DEFINE(HAVE_HTONLL, 1, [Define if the function htonll exists.])
      ])
@@@ -1844,7 -1845,7 +1844,7 @@@ the
  
        if test "$with_libgcrypt" != "no"; then
                AM_PATH_LIBGCRYPT(1:1.2.0,,with_libgcrypt="no (version 1.2.0+ required)")
 -              GCRYPT_CPPFLAGS="$LIBGCRYPT_CPPFLAGS"
 +              GCRYPT_CPPFLAGS="$LIBGCRYPT_CPPFLAGS $LIBGCRYPT_CFLAGS"
                GCRYPT_LIBS="$LIBGCRYPT_LIBS"
        fi
  fi
        if test -d "$with_java_home"
        then
                AC_MSG_CHECKING([for jni.h])
 -              TMPDIR=`find "$with_java_home" -name jni.h -type f -exec 'dirname' '{}' ';' 2>/dev/null | head -n 1`
 -              if test "x$TMPDIR" != "x"
 +              TMPVAR=`find "$with_java_home" -name jni.h -type f -exec 'dirname' '{}' ';' 2>/dev/null | head -n 1`
 +              if test "x$TMPVAR" != "x"
                then
 -                      AC_MSG_RESULT([found in $TMPDIR])
 -                      JAVA_CPPFLAGS="$JAVA_CPPFLAGS -I$TMPDIR"
 +                      AC_MSG_RESULT([found in $TMPVAR])
 +                      JAVA_CPPFLAGS="$JAVA_CPPFLAGS -I$TMPVAR"
                else
                        AC_MSG_RESULT([not found])
                fi
  
                AC_MSG_CHECKING([for jni_md.h])
 -              TMPDIR=`find "$with_java_home" -name jni_md.h -type f -exec 'dirname' '{}' ';' 2>/dev/null | head -n 1`
 -              if test "x$TMPDIR" != "x"
 +              TMPVAR=`find "$with_java_home" -name jni_md.h -type f -exec 'dirname' '{}' ';' 2>/dev/null | head -n 1`
 +              if test "x$TMPVAR" != "x"
                then
 -                      AC_MSG_RESULT([found in $TMPDIR])
 -                      JAVA_CPPFLAGS="$JAVA_CPPFLAGS -I$TMPDIR"
 +                      AC_MSG_RESULT([found in $TMPVAR])
 +                      JAVA_CPPFLAGS="$JAVA_CPPFLAGS -I$TMPVAR"
                else
                        AC_MSG_RESULT([not found])
                fi
  
                AC_MSG_CHECKING([for libjvm.so])
 -              TMPDIR=`find "$with_java_home" -name libjvm.so -type f -exec 'dirname' '{}' ';' 2>/dev/null | head -n 1`
 -              if test "x$TMPDIR" != "x"
 +              TMPVAR=`find "$with_java_home" -name libjvm.so -type f -exec 'dirname' '{}' ';' 2>/dev/null | head -n 1`
 +              if test "x$TMPVAR" != "x"
                then
 -                      AC_MSG_RESULT([found in $TMPDIR])
 -                      JAVA_LDFLAGS="$JAVA_LDFLAGS -L$TMPDIR -Wl,-rpath -Wl,$TMPDIR"
 +                      AC_MSG_RESULT([found in $TMPVAR])
 +                      JAVA_LDFLAGS="$JAVA_LDFLAGS -L$TMPVAR -Wl,-rpath -Wl,$TMPVAR"
                else
                        AC_MSG_RESULT([not found])
                fi
                if test "x$JAVAC" = "x"
                then
                        AC_MSG_CHECKING([for javac])
 -                      TMPDIR=`find "$with_java_home" -name javac -type f 2>/dev/null | head -n 1`
 -                      if test "x$TMPDIR" != "x"
 +                      TMPVAR=`find "$with_java_home" -name javac -type f 2>/dev/null | head -n 1`
 +                      if test "x$TMPVAR" != "x"
                        then
 -                              JAVAC="$TMPDIR"
 +                              JAVAC="$TMPVAR"
                                AC_MSG_RESULT([$JAVAC])
                        else
                                AC_MSG_RESULT([not found])
                if test "x$JAR" = "x"
                then
                        AC_MSG_CHECKING([for jar])
 -                      TMPDIR=`find "$with_java_home" -name jar -type f 2>/dev/null | head -n 1`
 -                      if test "x$TMPDIR" != "x"
 +                      TMPVAR=`find "$with_java_home" -name jar -type f 2>/dev/null | head -n 1`
 +                      if test "x$TMPVAR" != "x"
                        then
 -                              JAR="$TMPDIR"
 +                              JAR="$TMPVAR"
                                AC_MSG_RESULT([$JAR])
                        else
                                AC_MSG_RESULT([not found])
@@@ -2152,6 -2153,58 +2152,58 @@@ AC_SUBST(JAVA_LIBS
  AM_CONDITIONAL(BUILD_WITH_JAVA, test "x$with_java" = "xyes")
  # }}}
  
+ # --with-liblvm2app {{{
+ with_liblvm2app_cppflags=""
+ with_liblvm2app_ldflags=""
+ AC_ARG_WITH(liblvm2app, [AS_HELP_STRING([--with-liblvm2app@<:@=PREFIX@:>@], [Path to liblvm2app.])],
+ [
+         if test "x$withval" != "xno" && test "x$withval" != "xyes"
+         then
+                 with_liblvm2app_cppflags="-I$withval/include"
+                 with_liblvm2app_ldflags="-L$withval/lib"
+                 with_liblvm2app="yes"
+         else
+                 with_liblvm2app="$withval"
+         fi
+ ],
+ [
+         with_liblvm2app="yes"
+ ])
+ if test "x$with_liblvm2app" = "xyes"
+ then
+         SAVE_CPPFLAGS="$CPPFLAGS"
+         CPPFLAGS="$CPPFLAGS $with_liblvm2app_cppflags"
+         AC_CHECK_HEADERS(lvm2app.h, [with_liblvm2app="yes"], [with_liblvm2app="no (lvm2app.h not found)"])
+         CPPFLAGS="$SAVE_CPPFLAGS"
+ fi
+ if test "x$with_liblvm2app" = "xyes"
+ then
+         SAVE_CPPFLAGS="$CPPFLAGS"
+         SAVE_LDFLAGS="$LDFLAGS"
+         CPPFLAGS="$CPPFLAGS $with_liblvm2app_cppflags"
+         LDFLAGS="$LDFLAGS $with_liblvm2app_ldflags"
+         AC_CHECK_LIB(lvm2app, lvm_init, [with_liblvm2app="yes"], [with_liblvm2app="no (Symbol 'lvm_init' not found)"])
+         CPPFLAGS="$SAVE_CPPFLAGS"
+         LDFLAGS="$SAVE_LDFLAGS"
+ fi
+ if test "x$with_liblvm2app" = "xyes"
+ then
+         BUILD_WITH_LIBLVM2APP_CPPFLAGS="$with_liblvm2app_cppflags"
+         BUILD_WITH_LIBLVM2APP_LDFLAGS="$with_liblvm2app_ldflags"
+         BUILD_WITH_LIBLVM2APP_LIBS="-llvm2app"
+         AC_SUBST(BUILD_WITH_LIBLVM2APP_CPPFLAGS)
+         AC_SUBST(BUILD_WITH_LIBLVM2APP_LDFLAGS)
+         AC_SUBST(BUILD_WITH_LIBLVM2APP_LIBS)
+         AC_DEFINE(HAVE_LIBLVM2APP, 1, [Define if liblvm2app is present and usable.])
+ fi
+ AM_CONDITIONAL(BUILD_WITH_LIBLVM2APP, test "x$with_liblvm2app" = "xyes")
+ # }}}
  # --with-libmemcached {{{
  with_libmemcached_cppflags=""
  with_libmemcached_ldflags=""
  #include <sys/socket.h>])
  
          AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
 -[[
 +[[[
  #include <stdio.h>
  #include <sys/types.h>
  #include <asm/types.h>
  #include <sys/socket.h>
  #include <linux/netlink.h>
  #include <linux/rtnetlink.h>
 -]],
 -[[
 +]]],
 +[[[
  int retval = TCA_STATS2;
  return (retval);
 -]]
 +]]]
        )],
        [AC_DEFINE([HAVE_TCA_STATS2], [1], [True if the enum-member TCA_STATS2 exists])])
  
        AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
 -[[
 +[[[
  #include <stdio.h>
  #include <sys/types.h>
  #include <asm/types.h>
  #include <sys/socket.h>
  #include <linux/netlink.h>
  #include <linux/rtnetlink.h>
 -]],
 -[[
 +]]],
 +[[[
  int retval = TCA_STATS;
  return (retval);
 -]]
 +]]]
        )],
        [AC_DEFINE([HAVE_TCA_STATS], 1, [True if the enum-member TCA_STATS exists])])
  
@@@ -2548,7 -2601,7 +2600,7 @@@ the
                [if function 'rtnl_dump_filter' expects five arguments],
                [c_cv_rtnl_dump_filter_five_args],
                AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
 -[[
 +[[[
  #include <stdio.h>
  #include <sys/types.h>
  #include <asm/types.h>
  #elif HAVE_LINUX_LIBNETLINK_H
  # include <linux/libnetlink.h>
  #endif
 -]],
 -[[
 +]]],
 +[[[
  if (rtnl_dump_filter(NULL, NULL, NULL, NULL, NULL))
        return 1;
  return 0;
 -]]
 +]]]
        )],
        [c_cv_rtnl_dump_filter_five_args="yes"],
        [c_cv_rtnl_dump_filter_five_args="no"]
                [if function 'rtnl_dump_filter' expects three arguments],
                [c_cv_rtnl_dump_filter_three_args],
                AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
 -[[
 +[[[
  #include <stdio.h>
  #include <sys/types.h>
  #include <asm/types.h>
  #elif HAVE_LINUX_LIBNETLINK_H
  # include <linux/libnetlink.h>
  #endif
 -]],
 -[[
 +]]],
 +[[[
  if (rtnl_dump_filter(NULL, NULL, NULL))
        return 1;
  return 0;
 -]]
 +]]]
        )],
        [c_cv_rtnl_dump_filter_three_args="yes"],
        [c_cv_rtnl_dump_filter_three_args="no"]
@@@ -3063,20 -3116,20 +3115,20 @@@ dnl ARCHFLAGS="" -> disable multi -arc
  
    AC_CACHE_CHECK([for libperl],
      [c_cv_have_libperl],
 -    AC_LINK_IFELSE(
 -      [AC_LANG_PROGRAM(
 -      [[[
 +    AC_LINK_IFELSE([AC_LANG_PROGRAM(
 +[[[
  #define PERL_NO_GET_CONTEXT
  #include <EXTERN.h>
  #include <perl.h>
  #include <XSUB.h>
 -      ]]],
 -      [[[
 +]]],
 +[[[
         dTHX;
         load_module (PERL_LOADMOD_NOIMPORT,
                         newSVpv ("Collectd::Plugin::FooBar", 24),
                         Nullsv);
 -      ]]])],
 +]]]
 +      )],
        [c_cv_have_libperl="yes"],
        [c_cv_have_libperl="no"]
      )
@@@ -3108,8 -3161,9 +3160,8 @@@ the
  
        AC_CACHE_CHECK([if perl supports ithreads],
                [c_cv_have_perl_ithreads],
 -              AC_LINK_IFELSE(
 -                      [AC_LANG_PROGRAM(
 -                      [[[
 +              AC_LINK_IFELSE([AC_LANG_PROGRAM(
 +[[[
  #include <EXTERN.h>
  #include <perl.h>
  #include <XSUB.h>
  #if !defined(USE_ITHREADS)
  # error "Perl does not support ithreads!"
  #endif /* !defined(USE_ITHREADS) */
 -                      ]]],
 -                      [[[ ]]])],
 +]]],
 +[[[ ]]]
 +                      )],
                        [c_cv_have_perl_ithreads="yes"],
                        [c_cv_have_perl_ithreads="no"]
                )
  
        AC_CACHE_CHECK([for broken Perl_load_module()],
                [c_cv_have_broken_perl_load_module],
 -              AC_LINK_IFELSE(
 -                      [AC_LANG_PROGRAM(
 -                      [[[
 +              AC_LINK_IFELSE([AC_LANG_PROGRAM(
 +[[[
  #define PERL_NO_GET_CONTEXT
  #include <EXTERN.h>
  #include <perl.h>
  #include <XSUB.h>
 -                      ]]],
 -                      [[[
 +]]],
 +[[[
                         dTHX;
                         load_module (PERL_LOADMOD_NOIMPORT,
                             newSVpv ("Collectd::Plugin::FooBar", 24),
                             Nullsv);
 -                      ]]])],
 +]]]
 +                      )],
                        [c_cv_have_broken_perl_load_module="no"],
                        [c_cv_have_broken_perl_load_module="yes"]
                )
@@@ -4629,6 -4682,7 +4681,7 @@@ the
        plugin_interface="yes"
        plugin_irq="yes"
        plugin_load="yes"
+       plugin_lvm="yes"
        plugin_memory="yes"
        plugin_nfs="yes"
        plugin_numa="yes"
@@@ -4925,6 -4979,7 +4978,7 @@@ AC_PLUGIN([libvirt],     [$plugin_libvi
  AC_PLUGIN([load],        [$plugin_load],       [System load])
  AC_PLUGIN([logfile],     [yes],                [File logging plugin])
  AC_PLUGIN([lpar],        [$with_perfstat],     [AIX logical partitions statistics])
+ AC_PLUGIN([lvm],         [$with_liblvm2app],   [LVM statistics])
  AC_PLUGIN([madwifi],     [$have_linux_wireless_h], [Madwifi wireless statistics])
  AC_PLUGIN([match_empty_counter], [yes],        [The empty counter match])
  AC_PLUGIN([match_hashed], [yes],               [The hashed match])
@@@ -5096,7 -5151,6 +5150,7 @@@ the
  fi
  
  dnl Perl bindings
 +PERL_BINDINGS_OPTIONS="PREFIX=${prefix}"
  AC_ARG_WITH(perl-bindings, [AS_HELP_STRING([--with-perl-bindings@<:@=OPTIONS@:>@], [Options passed to "perl Makefile.PL".])],
  [
        if test "x$withval" != "xno" && test "x$withval" != "xyes"
                PERL_BINDINGS_OPTIONS="$withval"
                with_perl_bindings="yes"
        else
 -              PERL_BINDINGS_OPTIONS=""
                with_perl_bindings="$withval"
        fi
  ],
  [
 -      PERL_BINDINGS_OPTIONS=""
        if test -n "$perl_interpreter"
        then
                with_perl_bindings="yes"
@@@ -5260,6 -5316,7 +5314,7 @@@ Configuration
      load  . . . . . . . . $enable_load
      logfile . . . . . . . $enable_logfile
      lpar... . . . . . . . $enable_lpar
+     lvm . . . . . . . . . $enable_lvm
      madwifi . . . . . . . $enable_madwifi
      match_empty_counter . $enable_match_empty_counter
      match_hashed  . . . . $enable_match_hashed
diff --combined src/Makefile.am
@@@ -136,7 -136,7 +136,7 @@@ collectd_tg_DEPENDENCIES = libcollectdc
  pkglib_LTLIBRARIES = 
  
  BUILT_SOURCES = 
 -CLEANFILES = 
 +CLEANFILES =
  
  if BUILD_PLUGIN_AGGREGATION
  pkglib_LTLIBRARIES += aggregation.la
@@@ -568,6 -568,15 +568,15 @@@ collectd_DEPENDENCIES += lpar.l
  lpar_la_LIBADD = -lperfstat
  endif
  
+ if BUILD_PLUGIN_LVM
+ pkglib_LTLIBRARIES += lvm.la
+ lvm_la_SOURCES = lvm.c
+ lvm_la_LDFLAGS = -module -avoid-version
+ lvm_la_LIBADD = $(BUILD_WITH_LIBLVM2APP_LIBS)
+ collectd_LDADD += "-dlopen" lvm.la
+ collectd_DEPENDENCIES += lvm.la
+ endif
  if BUILD_PLUGIN_MADWIFI
  pkglib_LTLIBRARIES += madwifi.la
  madwifi_la_SOURCES = madwifi.c madwifi.h
@@@ -904,9 -913,10 +913,9 @@@ collectd_DEPENDENCIES += pf.l
  endif
  
  if BUILD_PLUGIN_PINBA
 -BUILT_SOURCES += pinba.pb-c.c pinba.pb-c.h
 -CLEANFILES += pinba.pb-c.c pinba.pb-c.h
  pkglib_LTLIBRARIES += pinba.la
  pinba_la_SOURCES = pinba.c
 +nodist_pinba_la_SOURCES = pinba.pb-c.c pinba.pb-c.h
  pinba_la_LDFLAGS = -module -avoid-version
  pinba_la_LIBADD = -lprotobuf-c
  collectd_LDADD += "-dlopen" pinba.la
@@@ -1351,9 -1361,10 +1360,9 @@@ collectd_DEPENDENCIES += write_redis.l
  endif
  
  if BUILD_PLUGIN_WRITE_RIEMANN
 -BUILT_SOURCES += riemann.pb-c.c riemann.pb-c.h
 -CLEANFILES += riemann.pb-c.c riemann.pb-c.h
  pkglib_LTLIBRARIES += write_riemann.la
 -write_riemann_la_SOURCES = write_riemann.c riemann.pb-c.c
 +write_riemann_la_SOURCES = write_riemann.c
 +nodist_write_riemann_la_SOURCES = riemann.pb-c.c riemann.pb-c.h
  write_riemann_la_LDFLAGS = -module -avoid-version
  write_riemann_la_LIBADD = -lprotobuf-c
  collectd_LDADD += "-dlopen" write_riemann.la
@@@ -1400,7 -1411,7 +1409,7 @@@ dist_man_MANS = collectd.1 
  
  #collectd_1_SOURCES = collectd.pod
  
 -EXTRA_DIST = types.db pinba.proto riemann.proto
 +EXTRA_DIST = types.db
  
  EXTRA_DIST +=   collectd.conf.pod \
                collectd-email.pod \
                echo "$@ has some POD errors!"; false; \
        fi
  
 +# Protocol buffer for the "pinba" plugin.
 +EXTRA_DIST += pinba.proto
 +if HAVE_PROTOC_C
 +CLEANFILES += pinba.pb-c.c pinba.pb-c.h
 +BUILT_SOURCES += pinba.pb-c.c pinba.pb-c.h
 +
  pinba.pb-c.c pinba.pb-c.h: pinba.proto
        protoc-c -I$(srcdir) --c_out . $(srcdir)/pinba.proto
 +endif
 +
 +# Protocol buffer for the "write_riemann" plugin.
 +EXTRA_DIST += riemann.proto
 +if HAVE_PROTOC_C
 +CLEANFILES += riemann.pb-c.c riemann.pb-c.h
 +
 +BUILT_SOURCES += riemann.pb-c.c riemann.pb-c.h
  
  riemann.pb-c.c riemann.pb-c.h: riemann.proto
        protoc-c -I$(srcdir) --c_out . $(srcdir)/riemann.proto
 +endif
  
  install-exec-hook:
        $(mkinstalldirs) $(DESTDIR)$(sysconfdir)