1/*
2 * exsltexports.h : macros for marking symbols as exportable/importable.
3 *
4 * See Copyright for the status of this software.
5 *
6 * igor@zlatkovic.com
7 */
8
9#ifndef __EXSLT_EXPORTS_H__
10#define __EXSLT_EXPORTS_H__
11
12/**
13 * EXSLTPUBFUN, EXSLTPUBVAR, EXSLTCALL
14 *
15 * Macros which declare an exportable function, an exportable variable and
16 * the calling convention used for functions.
17 *
18 * Please use an extra block for every platform/compiler combination when
19 * modifying this, rather than overlong #ifdef lines. This helps
20 * readability as well as the fact that different compilers on the same
21 * platform might need different definitions.
22 */
23
24/**
25 * EXSLTPUBFUN:
26 *
27 * Macros which declare an exportable function
28 */
29#define EXSLTPUBFUN
30/**
31 * EXSLTPUBVAR:
32 *
33 * Macros which declare an exportable variable
34 */
35#define EXSLTPUBVAR extern
36/**
37 * EXSLTCALL:
38 *
39 * Macros which declare the called convention for exported functions
40 */
41#define EXSLTCALL
42
43/** DOC_DISABLE */
44
45/* Windows platform with MS compiler */
46#if defined(_WIN32) && defined(_MSC_VER)
47  #undef EXSLTPUBFUN
48  #undef EXSLTPUBVAR
49  #undef EXSLTCALL
50  #if defined(IN_LIBEXSLT) && !defined(LIBEXSLT_STATIC)
51    #define EXSLTPUBFUN __declspec(dllexport)
52    #define EXSLTPUBVAR __declspec(dllexport)
53  #else
54    #define EXSLTPUBFUN
55    #if !defined(LIBEXSLT_STATIC)
56      #define EXSLTPUBVAR __declspec(dllimport) extern
57    #else
58      #define EXSLTPUBVAR extern
59    #endif
60  #endif
61  #define EXSLTCALL __cdecl
62  #if !defined _REENTRANT
63    #define _REENTRANT
64  #endif
65#endif
66
67/* Windows platform with Borland compiler */
68#if defined(_WIN32) && defined(__BORLANDC__)
69  #undef EXSLTPUBFUN
70  #undef EXSLTPUBVAR
71  #undef EXSLTCALL
72  #if defined(IN_LIBEXSLT) && !defined(LIBEXSLT_STATIC)
73    #define EXSLTPUBFUN __declspec(dllexport)
74    #define EXSLTPUBVAR __declspec(dllexport) extern
75  #else
76    #define EXSLTPUBFUN
77    #if !defined(LIBEXSLT_STATIC)
78      #define EXSLTPUBVAR __declspec(dllimport) extern
79    #else
80      #define EXSLTPUBVAR extern
81    #endif
82  #endif
83  #define EXSLTCALL __cdecl
84  #if !defined _REENTRANT
85    #define _REENTRANT
86  #endif
87#endif
88
89/* Windows platform with GNU compiler (Mingw) */
90#if defined(_WIN32) && defined(__MINGW32__)
91  #undef EXSLTPUBFUN
92  #undef EXSLTPUBVAR
93  #undef EXSLTCALL
94/*
95  #if defined(IN_LIBEXSLT) && !defined(LIBEXSLT_STATIC)
96*/
97  #if !defined(LIBEXSLT_STATIC)
98    #define EXSLTPUBFUN __declspec(dllexport)
99    #define EXSLTPUBVAR __declspec(dllexport) extern
100  #else
101    #define EXSLTPUBFUN
102    #if !defined(LIBEXSLT_STATIC)
103      #define EXSLTPUBVAR __declspec(dllimport) extern
104    #else
105      #define EXSLTPUBVAR extern
106    #endif
107  #endif
108  #define EXSLTCALL __cdecl
109  #if !defined _REENTRANT
110    #define _REENTRANT
111  #endif
112#endif
113
114/* Cygwin platform, GNU compiler */
115#if defined(_WIN32) && defined(__CYGWIN__)
116  #undef EXSLTPUBFUN
117  #undef EXSLTPUBVAR
118  #undef EXSLTCALL
119  #if defined(IN_LIBEXSLT) && !defined(LIBEXSLT_STATIC)
120    #define EXSLTPUBFUN __declspec(dllexport)
121    #define EXSLTPUBVAR __declspec(dllexport)
122  #else
123    #define EXSLTPUBFUN
124    #if !defined(LIBEXSLT_STATIC)
125      #define EXSLTPUBVAR __declspec(dllimport) extern
126    #else
127      #define EXSLTPUBVAR
128    #endif
129  #endif
130  #define EXSLTCALL __cdecl
131#endif
132
133/* Compatibility */
134#if !defined(LIBEXSLT_PUBLIC)
135#define LIBEXSLT_PUBLIC EXSLTPUBVAR
136#endif
137
138#endif /* __EXSLT_EXPORTS_H__ */
139
140
141