~markwright/scalestack/zeromq

« back to all changes in this revision

Viewing changes to m4/pandora_have_protobuf.m4

  • Committer: Eric Day
  • Date: 2010-02-21 10:36:03 UTC
  • Revision ID: eday@oddments.org-20100221103603-u0agc1fsduqhl728
Initial commit with build system and basic module loading.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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="${save_CXXFLAGS}"
 
27
  AC_LANG_POP()
 
28
])
 
29
 
 
30
AC_DEFUN([PANDORA_HAVE_LIBPROTOBUF],[
 
31
  AC_REQUIRE([_PANDORA_SEARCH_LIBPROTOBUF])
 
32
])
 
33
 
 
34
AC_DEFUN([PANDORA_REQUIRE_LIBPROTOBUF],[
 
35
  AC_REQUIRE([PANDORA_HAVE_LIBPROTOBUF])
 
36
  AS_IF([test x$ac_cv_libprotobuf = xno],
 
37
      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.]))
 
38
])
 
39
 
 
40
AC_DEFUN([PANDORA_PROTOBUF_REQUIRE_VERSION],[
 
41
  AC_REQUIRE([_PANDORA_SEARCH_LIBPROTOBUF])
 
42
  p_recent_ver=$1
 
43
  p_recent_ver_major=`echo $p_recent_ver | cut -f1 -d.`
 
44
  p_recent_ver_minor=`echo $p_recent_ver | cut -f2 -d.`
 
45
  p_recent_ver_patch=`echo $p_recent_ver | cut -f3 -d.`
 
46
  p_recent_ver_hex=`printf "%d%03d%03d" $p_recent_ver_major $p_recent_ver_minor $p_recent_ver_patch` 
 
47
  AC_LANG_PUSH([C++])
 
48
  AC_CACHE_CHECK([for protobuf >= $p_recent_ver],
 
49
    [drizzle_cv_protobuf_recent],
 
50
    [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
 
51
#include <google/protobuf/descriptor.h>
 
52
#if GOOGLE_PROTOBUF_VERSION < $p_recent_ver_hex
 
53
# error Your version of Protobuf is too old
 
54
#endif
 
55
      ]])],
 
56
    [drizzle_cv_protobuf_recent=yes],
 
57
    [drizzle_cv_protobuf_recent=no])])
 
58
  AS_IF([test "$drizzle_cv_protobuf_recent" = "no"],[
 
59
    AC_MSG_ERROR([Your version of Google Protocol Buffers is too old. ${PACKAGE} requires at least version $p_recent_ver])
 
60
  ])
 
61
  AC_LANG_POP()
 
62
])
 
63
 
 
64
AC_DEFUN([_PANDORA_SEARCH_PROTOC],[
 
65
  AC_REQUIRE([_PANDORA_SEARCH_LIBPROTOBUF])
 
66
  AC_PATH_PROG([PROTOC],[protoc],[no],[$LIBPROTOBUF_PREFIX/bin:$PATH])
 
67
])
 
68
 
 
69
AC_DEFUN([PANDORA_HAVE_PROTOC],[
 
70
  AC_REQUIRE([_PANDORA_SEARCH_PROTOC])
 
71
])
 
72
 
 
73
AC_DEFUN([PANDORA_REQUIRE_PROTOC],[
 
74
  AC_REQUIRE([PANDORA_HAVE_PROTOC])
 
75
  AS_IF([test "x$PROTOC" = "xno"],[
 
76
    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.])
 
77
  ])
 
78
])
 
79
 
 
80