+# --with-libprotobuf {{{
+with_libprotobuf_cppflags=""
+with_libprotobuf_ldflags=""
+AC_ARG_WITH([libprotobuf], [AS_HELP_STRING([--with-libprotobuf@<:@=PREFIX@:>@], [Path to libprotobuf.])],
+ [
+ if test "x$withval" != "xno" && test "x$withval" != "xyes"
+ then
+ with_libprotobuf_cppflags="-I$withval/include"
+ with_libprotobuf_ldflags="-L$withval/lib"
+ with_libprotobuf="yes"
+ fi
+ if test "x$withval" = "xno"
+ then
+ with_libprotobuf="no (disabled on command line)"
+ fi
+ ],
+ [withval="yes"]
+)
+if test "x$withval" = "xyes"
+then
+PKG_CHECK_MODULES([PROTOBUF], [protobuf],
+ [with_libprotobuf="yes"],
+ [with_libprotobuf="no (pkg-config could not find libprotobuf)"]
+)
+fi
+
+if test "x$withval" != "xno"
+then
+ SAVE_LDFLAGS="$LDFLAGS"
+ SAVE_LIBS="$LIBS"
+ LDFLAGS="$with_libprotobuf_ldflags"
+ LIBS="$PROTOBUF_LIBS $LIBS"
+ AC_LANG_PUSH([C++])
+ AC_CHECK_LIB([protobuf], [main],
+ [
+ SAVE_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$with_libprotobuf_cppflags $PROTOBUF_CFLAGS"
+ if test "x$PROTOBUF_LIBS" = "x"
+ then
+ PROTOBUF_LIBS="-lprotobuf"
+ fi
+ AC_CHECK_HEADERS([google/protobuf/util/time_util.h],
+ [with_libprotobuf="yes"],
+ [with_libprotobuf="no (<google/protobuf/util/time_util.h> not found)"]
+ )
+ CPPFLAGS="$SAVE_CPPFLAGS"
+ ],
+ [with_libprotobuf="no (libprotobuf not found)"]
+ )
+ AC_LANG_POP([C++])
+ LDFLAGS="$SAVE_LDFLAGS"
+ LIBS="$SAVE_LIBS"
+fi
+BUILD_WITH_LIBPROTOBUF_CPPFLAGS="$with_libprotobuf_cppflags $PROTOBUF_CFLAGS"
+BUILD_WITH_LIBPROTOBUF_LDFLAGS="$with_libprotobuf_ldflags"
+BUILD_WITH_LIBPROTOBUF_LIBS="$PROTOBUF_LIBS"
+AC_SUBST([BUILD_WITH_LIBPROTOBUF_CPPFLAGS])
+AC_SUBST([BUILD_WITH_LIBPROTOBUF_LDFLAGS])
+AC_SUBST([BUILD_WITH_LIBPROTOBUF_LIBS])
+# }}}
+
+# --with-libprotobuf-c {{{
+with_libprotobuf_c_cppflags=""
+with_libprotobuf_c_ldflags=""
+AC_ARG_WITH([libprotobuf-c], [AS_HELP_STRING([--with-libprotobuf-c@<:@=PREFIX@:>@], [Path to libprotobuf-c.])],
+ [
+ if test "x$withval" != "xno" && test "x$withval" != "xyes"
+ then
+ with_libprotobuf_c_cppflags="-I$withval/include"
+ with_libprotobuf_c_ldflags="-L$withval/lib"
+ with_libprotobuf_c="yes"
+ fi
+ if test "x$withval" = "xno"
+ then
+ with_libprotobuf_c="no (disabled on command line)"
+ fi
+ ],
+ [withval="yes"]
+)
+if test "x$withval" = "xyes"
+then
+PKG_CHECK_MODULES([PROTOBUF_C], [libprotobuf-c],
+ [with_libprotobuf_c="yes"],
+ [with_libprotobuf_c="no (pkg-config could not find libprotobuf-c)"]
+)
+fi
+
+if test "x$withval" != "xno"
+then
+ SAVE_LDFLAGS="$LDFLAGS"
+ SAVE_LIBS="$LIBS"
+ LDFLAGS="$with_libprotobuf_c_ldflags"
+ LIBS="$PROTOBUF_C_LIBS $LIBS"
+ AC_CHECK_LIB([protobuf-c], [protobuf_c_message_pack],
+ [
+ SAVE_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$with_libprotobuf_c_cppflags $PROTOBUF_C_CFLAGS"
+ if test "x$PROTOBUF_C_LIBS" = "x"
+ then
+ PROTOBUF_C_LIBS="-lprotobuf-c"
+ fi
+ AC_CHECK_HEADERS([protobuf-c/protobuf-c.h google/protobuf-c/protobuf-c.h],
+ [
+ with_libprotobuf_c="yes"
+ break
+ ],
+ [with_libprotobuf_c="no (<protobuf-c.h> not found)"]
+ )
+ CPPFLAGS="$SAVE_CPPFLAGS"
+ ],
+ [with_libprotobuf_c="no (libprotobuf-c not found)"]
+ )
+ LDFLAGS="$SAVE_LDFLAGS"
+ LIBS="$SAVE_LIBS"
+fi
+BUILD_WITH_LIBPROTOBUF_C_CPPFLAGS="$with_libprotobuf_c_cppflags $PROTOBUF_C_CFLAGS"
+BUILD_WITH_LIBPROTOBUF_C_LDFLAGS="$with_libprotobuf_c_ldflags"
+BUILD_WITH_LIBPROTOBUF_C_LIBS="$PROTOBUF_C_LIBS"
+AC_SUBST([BUILD_WITH_LIBPROTOBUF_C_CPPFLAGS])
+AC_SUBST([BUILD_WITH_LIBPROTOBUF_C_LDFLAGS])
+AC_SUBST([BUILD_WITH_LIBPROTOBUF_C_LIBS])
+# }}}
+