~drizzle-trunk/drizzle/development

2037.1.1 by kalebral at gmail
More copyright updates
1
# Copyright (C) 2008 Sun Microsystems, Inc.
2
# This file is free software; Sun Microsystems, Inc.
3
# gives unlimited permission to copy and/or distribute it,
4
# with or without modifications, as long as this notice is preserved.
5
1429.3.1 by Monty Taylor
Use unordered_map from the upcoming c++0x standard instead of a homemade
6
# We check two things: where the include file is for unordered_map, and
7
# what namespace unordered_map lives in within that include file.  We
942.1.1 by Monty Taylor
Started transitioning from AC_TRY_COMPILE to AC_COMPILE_IFELSE
8
# include AC_COMPILE_IFELSE for all the combinations we've seen in the
1429.3.1 by Monty Taylor
Use unordered_map from the upcoming c++0x standard instead of a homemade
9
# wild.  We define HAVE_UNORDERED_MAP and HAVE_UNORDERED_SET if we have
10
# them, UNORDERED_MAP_H and UNORDERED_SET_H to their location and
11
# UNORDERED_NAMESPACE to be the namespace unordered_map is defined in.
12
13
AC_DEFUN([PANDORA_CXX_STL_UNORDERED],[
14
  save_CXXFLAGS="${CXXFLAGS}"
15
  CXXFLAGS="${AM_CXXFLAGS} ${CXXFLAGS}"
16
  AC_LANG_PUSH(C++)
17
  AC_CACHE_CHECK([for STL unordered_map],
18
    [pandora_cv_stl_unordered],[
19
      AC_COMPILE_IFELSE(
20
        [AC_LANG_PROGRAM([[#include <unordered_map>]],
21
                         [[std::unordered_map<int, int> t]])],
22
        [pandora_cv_stl_unordered="yes"],
23
        [pandora_cv_stl_unordered="no"])])
24
25
  AS_IF([test "x${pandora_cv_stl_unordered}" != "xyes"],[
26
    AC_CACHE_CHECK([for tr1 unordered_map],
27
      [pandora_cv_tr1_unordered],[
28
        AC_COMPILE_IFELSE(
29
          [AC_LANG_PROGRAM([[
30
/* We put in this define because of a YACC symbol clash in Drizzle.
31
   Seriously... I cannot believe the GCC guys defined a piece of the internals
32
   of this named IF - and I can't believe that YACC generates a token define
33
   called IF. Really?
34
*/
35
#define IF 21;
36
#include <tr1/unordered_map>
37
            ]],[[
38
std::tr1::unordered_map<int, int> t
39
          ]])],
40
          [pandora_cv_tr1_unordered="yes"],
41
          [pandora_cv_tr1_unordered="no"])])
42
  ])
43
44
  AS_IF([test "x${pandora_cv_stl_unordered}" != "xyes" -a "x${pandora_cv_tr1_unordered}" != "xyes"],[
45
    AC_CACHE_CHECK([for boost unordered_map],
46
      [pandora_cv_boost_unordered],[
47
        AC_COMPILE_IFELSE(
48
          [AC_LANG_PROGRAM([[#include <boost/unordered_map.hpp>]],
49
                           [[boost::unordered_map<int, int> t]])],
50
          [pandora_cv_boost_unordered="yes"],
51
          [pandora_cv_boost_unordered="no"])])
52
  ])
53
54
  CXXFLAGS="${save_CXXFLAGS}"
55
  AC_LANG_POP()
56
57
  AS_IF([test "x${pandora_cv_stl_unordered}" = "xyes"],[
58
    AC_DEFINE(HAVE_STD_UNORDERED_MAP, 1,
59
              [if the compiler has std::unordered_map])
60
    AC_DEFINE(HAVE_STD_UNORDERED_SET, 1,
61
              [if the compiler has std::unordered_set])
62
    pandora_has_unordered=yes
63
  ])
64
  AS_IF([test "x${pandora_cv_tr1_unordered}" = "xyes"],[
65
    AC_DEFINE(HAVE_TR1_UNORDERED_MAP, 1,
66
              [if the compiler has std::tr1::unordered_map])
67
    AC_DEFINE(HAVE_TR1_UNORDERED_SET, 1,
68
              [if the compiler has std::tr1::unordered_set])
69
    pandora_has_unordered=yes
70
  ])
71
  AS_IF([test "x${pandora_cv_boost_unordered}" = "xyes"],[
72
    AC_DEFINE(HAVE_BOOST_UNORDERED_MAP, 1,
73
              [if the compiler has boost::unordered_map])
74
    AC_DEFINE(HAVE_BOOST_UNORDERED_SET, 1,
75
              [if the compiler has boost::unordered_set])
76
    pandora_has_unordered=yes
77
  ])
78
    
79
  AS_IF([test "x${pandora_has_unordered}" != "xyes"],[
80
    AC_MSG_WARN([could not find an STL unordered_map])
81
  ])
82
])
83
84
AC_DEFUN([PANDORA_HAVE_CXX_UNORDERED],[
85
  AC_REQUIRE([PANDORA_CXX_STL_UNORDERED])
86
])
87
88
AC_DEFUN([PANDORA_REQUIRE_CXX_UNORDERED],[
89
  AC_REQUIRE([PANDORA_HAVE_CXX_UNORDERED])
90
  AS_IF([test "x${pandora_has_unordered}" != "xyes"],[
2221.1.8 by Monty Taylor
Adds ability to just build libdrizzle without needing all of the rest of the
91
    PANDORA_MSG_ERROR([An STL compliant unordered_map is required for ${PACKAGE}.
1429.3.1 by Monty Taylor
Use unordered_map from the upcoming c++0x standard instead of a homemade
92
    Implementations can be found in Recent versions of gcc and in boost])
93
  ])
481.1.9 by Monty Taylor
Added autoconf tests for location of cstdint and cinttypes. Use those in C++ programs now, so that we don't have to define _STDC_LIMIT_MACROS, etc by hand. Stop, in fact, defining those by hand.
94
])