~mordred/libmemcached/fix-weird-link

« back to all changes in this revision

Viewing changes to libhashkit/visibility.h

  • Committer: Brian Aker
  • Date: 2009-12-17 17:28:30 UTC
  • Revision ID: brian@gir.tangent.org-20091217172830-h298d0m4x2wxmqlo
Adding back libhashkit.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Summary: interface for HashKit functions
 
3
 * Description: visibitliy macros for HashKit library
 
4
 *
 
5
 * Use and distribution licensed under the BSD license.  See
 
6
 * the COPYING file in this directory for full text.
 
7
 * 
 
8
 * Author: Monty Taylor
 
9
 */
 
10
 
 
11
/**
 
12
 * @file
 
13
 * @brief Visibility control macros
 
14
 */
 
15
 
 
16
#ifndef HASHKIT_VISIBILITY_H
 
17
#define HASHKIT_VISIBILITY_H
 
18
 
 
19
/**
 
20
 *
 
21
 * HASHKIT_API is used for the public API symbols. It either DLL imports or
 
22
 * DLL exports (or does nothing for static build).
 
23
 *
 
24
 * HASHKIT_LOCAL is used for non-api symbols.
 
25
 */
 
26
 
 
27
#if defined(BUILDING_HASHKIT)
 
28
# if defined(HAVE_VISIBILITY) && HAVE_VISIBILITY
 
29
#  define HASHKIT_API __attribute__ ((visibility("default")))
 
30
#  define HASHKIT_LOCAL  __attribute__ ((visibility("hidden")))
 
31
# elif defined (__SUNPRO_C) && (__SUNPRO_C >= 0x550)
 
32
#  define HASHKIT_API __global
 
33
#  define HASHKIT_LOCAL __hidden
 
34
# elif defined(_MSC_VER)
 
35
#  define HASHKIT_API extern __declspec(dllexport) 
 
36
#  define HASHKIT_LOCAL
 
37
# else
 
38
#  define HASHKIT_API
 
39
#  define HASHKIT_LOCAL
 
40
# endif /* defined(HAVE_VISIBILITY) */
 
41
#else  /* defined(BUILDING_HASHKIT) */
 
42
# if defined(_MSC_VER)
 
43
#  define HASHKIT_API extern __declspec(dllimport) 
 
44
#  define HASHKIT_LOCAL
 
45
# else
 
46
#  define HASHKIT_API
 
47
#  define HASHKIT_LOCAL
 
48
# endif /* defined(_MSC_VER) */
 
49
#endif /* defined(BUILDING_HASHKIT) */
 
50
 
 
51
#endif /* HASHKIT_VISIBILITY_H */