Home | History | Annotate | Download | only in src
      1 /*  vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
      2  *
      3  *  Copyright (C) 2012 Brian Aker, brian (at) tangent.org
      4  *
      5  *  Redistribution and use in source and binary forms, with or without
      6  *  modification, are permitted provided that the following conditions are
      7  *  met:
      8  *
      9  *      * Redistributions of source code must retain the above copyright
     10  *  notice, this list of conditions and the following disclaimer.
     11  *
     12  *      * Redistributions in binary form must reproduce the above
     13  *  copyright notice, this list of conditions and the following disclaimer
     14  *  in the documentation and/or other materials provided with the
     15  *  distribution.
     16  *
     17  *      * The names of its contributors may not be used to endorse or
     18  *  promote products derived from this software without specific prior
     19  *  written permission.
     20  *
     21  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     22  *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     23  *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
     24  *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     25  *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
     26  *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
     27  *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     28  *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     29  *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     30  *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     31  *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     32  *
     33  */
     34 
     35 #pragma once
     36 
     37 #if defined(BUILDING_TLSDATE)
     38 # if defined(HAVE_VISIBILITY) && HAVE_VISIBILITY
     39 #  define TLSDATE_API __attribute__ ((visibility("default")))
     40 #  define TLSDATE_LOCAL  __attribute__ ((visibility("default")))
     41 # elif defined (__SUNPRO_C) && (__SUNPRO_C >= 0x550)
     42 #  define TLSDATE_API __global
     43 #  define TLSDATE_LOCAL __global
     44 # elif defined(_MSC_VER)
     45 #  define TLSDATE_API extern __declspec(dllexport)
     46 #  define TLSDATE_LOCAL extern __declspec(dllexport)
     47 # else
     48 #  define TLSDATE_API
     49 #  define TLSDATE_LOCAL
     50 # endif
     51 #else
     52 # if defined(BUILDING_TLSDATE)
     53 #  if defined(HAVE_VISIBILITY) && HAVE_VISIBILITY
     54 #   define TLSDATE_API __attribute__ ((visibility("default")))
     55 #   define TLSDATE_LOCAL  __attribute__ ((visibility("hidden")))
     56 #  elif defined (__SUNPRO_C) && (__SUNPRO_C >= 0x550)
     57 #   define TLSDATE_API __global
     58 #   define TLSDATE_LOCAL __hidden
     59 #  elif defined(_MSC_VER)
     60 #   define TLSDATE_API extern __declspec(dllexport)
     61 #   define TLSDATE_LOCAL
     62 #  else
     63 #   define TLSDATE_API
     64 #   define TLSDATE_LOCAL
     65 #  endif /* defined(HAVE_VISIBILITY) */
     66 # else  /* defined(BUILDING_TLSDATE) */
     67 #  if defined(_MSC_VER)
     68 #   define TLSDATE_API extern __declspec(dllimport)
     69 #   define TLSDATE_LOCAL
     70 #  else
     71 #   define TLSDATE_API
     72 #   define TLSDATE_LOCAL
     73 #  endif /* defined(_MSC_VER) */
     74 # endif /* defined(BUILDING_TLSDATE) */
     75 #endif /* defined(BUILDING_TLSDATEINTERNAL) */
     76