~oleksiyk/gearmand/mysql

« back to all changes in this revision

Viewing changes to m4/ax_tls.m4

Merge of all autoconf fix'able issues.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# ===========================================================================
2
 
#          http://www.gnu.org/software/autoconf-archive/ax_tls.html
3
 
# ===========================================================================
4
 
#
5
 
# SYNOPSIS
6
 
#
7
 
#   AX_TLS([action-if-found], [action-if-not-found])
8
 
#
9
 
# DESCRIPTION
10
 
#
11
 
#   Provides a test for the compiler support of thread local storage (TLS)
12
 
#   extensions. Defines TLS if it is found. Currently knows about GCC/ICC
13
 
#   and MSVC. I think SunPro uses the same as GCC, and Borland apparently
14
 
#   supports either.
15
 
#
16
 
# LICENSE
17
 
#
18
 
#   Copyright (c) 2008 Alan Woodland <ajw05@aber.ac.uk>
19
 
#   Copyright (c) 2010 Diego Elio Petteno` <flameeyes@gmail.com>
20
 
#
21
 
#   This program is free software: you can redistribute it and/or modify it
22
 
#   under the terms of the GNU General Public License as published by the
23
 
#   Free Software Foundation, either version 3 of the License, or (at your
24
 
#   option) any later version.
25
 
#
26
 
#   This program is distributed in the hope that it will be useful, but
27
 
#   WITHOUT ANY WARRANTY; without even the implied warranty of
28
 
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
29
 
#   Public License for more details.
30
 
#
31
 
#   You should have received a copy of the GNU General Public License along
32
 
#   with this program. If not, see <http://www.gnu.org/licenses/>.
33
 
#
34
 
#   As a special exception, the respective Autoconf Macro's copyright owner
35
 
#   gives unlimited permission to copy, distribute and modify the configure
36
 
#   scripts that are the output of Autoconf when processing the Macro. You
37
 
#   need not follow the terms of the GNU General Public License when using
38
 
#   or distributing such scripts, even though portions of the text of the
39
 
#   Macro appear in them. The GNU General Public License (GPL) does govern
40
 
#   all other use of the material that constitutes the Autoconf Macro.
41
 
#
42
 
#   This special exception to the GPL applies to versions of the Autoconf
43
 
#   Macro released by the Autoconf Archive. When you make and distribute a
44
 
#   modified version of the Autoconf Macro, you may extend this special
45
 
#   exception to the GPL to apply to your modified version as well.
46
 
 
47
 
#serial 10
48
 
 
49
 
AC_DEFUN([AX_TLS], [
50
 
  AC_MSG_CHECKING(for thread local storage (TLS) class)
51
 
  AC_CACHE_VAL(ac_cv_tls, [
52
 
    ax_tls_keywords="__thread __declspec(thread) none"
53
 
    for ax_tls_keyword in $ax_tls_keywords; do
54
 
       AS_CASE([$ax_tls_keyword],
55
 
          [none], [ac_cv_tls=none ; break],
56
 
          [AC_TRY_COMPILE(
57
 
              [#include <stdlib.h>
58
 
               static void
59
 
               foo(void) {
60
 
               static ] $ax_tls_keyword [ int bar;
61
 
               exit(1);
62
 
               }],
63
 
               [],
64
 
               [ac_cv_tls=$ax_tls_keyword ; break],
65
 
               ac_cv_tls=none
66
 
           )])
67
 
    done
68
 
  ])
69
 
  AC_MSG_RESULT($ac_cv_tls)
70
 
 
71
 
  AS_IF([test "$ac_cv_tls" != "none"],
72
 
    AC_DEFINE_UNQUOTED([TLS], $ac_cv_tls, [If the compiler supports a TLS storage class define it to that here])
73
 
      m4_ifnblank([$1], [$1]),
74
 
    m4_ifnblank([$2], [$2])
75
 
  )
76
 
])