Updated pandora-build files to version 0.167
[m6w6/libmemcached] / m4 / pandora_have_protobuf.m4
1 dnl -*- mode: m4; c-basic-offset: 2; indent-tabs-mode: nil; -*-
2 dnl vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
3 dnl
4 dnl pandora-build: A pedantic build system
5 dnl Copyright (C) 2009 Sun Microsystems, Inc.
6 dnl This file is free software; Sun Microsystems
7 dnl gives unlimited permission to copy and/or distribute it,
8 dnl with or without modifications, as long as this notice is preserved.
9 dnl
10 dnl From Monty Taylor
11
12 dnl --------------------------------------------------------------------
13 dnl Check for Google Proto Buffers
14 dnl --------------------------------------------------------------------
15
16 AC_DEFUN([_PANDORA_SEARCH_LIBPROTOBUF],[
17 AC_REQUIRE([PANDORA_HAVE_PTHREAD])
18
19 AC_LANG_PUSH([C++])
20 save_CXXFLAGS="${CXXFLAGS}"
21 CXXFLAGS="${PTHREAD_CFLAGS} ${CXXFLAGS}"
22 AC_LIB_HAVE_LINKFLAGS(protobuf,,
23 [#include <google/protobuf/descriptor.h>],
24 [google::protobuf::FileDescriptor* file;],
25 [system])
26 CXXFLAGS="${PTHREAD_CFLAGS} ${save_CXXFLAGS}"
27 LIBPROTOBUF="${LIBPROTOBUF} ${PTHREAD_LIBS}"
28 LTLIBPROTOBUF="${LTLIBPROTOBUF} ${PTHREAD_LIBS}"
29 AC_LANG_POP()
30 ])
31
32 AC_DEFUN([PANDORA_HAVE_LIBPROTOBUF],[
33 AC_REQUIRE([_PANDORA_SEARCH_LIBPROTOBUF])
34 ])
35
36 AC_DEFUN([PANDORA_REQUIRE_LIBPROTOBUF],[
37 AC_REQUIRE([PANDORA_HAVE_LIBPROTOBUF])
38 AS_IF([test x$ac_cv_libprotobuf = xno],
39 AC_MSG_ERROR([libprotobuf is required for ${PACKAGE}. On Debian this can be found in libprotobuf-dev. On RedHat this can be found in protobuf-devel.]))
40 ])
41
42 AC_DEFUN([PANDORA_PROTOBUF_REQUIRE_VERSION],[
43 AC_REQUIRE([_PANDORA_SEARCH_LIBPROTOBUF])
44 p_recent_ver=$1
45 p_recent_ver_major=`echo $p_recent_ver | cut -f1 -d.`
46 p_recent_ver_minor=`echo $p_recent_ver | cut -f2 -d.`
47 p_recent_ver_patch=`echo $p_recent_ver | cut -f3 -d.`
48 p_recent_ver_hex=`printf "%d%03d%03d" $p_recent_ver_major $p_recent_ver_minor $p_recent_ver_patch`
49 AC_LANG_PUSH([C++])
50 AC_CACHE_CHECK([for protobuf >= $p_recent_ver],
51 [drizzle_cv_protobuf_recent],
52 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
53 #include <google/protobuf/descriptor.h>
54 #if GOOGLE_PROTOBUF_VERSION < $p_recent_ver_hex
55 # error Your version of Protobuf is too old
56 #endif
57 ]])],
58 [drizzle_cv_protobuf_recent=yes],
59 [drizzle_cv_protobuf_recent=no])])
60 AS_IF([test "$drizzle_cv_protobuf_recent" = "no"],[
61 AC_MSG_ERROR([Your version of Google Protocol Buffers is too old. ${PACKAGE} requires at least version $p_recent_ver])
62 ])
63 AC_LANG_POP()
64 ])
65
66 AC_DEFUN([_PANDORA_SEARCH_PROTOC],[
67 AC_REQUIRE([_PANDORA_SEARCH_LIBPROTOBUF])
68 AC_PATH_PROG([PROTOC],[protoc],[no],[$LIBPROTOBUF_PREFIX/bin:$PATH])
69 ])
70
71 AC_DEFUN([PANDORA_HAVE_PROTOC],[
72 AC_REQUIRE([_PANDORA_SEARCH_PROTOC])
73 ])
74
75 AC_DEFUN([PANDORA_REQUIRE_PROTOC],[
76 AC_REQUIRE([PANDORA_HAVE_PROTOC])
77 AS_IF([test "x$PROTOC" = "xno"],[
78 AC_MSG_ERROR([Couldn't find the protoc compiler. On Debian this can be found in protobuf-compiler. On RedHat this can be found in protobuf-compiler.])
79 ])
80 ])
81
82