Initial check-in.
[shibboleth/cpp-sp-resolver.git] / acinclude.m4
1 dnl @synopsis AC_CXX_NAMESPACES\r
2 dnl\r
3 dnl If the compiler can prevent names clashes using namespaces, define\r
4 dnl HAVE_NAMESPACES.\r
5 dnl\r
6 dnl @author Luc Maisonobe\r
7 dnl\r
8 AC_DEFUN([AC_CXX_NAMESPACES],\r
9 [AC_CACHE_CHECK(whether the compiler implements namespaces,\r
10 ac_cv_cxx_namespaces,\r
11 [AC_LANG_SAVE\r
12  AC_LANG_CPLUSPLUS\r
13  AC_TRY_COMPILE([namespace Outer { namespace Inner { int i = 0; }}],\r
14                 [using namespace Outer::Inner; return i;],\r
15  ac_cv_cxx_namespaces=yes, ac_cv_cxx_namespaces=no)\r
16  AC_LANG_RESTORE\r
17 ])\r
18 if test "$ac_cv_cxx_namespaces" = yes; then\r
19   AC_DEFINE(HAVE_NAMESPACES,1,[define if the compiler implements namespaces])\r
20 fi\r
21 ])\r
22 \r
23 \r
24 dnl\r
25 dnl @author Luc Maisonobe\r
26 dnl\r
27 AC_DEFUN([AC_CXX_REQUIRE_STL],\r
28 [AC_CACHE_CHECK(whether the compiler supports Standard Template Library,\r
29 ac_cv_cxx_have_stl,\r
30 [AC_REQUIRE([AC_CXX_NAMESPACES])\r
31  AC_LANG_SAVE\r
32  AC_LANG_CPLUSPLUS\r
33  AC_TRY_COMPILE([#include <list>\r
34 #include <deque>\r
35 #ifdef HAVE_NAMESPACES\r
36 using namespace std;\r
37 #endif],[list<int> x; x.push_back(5);\r
38 list<int>::iterator iter = x.begin(); if (iter != x.end()) ++iter; return 0;],\r
39  ac_cv_cxx_have_stl=yes, ac_cv_cxx_have_stl=no)\r
40  AC_LANG_RESTORE\r
41 ])\r
42 if test "x_$ac_cv_cxx_have_stl" != x_yes; then\r
43   AC_MSG_ERROR([C++ Standard Template Libary unsupported])\r
44 fi\r
45 ])\r
46 \r
47 dnl@synopsys YAD_CHECK_INCLUDE_LIB(INCLUDE, LIBRARY, CODE\r
48 dnl              [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND\r
49 dnl              [, OTHER-LIBRARIES]]])\r
50 dnl \r
51 dnl same as the AC_CHECK_LIB except of the following:\r
52 dnl      - You sholud specify include part of test.\r
53 dnl      - You can test any code for linking, not just function calls.\r
54 dnl\r
55 dnl@author Alexandr Yanovets <yad@gradsoft.kiev.ua>\r
56 dnl\r
57 AC_DEFUN(YAD_CHECK_INCLUDE_LIB,\r
58 [AC_MSG_CHECKING([for $3 in -l$2])\r
59 dnl Use a cache variable name containing both the library and function name,\r
60 dnl because the test really is for library $2 defining function $3, not\r
61 dnl just for library $2.  Separate tests with the same $2 and different $3s\r
62 dnl may have different results.\r
63 ac_lib_var=`echo $2['_']include | sed 'y%./+-%__p_%'`\r
64 AC_CACHE_VAL(ac_cv_lib_$ac_lib_var,\r
65 [yad_check_lib_save_LIBS="$LIBS"\r
66 LIBS="-l$2 $6 $LIBS"\r
67 AC_TRY_LINK(dnl\r
68             [$1],\r
69             [$3],\r
70             eval "ac_cv_lib_$ac_lib_var=yes",\r
71             eval "ac_cv_lib_$ac_lib_var=no")\r
72 LIBS="$yad_check_lib_save_LIBS"\r
73 ])dnl\r
74 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then\r
75   AC_MSG_RESULT(yes)\r
76   ifelse([$4], ,\r
77 [changequote(, )dnl\r
78   ac_tr_lib=HAVE_LIB`echo $2 | sed -e 's/[^a-zA-Z0-9_]/_/g' \\r
79     -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`\r
80 changequote([, ])dnl\r
81   AC_DEFINE_UNQUOTED($ac_tr_lib)\r
82   LIBS="-l$2 $LIBS"\r
83 ], [$4])\r
84 else\r
85   AC_MSG_RESULT(no)\r
86 ifelse([$5], , , [$5\r
87 ])dnl\r
88 fi\r
89 ])\r
90 \r